@@ -143,9 +143,8 @@ impl ParametricNormalization {
143143 }
144144
145145 fn transform_polynomial_params ( self , values : & mut [ f64 ] , direction : ScaleDirection ) {
146- let degree = values. len ( ) - 1 ;
147- for ( index, value) in values. iter_mut ( ) . enumerate ( ) {
148- let power = ( degree - index) as i32 ;
146+ for ( power, value) in values. iter_mut ( ) . rev ( ) . enumerate ( ) {
147+ let power = power as i32 ;
149148 self . transform_value ( value, ParamScale :: new ( power, -1 ) , direction) ;
150149 }
151150 }
@@ -170,14 +169,11 @@ impl ParametricNormalization {
170169 return ;
171170 }
172171
173- let numerator_len = degree + 1 ;
174- for ( index, value) in values. iter_mut ( ) . enumerate ( ) . take ( numerator_len) {
175- let power = ( degree - index) as i32 ;
176- self . transform_value ( value, ParamScale :: new ( power, -1 ) , direction) ;
177- }
172+ let ( numerator, denominator) = values. split_at_mut ( degree + 1 ) ;
173+ self . transform_polynomial_params ( numerator, direction) ;
178174
179- for ( index, value) in values . iter_mut ( ) . enumerate ( ) . skip ( numerator_len ) {
180- let power = ( index - degree ) as i32 ;
175+ for ( index, value) in denominator . iter_mut ( ) . enumerate ( ) {
176+ let power = ( index + 1 ) as i32 ;
181177 self . transform_value ( value, ParamScale :: new ( power, 0 ) , direction) ;
182178 }
183179 }
0 commit comments