| ... | @@ -60,7 +60,7 @@ fn asinh32(x: f32) f32 { | ... | @@ -60,7 +60,7 @@ fn asinh32(x: f32) f32 { |
| 60 | fn asinh64(x: f64) f64 { | 60 | fn asinh64(x: f64) f64 { |
| 61 | const u = @bitCast(u64, x); | 61 | const u = @bitCast(u64, x); |
| 62 | const e = (u >> 52) & 0x7FF; | 62 | const e = (u >> 52) & 0x7FF; |
| 63 | const s = u >> 63; | 63 | const s = e >> 63; |
| 64 | | 64 | |
| 65 | var rx = @bitCast(f64, u & (maxInt(u64) >> 1)); // |x| | 65 | var rx = @bitCast(f64, u & (maxInt(u64) >> 1)); // |x| |
| 66 | | 66 | |
| ... | @@ -97,6 +97,7 @@ test "math.asinh32" { | ... | @@ -97,6 +97,7 @@ test "math.asinh32" { |
| 97 | const epsilon = 0.000001; | 97 | const epsilon = 0.000001; |
| 98 | | 98 | |
| 99 | try expect(math.approxEqAbs(f32, asinh32(0.0), 0.0, epsilon)); | 99 | try expect(math.approxEqAbs(f32, asinh32(0.0), 0.0, epsilon)); |
| | 100 | try expect(math.approxEqAbs(f32, asinh32(-0.2), -0.198690, epsilon)); |
| 100 | try expect(math.approxEqAbs(f32, asinh32(0.2), 0.198690, epsilon)); | 101 | try expect(math.approxEqAbs(f32, asinh32(0.2), 0.198690, epsilon)); |
| 101 | try expect(math.approxEqAbs(f32, asinh32(0.8923), 0.803133, epsilon)); | 102 | try expect(math.approxEqAbs(f32, asinh32(0.8923), 0.803133, epsilon)); |
| 102 | try expect(math.approxEqAbs(f32, asinh32(1.5), 1.194763, epsilon)); | 103 | try expect(math.approxEqAbs(f32, asinh32(1.5), 1.194763, epsilon)); |
| ... | @@ -109,6 +110,7 @@ test "math.asinh64" { | ... | @@ -109,6 +110,7 @@ test "math.asinh64" { |
| 109 | const epsilon = 0.000001; | 110 | const epsilon = 0.000001; |
| 110 | | 111 | |
| 111 | try expect(math.approxEqAbs(f64, asinh64(0.0), 0.0, epsilon)); | 112 | try expect(math.approxEqAbs(f64, asinh64(0.0), 0.0, epsilon)); |
| | 113 | try expect(math.approxEqAbs(f64, asinh64(-0.2), -0.198690, epsilon)); |
| 112 | try expect(math.approxEqAbs(f64, asinh64(0.2), 0.198690, epsilon)); | 114 | try expect(math.approxEqAbs(f64, asinh64(0.2), 0.198690, epsilon)); |
| 113 | try expect(math.approxEqAbs(f64, asinh64(0.8923), 0.803133, epsilon)); | 115 | try expect(math.approxEqAbs(f64, asinh64(0.8923), 0.803133, epsilon)); |
| 114 | try expect(math.approxEqAbs(f64, asinh64(1.5), 1.194763, epsilon)); | 116 | try expect(math.approxEqAbs(f64, asinh64(1.5), 1.194763, epsilon)); |