diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux/data/number/complex.lux | 6 | ||||
-rw-r--r-- | stdlib/source/lux/math.lux | 7 | ||||
-rw-r--r-- | stdlib/test/test/lux/data/color.lux | 8 | ||||
-rw-r--r-- | stdlib/test/test/lux/data/number/complex.lux | 9 | ||||
-rw-r--r-- | stdlib/test/test/lux/math.lux | 16 |
5 files changed, 14 insertions, 32 deletions
diff --git a/stdlib/source/lux/data/number/complex.lux b/stdlib/source/lux/data/number/complex.lux index 876ab66d1..243723766 100644 --- a/stdlib/source/lux/data/number/complex.lux +++ b/stdlib/source/lux/data/number/complex.lux @@ -178,12 +178,12 @@ (if (f/= 0.0 imaginary) (frac/abs real) (let [q (f// imaginary real)] - (f/* (math.root2 (f/+ 1.0 (f/* q q))) + (f/* (math.pow 0.5 (f/+ 1.0 (f/* q q))) (frac/abs imaginary)))) (if (f/= 0.0 real) (frac/abs imaginary) (let [q (f// real imaginary)] - (f/* (math.root2 (f/+ 1.0 (f/* q q))) + (f/* (math.pow 0.5 (f/+ 1.0 (f/* q q))) (frac/abs real)))) )))) @@ -231,7 +231,7 @@ (def: #export (root2 (^@ input (^slots [#real #imaginary]))) (-> Complex Complex) - (let [t (|> input c/abs (get@ #real) (f/+ (frac/abs real)) (f// 2.0) math.root2)] + (let [t (|> input c/abs (get@ #real) (f/+ (frac/abs real)) (f// 2.0) (math.pow 0.5))] (if (f/>= 0.0 real) {#real t #imaginary (f// (f/* 2.0 t) diff --git a/stdlib/source/lux/math.lux b/stdlib/source/lux/math.lux index d6001b3a6..4d65c75b8 100644 --- a/stdlib/source/lux/math.lux +++ b/stdlib/source/lux/math.lux @@ -40,9 +40,6 @@ [exp "lux math exp"] [log "lux math log"] - [root2 "lux math root2"] - [root3 "lux math root3"] - [ceil "lux math ceil"] [floor "lux math floor"] [round "lux math round"] @@ -72,8 +69,8 @@ (def: #export (hypotenuse catA catB) (-> Frac Frac Frac) - (root2 (f/+ (pow 2.0 catA) - (pow 2.0 catB)))) + (pow 0.5 (f/+ (pow 2.0 catA) + (pow 2.0 catB)))) (do-template [<type> <mod> <gcd> <lcm> <zero> <*> </> <->] [(def: #export (<gcd> a b) diff --git a/stdlib/test/test/lux/data/color.lux b/stdlib/test/test/lux/data/color.lux index ed62a221f..29081715b 100644 --- a/stdlib/test/test/lux/data/color.lux +++ b/stdlib/test/test/lux/data/color.lux @@ -23,10 +23,10 @@ (-> @.Color @.Color Frac) (let [[fr fg fb] (@.unpack from) [tr tg tb] (@.unpack to)] - (math.root2 ($_ f/+ - (|> (scale tr) (f/- (scale fr)) square) - (|> (scale tg) (f/- (scale fg)) square) - (|> (scale tb) (f/- (scale fb)) square))))) + (math.pow 0.5 ($_ f/+ + (|> (scale tr) (f/- (scale fr)) square) + (|> (scale tg) (f/- (scale fg)) square) + (|> (scale tb) (f/- (scale fb)) square))))) (def: error-margin Frac 1.8) diff --git a/stdlib/test/test/lux/data/number/complex.lux b/stdlib/test/test/lux/data/number/complex.lux index 98138d9fe..8369ad676 100644 --- a/stdlib/test/test/lux/data/number/complex.lux +++ b/stdlib/test/test/lux/data/number/complex.lux @@ -143,7 +143,7 @@ (let [signum-abs (|> x &.c/signum &.c/abs (get@ #&.real))] (or (f/= 0.0 signum-abs) (f/= 1.0 signum-abs) - (f/= (math.root2 2.0) signum-abs)))) + (f/= (math.pow 0.5 2.0) signum-abs)))) (test "Negation is its own inverse." (let [there (&.c/negate x) @@ -162,7 +162,8 @@ (|> normal forward backward (within? margin-of-error normal)))) (context: "Trigonometry" - (<| (times +100) + (<| (seed +17274883666004960943) + ## (times +100) (do @ [angle (|> gen-complex (:: @ map (|>> (update@ #&.real (f/% 1.0)) (update@ #&.imaginary (f/% 1.0)))))] @@ -181,8 +182,8 @@ (do @ [x gen-complex] ($_ seq - (test "Square root is inverse of power 2.0" - (|> x (&.pow' 2.0) &.root2 (within? margin-of-error x))) + (test "Root 2 is inverse of power 2." + (|> x (&.pow' 2.0) (&.pow' 0.5) (within? margin-of-error x))) (test "Logarithm is inverse of exponentiation." (|> x &.log &.exp (within? margin-of-error x))) diff --git a/stdlib/test/test/lux/math.lux b/stdlib/test/test/lux/math.lux index b95751dbc..80ca6995c 100644 --- a/stdlib/test/test/lux/math.lux +++ b/stdlib/test/test/lux/math.lux @@ -35,22 +35,6 @@ (trigonometric-symmetry &.tan &.atan angle)) )))) -(context: "Roots" - (<| (times +100) - (do @ - [factor (|> r.nat (:: @ map (|>> (n/% +1000) - (n/max +1) - nat-to-int - int-to-frac))) - base (|> r.frac (:: @ map (f/* factor)))] - ($_ seq - (test "Square-root is inverse of square." - (|> base (&.pow 2.0) &.root2 (f/= base))) - - (test "Cubic-root is inverse of cube." - (|> base (&.pow 3.0) &.root3 (f/= base))) - )))) - (context: "Rounding" (<| (times +100) (do @ |