@@ -171,68 +171,75 @@ void RateLimiter<T>::set_params(
171171 T min_first_derivative_pos, T max_first_derivative_neg, T min_second_derivative,
172172 T max_second_derivative)
173173{
174- min_value_ = min_value;
175- max_value_ = max_value;
176- min_first_derivative_neg_ = min_first_derivative_neg;
177- max_first_derivative_pos_ = max_first_derivative_pos;
178- min_first_derivative_pos_ = min_first_derivative_pos;
179- max_first_derivative_neg_ = max_first_derivative_neg;
180- min_second_derivative_ = min_second_derivative;
181- max_second_derivative_ = max_second_derivative;
174+ auto tmp_has_value_limits = has_value_limits_;
175+ auto tmp_has_first_derivative_limits = has_first_derivative_limits_;
176+ auto tmp_has_second_derivative_limits = has_second_derivative_limits_;
182177
183- if (std::isnan (max_value_ ))
178+ if (std::isnan (max_value ))
184179 {
185- has_value_limits_ = false ;
180+ tmp_has_value_limits = false ;
186181 }
187- if (std::isnan (min_value_ ))
182+ if (std::isnan (min_value ))
188183 {
189- min_value_ = -max_value_ ;
184+ min_value = -max_value ;
190185 }
191- if (has_value_limits_ && min_value_ > max_value_ )
186+ if (tmp_has_value_limits && min_value > max_value )
192187 {
193188 throw std::invalid_argument (" Invalid value limits" );
194189 }
195190
196- if (std::isnan (max_first_derivative_pos_ ))
191+ if (std::isnan (max_first_derivative_pos ))
197192 {
198- has_first_derivative_limits_ = false ;
193+ tmp_has_first_derivative_limits = false ;
199194 }
200- if (std::isnan (min_first_derivative_neg_ ))
195+ if (std::isnan (min_first_derivative_neg ))
201196 {
202- min_first_derivative_neg_ = -max_first_derivative_pos_ ;
197+ min_first_derivative_neg = -max_first_derivative_pos ;
203198 }
204- if (has_first_derivative_limits_ && min_first_derivative_neg_ > max_first_derivative_pos_ )
199+ if (tmp_has_first_derivative_limits && min_first_derivative_neg > max_first_derivative_pos )
205200 {
206201 throw std::invalid_argument (" Invalid first derivative limits" );
207202 }
208- if (has_first_derivative_limits_ )
203+ if (tmp_has_first_derivative_limits )
209204 {
210- if (std::isnan (max_first_derivative_neg_ ))
205+ if (std::isnan (max_first_derivative_neg ))
211206 {
212- max_first_derivative_neg_ = max_first_derivative_pos_ ;
207+ max_first_derivative_neg = max_first_derivative_pos ;
213208 }
214- if (std::isnan (min_first_derivative_pos_ ))
209+ if (std::isnan (min_first_derivative_pos ))
215210 {
216- min_first_derivative_pos_ = min_first_derivative_neg_ ;
211+ min_first_derivative_pos = min_first_derivative_neg ;
217212 }
218- if (has_first_derivative_limits_ && min_first_derivative_pos_ > max_first_derivative_neg_ )
213+ if (tmp_has_first_derivative_limits && min_first_derivative_pos > max_first_derivative_neg )
219214 {
220215 throw std::invalid_argument (" Invalid first derivative limits" );
221216 }
222217 }
223218
224- if (std::isnan (max_second_derivative_ ))
219+ if (std::isnan (max_second_derivative ))
225220 {
226- has_second_derivative_limits_ = false ;
221+ tmp_has_second_derivative_limits = false ;
227222 }
228- if (std::isnan (min_second_derivative_ ))
223+ if (std::isnan (min_second_derivative ))
229224 {
230- min_second_derivative_ = -max_second_derivative_ ;
225+ min_second_derivative = -max_second_derivative ;
231226 }
232- if (has_second_derivative_limits_ && min_second_derivative_ > max_second_derivative_ )
227+ if (tmp_has_second_derivative_limits && min_second_derivative > max_second_derivative )
233228 {
234229 throw std::invalid_argument (" Invalid second derivative limits" );
235230 }
231+
232+ min_value_ = min_value;
233+ max_value_ = max_value;
234+ min_first_derivative_neg_ = min_first_derivative_neg;
235+ max_first_derivative_pos_ = max_first_derivative_pos;
236+ min_first_derivative_pos_ = min_first_derivative_pos;
237+ max_first_derivative_neg_ = max_first_derivative_neg;
238+ min_second_derivative_ = min_second_derivative;
239+ max_second_derivative_ = max_second_derivative;
240+ has_value_limits_ = tmp_has_value_limits;
241+ has_first_derivative_limits_ = tmp_has_first_derivative_limits;
242+ has_second_derivative_limits_ = tmp_has_second_derivative_limits;
236243}
237244
238245template <typename T>
0 commit comments