@@ -868,27 +868,26 @@ void im2col_s1<float>(const float* data_im,
868
868
memset (data_col, 0 , mem_size);
869
869
#pragma omp parallel for
870
870
for (int c = 0 ; c < channels; c++) {
871
- unsigned int data_im_z = c * in_channel_size;
872
- unsigned int data_col_z1 = c * output_plane_size;
871
+ unsigned int data_im_z = static_cast < unsigned int >( c * in_channel_size) ;
872
+ int data_col_z1 = c * output_plane_size;
873
873
for (int ky = 0 , h_offset = 0 ; ky < kernel_h;
874
874
ky++, h_offset += dilation_h) {
875
- unsigned int data_col_z2 = ky * out_channel_size * kernel_w;
875
+ int data_col_z2 = ky * out_channel_size * kernel_w;
876
876
for (int kx = 0 , w_offset = 0 ; kx < kernel_w;
877
877
kx++, w_offset += dilation_w) {
878
- unsigned int data_col_z3 = kx * out_channel_size;
879
- unsigned int data_col_z = data_col_z1 + data_col_z2 + data_col_z3;
880
- unsigned int oh_begin = std::max (((pad_top - h_offset)), 0 );
881
- unsigned int oh_end =
882
- std::min (((height + pad_bottom - h_offset)), output_h);
878
+ int data_col_z3 = kx * out_channel_size;
879
+ unsigned int data_col_z =
880
+ static_cast < unsigned int >(data_col_z1 + data_col_z2 + data_col_z3 );
881
+ int oh_begin = std::max (((pad_top - h_offset)), 0 ); // always >= 0
882
+ int oh_end = std::min (((height + pad_bottom - h_offset)), output_h);
883
883
oh_end = std::max (oh_begin, oh_end);
884
- unsigned int ow_begin = std::max (((pad_left - w_offset)), 0 );
885
- unsigned int ow_end =
886
- std::min (((width + pad_right - w_offset)), output_w);
884
+ int ow_begin = std::max (((pad_left - w_offset)), 0 );
885
+ int ow_end = std::min (((width + pad_right - w_offset)), output_w);
887
886
ow_end = std::max (ow_begin, ow_end);
888
- unsigned int ih = oh_begin - pad_top + h_offset;
887
+ int ih = oh_begin - pad_top + h_offset;
889
888
for (int oh = oh_begin; oh < oh_end; ++oh, ++ih) {
890
- unsigned int iw = ow_begin - pad_left + w_offset;
891
- unsigned int ow = ow_begin;
889
+ int iw = ow_begin - pad_left + w_offset;
890
+ int ow = ow_begin;
892
891
unsigned int data_im_offset = data_im_z + ih * width;
893
892
unsigned int data_col_offset = data_col_z + oh * output_w;
894
893
const float * data_im_ptr = data_im + data_im_offset;
@@ -941,27 +940,28 @@ void im2col_s2<float>(const float* data_im,
941
940
memset (data_col, 0 , mem_size);
942
941
#pragma omp parallel for
943
942
for (int c = 0 ; c < channels; c++) {
944
- unsigned int data_im_z = c * in_channel_size;
945
- unsigned int data_col_z1 = c * output_plane_size;
943
+ unsigned int data_im_z = static_cast < unsigned int >( c * in_channel_size) ;
944
+ int data_col_z1 = c * output_plane_size;
946
945
for (int ky = 0 , h_offset = 0 ; ky < kernel_h;
947
946
ky++, h_offset += dilation_h) {
948
- unsigned int data_col_z2 = ky * output_h * output_w * kernel_w;
947
+ int data_col_z2 = ky * output_h * output_w * kernel_w;
949
948
for (int kx = 0 , w_offset = 0 ; kx < kernel_w;
950
949
kx++, w_offset += dilation_w) {
951
- unsigned int data_col_z3 = kx * output_h * output_w;
952
- unsigned int data_col_z = data_col_z1 + data_col_z2 + data_col_z3;
953
- unsigned int oh_begin = std::max (((pad_top - h_offset + 1 ) / 2 ), 0 );
954
- unsigned int oh_end =
950
+ int data_col_z3 = kx * output_h * output_w;
951
+ unsigned int data_col_z =
952
+ static_cast <unsigned int >(data_col_z1 + data_col_z2 + data_col_z3);
953
+ int oh_begin = std::max (((pad_top - h_offset + 1 ) / 2 ), 0 );
954
+ int oh_end =
955
955
std::min (((height + pad_bottom - h_offset + 1 ) / 2 ), output_h);
956
956
oh_end = std::max (oh_begin, oh_end);
957
- unsigned int ow_begin = std::max (((pad_left - w_offset + 1 ) / 2 ), 0 );
958
- unsigned int ow_end =
957
+ int ow_begin = std::max (((pad_left - w_offset + 1 ) / 2 ), 0 );
958
+ int ow_end =
959
959
std::min (((width + pad_right - w_offset + 1 ) / 2 ), output_w);
960
960
ow_end = std::max (ow_begin, ow_end);
961
- unsigned int ih = oh_begin * 2 - pad_top + h_offset;
961
+ int ih = oh_begin * 2 - pad_top + h_offset;
962
962
for (int oh = oh_begin; oh < oh_end; ++oh, ih += 2 ) {
963
- unsigned int iw = ow_begin * 2 - pad_left + w_offset;
964
- unsigned int ow = ow_begin;
963
+ int iw = ow_begin * 2 - pad_left + w_offset;
964
+ int ow = ow_begin;
965
965
unsigned int data_im_offset = data_im_z + ih * width;
966
966
unsigned int data_col_offset = data_col_z + oh * output_w;
967
967
const float * data_im_ptr = data_im + data_im_offset;
0 commit comments