diff options
Diffstat (limited to 'lib/THC/generic/THCTensor.h')
-rw-r--r-- | lib/THC/generic/THCTensor.h | 155 |
1 files changed, 76 insertions, 79 deletions
diff --git a/lib/THC/generic/THCTensor.h b/lib/THC/generic/THCTensor.h index 27689e8..175eaee 100644 --- a/lib/THC/generic/THCTensor.h +++ b/lib/THC/generic/THCTensor.h @@ -1,133 +1,130 @@ -#ifndef THC_TENSOR_INC -#define THC_TENSOR_INC - -#include "THTensor.h" -#include "THCStorage.h" -#include "THCGeneral.h" +#ifndef THC_GENERIC_FILE +#define THC_GENERIC_FILE "generic/THCTensor.h" +#else #define TH_TENSOR_REFCOUNTED 1 -typedef struct THCudaTensor +typedef struct THCTensor { long *size; long *stride; int nDimension; - THCudaStorage *storage; + THCStorage *storage; long storageOffset; int refcount; char flag; -} THCudaTensor; +} THCTensor; /**** access methods ****/ -THC_API THCudaStorage* THCudaTensor_storage(THCState *state, const THCudaTensor *self); -THC_API long THCudaTensor_storageOffset(THCState *state, const THCudaTensor *self); -THC_API int THCudaTensor_nDimension(THCState *state, const THCudaTensor *self); -THC_API long THCudaTensor_size(THCState *state, const THCudaTensor *self, int dim); -THC_API long THCudaTensor_stride(THCState *state, const THCudaTensor *self, int dim); -THC_API THLongStorage *THCudaTensor_newSizeOf(THCState *state, THCudaTensor *self); -THC_API THLongStorage *THCudaTensor_newStrideOf(THCState *state, THCudaTensor *self); -THC_API float *THCudaTensor_data(THCState *state, const THCudaTensor *self); +THC_API THCStorage* THCTensor_(storage)(THCState *state, const THCTensor *self); +THC_API long THCTensor_(storageOffset)(THCState *state, const THCTensor *self); +THC_API int THCTensor_(nDimension)(THCState *state, const THCTensor *self); +THC_API long THCTensor_(size)(THCState *state, const THCTensor *self, int dim); +THC_API long THCTensor_(stride)(THCState *state, const THCTensor *self, int dim); +THC_API THLongStorage *THCTensor_(newSizeOf)(THCState *state, THCTensor *self); +THC_API THLongStorage *THCTensor_(newStrideOf)(THCState *state, THCTensor *self); +THC_API real *THCTensor_(data)(THCState *state, const THCTensor *self); -THC_API void THCudaTensor_setFlag(THCState *state, THCudaTensor *self, const char flag); -THC_API void THCudaTensor_clearFlag(THCState *state, THCudaTensor *self, const char flag); +THC_API void THCTensor_(setFlag)(THCState *state, THCTensor *self, const char flag); +THC_API void THCTensor_(clearFlag)(THCState *state, THCTensor *self, const char flag); /**** creation methods ****/ -THC_API THCudaTensor *THCudaTensor_new(THCState *state); -THC_API THCudaTensor *THCudaTensor_newWithTensor(THCState *state, THCudaTensor *tensor); +THC_API THCTensor *THCTensor_(new)(THCState *state); +THC_API THCTensor *THCTensor_(newWithTensor)(THCState *state, THCTensor *tensor); /* stride might be NULL */ -THC_API THCudaTensor *THCudaTensor_newWithStorage(THCState *state, THCudaStorage *storage_, long storageOffset_, THLongStorage *size_, THLongStorage *stride_); -THC_API THCudaTensor *THCudaTensor_newWithStorage1d(THCState *state, THCudaStorage *storage_, long storageOffset_, +THC_API THCTensor *THCTensor_(newWithStorage)(THCState *state, THCStorage *storage_, long storageOffset_, THLongStorage *size_, THLongStorage *stride_); +THC_API THCTensor *THCTensor_(newWithStorage1d)(THCState *state, THCStorage *storage_, long storageOffset_, long size0_, long stride0_); -THC_API THCudaTensor *THCudaTensor_newWithStorage2d(THCState *state, THCudaStorage *storage_, long storageOffset_, +THC_API THCTensor *THCTensor_(newWithStorage2d)(THCState *state, THCStorage *storage_, long storageOffset_, long size0_, long stride0_, long size1_, long stride1_); -THC_API THCudaTensor *THCudaTensor_newWithStorage3d(THCState *state, THCudaStorage *storage_, long storageOffset_, +THC_API THCTensor *THCTensor_(newWithStorage3d)(THCState *state, THCStorage *storage_, long storageOffset_, long size0_, long stride0_, long size1_, long stride1_, long size2_, long stride2_); -THC_API THCudaTensor *THCudaTensor_newWithStorage4d(THCState *state, THCudaStorage *storage_, long storageOffset_, +THC_API THCTensor *THCTensor_(newWithStorage4d)(THCState *state, THCStorage *storage_, long storageOffset_, long size0_, long stride0_, long size1_, long stride1_, long size2_, long stride2_, long size3_, long stride3_); /* stride might be NULL */ -THC_API THCudaTensor *THCudaTensor_newWithSize(THCState *state, THLongStorage *size_, THLongStorage *stride_); -THC_API THCudaTensor *THCudaTensor_newWithSize1d(THCState *state, long size0_); -THC_API THCudaTensor *THCudaTensor_newWithSize2d(THCState *state, long size0_, long size1_); -THC_API THCudaTensor *THCudaTensor_newWithSize3d(THCState *state, long size0_, long size1_, long size2_); -THC_API THCudaTensor *THCudaTensor_newWithSize4d(THCState *state, long size0_, long size1_, long size2_, long size3_); - -THC_API THCudaTensor *THCudaTensor_newClone(THCState *state, THCudaTensor *self); -THC_API THCudaTensor *THCudaTensor_newContiguous(THCState *state, THCudaTensor *tensor); -THC_API THCudaTensor *THCudaTensor_newSelect(THCState *state, THCudaTensor *tensor, int dimension_, long sliceIndex_); -THC_API THCudaTensor *THCudaTensor_newNarrow(THCState *state, THCudaTensor *tensor, int dimension_, long firstIndex_, long size_); -THC_API THCudaTensor *THCudaTensor_newTranspose(THCState *state, THCudaTensor *tensor, int dimension1_, int dimension2_); -THC_API THCudaTensor *THCudaTensor_newUnfold(THCState *state, THCudaTensor *tensor, int dimension_, long size_, long step_); - -THC_API void THCudaTensor_resize(THCState *state, THCudaTensor *tensor, THLongStorage *size, THLongStorage *stride); -THC_API void THCudaTensor_resizeAs(THCState *state, THCudaTensor *tensor, THCudaTensor *src); -THC_API void THCudaTensor_resize1d(THCState *state, THCudaTensor *tensor, long size0_); -THC_API void THCudaTensor_resize2d(THCState *state, THCudaTensor *tensor, long size0_, long size1_); -THC_API void THCudaTensor_resize3d(THCState *state, THCudaTensor *tensor, long size0_, long size1_, long size2_); -THC_API void THCudaTensor_resize4d(THCState *state, THCudaTensor *tensor, long size0_, long size1_, long size2_, long size3_); -THC_API void THCudaTensor_resize5d(THCState *state, THCudaTensor *tensor, long size0_, long size1_, long size2_, long size3_, long size4_); -THC_API void THCudaTensor_rawResize(THCState *state, THCudaTensor *self, int nDimension, long *size, long *stride); - -THC_API void THCudaTensor_set(THCState *state, THCudaTensor *self, THCudaTensor *src); -THC_API void THCudaTensor_setStorage(THCState *state, THCudaTensor *self, THCudaStorage *storage_, long storageOffset_, THLongStorage *size_, THLongStorage *stride_); -THC_API void THCudaTensor_setStorage1d(THCState *state, THCudaTensor *self, THCudaStorage *storage_, long storageOffset_, +THC_API THCTensor *THCTensor_(newWithSize)(THCState *state, THLongStorage *size_, THLongStorage *stride_); +THC_API THCTensor *THCTensor_(newWithSize1d)(THCState *state, long size0_); +THC_API THCTensor *THCTensor_(newWithSize2d)(THCState *state, long size0_, long size1_); +THC_API THCTensor *THCTensor_(newWithSize3d)(THCState *state, long size0_, long size1_, long size2_); +THC_API THCTensor *THCTensor_(newWithSize4d)(THCState *state, long size0_, long size1_, long size2_, long size3_); + +THC_API THCTensor *THCTensor_(newClone)(THCState *state, THCTensor *self); +THC_API THCTensor *THCTensor_(newContiguous)(THCState *state, THCTensor *tensor); +THC_API THCTensor *THCTensor_(newSelect)(THCState *state, THCTensor *tensor, int dimension_, long sliceIndex_); +THC_API THCTensor *THCTensor_(newNarrow)(THCState *state, THCTensor *tensor, int dimension_, long firstIndex_, long size_); +THC_API THCTensor *THCTensor_(newTranspose)(THCState *state, THCTensor *tensor, int dimension1_, int dimension2_); +THC_API THCTensor *THCTensor_(newUnfold)(THCState *state, THCTensor *tensor, int dimension_, long size_, long step_); + +THC_API void THCTensor_(resize)(THCState *state, THCTensor *tensor, THLongStorage *size, THLongStorage *stride); +THC_API void THCTensor_(resizeAs)(THCState *state, THCTensor *tensor, THCTensor *src); +THC_API void THCTensor_(resize1d)(THCState *state, THCTensor *tensor, long size0_); +THC_API void THCTensor_(resize2d)(THCState *state, THCTensor *tensor, long size0_, long size1_); +THC_API void THCTensor_(resize3d)(THCState *state, THCTensor *tensor, long size0_, long size1_, long size2_); +THC_API void THCTensor_(resize4d)(THCState *state, THCTensor *tensor, long size0_, long size1_, long size2_, long size3_); +THC_API void THCTensor_(resize5d)(THCState *state, THCTensor *tensor, long size0_, long size1_, long size2_, long size3_, long size4_); +THC_API void THCTensor_(rawResize)(THCState *state, THCTensor *self, int nDimension, long *size, long *stride); + +THC_API void THCTensor_(set)(THCState *state, THCTensor *self, THCTensor *src); +THC_API void THCTensor_(setStorage)(THCState *state, THCTensor *self, THCStorage *storage_, long storageOffset_, THLongStorage *size_, THLongStorage *stride_); +THC_API void THCTensor_(setStorage1d)(THCState *state, THCTensor *self, THCStorage *storage_, long storageOffset_, long size0_, long stride0_); -THC_API void THCudaTensor_setStorage2d(THCState *state, THCudaTensor *self, THCudaStorage *storage_, long storageOffset_, +THC_API void THCTensor_(setStorage2d)(THCState *state, THCTensor *self, THCStorage *storage_, long storageOffset_, long size0_, long stride0_, long size1_, long stride1_); -THC_API void THCudaTensor_setStorage3d(THCState *state, THCudaTensor *self, THCudaStorage *storage_, long storageOffset_, +THC_API void THCTensor_(setStorage3d)(THCState *state, THCTensor *self, THCStorage *storage_, long storageOffset_, long size0_, long stride0_, long size1_, long stride1_, long size2_, long stride2_); -THC_API void THCudaTensor_setStorage4d(THCState *state, THCudaTensor *self, THCudaStorage *storage_, long storageOffset_, +THC_API void THCTensor_(setStorage4d)(THCState *state, THCTensor *self, THCStorage *storage_, long storageOffset_, long size0_, long stride0_, long size1_, long stride1_, long size2_, long stride2_, long size3_, long stride3_); -THC_API void THCudaTensor_narrow(THCState *state, THCudaTensor *self, THCudaTensor *src, int dimension_, long firstIndex_, long size_); -THC_API void THCudaTensor_select(THCState *state, THCudaTensor *self, THCudaTensor *src, int dimension_, long sliceIndex_); -THC_API void THCudaTensor_transpose(THCState *state, THCudaTensor *self, THCudaTensor *src, int dimension1_, int dimension2_); -THC_API void THCudaTensor_unfold(THCState *state, THCudaTensor *self, THCudaTensor *src, int dimension_, long size_, long step_); +THC_API void THCTensor_(narrow)(THCState *state, THCTensor *self, THCTensor *src, int dimension_, long firstIndex_, long size_); +THC_API void THCTensor_(select)(THCState *state, THCTensor *self, THCTensor *src, int dimension_, long sliceIndex_); +THC_API void THCTensor_(transpose)(THCState *state, THCTensor *self, THCTensor *src, int dimension1_, int dimension2_); +THC_API void THCTensor_(unfold)(THCState *state, THCTensor *self, THCTensor *src, int dimension_, long size_, long step_); -THC_API void THCudaTensor_squeeze(THCState *state, THCudaTensor *self, THCudaTensor *src); -THC_API void THCudaTensor_squeeze1d(THCState *state, THCudaTensor *self, THCudaTensor *src, int dimension_); +THC_API void THCTensor_(squeeze)(THCState *state, THCTensor *self, THCTensor *src); +THC_API void THCTensor_(squeeze1d)(THCState *state, THCTensor *self, THCTensor *src, int dimension_); -THC_API int THCudaTensor_isContiguous(THCState *state, const THCudaTensor *self); -THC_API int THCudaTensor_isSameSizeAs(THCState *state, const THCudaTensor *self, const THCudaTensor *src); -THC_API int THCudaTensor_isSetTo(THCState *state, const THCudaTensor *self, const THCudaTensor *src); -THC_API int THCudaTensor_isSize(THCState *state, const THCudaTensor *self, const THLongStorage *dims); -THC_API long THCudaTensor_nElement(THCState *state, const THCudaTensor *self); +THC_API int THCTensor_(isContiguous)(THCState *state, const THCTensor *self); +THC_API int THCTensor_(isSameSizeAs)(THCState *state, const THCTensor *self, const THCTensor *src); +THC_API int THCTensor_(isSetTo)(THCState *state, const THCTensor *self, const THCTensor *src); +THC_API int THCTensor_(isSize)(THCState *state, const THCTensor *self, const THLongStorage *dims); +THC_API long THCTensor_(nElement)(THCState *state, const THCTensor *self); -THC_API void THCudaTensor_retain(THCState *state, THCudaTensor *self); -THC_API void THCudaTensor_free(THCState *state, THCudaTensor *self); -THC_API void THCudaTensor_freeCopyTo(THCState *state, THCudaTensor *self, THCudaTensor *dst); +THC_API void THCTensor_(retain)(THCState *state, THCTensor *self); +THC_API void THCTensor_(free)(THCState *state, THCTensor *self); +THC_API void THCTensor_(freeCopyTo)(THCState *state, THCTensor *self, THCTensor *dst); /* Slow access methods [check everything] */ -THC_API void THCudaTensor_set1d(THCState *state, THCudaTensor *tensor, long x0, float value); -THC_API void THCudaTensor_set2d(THCState *state, THCudaTensor *tensor, long x0, long x1, float value); -THC_API void THCudaTensor_set3d(THCState *state, THCudaTensor *tensor, long x0, long x1, long x2, float value); -THC_API void THCudaTensor_set4d(THCState *state, THCudaTensor *tensor, long x0, long x1, long x2, long x3, float value); +THC_API void THCTensor_(set1d)(THCState *state, THCTensor *tensor, long x0, real value); +THC_API void THCTensor_(set2d)(THCState *state, THCTensor *tensor, long x0, long x1, real value); +THC_API void THCTensor_(set3d)(THCState *state, THCTensor *tensor, long x0, long x1, long x2, real value); +THC_API void THCTensor_(set4d)(THCState *state, THCTensor *tensor, long x0, long x1, long x2, long x3, real value); -THC_API float THCudaTensor_get1d(THCState *state, const THCudaTensor *tensor, long x0); -THC_API float THCudaTensor_get2d(THCState *state, const THCudaTensor *tensor, long x0, long x1); -THC_API float THCudaTensor_get3d(THCState *state, const THCudaTensor *tensor, long x0, long x1, long x2); -THC_API float THCudaTensor_get4d(THCState *state, const THCudaTensor *tensor, long x0, long x1, long x2, long x3); +THC_API real THCTensor_(get1d)(THCState *state, const THCTensor *tensor, long x0); +THC_API real THCTensor_(get2d)(THCState *state, const THCTensor *tensor, long x0, long x1); +THC_API real THCTensor_(get3d)(THCState *state, const THCTensor *tensor, long x0, long x1, long x2); +THC_API real THCTensor_(get4d)(THCState *state, const THCTensor *tensor, long x0, long x1, long x2, long x3); /* CUDA-specific functions */ -THC_API cudaTextureObject_t THCudaTensor_getTextureObject(THCState *state, THCudaTensor *self); -THC_API int THCudaTensor_getDevice(THCState *state, const THCudaTensor *self); -THC_API int THCudaTensor_checkGPU(THCState *state, unsigned int nTensors, ...); +THC_API cudaTextureObject_t THCTensor_(getTextureObject)(THCState *state, THCTensor *self); +THC_API int THCTensor_(getDevice)(THCState *state, const THCTensor *self); +THC_API int THCTensor_(checkGPU)(THCState *state, unsigned int nTensors, ...); #endif |