diff options
author | Soumith Chintala <soumith@gmail.com> | 2017-02-28 20:20:44 +0300 |
---|---|---|
committer | Soumith Chintala <soumith@gmail.com> | 2017-02-28 20:20:44 +0300 |
commit | 561aca0393f5057acb73e9e42fb1a7f843c8571d (patch) | |
tree | b278eec26d10814d134108db4b4ecad2eb25d9a8 /lib | |
parent | bbb74b37f2ad1686b2cd8568d12fb43d4f7637f8 (diff) |
THVector_(add) -> THVector_(adds)vectoradd
Diffstat (limited to 'lib')
-rw-r--r-- | lib/THNN/generic/TemporalRowConvolution.c | 8 | ||||
-rw-r--r-- | lib/THNN/generic/VolumetricConvolutionMM.c | 6 | ||||
-rw-r--r-- | lib/THNN/generic/unfold.c | 22 |
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); + } } } } |