Commit b681c4b8 authored by Sebastian Pölsterl's avatar Sebastian Pölsterl
Browse files

Fix build for pytorch 0.4.1

THTensor is defined as an opaque data type,
thus direct access to members is not possible anymore.
Instead, use functions from C API to retrieve stride.

Fixes #4
parent 6ce5c2e8
...@@ -6,16 +6,18 @@ void THTensor_(grid)(THLongTensor *self, THTensor *pos, THTensor *size, THLongTe ...@@ -6,16 +6,18 @@ void THTensor_(grid)(THLongTensor *self, THTensor *pos, THTensor *size, THLongTe
int64_t *selfData = THLongTensor_data(self); int64_t *selfData = THLongTensor_data(self);
real *posData = THTensor_(data)(pos); real *posData = THTensor_(data)(pos);
real *sizeData = THTensor_(data)(size); real *sizeData = THTensor_(data)(size);
int64_t posStride0 = THTensor_(stride)(pos, 0);
int64_t posStride1 = THTensor_(stride)(pos, 1);
int64_t *countData = THLongTensor_data(count); int64_t *countData = THLongTensor_data(count);
ptrdiff_t n, d; int64_t coef, value; ptrdiff_t n, d; int64_t coef, value;
for (n = 0; n < THTensor_(size)(pos, 0); n++) { for (n = 0; n < THTensor_(size)(pos, 0); n++) {
coef = 1; value = 0; coef = 1; value = 0;
for (d = 0; d < THTensor_(size)(pos, 1); d++) { for (d = 0; d < THTensor_(size)(pos, 1); d++) {
value += coef * (int64_t) (posData[d * pos->stride[1]] / sizeData[d]); value += coef * (int64_t) (posData[d * posStride1] / sizeData[d]);
coef *= countData[d]; coef *= countData[d];
} }
posData += pos->stride[0]; posData += posStride0;
selfData[n] = value; selfData[n] = value;
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment