@@ -1154,4 +1154,54 @@ impl f32 {
1154
1154
let x = unsafe { cmath:: lgammaf_r ( self , & mut signgamp) } ;
1155
1155
( x, signgamp)
1156
1156
}
1157
+
1158
+ /// Float addition that allows optimizations based on algebraic rules.
1159
+ #[ rustc_allow_incoherent_impl]
1160
+ #[ doc( alias = "fadd_algebraic" , alias = "addAlgebraic" ) ]
1161
+ #[ must_use = "method returns a new number and does not mutate the original value" ]
1162
+ #[ unstable( feature = "float_algebraic" , issue = "21690" ) ]
1163
+ #[ inline]
1164
+ pub fn add_algebraic ( self , rhs : f32 ) -> f32 {
1165
+ intrinsics:: fadd_algebraic ( self , rhs)
1166
+ }
1167
+
1168
+ /// Float subtraction that allows optimizations based on algebraic rules.
1169
+ #[ rustc_allow_incoherent_impl]
1170
+ #[ doc( alias = "fsub_algebraic" , alias = "subAlgebraic" ) ]
1171
+ #[ must_use = "method returns a new number and does not mutate the original value" ]
1172
+ #[ unstable( feature = "float_algebraic" , issue = "21690" ) ]
1173
+ #[ inline]
1174
+ pub fn sub_algebraic ( self , rhs : f32 ) -> f32 {
1175
+ intrinsics:: fsub_algebraic ( self , rhs)
1176
+ }
1177
+
1178
+ /// Float multiplication that allows optimizations based on algebraic rules.
1179
+ #[ rustc_allow_incoherent_impl]
1180
+ #[ doc( alias = "fmul_algebraic" , alias = "mulAlgebraic" ) ]
1181
+ #[ must_use = "method returns a new number and does not mutate the original value" ]
1182
+ #[ unstable( feature = "float_algebraic" , issue = "21690" ) ]
1183
+ #[ inline]
1184
+ pub fn mul_algebraic ( self , rhs : f32 ) -> f32 {
1185
+ intrinsics:: fmul_algebraic ( self , rhs)
1186
+ }
1187
+
1188
+ /// Float division that allows optimizations based on algebraic rules.
1189
+ #[ rustc_allow_incoherent_impl]
1190
+ #[ doc( alias = "fdiv_algebraic" , alias = "divAlgebraic" ) ]
1191
+ #[ must_use = "method returns a new number and does not mutate the original value" ]
1192
+ #[ unstable( feature = "float_algebraic" , issue = "21690" ) ]
1193
+ #[ inline]
1194
+ pub fn div_algebraic ( self , rhs : f32 ) -> f32 {
1195
+ intrinsics:: fdiv_algebraic ( self , rhs)
1196
+ }
1197
+
1198
+ /// Float remainder that allows optimizations based on algebraic rules.
1199
+ #[ rustc_allow_incoherent_impl]
1200
+ #[ doc( alias = "frem_algebraic" , alias = "remAlgebraic" ) ]
1201
+ #[ must_use = "method returns a new number and does not mutate the original value" ]
1202
+ #[ unstable( feature = "float_algebraic" , issue = "21690" ) ]
1203
+ #[ inline]
1204
+ pub fn rem_algebraic ( self , rhs : f32 ) -> f32 {
1205
+ intrinsics:: frem_algebraic ( self , rhs)
1206
+ }
1157
1207
}
0 commit comments