@@ -88,16 +88,24 @@ void Spectrum::reshape()
8888
8989 std::vector<double > temp;
9090 size_t src = 0 ;
91- float wl_src = shape.first ;
92- float wl_dst = ReferenceShape.first ;
91+
92+ double wl_src_first = shape.first ;
93+ double wl_src_step = shape.step ;
9394
94- while ( wl_dst <= ReferenceShape.last )
95+ double wl_dst_first = ReferenceShape.first ;
96+ double wl_dst_last = ReferenceShape.last ;
97+ double wl_dst_step = ReferenceShape.step ;
98+
99+ double wl_src = wl_src_first;
100+ double wl_dst = wl_dst_first;
101+
102+ while ( wl_dst <= wl_dst_last )
95103 {
96104 if ( wl_src < wl_dst )
97105 {
98106 if ( src < values.size () - 1 )
99107 {
100- float next_wl_src = shape. first + shape. step * ( src + 1 );
108+ float next_wl_src = wl_src_first + wl_src_step * ( src + 1 );
101109 if ( next_wl_src <= wl_dst )
102110 {
103111 // The next source wavelength is still not big enough,
@@ -114,30 +122,28 @@ void Spectrum::reshape()
114122 double vv =
115123 values[src] * ( 1.0 - ratio ) + values[src + 1 ] * ratio;
116124 temp.push_back ( vv );
117- wl_dst = ReferenceShape.first +
118- ReferenceShape.step * temp.size ();
125+ wl_dst = wl_dst_first + wl_dst_step * temp.size ();
119126 }
120127 }
121128 else
122129 {
123130 // We have passed all available source samples,
124131 // copying the last sample.
125132 temp.push_back ( values[src] );
126- wl_dst =
127- ReferenceShape.first + ReferenceShape.step * temp.size ();
133+ wl_dst = wl_dst_first + wl_dst_step * temp.size ();
128134 }
129135 }
130136 else if ( wl_src == wl_dst )
131137 {
132138 // Found an exact match, just copy it over.
133139 temp.push_back ( values[src] );
134- wl_dst = ReferenceShape. first + ReferenceShape. step * temp.size ();
140+ wl_dst = wl_dst_first + wl_dst_step * temp.size ();
135141 }
136142 else
137143 {
138144 // Haven't reached the available source range yet, advancing.
139145 temp.push_back ( values[src] );
140- wl_dst = ReferenceShape. first + ReferenceShape. step * temp.size ();
146+ wl_dst = wl_dst_first + wl_dst_step * temp.size ();
141147 }
142148 }
143149
0 commit comments