Skip to content

Commit aeb7a72

Browse files
authored
Merge pull request pytorch#693 from colesbury/view
Add code for 'view' to THC
2 parents c0c65bf + 691aa19 commit aeb7a72

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

generic/THCTensor.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,17 @@ THCTensor *THCTensor_(newUnfold)(THCState *state, THCTensor *tensor, int dimensi
223223
return self;
224224
}
225225

226+
THCTensor *THCTensor_(newView)(THCState *state, THCTensor *tensor, THLongStorage *size)
227+
{
228+
THArgCheck(THCTensor_(isContiguous)(state, tensor), 2, "input is not contiguous");
229+
ptrdiff_t numel = THCTensor_(nElement)(state, tensor);
230+
THCTensor *self = THCTensor_(new)(state);
231+
THLongStorage *inferred_size = THLongStorage_newInferSize(size, numel);
232+
THCTensor_(setStorage)(state, self, tensor->storage, tensor->storageOffset, inferred_size, NULL);
233+
THLongStorage_free(inferred_size);
234+
return self;
235+
}
236+
226237
/* Resize */
227238
void THCTensor_(resize)(THCState *state, THCTensor *self, THLongStorage *size, THLongStorage *stride)
228239
{

generic/THCTensor.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ THC_API THCTensor *THCTensor_(newSelect)(THCState *state, THCTensor *tensor, int
6666
THC_API THCTensor *THCTensor_(newNarrow)(THCState *state, THCTensor *tensor, int dimension_, long firstIndex_, long size_);
6767
THC_API THCTensor *THCTensor_(newTranspose)(THCState *state, THCTensor *tensor, int dimension1_, int dimension2_);
6868
THC_API THCTensor *THCTensor_(newUnfold)(THCState *state, THCTensor *tensor, int dimension_, long size_, long step_);
69+
THC_API THCTensor *THCTensor_(newView)(THCState *state, THCTensor *tensor, THLongStorage *size);
70+
6971

7072
THC_API void THCTensor_(resize)(THCState *state, THCTensor *tensor, THLongStorage *size, THLongStorage *stride);
7173
THC_API void THCTensor_(resizeAs)(THCState *state, THCTensor *tensor, THCTensor *src);

0 commit comments

Comments
 (0)