Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2fff932

Browse files
Benjamin-Philip9prady9
authored andcommitted
Support implicit promoting with f16
- Create a ImplicitPromote<f16> trait and implement it for other types- Implement ImplicitPromote<T> traits for f16
1 parentbd6ca28 commit2fff932

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

‎src/core/util.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,6 +468,7 @@ macro_rules! implicit {
468468
implicit!(c64, c32 => c64);
469469
implicit!(c64,f64 => c64);
470470
implicit!(c64,f32 => c64);
471+
implicit!(c64, f16 => c64);
471472
implicit!(c64,i64 => c64);
472473
implicit!(c64,u64 => c64);
473474
implicit!(c64,i32 => c64);
@@ -481,6 +482,7 @@ implicit!(c64, u8 => c64);
481482
implicit!(c32, c64 => c64);
482483
implicit!(c32,f64 => c64);
483484
implicit!(c32,f32 => c32);
485+
implicit!(c32, f16 => c32);
484486
implicit!(c32,i64 => c32);
485487
implicit!(c32,u64 => c32);
486488
implicit!(c32,i32 => c32);
@@ -494,6 +496,7 @@ implicit!(c32, u8 => c32);
494496
implicit!(f64, c64 => c64);
495497
implicit!(f64, c32 => c64);
496498
implicit!(f64,f32 =>f64);
499+
implicit!(f64, f16 =>f64);
497500
implicit!(f64,i64 =>f64);
498501
implicit!(f64,u64 =>f64);
499502
implicit!(f64,i32 =>f64);
@@ -507,6 +510,7 @@ implicit!(f64, u8 => f64);
507510
implicit!(f32, c64 => c64);
508511
implicit!(f32, c32 => c32);
509512
implicit!(f32,f64 =>f64);
513+
implicit!(f32, f16 =>f32);
510514
implicit!(f32,i64 =>f32);
511515
implicit!(f32,u64 =>f32);
512516
implicit!(f32,i32 =>f32);
@@ -516,11 +520,26 @@ implicit!(f32, u16 => f32);
516520
implicit!(f32,bool =>f32);
517521
implicit!(f32,u8 =>f32);
518522

523+
//LHS is 16-bit floating point
524+
implicit!(f16, c64 => c64);
525+
implicit!(f16, c32 => c32);
526+
implicit!(f16,f64 =>f64);
527+
implicit!(f16,f32 =>f32);
528+
implicit!(f16,i64 => f16);
529+
implicit!(f16,u64 => f16);
530+
implicit!(f16,i32 => f16);
531+
implicit!(f16,u32 => f16);
532+
implicit!(f16,i16 => f16);
533+
implicit!(f16,u16 => f16);
534+
implicit!(f16,bool => f16);
535+
implicit!(f16,u8 => f16);
536+
519537
//LHS is 64-bit signed integer
520538
implicit!(i64, c64 => c64);
521539
implicit!(i64, c32 => c32);
522540
implicit!(i64,f64 =>f64);
523541
implicit!(i64,f32 =>f32);
542+
implicit!(i64, f16 => f16);
524543
implicit!(i64,u64 =>u64);
525544
implicit!(i64,i32 =>i64);
526545
implicit!(i64,u32 =>i64);
@@ -534,6 +553,7 @@ implicit!(u64, c64 => c64);
534553
implicit!(u64, c32 => c32);
535554
implicit!(u64,f64 =>f64);
536555
implicit!(u64,f32 =>f32);
556+
implicit!(u64, f16 => f16);
537557
implicit!(u64,i64 =>u64);
538558
implicit!(u64,i32 =>u64);
539559
implicit!(u64,u32 =>u64);
@@ -547,6 +567,7 @@ implicit!(i32, c64 => c64);
547567
implicit!(i32, c32 => c32);
548568
implicit!(i32,f64 =>f64);
549569
implicit!(i32,f32 =>f32);
570+
implicit!(i32, f16 => f16);
550571
implicit!(i32,i64 =>i64);
551572
implicit!(i32,u64 =>u64);
552573
implicit!(i32,u32 =>u32);
@@ -560,6 +581,7 @@ implicit!(u32, c64 => c64);
560581
implicit!(u32, c32 => c32);
561582
implicit!(u32,f64 =>f64);
562583
implicit!(u32,f32 =>f32);
584+
implicit!(u32, f16 => f16);
563585
implicit!(u32,i64 =>i64);
564586
implicit!(u32,u64 =>u64);
565587
implicit!(u32,i32 =>u32);
@@ -573,6 +595,7 @@ implicit!(i16, c64 => c64);
573595
implicit!(i16, c32 => c32);
574596
implicit!(i16,f64 =>f64);
575597
implicit!(i16,f32 =>f32);
598+
implicit!(i16, f16 => f16);
576599
implicit!(i16,i64 =>i64);
577600
implicit!(i16,u64 =>u64);
578601
implicit!(i16,i32 =>i32);
@@ -586,6 +609,7 @@ implicit!(u16, c64 => c64);
586609
implicit!(u16, c32 => c32);
587610
implicit!(u16,f64 =>f64);
588611
implicit!(u16,f32 =>f32);
612+
implicit!(u16, f16 => f16);
589613
implicit!(u16,i64 =>i64);
590614
implicit!(u16,u64 =>u64);
591615
implicit!(u16,i32 =>i32);
@@ -599,6 +623,7 @@ implicit!(u8, c64 => c64);
599623
implicit!(u8, c32 => c32);
600624
implicit!(u8,f64 =>f64);
601625
implicit!(u8,f32 =>f32);
626+
implicit!(u8, f16 => f16);
602627
implicit!(u8,i64 =>i64);
603628
implicit!(u8,u64 =>u64);
604629
implicit!(u8,i32 =>i32);
@@ -612,6 +637,7 @@ implicit!(bool, c64 => c64);
612637
implicit!(bool, c32 => c32);
613638
implicit!(bool,f64 =>f64);
614639
implicit!(bool,f32 =>f32);
640+
implicit!(bool, f16 => f16);
615641
implicit!(bool,i64 =>i64);
616642
implicit!(bool,u64 =>u64);
617643
implicit!(bool,i32 =>i32);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp