File tree Expand file tree Collapse file tree 3 files changed +49
-0
lines changed Expand file tree Collapse file tree 3 files changed +49
-0
lines changed Original file line number Diff line number Diff line change @@ -912,6 +912,30 @@ impl f32 {
912
912
}
913
913
x
914
914
}
915
+
916
+ /// Computes `self + step(upper - pol)` the linear interpolation between
917
+ /// `self` and `upper` for the parameter `pol` (or extrapolation,
918
+ /// when `pol` is outside the range [0,1]).
919
+ ///
920
+ /// # Examples
921
+ ///
922
+ /// ```
923
+ /// #![feature(lerp)]
924
+ /// let x = 10.0_f32;
925
+ /// let y = 20.0_f32;
926
+ /// let pol = 0.5_f32;
927
+ ///
928
+ /// // lerp(x, y, pol)
929
+ /// let lerp = x.lerp(y, pol);
930
+ ///
931
+ /// assert!(lerp == 15.0_f32);
932
+ /// ```
933
+ #[ must_use = "method returns a new number and does not mutate the original value" ]
934
+ #[ unstable( feature = "lerp" , issue = "71015" ) ]
935
+ #[ inline]
936
+ pub fn lerp ( self , upper : f32 , pol : f32 ) -> f32 {
937
+ self * ( 1_f32 - pol) + upper * pol
938
+ }
915
939
}
916
940
917
941
#[ cfg( test) ]
Original file line number Diff line number Diff line change @@ -915,6 +915,30 @@ impl f64 {
915
915
x
916
916
}
917
917
918
+ /// Computes `self + step(upper - pol)` the linear interpolation between
919
+ /// `self` and `upper` for the parameter `pol` (or extrapolation,
920
+ /// when `pol` is outside the range [0,1]).
921
+ ///
922
+ /// # Examples
923
+ ///
924
+ /// ```
925
+ /// #![feature(lerp)]
926
+ /// let x = 10.0_f64;
927
+ /// let y = 20.0_f64;
928
+ /// let pol = 0.5_f64;
929
+ ///
930
+ /// // lerp(x, y, pol)
931
+ /// let lerp = x.lerp(y, pol);
932
+ ///
933
+ /// assert!(lerp == 15.0_f64);
934
+ /// ```
935
+ #[ must_use = "method returns a new number and does not mutate the original value" ]
936
+ #[ unstable( feature = "lerp" , issue = "71015" ) ]
937
+ #[ inline]
938
+ pub fn lerp ( self , upper : f64 , pol : f64 ) -> f64 {
939
+ self * ( 1_f64 - pol) + upper * pol
940
+ }
941
+
918
942
// Solaris/Illumos requires a wrapper around log, log2, and log10 functions
919
943
// because of their non-standard behavior (e.g., log(-n) returns -Inf instead
920
944
// of expected NaN).
Original file line number Diff line number Diff line change 247
247
#![ feature( cfg_target_thread_local) ]
248
248
#![ feature( char_error_internals) ]
249
249
#![ feature( clamp) ]
250
+ #![ feature( lerp) ]
250
251
#![ feature( concat_idents) ]
251
252
#![ feature( const_cstr_unchecked) ]
252
253
#![ feature( const_raw_ptr_deref) ]
You can’t perform that action at this time.
0 commit comments