Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/torch/nn.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSoumith Chintala <soumith@gmail.com>2017-02-28 20:20:44 +0300
committerSoumith Chintala <soumith@gmail.com>2017-02-28 20:20:44 +0300
commit561aca0393f5057acb73e9e42fb1a7f843c8571d (patch)
treeb278eec26d10814d134108db4b4ecad2eb25d9a8 /lib
parentbbb74b37f2ad1686b2cd8568d12fb43d4f7637f8 (diff)
THVector_(add) -> THVector_(adds)vectoradd
Diffstat (limited to 'lib')
-rw-r--r--lib/THNN/generic/TemporalRowConvolution.c8
-rw-r--r--lib/THNN/generic/VolumetricConvolutionMM.c6
-rw-r--r--lib/THNN/generic/unfold.c22
3 files changed, 23 insertions, 13 deletions
diff --git a/lib/THNN/generic/TemporalRowConvolution.c b/lib/THNN/generic/TemporalRowConvolution.c
index e3ad363..b1cd173 100644
--- a/lib/THNN/generic/TemporalRowConvolution.c
+++ b/lib/THNN/generic/TemporalRowConvolution.c
@@ -81,11 +81,13 @@ static void THNN_(unfolded_acc_row)(
ix = (long long)(kw);
if (dW == 1) {
- THVector_(add)(dst + (size_t)(ix), src, 1, nOutputFrame);
+ real *dst_slice = dst + (size_t)(ix);
+ THVector_(cadd)(dst_slice, dst_slice, src, 1, nOutputFrame);
} else {
for (x = 0; x < nOutputFrame; x++) {
- THVector_(add)(dst + (size_t)(ix + x * dW),
- src + (size_t)(x), 1, 1);
+ real *dst_slice = dst + (size_t)(ix + x * dW);
+ THVector_(cadd)(dst_slice, dst_slice,
+ src + (size_t)(x), 1, 1);
}
}
}
diff --git a/lib/THNN/generic/VolumetricConvolutionMM.c b/lib/THNN/generic/VolumetricConvolutionMM.c
index 184240f..4aaaa95 100644
--- a/lib/THNN/generic/VolumetricConvolutionMM.c
+++ b/lib/THNN/generic/VolumetricConvolutionMM.c
@@ -152,7 +152,8 @@ static void THNN_(unfolded_acc_vol)(
}
else
{
- THVector_(add)(dst+it*inputHeight*inputWidth+iy*inputWidth+ix, src+t*outputHeight*outputWidth+y*outputWidth+x, 1, 1);
+ real *dst_slice = dst+it*inputHeight*inputWidth+iy*inputWidth+ix;
+ THVector_(cadd)(dst_slice, dst_slice, src+t*outputHeight*outputWidth+y*outputWidth+x, 1, 1);
}
}
}
@@ -169,7 +170,8 @@ static void THNN_(unfolded_acc_vol)(
for(x = 0; x < outputWidth; x++)
{
ix = x*dW + kw;
- THVector_(add)(dst+it*inputHeight*inputWidth+iy*inputWidth+ix, src+t*outputHeight*outputWidth+y*outputWidth+x, 1, 1);
+ real *dst_slice = dst+it*inputHeight*inputWidth+iy*inputWidth+ix;
+ THVector_(cadd)(dst_slice, dst_slice, src+t*outputHeight*outputWidth+y*outputWidth+x, 1, 1);
}
}
}
diff --git a/lib/THNN/generic/unfold.c b/lib/THNN/generic/unfold.c
index 25146c0..e718320 100644
--- a/lib/THNN/generic/unfold.c
+++ b/lib/THNN/generic/unfold.c
@@ -52,14 +52,17 @@ void THNN_(unfolded_acc)(
ix = (long long)(0 - padW + kw);
lpad = fmaxf(0,(int)(padW-kw));
rpad = fmaxf(0,(int)(padW-(kW-kw-1)));
- THVector_(add)(dst+(size_t)(iy*inputWidth+ix+lpad), src+(size_t)(y*outputWidth+lpad), 1, outputWidth - lpad - rpad); /* note: THVector_add could handle 1 value better */
+ real *dst_slice = dst+(size_t)(iy*inputWidth+ix+lpad);
+ THVector_(cadd)(dst_slice, dst_slice, src+(size_t)(y*outputWidth+lpad), 1, outputWidth - lpad - rpad); /* note: THVector_add could handle 1 value better */
}
else{
for (x=0; x<outputWidth; x++){
ix = (long long)(x*dW - padW + kw);
if (ix < 0 || ix >= inputWidth){
- }else
- THVector_(add)(dst+(size_t)(iy*inputWidth+ix), src+(size_t)(y*outputWidth+x), 1, 1);
+ }else{
+ real *dst_slice = dst+(size_t)(iy*inputWidth+ix);
+ THVector_(cadd)(dst_slice, dst_slice, src+(size_t)(y*outputWidth+x), 1, 1);
+ }
}
}
}
@@ -68,11 +71,14 @@ void THNN_(unfolded_acc)(
for(y = 0; y < outputHeight; y++) {
iy = (long long)(y*dH + kh);
ix = (long long)(0 + kw);
- if (dW == 1 )
- THVector_(add)(dst+(size_t)(iy*inputWidth+ix), src+(size_t)(y*outputWidth), 1, outputWidth); /* note: THVector_add could handle 1 value better */
- else{
- for(x = 0; x < outputWidth; x++)
- THVector_(add)(dst+(size_t)(iy*inputWidth+ix+x*dW), src+(size_t)(y*outputWidth+x), 1, 1);
+ if (dW == 1 ) {
+ real *dst_slice = dst+(size_t)(iy*inputWidth+ix);
+ THVector_(cadd)(dst_slice, dst_slice, src+(size_t)(y*outputWidth), 1, outputWidth); /* note: THVector_add could handle 1 value better */
+ }else{
+ for(x = 0; x < outputWidth; x++) {
+ real *dst_slice = dst+(size_t)(iy*inputWidth+ix+x*dW);
+ THVector_(cadd)(dst_slice, dst_slice, src+(size_t)(y*outputWidth+x), 1, 1);
+ }
}
}
}