@@ -529,51 +529,51 @@ if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) {
529
529
expectTrue ( elementsAlmostEqual ( result, legacyResult) )
530
530
expectTrue ( elementsAlmostEqual ( result, returnedResult) )
531
531
}
532
-
533
- //===----------------------------------------------------------------------===//
534
- //
535
- // Array almost equal.
536
- //
537
- //===----------------------------------------------------------------------===//
538
-
539
- func elementsAlmostEqual< T: FloatingPoint > ( _ lhs: [ T ] , _ rhs: [ T ] ) -> Bool {
540
- var returnValue = true
541
- zip ( lhs, rhs) . forEach {
542
- if !isAlmostEqual( $0. 0 , $0. 1 ) {
543
- returnValue = false
544
- return
545
- }
546
- }
547
- return returnValue
548
- }
549
-
550
- func isAlmostEqual< T: FloatingPoint > ( _ lhs: T ,
551
- _ rhs: T ,
552
- tolerance: T = T . ulpOfOne. squareRoot ( ) ) -> Bool {
553
- assert ( tolerance >= . ulpOfOne && tolerance < 1 , " tolerance should be in [.ulpOfOne, 1). " )
554
- guard lhs. isFinite && rhs. isFinite else {
555
- return rescaledAlmostEqual ( lhs, rhs, tolerance: tolerance)
556
- }
557
- let scale = max ( abs ( lhs) , abs ( rhs) , . leastNormalMagnitude)
558
- return abs ( lhs - rhs) < scale*tolerance
559
- }
560
-
561
- func rescaledAlmostEqual< T: FloatingPoint > ( _ lhs: T ,
562
- _ rhs: T ,
563
- tolerance: T ) -> Bool {
564
- if lhs. isNaN || rhs. isNaN { return false }
565
- if lhs. isInfinite {
566
- if rhs. isInfinite { return lhs == rhs }
567
- let scaledLhs = T ( sign: lhs. sign,
568
- exponent: T . greatestFiniteMagnitude. exponent,
569
- significand: 1 )
570
- let scaledRhs = T ( sign: . plus,
571
- exponent: - 1 ,
572
- significand: rhs)
573
- return isAlmostEqual ( scaledLhs, scaledRhs, tolerance: tolerance)
574
- }
575
- return rescaledAlmostEqual ( rhs, lhs, tolerance: tolerance)
532
+ }
533
+
534
+ //===----------------------------------------------------------------------===//
535
+ //
536
+ // Array almost equal.
537
+ //
538
+ //===----------------------------------------------------------------------===//
539
+
540
+ func elementsAlmostEqual< T: FloatingPoint > ( _ lhs: [ T ] , _ rhs: [ T ] ) -> Bool {
541
+ var returnValue = true
542
+ zip ( lhs, rhs) . forEach {
543
+ if !isAlmostEqual( $0. 0 , $0. 1 ) {
544
+ returnValue = false
545
+ return
576
546
}
547
+ }
548
+ return returnValue
549
+ }
550
+
551
+ func isAlmostEqual< T: FloatingPoint > ( _ lhs: T ,
552
+ _ rhs: T ,
553
+ tolerance: T = T . ulpOfOne. squareRoot ( ) ) -> Bool {
554
+ assert ( tolerance >= . ulpOfOne && tolerance < 1 , " tolerance should be in [.ulpOfOne, 1). " )
555
+ guard lhs. isFinite && rhs. isFinite else {
556
+ return rescaledAlmostEqual ( lhs, rhs, tolerance: tolerance)
557
+ }
558
+ let scale = max ( abs ( lhs) , abs ( rhs) , . leastNormalMagnitude)
559
+ return abs ( lhs - rhs) < scale*tolerance
560
+ }
561
+
562
+ func rescaledAlmostEqual< T: FloatingPoint > ( _ lhs: T ,
563
+ _ rhs: T ,
564
+ tolerance: T ) -> Bool {
565
+ if lhs. isNaN || rhs. isNaN { return false }
566
+ if lhs. isInfinite {
567
+ if rhs. isInfinite { return lhs == rhs }
568
+ let scaledLhs = T ( sign: lhs. sign,
569
+ exponent: T . greatestFiniteMagnitude. exponent,
570
+ significand: 1 )
571
+ let scaledRhs = T ( sign: . plus,
572
+ exponent: - 1 ,
573
+ significand: rhs)
574
+ return isAlmostEqual ( scaledLhs, scaledRhs, tolerance: tolerance)
575
+ }
576
+ return rescaledAlmostEqual ( rhs, lhs, tolerance: tolerance)
577
577
}
578
578
579
579
runAllTests ( )
0 commit comments