@@ -293,19 +293,19 @@ class HalfTest {
293
293
294
294
@Test
295
295
fun conversions () {
296
- assertEquals(12 , Half ( 12.57f ) .toByte())
297
- assertEquals(12 , Half ( 12.57f ) .toShort())
298
- assertEquals(12 , Half ( 12.57f ) .toInt())
299
- assertEquals(12 , Half ( 12.57f ) .toLong())
300
- assertEquals(12.57f , Half ( 12.57f ) .toFloat(), 1e- 3f )
301
- assertEquals(12.57 , Half ( 12.57f ) .toDouble(), 1e- 3 )
302
-
303
- assertEquals(- 12 , Half ( - 12.57f ) .toByte())
304
- assertEquals(- 12 , Half ( - 12.57f ) .toShort())
305
- assertEquals(- 12 , Half ( - 12.57f ) .toInt())
306
- assertEquals(- 12 , Half ( - 12.57f ) .toLong())
307
- assertEquals(- 12.57f , Half ( - 12.57f ) .toFloat(), 1e- 3f )
308
- assertEquals(- 12.57 , Half ( - 12.57f ) .toDouble(), 1e- 3 )
296
+ assertEquals(12 , 12.57 .h .toByte())
297
+ assertEquals(12 , 12.57 .h .toShort())
298
+ assertEquals(12 , 12.57 .h .toInt())
299
+ assertEquals(12 , 12.57 .h .toLong())
300
+ assertEquals(12.57f , 12.57 .h .toFloat(), 1e- 3f )
301
+ assertEquals(12.57 , 12.57 .h .toDouble(), 1e- 3 )
302
+
303
+ assertEquals(- 12 , - 12.57 .h .toByte())
304
+ assertEquals(- 12 , - 12.57 .h .toShort())
305
+ assertEquals(- 12 , - 12.57 .h .toInt())
306
+ assertEquals(- 12 , - 12.57 .h .toLong())
307
+ assertEquals(- 12.57f , - 12.57 .h .toFloat(), 1e- 3f )
308
+ assertEquals(- 12.57 , - 12.57 .h .toDouble(), 1e- 3 )
309
309
310
310
assertEquals(0 , Half .POSITIVE_ZERO .toByte())
311
311
assertEquals(0 , Half .POSITIVE_ZERO .toShort())
@@ -354,8 +354,8 @@ class HalfTest {
354
354
assertEquals(Half .MIN_VALUE , min(Half .MIN_VALUE , Half .MIN_NORMAL ))
355
355
assertEquals(Half .POSITIVE_ZERO , min(Half .MIN_VALUE , Half .POSITIVE_ZERO ))
356
356
assertEquals(Half .POSITIVE_ZERO , min(Half .MIN_NORMAL , Half .POSITIVE_ZERO ))
357
- assertEquals(Half (- 3.456f ) , min(Half (- 3.456f ), Half (- 3.453f ) ))
358
- assertEquals(Half ( 3.453f ) , min(Half ( 3.456f ), Half ( 3.453f ) ))
357
+ assertEquals((- 3.456 ).h , min((- 3.456 ).h, (- 3.453 ).h ))
358
+ assertEquals(3.453 .h , min(3.456 .h, 3.453 .h ))
359
359
}
360
360
361
361
@Test
@@ -369,8 +369,8 @@ class HalfTest {
369
369
assertEquals(Half .MIN_NORMAL , max(Half .MIN_VALUE , Half .MIN_NORMAL ))
370
370
assertEquals(Half .MIN_VALUE , max(Half .MIN_VALUE , Half .POSITIVE_ZERO ))
371
371
assertEquals(Half .MIN_NORMAL , max(Half .MIN_NORMAL , Half .POSITIVE_ZERO ))
372
- assertEquals(Half (- 3.453f ) , max(Half (- 3.456f ), Half (- 3.453f ) ))
373
- assertEquals(Half ( 3.456f ) , max(Half ( 3.456f ), Half ( 3.453f ) ))
372
+ assertEquals((- 3.453 ).h , max((- 3.456 ).h, (- 3.453 ).h ))
373
+ assertEquals(3.456 .h , max(3.456 .h, 3.453 .h ))
374
374
}
375
375
376
376
@Test
@@ -381,14 +381,14 @@ class HalfTest {
381
381
assertEquals(Half .NEGATIVE_ZERO , truncate(Half .NEGATIVE_ZERO ))
382
382
assertEquals(Half .NaN , truncate(Half .NaN ))
383
383
assertEquals(Half .LOWEST_VALUE , truncate(Half .LOWEST_VALUE ))
384
- assertEquals(Half .POSITIVE_ZERO , truncate(Half ( 0.2f ) ))
385
- assertEquals(Half .NEGATIVE_ZERO , truncate(Half (- 0.2f ) ))
386
- assertEquals(0.0f , truncate(Half ( 0.7f ) ).toFloat(), 1e- 6f )
387
- assertEquals(- 0.0f , truncate(Half (- 0.7f ) ).toFloat(), 1e- 6f )
388
- assertEquals(124.0f , truncate(Half ( 124.7f ) ).toFloat(), 1e- 6f )
389
- assertEquals(- 124.0f , truncate(Half (- 124.7f ) ).toFloat(), 1e- 6f )
390
- assertEquals(124.0f , truncate(Half ( 124.2f ) ).toFloat(), 1e- 6f )
391
- assertEquals(- 124.0f , truncate(Half (- 124.2f ) ).toFloat(), 1e- 6f )
384
+ assertEquals(Half .POSITIVE_ZERO , truncate(0.2 .h ))
385
+ assertEquals(Half .NEGATIVE_ZERO , truncate((- 0.2 ).h ))
386
+ assertEquals(0.0f , truncate(0.7 .h ).toFloat(), 1e- 6f )
387
+ assertEquals(- 0.0f , truncate((- 0.7 ).h ).toFloat(), 1e- 6f )
388
+ assertEquals(124.0f , truncate(124.7 .h ).toFloat(), 1e- 6f )
389
+ assertEquals(- 124.0f , truncate((- 124.7 ).h ).toFloat(), 1e- 6f )
390
+ assertEquals(124.0f , truncate(124.2 .h ).toFloat(), 1e- 6f )
391
+ assertEquals(- 124.0f , truncate((- 124.2 ).h ).toFloat(), 1e- 6f )
392
392
}
393
393
394
394
@Test
@@ -402,20 +402,20 @@ class HalfTest {
402
402
assertEquals(Half .POSITIVE_ZERO , round(Half .MIN_VALUE ))
403
403
assertEquals(Half .POSITIVE_ZERO , round(Half (0x200 .toUShort())))
404
404
assertEquals(Half .POSITIVE_ZERO , round(Half (0x3ff .toUShort())))
405
- assertEquals(Half .POSITIVE_ZERO , round(Half ( 0.2f ) ))
406
- assertEquals(Half .NEGATIVE_ZERO , round(Half (- 0.2f ) ))
407
- assertEquals(1.0f , round(Half ( 0.7f ) ).toFloat(), 1e- 6f )
408
- assertEquals(- 1.0f , round(Half (- 0.7f ) ).toFloat(), 1e- 6f )
409
- assertEquals(1.0f , round(Half ( 0.5f ) ).toFloat(), 1e- 6f )
410
- assertEquals(- 1.0f , round(Half (- 0.5f ) ).toFloat(), 1e- 6f )
411
- assertEquals(2.0f , round(Half ( 1.5f ) ).toFloat(), 1e- 6f )
412
- assertEquals(- 2.0f , round(Half (- 1.5f ) ).toFloat(), 1e- 6f )
413
- assertEquals(1023.0f , round(Half ( 1022.5f ) ).toFloat(), 1e- 6f )
414
- assertEquals(- 1023.0f , round(Half (- 1022.5f ) ).toFloat(), 1e- 6f )
415
- assertEquals(125.0f , round(Half ( 124.7f ) ).toFloat(), 1e- 6f )
416
- assertEquals(- 125.0f , round(Half (- 124.7f ) ).toFloat(), 1e- 6f )
417
- assertEquals(124.0f , round(Half ( 124.2f ) ).toFloat(), 1e- 6f )
418
- assertEquals(- 124.0f , round(Half (- 124.2f ) ).toFloat(), 1e- 6f )
405
+ assertEquals(Half .POSITIVE_ZERO , round(0.2 .h ))
406
+ assertEquals(Half .NEGATIVE_ZERO , round((- 0.2 ).h ))
407
+ assertEquals(1.0f , round(0.7 .h ).toFloat(), 1e- 6f )
408
+ assertEquals(- 1.0f , round((- 0.7 ).h ).toFloat(), 1e- 6f )
409
+ assertEquals(1.0f , round(0.5 .h ).toFloat(), 1e- 6f )
410
+ assertEquals(- 1.0f , round((- 0.5 ).h ).toFloat(), 1e- 6f )
411
+ assertEquals(2.0f , round(1.5 .h ).toFloat(), 1e- 6f )
412
+ assertEquals(- 2.0f , round((- 1.5 ).h ).toFloat(), 1e- 6f )
413
+ assertEquals(1023.0f , round(1022.5 .h ).toFloat(), 1e- 6f )
414
+ assertEquals(- 1023.0f , round((- 1022.5 ).h ).toFloat(), 1e- 6f )
415
+ assertEquals(125.0f , round(124.7 .h ).toFloat(), 1e- 6f )
416
+ assertEquals(- 125.0f , round((- 124.7 ).h ).toFloat(), 1e- 6f )
417
+ assertEquals(124.0f , round(124.2 .h ).toFloat(), 1e- 6f )
418
+ assertEquals(- 124.0f , round((- 124.2 ).h ).toFloat(), 1e- 6f )
419
419
// round for NaN values
420
420
// These tests check whether the current round implementation achieves
421
421
// bit level compatibility with the hardware implementation (ARM64).
@@ -435,14 +435,14 @@ class HalfTest {
435
435
assertEquals(Half .LOWEST_VALUE , floor(Half .LOWEST_VALUE ))
436
436
assertEquals(Half .POSITIVE_ZERO , floor(Half .MIN_NORMAL ))
437
437
assertEquals(Half .POSITIVE_ZERO , floor(Half (0x3ff .toUShort())))
438
- assertEquals(Half .POSITIVE_ZERO , floor(Half ( 0.2f ) ))
439
- assertEquals(- 1.0f , floor(Half (- 0.2f ) ).toFloat(), 1e- 6f )
440
- assertEquals(- 1.0f , floor(Half (- 0.7f ) ).toFloat(), 1e- 6f )
441
- assertEquals(Half .POSITIVE_ZERO , floor(Half ( 0.7f ) ))
442
- assertEquals(124.0f , floor(Half ( 124.7f ) ).toFloat(), 1e- 6f )
443
- assertEquals(- 125.0f , floor(Half (- 124.7f ) ).toFloat(), 1e- 6f )
444
- assertEquals(124.0f , floor(Half ( 124.2f ) ).toFloat(), 1e- 6f )
445
- assertEquals(- 125.0f , floor(Half (- 124.2f ) ).toFloat(), 1e- 6f )
438
+ assertEquals(Half .POSITIVE_ZERO , floor(0.2 .h ))
439
+ assertEquals(- 1.0f , floor((- 0.2 ).h ).toFloat(), 1e- 6f )
440
+ assertEquals(- 1.0f , floor((- 0.7 ).h ).toFloat(), 1e- 6f )
441
+ assertEquals(Half .POSITIVE_ZERO , floor(0.7 .h ))
442
+ assertEquals(124.0f , floor(124.7 .h ).toFloat(), 1e- 6f )
443
+ assertEquals(- 125.0f , floor((- 124.7 ).h ).toFloat(), 1e- 6f )
444
+ assertEquals(124.0f , floor(124.2 .h ).toFloat(), 1e- 6f )
445
+ assertEquals(- 125.0f , floor((- 124.2 ).h ).toFloat(), 1e- 6f )
446
446
// floor for NaN values
447
447
assertEquals(0x7e01 , floor(Half (0x7c01 .toUShort())).toBits())
448
448
assertEquals(0x7f00 , floor(Half (0x7d00 .toUShort())).toBits())
@@ -460,14 +460,14 @@ class HalfTest {
460
460
assertEquals(Half .LOWEST_VALUE , ceil(Half .LOWEST_VALUE ))
461
461
assertEquals(1.0f , ceil(Half .MIN_NORMAL ).toFloat(), 1e- 6f )
462
462
assertEquals(1.0f , ceil(Half (0x3ff .toUShort())).toFloat(), 1e- 6f )
463
- assertEquals(1.0f , ceil(Half ( 0.2f ) ).toFloat(), 1e- 6f )
464
- assertEquals(Half .NEGATIVE_ZERO , ceil(Half (- 0.2f ) ))
465
- assertEquals(1.0f , ceil(Half ( 0.7f ) ).toFloat(), 1e- 6f )
466
- assertEquals(Half .NEGATIVE_ZERO , ceil(Half (- 0.7f ) ))
467
- assertEquals(125.0f , ceil(Half ( 124.7f ) ).toFloat(), 1e- 6f )
468
- assertEquals(- 124.0f , ceil(Half (- 124.7f ) ).toFloat(), 1e- 6f )
469
- assertEquals(125.0f , ceil(Half ( 124.2f ) ).toFloat(), 1e- 6f )
470
- assertEquals(- 124.0f , ceil(Half (- 124.2f ) ).toFloat(), 1e- 6f )
463
+ assertEquals(1.0f , ceil(0.2 .h ).toFloat(), 1e- 6f )
464
+ assertEquals(Half .NEGATIVE_ZERO , ceil((- 0.2 ).h ))
465
+ assertEquals(1.0f , ceil(0.7 .h ).toFloat(), 1e- 6f )
466
+ assertEquals(Half .NEGATIVE_ZERO , ceil((- 0.7 ).h ))
467
+ assertEquals(125.0f , ceil(124.7 .h ).toFloat(), 1e- 6f )
468
+ assertEquals(- 124.0f , ceil((- 124.7 ).h ).toFloat(), 1e- 6f )
469
+ assertEquals(125.0f , ceil(124.2 .h ).toFloat(), 1e- 6f )
470
+ assertEquals(- 124.0f , ceil((- 124.2 ).h ).toFloat(), 1e- 6f )
471
471
// ceil for NaN values
472
472
// These tests check whether the current ceil implementation achieves
473
473
// bit level compatibility with the hardware implementation (ARM64).
@@ -505,11 +505,11 @@ class HalfTest {
505
505
506
506
@Test
507
507
fun next () {
508
- assertEquals(Half ( 1025.0f ), Half ( 1024.0f ) .nextUp())
509
- assertEquals(Half ( 1023.5f ), Half ( 1024.0f ) .nextDown())
508
+ assertEquals(1025.0 .h, 1024.0 .h .nextUp())
509
+ assertEquals(1023.5 .h, 1024.0 .h .nextDown())
510
510
511
- assertEquals(Half ( 0.50048830f ), Half ( 0.5f ) .nextUp())
512
- assertEquals(Half ( 0.49975586f ), Half ( 0.5f ) .nextDown())
511
+ assertEquals(0.50048830 .h, 0.5 .h .nextUp())
512
+ assertEquals(0.49975586 .h, 0.5 .h .nextDown())
513
513
514
514
assertTrue(Half .NaN .nextUp().isNaN())
515
515
assertTrue(Half .NaN .nextDown().isNaN())
@@ -531,11 +531,11 @@ class HalfTest {
531
531
assertEquals(HALF_ONE , HALF_ONE .nextTowards(HALF_ONE ))
532
532
assertEquals(- HALF_ONE , (- HALF_ONE ).nextTowards(- HALF_ONE ))
533
533
534
- assertEquals(Half ( 1025.0f ), Half ( 1024.0f ). nextTowards(Half ( 32768.0f ) ))
535
- assertEquals(Half ( 1023.5f ), Half ( 1024.0f ). nextTowards(Half (- 32768.0f ) ))
534
+ assertEquals(1025.0 .h, 1024.0 .h. nextTowards(32768.0 .h ))
535
+ assertEquals(1023.5 .h, 1024.0 .h. nextTowards((- 32768.0 ).h ))
536
536
537
- assertEquals(Half ( 0.50048830f ), Half ( 0.5f ). nextTowards(Half ( 32768.0f ) ))
538
- assertEquals(Half ( 0.49975586f ), Half ( 0.5f ). nextTowards(Half (- 32768.0f ) ))
537
+ assertEquals(0.50048830 .h, 0.5 .h. nextTowards(32768.0 .h ))
538
+ assertEquals(0.49975586 .h, 0.5 .h. nextTowards((- 32768.0 ).h ))
539
539
}
540
540
541
541
@Test
@@ -586,24 +586,24 @@ class HalfTest {
586
586
// Overflow
587
587
assertEquals(Half .POSITIVE_INFINITY , HALF_TWO * Half .MAX_VALUE )
588
588
assertEquals(Half .POSITIVE_INFINITY , Half .MAX_VALUE * HALF_TWO )
589
- assertEquals(Half .NEGATIVE_INFINITY , Half (- 2.0f ) * Half .MAX_VALUE )
590
- assertEquals(Half .NEGATIVE_INFINITY , Half .MAX_VALUE * Half (- 2.0f ) )
589
+ assertEquals(Half .NEGATIVE_INFINITY , (- 2.0 ).h * Half .MAX_VALUE )
590
+ assertEquals(Half .NEGATIVE_INFINITY , Half .MAX_VALUE * (- 2.0 ).h )
591
591
592
592
// Underflow
593
593
assertEquals(Half .POSITIVE_ZERO , Half .MIN_VALUE * Half .MIN_NORMAL )
594
594
assertEquals(Half .NEGATIVE_ZERO , Half .MIN_VALUE * - Half .MIN_NORMAL )
595
595
596
- assertEquals(Half ( 8.0f ) , HALF_TWO * Half ( 4.0f ) )
597
- assertEquals(Half ( 2.88f ), Half ( 1.2f ) * Half ( 2.4f ) )
598
- assertEquals(Half (- 2.88f ), Half ( 1.2f ) * Half (- 2.4f ) )
599
- assertEquals(Half (- 2.88f ), Half (- 1.2f ) * Half ( 2.4f ) )
600
- assertEquals(Half ( 2.88f ), Half (- 1.2f ) * Half (- 2.4f ) )
596
+ assertEquals(8.0 .h , HALF_TWO * 4.0 .h )
597
+ assertEquals(2.88 .h, 1.2 .h * 2.4 .h )
598
+ assertEquals((- 2.88 ).h, 1.2 .h * (- 2.4 ).h )
599
+ assertEquals((- 2.88 ).h, (- 1.2 ).h * 2.4 .h )
600
+ assertEquals(2.88 .h, (- 1.2 ).h * (- 2.4 ).h )
601
601
602
- assertEquals(Half ( 48_000.0f ), Half ( 3.0f ) * Half ( 16_000.0f ) )
603
- assertEquals(Half (- 48_000.0f ), Half ( 3.0f ) * Half (- 16_000.0f ) )
602
+ assertEquals(48_000.0 .h, 3.0 .h * 16_000.0 .h )
603
+ assertEquals((- 48_000.0 ).h, 3.0 .h * (- 16_000.0 ).h )
604
604
605
- assertEquals(Half ( 0.000012f ), Half ( 0.03f ) * Half ( 0.0004f ) )
606
- assertEquals(Half (- 0.000012f ), Half ( 0.03f ) * Half (- 0.0004f ) )
605
+ assertEquals(0.000012 .h, 0.03 .h * 0.0004 .h )
606
+ assertEquals((- 0.000012 ).h, 0.03 .h * (- 0.0004 ).h )
607
607
}
608
608
609
609
@Test
@@ -639,20 +639,20 @@ class HalfTest {
639
639
assertEquals(Half .POSITIVE_INFINITY , Half .MAX_VALUE / Half .MIN_VALUE )
640
640
assertEquals(Half .NEGATIVE_INFINITY , (- Half .MAX_VALUE ) / Half .MIN_VALUE )
641
641
642
- assertEquals(Half ( 0.5f ) , HALF_TWO / Half ( 4.0f ) )
643
- assertEquals(Half ( 0.5f ), Half ( 1.2f ) / Half ( 2.4f ) )
644
- assertEquals(Half (- 0.5f ), Half ( 1.2f ) / Half (- 2.4f ) )
645
- assertEquals(Half (- 0.5f ), Half (- 1.2f ) / Half ( 2.4f ) )
646
- assertEquals(Half ( 0.5f ), Half (- 1.2f ) / Half (- 2.4f ) )
642
+ assertEquals(0.5 .h , HALF_TWO / 4.0 .h )
643
+ assertEquals(0.5 .h, 1.2 .h / 2.4 .h )
644
+ assertEquals((- 0.5 ).h, 1.2 .h / (- 2.4 ).h )
645
+ assertEquals((- 0.5 ).h, (- 1.2 ).h / 2.4 .h )
646
+ assertEquals(0.5 .h, (- 1.2 ).h / (- 2.4 ).h )
647
647
648
- assertEquals(Half ( 16_000.0f ), Half ( 48_000.0f ) / Half ( 3.0f ) )
649
- assertEquals(Half (- 16_000.0f ), Half ( 48_000.0f ) / Half (- 3.0f ) )
648
+ assertEquals(16_000.0 .h, 48_000.0 .h / 3.0 .h )
649
+ assertEquals((- 16_000.0 ).h, 48_000.0 .h / (- 3.0 ).h )
650
650
651
- assertEquals(Half (2 .0861626e- 5f ), HALF_ONE / Half ( 48_000.0f ) )
652
- assertEquals(Half (- 2 .0861626e- 5 ), HALF_ONE / Half (- 48_000.0f ) )
651
+ assertEquals(Half (2 .0861626e- 5f ), HALF_ONE / 48_000.0 .h )
652
+ assertEquals(Half (- 2 .0861626e- 5 ), HALF_ONE / (- 48_000.0 ).h )
653
653
654
- assertEquals(Half ( 75.0f ), Half ( 0.03f ) / Half ( 0.0004f ) )
655
- assertEquals(Half (- 75.0f ), Half ( 0.03f ) / Half (- 0.0004f ) )
654
+ assertEquals(75.0 .h, 0.03 .h / 0.0004 .h )
655
+ assertEquals((- 75.0 ).h, 0.03 .h / (- 0.0004 ).h )
656
656
}
657
657
658
658
@Test
@@ -662,7 +662,7 @@ class HalfTest {
662
662
assertTrue((Half .NaN + HALF_ONE ).isNaN())
663
663
assertTrue((Half .NaN - HALF_ONE ).isNaN())
664
664
assertTrue((HALF_ONE + Half .NaN ).isNaN())
665
- assertTrue((Half (- 1.0f ) + Half .NaN ).isNaN())
665
+ assertTrue(((- 1.0 ).h + Half .NaN ).isNaN())
666
666
667
667
assertTrue((Half .NaN + Half .POSITIVE_INFINITY ).isNaN())
668
668
assertTrue((Half .POSITIVE_INFINITY + Half .NaN ).isNaN())
@@ -688,12 +688,12 @@ class HalfTest {
688
688
assertTrue((Half .NEGATIVE_INFINITY + Half .NEGATIVE_INFINITY ).isInfinite())
689
689
assertTrue((Half .NEGATIVE_INFINITY - Half .NEGATIVE_INFINITY ).isNaN())
690
690
691
- assertEquals(Half ( 3.0f ) , HALF_ONE + HALF_TWO )
691
+ assertEquals(3.0 .h , HALF_ONE + HALF_TWO )
692
692
693
693
// Overflow
694
- assertEquals(Half .POSITIVE_INFINITY , Half ( 32768.0f ) + Half ( 32768.0f ) )
694
+ assertEquals(Half .POSITIVE_INFINITY , 32768.0 .h + 32768.0 .h )
695
695
// Underflow
696
- assertEquals(Half .NEGATIVE_INFINITY , Half (- 32768.0f ) - Half ( 32768.0f ) )
696
+ assertEquals(Half .NEGATIVE_INFINITY , (- 32768.0 ).h - 32768.0 .h )
697
697
698
698
for (i in 0x0 .. 0xffff ) {
699
699
val v1 = Half (i.toUShort())
@@ -716,8 +716,8 @@ class HalfTest {
716
716
assertEquals(Half .MIN_VALUE , Half .POSITIVE_ZERO .ulp)
717
717
assertEquals(Half .MIN_VALUE , Half .NEGATIVE_ZERO .ulp)
718
718
719
- assertEquals(HALF_ONE , Half ( 1024.0f ) .ulp)
720
- assertEquals(HALF_ONE , Half (- 1024.0f ) .ulp)
719
+ assertEquals(HALF_ONE , 1024.0 .h .ulp)
720
+ assertEquals(HALF_ONE , (- 1024.0 ).h .ulp)
721
721
}
722
722
723
723
@Test
0 commit comments