@@ -137,7 +137,8 @@ libm_macros::for_each_function! {
137
137
fmod, fmodf, frexp, frexpf, ilogb, ilogbf, jn, jnf, ldexp, ldexpf,
138
138
lgamma_r, lgammaf_r, modf, modff, nextafter, nextafterf, pow, powf,
139
139
remquo, remquof, scalbn, scalbnf, sincos, sincosf, yn, ynf,
140
- copysignf16, copysignf128, fabsf16, fabsf128,
140
+ copysignf16, copysignf128, fabsf16, fabsf128, ldexpf16, ldexpf128,
141
+ scalbnf16, scalbnf128,
141
142
] ,
142
143
fn_extra: match MACRO_FN_NAME {
143
144
// Remap function names that are different between mpfr and libm
@@ -315,34 +316,6 @@ macro_rules! impl_op_for_ty {
315
316
}
316
317
}
317
318
318
- // `ldexp` and `scalbn` are the same for binary floating point, so just forward all
319
- // methods.
320
- impl MpOp for crate :: op:: [ <ldexp $suffix>] :: Routine {
321
- type MpTy = <crate :: op:: [ <scalbn $suffix>] :: Routine as MpOp >:: MpTy ;
322
-
323
- fn new_mp( ) -> Self :: MpTy {
324
- <crate :: op:: [ <scalbn $suffix>] :: Routine as MpOp >:: new_mp( )
325
- }
326
-
327
- fn run( this: & mut Self :: MpTy , input: Self :: RustArgs ) -> Self :: RustRet {
328
- <crate :: op:: [ <scalbn $suffix>] :: Routine as MpOp >:: run( this, input)
329
- }
330
- }
331
-
332
- impl MpOp for crate :: op:: [ <scalbn $suffix>] :: Routine {
333
- type MpTy = MpFloat ;
334
-
335
- fn new_mp( ) -> Self :: MpTy {
336
- new_mpfloat:: <Self :: FTy >( )
337
- }
338
-
339
- fn run( this: & mut Self :: MpTy , input: Self :: RustArgs ) -> Self :: RustRet {
340
- this. assign( input. 0 ) ;
341
- * this <<= input. 1 ;
342
- prep_retval:: <Self :: FTy >( this, Ordering :: Equal )
343
- }
344
- }
345
-
346
319
impl MpOp for crate :: op:: [ <sincos $suffix>] :: Routine {
347
320
type MpTy = ( MpFloat , MpFloat ) ;
348
321
@@ -397,6 +370,34 @@ macro_rules! impl_op_for_ty_all {
397
370
prep_retval:: <Self :: RustRet >( & mut this. 0 , Ordering :: Equal )
398
371
}
399
372
}
373
+
374
+ // `ldexp` and `scalbn` are the same for binary floating point, so just forward all
375
+ // methods.
376
+ impl MpOp for crate :: op:: [ <ldexp $suffix>] :: Routine {
377
+ type MpTy = <crate :: op:: [ <scalbn $suffix>] :: Routine as MpOp >:: MpTy ;
378
+
379
+ fn new_mp( ) -> Self :: MpTy {
380
+ <crate :: op:: [ <scalbn $suffix>] :: Routine as MpOp >:: new_mp( )
381
+ }
382
+
383
+ fn run( this: & mut Self :: MpTy , input: Self :: RustArgs ) -> Self :: RustRet {
384
+ <crate :: op:: [ <scalbn $suffix>] :: Routine as MpOp >:: run( this, input)
385
+ }
386
+ }
387
+
388
+ impl MpOp for crate :: op:: [ <scalbn $suffix>] :: Routine {
389
+ type MpTy = MpFloat ;
390
+
391
+ fn new_mp( ) -> Self :: MpTy {
392
+ new_mpfloat:: <Self :: FTy >( )
393
+ }
394
+
395
+ fn run( this: & mut Self :: MpTy , input: Self :: RustArgs ) -> Self :: RustRet {
396
+ this. assign( input. 0 ) ;
397
+ * this <<= input. 1 ;
398
+ prep_retval:: <Self :: FTy >( this, Ordering :: Equal )
399
+ }
400
+ }
400
401
}
401
402
} ;
402
403
}
0 commit comments