diff --git a/core/math/math.odin b/core/math/math.odin index b070129a5..d5ec9f3ae 100644 --- a/core/math/math.odin +++ b/core/math/math.odin @@ -742,26 +742,28 @@ atan2_f64 :: proc(y, x: f64) -> f64 { atan2 :: proc{atan2_f32, atan2_f64}; atan_f32 :: proc(x: f32) -> f32 { - return atan2_f32(1.0, x); + return atan2_f32(1, x); } -atan :: proc{atan_f32}; - +atan_f64 :: proc(x: f64) -> f64 { + return atan2_f64(1, x); +} +atan :: proc{atan_f32, atan_f64}; asin_f32 :: proc(x: f32) -> f32 { - return atan2_f32(x, sqrt_f32(1 - x*x)); + return atan2_f32(x, 1 + sqrt_f32(1 - x*x)); } asin_f64 :: proc(x: f64) -> f64 { - return atan2_f64(x, sqrt_f64(1 - x*x)); + return atan2_f64(x, 1 + sqrt_f64(1 - x*x)); } -asin :: proc{asin_f32}; +asin :: proc{asin_f32, asin_f64}; acos_f32 :: proc(x: f32) -> f32 { - return atan2_f32(sqrt_f32(1 - x), sqrt_f32(1 + x)); + return 2 * atan2_f32(sqrt_f32(1 - x), sqrt_f32(1 + x)); } acos_f64 :: proc(x: f64) -> f64 { - return atan2_f64(sqrt_f64(1 - x), sqrt_f64(1 + x)); + return 2 * atan2_f64(sqrt_f64(1 - x), sqrt_f64(1 + x)); } -acos :: proc{acos_f32}; +acos :: proc{acos_f32, acos_f64}; sinh_f32 :: proc(x: f32) -> f32 {