Data.Array.Repa.Algorithms.ColorRamp:rampColorHotToCold from repa-algorithms-3.4.0.1, B

Time bar (total: 1.3s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze43.0ms (3.4%)

Memory
18.2MiB live, 55.3MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
50%49.9%49.9%0.1%0%0%0%4
50%49.9%49.9%0.1%0%0%0%5
50%49.9%49.9%0.1%0%0%0%6
75%74.9%25%0.1%0%0%0%7
75%74.9%25%0.1%0%0%0%8
75%74.9%25%0.1%0%0%0%9
87.5%87.4%12.5%0.1%0%0%0%10
87.5%87.4%12.5%0.1%0%0%0%11
87.5%87.4%12.5%0.1%0%0%0%12
Compiler

Compiled 13 to 12 computations (7.7% saved)

sample755.0ms (59.5%)

Memory
4.9MiB live, 1 226.9MiB allocated
Samples
491.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 290.0ms
ival-mult: 125.0ms (43.1% of total)
ival-sub: 93.0ms (32.1% of total)
ival-div: 56.0ms (19.3% of total)
exact: 7.0ms (2.4% of total)
ival-true: 6.0ms (2.1% of total)
ival-assert: 3.0ms (1% of total)
Bogosity

explain92.0ms (7.2%)

Memory
2.5MiB live, 200.1MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
10-0-(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
00-0-z
00-0-#s(literal 4 binary64)
00-0-y
00-0-(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
00-0-(*.f64 z #s(literal 1/2 binary64))
00-0-(-.f64 x y)
00-0-#s(literal 1/2 binary64)
00-0-(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)o/n10
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))overflow1
Confusion
Predicted +Predicted -
+10
-0255
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+100
-00255
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0255
11
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
33.0ms512×0valid
Compiler

Compiled 129 to 44 computations (65.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-mult: 7.0ms (41.8% of total)
ival-sub: 5.0ms (29.8% of total)
ival-div: 3.0ms (17.9% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess3.0ms (0.3%)

Memory
6.2MiB live, 6.2MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Outputs
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Compiler

Compiled 11 to 10 computations (9.1% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.3MiB live, 1.3MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Compiler

Compiled 11 to 10 computations (9.1% saved)

simplify0.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(-.f64 x y)
cost-diff0
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
cost-diff0
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
cost-diff0
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Calls
Call 1
Inputs
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
#s(literal 4 binary64)
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
x
y
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)
Outputs
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
#s(literal 4 binary64)
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
x
y
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)

localize24.0ms (1.9%)

Memory
8.1MiB live, 46.0MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 x y)
accuracy0.0
(*.f64 z #s(literal 1/2 binary64))
accuracy0.0
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
accuracy0.26561949386619266
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Samples
18.0ms256×0valid
Compiler

Compiled 78 to 22 computations (71.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-div: 4.0ms (41.8% of total)
ival-sub: 3.0ms (31.3% of total)
ival-mult: 3.0ms (31.3% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series13.0ms (1%)

Memory
-13.4MiB live, 24.3MiB allocated
Counts
5 → 50
Calls
Call 1
Inputs
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
(*.f64 z #s(literal 1/2 binary64))
Outputs
(* -4 (/ (+ y (* 1/2 z)) z))
(+ (* -4 (/ (+ y (* 1/2 z)) z)) (* 4 (/ x z)))
(* -4 (+ y (* 1/2 z)))
(+ (* -4 (+ y (* 1/2 z))) (* 4 x))
(* -1 (+ y (* 1/2 z)))
(- x (+ y (* 1/2 z)))
(* -1 y)
(- x y)
(* 4 (/ x z))
(* x (+ (* -4 (/ (+ y (* 1/2 z)) (* x z))) (* 4 (/ 1 z))))
(* 4 x)
(* x (+ 4 (* -4 (/ (+ y (* 1/2 z)) x))))
x
(* x (+ 1 (* -1 (/ (+ y (* 1/2 z)) x))))
(* x (+ 1 (* -1 (/ y x))))
(* -1 (* x (- (* 4 (/ (+ 1/2 (/ y z)) x)) (* 4 (/ 1 z)))))
(* -1 (* x (- (* 4 (/ (+ y (* 1/2 z)) x)) 4)))
(* -1 (* x (- (+ (* 1/2 (/ z x)) (/ y x)) 1)))
(* -1 (* x (- (/ y x) 1)))
(* 4 (/ (- x (* 1/2 z)) z))
(+ (* -4 (/ y z)) (* 4 (/ (- x (* 1/2 z)) z)))
(* 4 (- x (* 1/2 z)))
(+ (* -4 y) (* 4 (- x (* 1/2 z))))
(- x (* 1/2 z))
(- (+ x (* -1 y)) (* 1/2 z))
(+ x (* -1 y))
(* -4 (/ y z))
(* y (- (* 4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z))))
(* -4 y)
(* y (- (* 4 (/ (- x (* 1/2 z)) y)) 4))
(* y (- (/ x y) (+ 1 (* 1/2 (/ z y)))))
(* y (- (/ x y) 1))
(* -1 (* y (+ (* -4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z)))))
(* -1 (* y (+ 4 (* -4 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
(* 4 (/ (- x y) z))
(/ (+ (* -2 z) (* 4 (- x y))) z)
(* 4 (- x y))
(+ (* -2 z) (* 4 (- x y)))
(- (+ x (* -1/2 z)) y)
(* 1/2 z)
-2
(- (* 4 (/ (- x y) z)) 2)
(* -2 z)
(* z (- (* 4 (/ (- x y) z)) 2))
(* -1/2 z)
(* z (- (/ x z) (+ 1/2 (/ y z))))
(* -1 (* z (+ 2 (* -4 (/ (- x y) z)))))
(* -1 (* z (+ 1/2 (* -1 (/ (- x y) z)))))
Calls

9 calls:

TimeVariablePointExpression
3.0ms
z
@0
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (* z 1/2))
2.0ms
z
@-inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (* z 1/2))
1.0ms
y
@inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (* z 1/2))
1.0ms
x
@inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (* z 1/2))
1.0ms
x
@0
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (* z 1/2))

simplify1.0ms (0%)

Memory
1.6MiB live, 1.6MiB allocated
Algorithm
egg-herbie
Counts
50 → 5
Calls
Call 1
Inputs
(* -4 (/ (+ y (* 1/2 z)) z))
(+ (* -4 (/ (+ y (* 1/2 z)) z)) (* 4 (/ x z)))
(* -4 (+ y (* 1/2 z)))
(+ (* -4 (+ y (* 1/2 z))) (* 4 x))
(* -1 (+ y (* 1/2 z)))
(- x (+ y (* 1/2 z)))
(* -1 y)
(- x y)
(* 4 (/ x z))
(* x (+ (* -4 (/ (+ y (* 1/2 z)) (* x z))) (* 4 (/ 1 z))))
(* 4 x)
(* x (+ 4 (* -4 (/ (+ y (* 1/2 z)) x))))
x
(* x (+ 1 (* -1 (/ (+ y (* 1/2 z)) x))))
(* x (+ 1 (* -1 (/ y x))))
(* -1 (* x (- (* 4 (/ (+ 1/2 (/ y z)) x)) (* 4 (/ 1 z)))))
(* -1 (* x (- (* 4 (/ (+ y (* 1/2 z)) x)) 4)))
(* -1 (* x (- (+ (* 1/2 (/ z x)) (/ y x)) 1)))
(* -1 (* x (- (/ y x) 1)))
(* 4 (/ (- x (* 1/2 z)) z))
(+ (* -4 (/ y z)) (* 4 (/ (- x (* 1/2 z)) z)))
(* 4 (- x (* 1/2 z)))
(+ (* -4 y) (* 4 (- x (* 1/2 z))))
(- x (* 1/2 z))
(- (+ x (* -1 y)) (* 1/2 z))
(+ x (* -1 y))
(* -4 (/ y z))
(* y (- (* 4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z))))
(* -4 y)
(* y (- (* 4 (/ (- x (* 1/2 z)) y)) 4))
(* y (- (/ x y) (+ 1 (* 1/2 (/ z y)))))
(* y (- (/ x y) 1))
(* -1 (* y (+ (* -4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z)))))
(* -1 (* y (+ 4 (* -4 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
(* 4 (/ (- x y) z))
(/ (+ (* -2 z) (* 4 (- x y))) z)
(* 4 (- x y))
(+ (* -2 z) (* 4 (- x y)))
(- (+ x (* -1/2 z)) y)
(* 1/2 z)
-2
(- (* 4 (/ (- x y) z)) 2)
(* -2 z)
(* z (- (* 4 (/ (- x y) z)) 2))
(* -1/2 z)
(* z (- (/ x z) (+ 1/2 (/ y z))))
(* -1 (* z (+ 2 (* -4 (/ (- x y) z)))))
(* -1 (* z (+ 1/2 (* -1 (/ (- x y) z)))))
Outputs
(* -4 (/ (+ y (* 1/2 z)) z))
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
(+ (* -4 (/ (+ y (* 1/2 z)) z)) (* 4 (/ x z)))
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(* -4 (+ y (* 1/2 z)))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(+ (* -4 (+ y (* 1/2 z))) (* 4 x))
(-.f64 x y)
(* -1 (+ y (* 1/2 z)))
(*.f64 z #s(literal 1/2 binary64))

rewrite0.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Counts
5 → 5
Calls
Call 1
Inputs
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
(*.f64 z #s(literal 1/2 binary64))
Outputs
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
(*.f64 z #s(literal 1/2 binary64))

eval1.0ms (0.1%)

Memory
3.1MiB live, 3.1MiB allocated
Compiler

Compiled 148 to 26 computations (82.4% saved)

prune2.0ms (0.1%)

Memory
3.7MiB live, 3.7MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New7310
Fresh000
Picked011
Done000
Total7411
Accuracy
99.6%
Counts
11 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
30.1%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
25.1%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
3.1%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
Compiler

Compiled 66 to 54 computations (18.2% saved)

simplify1.0ms (0.1%)

Memory
1.4MiB live, 1.4MiB allocated
Algorithm
egg-herbie
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
cost-diff0
(-.f64 x y)
cost-diff0
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
cost-diff0
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
cost-diff0
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
cost-diff0
(-.f64 x y)
cost-diff0
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
cost-diff0
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
cost-diff0
(-.f64 x y)
cost-diff0
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
cost-diff0
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
cost-diff0
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
#s(literal 4 binary64)
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
x
y
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(-.f64 x y)
x
y
z
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
x
y
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)
Outputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
#s(literal 4 binary64)
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
x
y
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(-.f64 x y)
x
y
z
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
x
y
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)

localize32.0ms (2.5%)

Memory
-10.8MiB live, 68.4MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 x y)
accuracy0.0
(*.f64 z #s(literal 1/2 binary64))
accuracy0.26561949386619266
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
accuracy52.99911602646851
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
accuracy0.0
(-.f64 x y)
accuracy0.26561949386619266
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
accuracy56.33314149815014
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
accuracy0.0
(-.f64 x y)
accuracy0.0
(*.f64 z #s(literal 1/2 binary64))
accuracy0.0
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
accuracy62.0243908659195
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
Samples
19.0ms256×0valid
Compiler

Compiled 238 to 33 computations (86.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-sub: 3.0ms (38.8% of total)
ival-mult: 3.0ms (38.8% of total)
ival-div: 2.0ms (25.9% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series6.0ms (0.5%)

Memory
14.4MiB live, 14.4MiB allocated
Counts
9 → 50
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(*.f64 z #s(literal 1/2 binary64))
Outputs
(* -4 (/ (+ y (* 1/2 z)) z))
(+ (* -4 (/ (+ y (* 1/2 z)) z)) (* 4 (/ x z)))
(* -4 (+ y (* 1/2 z)))
(+ (* -4 (+ y (* 1/2 z))) (* 4 x))
(* -1 (+ y (* 1/2 z)))
(- x (+ y (* 1/2 z)))
(* -1 y)
(- x y)
(* 4 (/ x z))
(* x (+ (* -4 (/ (+ y (* 1/2 z)) (* x z))) (* 4 (/ 1 z))))
(* 4 x)
(* x (+ 4 (* -4 (/ (+ y (* 1/2 z)) x))))
x
(* x (+ 1 (* -1 (/ (+ y (* 1/2 z)) x))))
(* x (+ 1 (* -1 (/ y x))))
(* -1 (* x (- (* 4 (/ (+ 1/2 (/ y z)) x)) (* 4 (/ 1 z)))))
(* -1 (* x (- (* 4 (/ (+ y (* 1/2 z)) x)) 4)))
(* -1 (* x (- (+ (* 1/2 (/ z x)) (/ y x)) 1)))
(* -1 (* x (- (/ y x) 1)))
(* 4 (/ (- x (* 1/2 z)) z))
(+ (* -4 (/ y z)) (* 4 (/ (- x (* 1/2 z)) z)))
(* 4 (- x (* 1/2 z)))
(+ (* -4 y) (* 4 (- x (* 1/2 z))))
(- x (* 1/2 z))
(- (+ x (* -1 y)) (* 1/2 z))
(+ x (* -1 y))
(* -4 (/ y z))
(* y (- (* 4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z))))
(* -4 y)
(* y (- (* 4 (/ (- x (* 1/2 z)) y)) 4))
(* y (- (/ x y) (+ 1 (* 1/2 (/ z y)))))
(* y (- (/ x y) 1))
(* -1 (* y (+ (* -4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z)))))
(* -1 (* y (+ 4 (* -4 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
(* 4 (/ (- x y) z))
(/ (+ (* -2 z) (* 4 (- x y))) z)
(* 4 (- x y))
(+ (* -2 z) (* 4 (- x y)))
(- (+ x (* -1/2 z)) y)
(* 1/2 z)
-2
(- (* 4 (/ (- x y) z)) 2)
(* -2 z)
(* z (- (* 4 (/ (- x y) z)) 2))
(* -1/2 z)
(* z (- (/ x z) (+ 1/2 (/ y z))))
(* -1 (* z (+ 2 (* -4 (/ (- x y) z)))))
(* -1 (* z (+ 1/2 (* -1 (/ (- x y) z)))))
Calls

9 calls:

TimeVariablePointExpression
1.0ms
z
@-inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (* z 1/2))
1.0ms
z
@inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (* z 1/2))
1.0ms
x
@-inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (* z 1/2))
1.0ms
x
@inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (* z 1/2))
1.0ms
y
@-inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (* z 1/2))

simplify1.0ms (0.1%)

Memory
1.9MiB live, 1.9MiB allocated
Algorithm
egg-herbie
Counts
50 → 9
Calls
Call 1
Inputs
(* -4 (/ (+ y (* 1/2 z)) z))
(+ (* -4 (/ (+ y (* 1/2 z)) z)) (* 4 (/ x z)))
(* -4 (+ y (* 1/2 z)))
(+ (* -4 (+ y (* 1/2 z))) (* 4 x))
(* -1 (+ y (* 1/2 z)))
(- x (+ y (* 1/2 z)))
(* -1 y)
(- x y)
(* 4 (/ x z))
(* x (+ (* -4 (/ (+ y (* 1/2 z)) (* x z))) (* 4 (/ 1 z))))
(* 4 x)
(* x (+ 4 (* -4 (/ (+ y (* 1/2 z)) x))))
x
(* x (+ 1 (* -1 (/ (+ y (* 1/2 z)) x))))
(* x (+ 1 (* -1 (/ y x))))
(* -1 (* x (- (* 4 (/ (+ 1/2 (/ y z)) x)) (* 4 (/ 1 z)))))
(* -1 (* x (- (* 4 (/ (+ y (* 1/2 z)) x)) 4)))
(* -1 (* x (- (+ (* 1/2 (/ z x)) (/ y x)) 1)))
(* -1 (* x (- (/ y x) 1)))
(* 4 (/ (- x (* 1/2 z)) z))
(+ (* -4 (/ y z)) (* 4 (/ (- x (* 1/2 z)) z)))
(* 4 (- x (* 1/2 z)))
(+ (* -4 y) (* 4 (- x (* 1/2 z))))
(- x (* 1/2 z))
(- (+ x (* -1 y)) (* 1/2 z))
(+ x (* -1 y))
(* -4 (/ y z))
(* y (- (* 4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z))))
(* -4 y)
(* y (- (* 4 (/ (- x (* 1/2 z)) y)) 4))
(* y (- (/ x y) (+ 1 (* 1/2 (/ z y)))))
(* y (- (/ x y) 1))
(* -1 (* y (+ (* -4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z)))))
(* -1 (* y (+ 4 (* -4 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
(* 4 (/ (- x y) z))
(/ (+ (* -2 z) (* 4 (- x y))) z)
(* 4 (- x y))
(+ (* -2 z) (* 4 (- x y)))
(- (+ x (* -1/2 z)) y)
(* 1/2 z)
-2
(- (* 4 (/ (- x y) z)) 2)
(* -2 z)
(* z (- (* 4 (/ (- x y) z)) 2))
(* -1/2 z)
(* z (- (/ x z) (+ 1/2 (/ y z))))
(* -1 (* z (+ 2 (* -4 (/ (- x y) z)))))
(* -1 (* z (+ 1/2 (* -1 (/ (- x y) z)))))
Outputs
(* -4 (/ (+ y (* 1/2 z)) z))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
(+ (* -4 (/ (+ y (* 1/2 z)) z)) (* 4 (/ x z)))
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(* -4 (+ y (* 1/2 z)))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(+ (* -4 (+ y (* 1/2 z))) (* 4 x))
(-.f64 x y)
(* -1 (+ y (* 1/2 z)))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
(- x (+ y (* 1/2 z)))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(* -1 y)
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
(- x y)
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(* 4 (/ x z))
(*.f64 z #s(literal 1/2 binary64))

rewrite1.0ms (0.1%)

Memory
1.3MiB live, 1.3MiB allocated
Counts
9 → 9
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(*.f64 z #s(literal 1/2 binary64))
Outputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
(*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(*.f64 z #s(literal 1/2 binary64))

eval3.0ms (0.2%)

Memory
6.8MiB live, 6.8MiB allocated
Compiler

Compiled 677 to 51 computations (92.5% saved)

prune9.0ms (0.7%)

Memory
-22.4MiB live, 15.8MiB allocated
Pruning

10 alts after pruning (6 fresh and 4 done)

PrunedKeptTotal
New19625
Fresh000
Picked033
Done011
Total191029
Accuracy
99.6%
Counts
29 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
30.1%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
30.7%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) (*.f64 z #s(literal 1/2 binary64)))) z)
25.1%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
2.7%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
3.1%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
62.9%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
3.4%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
3.1%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
3.4%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
Compiler

Compiled 422 to 240 computations (43.1% saved)

simplify1.0ms (0.1%)

Memory
2.7MiB live, 2.7MiB allocated
Algorithm
egg-herbie
Localize:

Found 17 expressions of interest:

NewMetricScoreProgram
cost-diff0
(-.f64 x y)
cost-diff0
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
cost-diff0
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
cost-diff0
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
cost-diff0
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
cost-diff0
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
cost-diff0
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))))
cost-diff0
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
cost-diff0
(*.f64 z #s(literal 1/2 binary64))
cost-diff0
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
cost-diff0
(-.f64 x y)
cost-diff0
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
cost-diff0
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
cost-diff0
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
cost-diff0
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))
cost-diff0
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)))
cost-diff0
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)))
#s(literal 4 binary64)
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(-.f64 x y)
x
y
z
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(-.f64 x y)
x
y
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))))
#s(literal 4 binary64)
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(-.f64 x y)
x
y
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
x
y
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)
Outputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)))
#s(literal 4 binary64)
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(-.f64 x y)
x
y
z
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(-.f64 x y)
x
y
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))))
#s(literal 4 binary64)
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(-.f64 x y)
x
y
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
x
y
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)

localize52.0ms (4.1%)

Memory
-26.0MiB live, 86.1MiB allocated
Localize:

Found 17 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 x y)
accuracy0.0
(*.f64 z #s(literal 1/2 binary64))
accuracy52.99911602646851
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
accuracy62.0243908659195
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
accuracy0.0
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))))
accuracy52.99911602646851
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
accuracy56.33314149815014
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
accuracy62.0243908659195
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
accuracy0.0
(*.f64 z #s(literal 1/2 binary64))
accuracy62.292661356997186
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
accuracy0.0
(-.f64 x y)
accuracy56.33314149815014
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
accuracy62.0243908659195
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
accuracy0.26561949386619266
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
accuracy56.33314149815014
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
accuracy62.0082042207283
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))
accuracy62.0243908659195
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
Samples
37.0ms256×0valid
Compiler

Compiled 520 to 39 computations (92.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-sub: 3.0ms (38.7% of total)
ival-mult: 3.0ms (38.7% of total)
ival-div: 2.0ms (25.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series11.0ms (0.8%)

Memory
-16.9MiB live, 22.1MiB allocated
Counts
15 → 50
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)))
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(-.f64 x y)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
(*.f64 z #s(literal 1/2 binary64))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))))
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
Outputs
(* -4 (/ (+ y (* 1/2 z)) z))
(+ (* -4 (/ (+ y (* 1/2 z)) z)) (* 4 (/ x z)))
(* -4 (+ y (* 1/2 z)))
(+ (* -4 (+ y (* 1/2 z))) (* 4 x))
(* -1 (+ y (* 1/2 z)))
(- x (+ y (* 1/2 z)))
(* -1 y)
(- x y)
(* 4 (/ x z))
(* x (+ (* -4 (/ (+ y (* 1/2 z)) (* x z))) (* 4 (/ 1 z))))
(* 4 x)
(* x (+ 4 (* -4 (/ (+ y (* 1/2 z)) x))))
x
(* x (+ 1 (* -1 (/ (+ y (* 1/2 z)) x))))
(* x (+ 1 (* -1 (/ y x))))
(* -1 (* x (- (* 4 (/ (+ 1/2 (/ y z)) x)) (* 4 (/ 1 z)))))
(* -1 (* x (- (* 4 (/ (+ y (* 1/2 z)) x)) 4)))
(* -1 (* x (- (+ (* 1/2 (/ z x)) (/ y x)) 1)))
(* -1 (* x (- (/ y x) 1)))
(* 4 (/ (- x (* 1/2 z)) z))
(+ (* -4 (/ y z)) (* 4 (/ (- x (* 1/2 z)) z)))
(* 4 (- x (* 1/2 z)))
(+ (* -4 y) (* 4 (- x (* 1/2 z))))
(- x (* 1/2 z))
(- (+ x (* -1 y)) (* 1/2 z))
(+ x (* -1 y))
(* -4 (/ y z))
(* y (- (* 4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z))))
(* -4 y)
(* y (- (* 4 (/ (- x (* 1/2 z)) y)) 4))
(* y (- (/ x y) (+ 1 (* 1/2 (/ z y)))))
(* y (- (/ x y) 1))
(* -1 (* y (+ (* -4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z)))))
(* -1 (* y (+ 4 (* -4 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
(* 4 (/ (- x y) z))
(/ (+ (* -2 z) (* 4 (- x y))) z)
(* 4 (- x y))
(+ (* -2 z) (* 4 (- x y)))
(- (+ x (* -1/2 z)) y)
(* 1/2 z)
-2
(- (* 4 (/ (- x y) z)) 2)
(* -2 z)
(* z (- (* 4 (/ (- x y) z)) 2))
(* -1/2 z)
(* z (- (/ x z) (+ 1/2 (/ y z))))
(* -1 (* z (+ 2 (* -4 (/ (- x y) z)))))
(* -1 (* z (+ 1/2 (* -1 (/ (- x y) z)))))
Calls

9 calls:

TimeVariablePointExpression
1.0ms
z
@-inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* z 1/2) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)))
1.0ms
z
@inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* z 1/2) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)))
1.0ms
y
@0
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* z 1/2) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)))
1.0ms
x
@-inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* z 1/2) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)))
1.0ms
x
@inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* z 1/2) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)))

simplify1.0ms (0.1%)

Memory
2.4MiB live, 2.4MiB allocated
Algorithm
egg-herbie
Counts
50 → 15
Calls
Call 1
Inputs
(* -4 (/ (+ y (* 1/2 z)) z))
(+ (* -4 (/ (+ y (* 1/2 z)) z)) (* 4 (/ x z)))
(* -4 (+ y (* 1/2 z)))
(+ (* -4 (+ y (* 1/2 z))) (* 4 x))
(* -1 (+ y (* 1/2 z)))
(- x (+ y (* 1/2 z)))
(* -1 y)
(- x y)
(* 4 (/ x z))
(* x (+ (* -4 (/ (+ y (* 1/2 z)) (* x z))) (* 4 (/ 1 z))))
(* 4 x)
(* x (+ 4 (* -4 (/ (+ y (* 1/2 z)) x))))
x
(* x (+ 1 (* -1 (/ (+ y (* 1/2 z)) x))))
(* x (+ 1 (* -1 (/ y x))))
(* -1 (* x (- (* 4 (/ (+ 1/2 (/ y z)) x)) (* 4 (/ 1 z)))))
(* -1 (* x (- (* 4 (/ (+ y (* 1/2 z)) x)) 4)))
(* -1 (* x (- (+ (* 1/2 (/ z x)) (/ y x)) 1)))
(* -1 (* x (- (/ y x) 1)))
(* 4 (/ (- x (* 1/2 z)) z))
(+ (* -4 (/ y z)) (* 4 (/ (- x (* 1/2 z)) z)))
(* 4 (- x (* 1/2 z)))
(+ (* -4 y) (* 4 (- x (* 1/2 z))))
(- x (* 1/2 z))
(- (+ x (* -1 y)) (* 1/2 z))
(+ x (* -1 y))
(* -4 (/ y z))
(* y (- (* 4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z))))
(* -4 y)
(* y (- (* 4 (/ (- x (* 1/2 z)) y)) 4))
(* y (- (/ x y) (+ 1 (* 1/2 (/ z y)))))
(* y (- (/ x y) 1))
(* -1 (* y (+ (* -4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z)))))
(* -1 (* y (+ 4 (* -4 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
(* 4 (/ (- x y) z))
(/ (+ (* -2 z) (* 4 (- x y))) z)
(* 4 (- x y))
(+ (* -2 z) (* 4 (- x y)))
(- (+ x (* -1/2 z)) y)
(* 1/2 z)
-2
(- (* 4 (/ (- x y) z)) 2)
(* -2 z)
(* z (- (* 4 (/ (- x y) z)) 2))
(* -1/2 z)
(* z (- (/ x z) (+ 1/2 (/ y z))))
(* -1 (* z (+ 2 (* -4 (/ (- x y) z)))))
(* -1 (* z (+ 1/2 (* -1 (/ (- x y) z)))))
Outputs
(* -4 (/ (+ y (* 1/2 z)) z))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
(+ (* -4 (/ (+ y (* 1/2 z)) z)) (* 4 (/ x z)))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)))
(* -4 (+ y (* 1/2 z)))
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))
(+ (* -4 (+ y (* 1/2 z))) (* 4 x))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
(* -1 (+ y (* 1/2 z)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
(- x (+ y (* 1/2 z)))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(* -1 y)
(-.f64 x y)
(- x y)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
(* 4 (/ x z))
(*.f64 z #s(literal 1/2 binary64))
(* x (+ (* -4 (/ (+ y (* 1/2 z)) (* x z))) (* 4 (/ 1 z))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
(* 4 x)
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))))
(* x (+ 4 (* -4 (/ (+ y (* 1/2 z)) x))))
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
x
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
(* x (+ 1 (* -1 (/ (+ y (* 1/2 z)) x))))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(* x (+ 1 (* -1 (/ y x))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))

rewrite1.0ms (0.1%)

Memory
3.3MiB live, 3.3MiB allocated
Counts
15 → 15
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)))
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(-.f64 x y)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
(*.f64 z #s(literal 1/2 binary64))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))))
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
Outputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)))
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
(-.f64 x y)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
(*.f64 z #s(literal 1/2 binary64))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))))
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))

eval5.0ms (0.4%)

Memory
12.3MiB live, 12.3MiB allocated
Compiler

Compiled 1 540 to 85 computations (94.5% saved)

prune13.0ms (1%)

Memory
-15.2MiB live, 23.5MiB allocated
Pruning

11 alts after pruning (3 fresh and 8 done)

PrunedKeptTotal
New39342
Fresh101
Picked055
Done134
Total411152
Accuracy
100.0%
Counts
52 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
30.1%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
25.1%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
2.7%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
3.1%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
62.9%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
100.0%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
3.4%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
2.7%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
3.1%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
2.5%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
3.4%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
Compiler

Compiled 337 to 176 computations (47.8% saved)

simplify1.0ms (0.1%)

Memory
4.3MiB live, 4.3MiB allocated
Algorithm
egg-herbie
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)
cost-diff0
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))
cost-diff0
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)))
cost-diff0
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
cost-diff0
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))
cost-diff0
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))
cost-diff0
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))))
cost-diff0
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
cost-diff0
#s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))
cost-diff0
(-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))
cost-diff0
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64))))
cost-diff0
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))
#s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))))
#s(literal 4 binary64)
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)))
#s(literal 4 binary64)
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
x
y
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)
Outputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))
#s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))))
#s(literal 4 binary64)
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)))
#s(literal 4 binary64)
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))
(-.f64 x y)
x
y
(*.f64 z #s(literal 1/2 binary64))
z
#s(literal 1/2 binary64)

localize38.0ms (3%)

Memory
7.5MiB live, 88.5MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy23.90264522066393
#s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
accuracy56.33314149815014
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
accuracy62.0082042207283
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))
accuracy62.0243908659195
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
accuracy56.33314149815014
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))
accuracy61.80132435944852
#s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))
accuracy62.0243908659195
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
accuracy62.292661356997186
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
accuracy52.99911602646851
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64))))
accuracy61.80132435944852
#s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))
accuracy62.0243908659195
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
accuracy62.292661356997186
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
Samples
21.0ms256×0valid
Compiler

Compiled 690 to 42 computations (93.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-sub: 3.0ms (39% of total)
ival-mult: 3.0ms (39% of total)
ival-div: 2.0ms (26% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series7.0ms (0.6%)

Memory
19.1MiB live, 19.1MiB allocated
Counts
15 → 49
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))
#s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))))
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)))
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
Outputs
(* -4 (/ (+ y (* 1/2 z)) z))
(+ (* -4 (/ (+ y (* 1/2 z)) z)) (* 4 (/ x z)))
(* -4 (+ y (* 1/2 z)))
(+ (* -4 (+ y (* 1/2 z))) (* 4 x))
(* -1 (+ y (* 1/2 z)))
(- x (+ y (* 1/2 z)))
(* -1 y)
(- x y)
(* 4 (/ x z))
(* x (+ (* -4 (/ (+ y (* 1/2 z)) (* x z))) (* 4 (/ 1 z))))
(* 4 x)
(* x (+ 4 (* -4 (/ (+ y (* 1/2 z)) x))))
x
(* x (+ 1 (* -1 (/ (+ y (* 1/2 z)) x))))
(* x (+ 1 (* -1 (/ y x))))
(* -1 (* x (- (* 4 (/ (+ 1/2 (/ y z)) x)) (* 4 (/ 1 z)))))
(* -1 (* x (- (* 4 (/ (+ y (* 1/2 z)) x)) 4)))
(* -1 (* x (- (+ (* 1/2 (/ z x)) (/ y x)) 1)))
(* -1 (* x (- (/ y x) 1)))
(* 4 (/ (- x (* 1/2 z)) z))
(+ (* -4 (/ y z)) (* 4 (/ (- x (* 1/2 z)) z)))
(* 4 (- x (* 1/2 z)))
(+ (* -4 y) (* 4 (- x (* 1/2 z))))
(- x (* 1/2 z))
(- (+ x (* -1 y)) (* 1/2 z))
(+ x (* -1 y))
(* -4 (/ y z))
(* y (- (* 4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z))))
(* -4 y)
(* y (- (* 4 (/ (- x (* 1/2 z)) y)) 4))
(* y (- (/ x y) (+ 1 (* 1/2 (/ z y)))))
(* y (- (/ x y) 1))
(* -1 (* y (+ (* -4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z)))))
(* -1 (* y (+ 4 (* -4 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
(* 4 (/ (- x y) z))
(/ (+ (* -2 z) (* 4 (- x y))) z)
(* 4 (- x y))
(+ (* -2 z) (* 4 (- x y)))
(- (+ x (* -1/2 z)) y)
-2
(- (* 4 (/ (- x y) z)) 2)
(* -2 z)
(* z (- (* 4 (/ (- x y) z)) 2))
(* -1/2 z)
(* z (- (/ x z) (+ 1/2 (/ y z))))
(* -1 (* z (+ 2 (* -4 (/ (- x y) z)))))
(* -1 (* z (+ 1/2 (* -1 (/ (- x y) z)))))
Calls

9 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (* 4 (- (- x y) (* z 1/2))) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- x y))
1.0ms
x
@-inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (* 4 (- (- x y) (* z 1/2))) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- x y))
1.0ms
x
@inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (* 4 (- (- x y) (* z 1/2))) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- x y))
1.0ms
y
@inf
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (* 4 (- (- x y) (* z 1/2))) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- x y))
1.0ms
x
@0
((/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (- x y) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (* 4 (- (- x y) (* z 1/2))) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- (- x y) (* z 1/2)) (/ (* 4 (- (- x y) (* z 1/2))) z) (/ (* 4 (- (- x y) (* z 1/2))) z) (* 4 (- (- x y) (* z 1/2))) (- x y))

simplify1.0ms (0.1%)

Memory
2.3MiB live, 2.3MiB allocated
Algorithm
egg-herbie
Counts
49 → 15
Calls
Call 1
Inputs
(* -4 (/ (+ y (* 1/2 z)) z))
(+ (* -4 (/ (+ y (* 1/2 z)) z)) (* 4 (/ x z)))
(* -4 (+ y (* 1/2 z)))
(+ (* -4 (+ y (* 1/2 z))) (* 4 x))
(* -1 (+ y (* 1/2 z)))
(- x (+ y (* 1/2 z)))
(* -1 y)
(- x y)
(* 4 (/ x z))
(* x (+ (* -4 (/ (+ y (* 1/2 z)) (* x z))) (* 4 (/ 1 z))))
(* 4 x)
(* x (+ 4 (* -4 (/ (+ y (* 1/2 z)) x))))
x
(* x (+ 1 (* -1 (/ (+ y (* 1/2 z)) x))))
(* x (+ 1 (* -1 (/ y x))))
(* -1 (* x (- (* 4 (/ (+ 1/2 (/ y z)) x)) (* 4 (/ 1 z)))))
(* -1 (* x (- (* 4 (/ (+ y (* 1/2 z)) x)) 4)))
(* -1 (* x (- (+ (* 1/2 (/ z x)) (/ y x)) 1)))
(* -1 (* x (- (/ y x) 1)))
(* 4 (/ (- x (* 1/2 z)) z))
(+ (* -4 (/ y z)) (* 4 (/ (- x (* 1/2 z)) z)))
(* 4 (- x (* 1/2 z)))
(+ (* -4 y) (* 4 (- x (* 1/2 z))))
(- x (* 1/2 z))
(- (+ x (* -1 y)) (* 1/2 z))
(+ x (* -1 y))
(* -4 (/ y z))
(* y (- (* 4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z))))
(* -4 y)
(* y (- (* 4 (/ (- x (* 1/2 z)) y)) 4))
(* y (- (/ x y) (+ 1 (* 1/2 (/ z y)))))
(* y (- (/ x y) 1))
(* -1 (* y (+ (* -4 (/ (- (/ x z) 1/2) y)) (* 4 (/ 1 z)))))
(* -1 (* y (+ 4 (* -4 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ (- x (* 1/2 z)) y)))))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
(* 4 (/ (- x y) z))
(/ (+ (* -2 z) (* 4 (- x y))) z)
(* 4 (- x y))
(+ (* -2 z) (* 4 (- x y)))
(- (+ x (* -1/2 z)) y)
-2
(- (* 4 (/ (- x y) z)) 2)
(* -2 z)
(* z (- (* 4 (/ (- x y) z)) 2))
(* -1/2 z)
(* z (- (/ x z) (+ 1/2 (/ y z))))
(* -1 (* z (+ 2 (* -4 (/ (- x y) z)))))
(* -1 (* z (+ 1/2 (* -1 (/ (- x y) z)))))
Outputs
(* -4 (/ (+ y (* 1/2 z)) z))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
(+ (* -4 (/ (+ y (* 1/2 z)) z)) (* 4 (/ x z)))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64))))
(* -4 (+ y (* 1/2 z)))
(-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))
(+ (* -4 (+ y (* 1/2 z))) (* 4 x))
#s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))
(* -1 (+ y (* 1/2 z)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
(- x (+ y (* 1/2 z)))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))))
(* -1 y)
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))
(- x y)
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))
(* 4 (/ x z))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
(* x (+ (* -4 (/ (+ y (* 1/2 z)) (* x z))) (* 4 (/ 1 z))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)))
(* 4 x)
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))
(* x (+ 4 (* -4 (/ (+ y (* 1/2 z)) x))))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)
x
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
(* x (+ 1 (* -1 (/ (+ y (* 1/2 z)) x))))
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
(* x (+ 1 (* -1 (/ y x))))
#s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))

rewrite1.0ms (0.1%)

Memory
2.7MiB live, 2.7MiB allocated
Counts
15 → 15
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))
#s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))))
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)))
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
Outputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64))))
(-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))
#s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))))
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
(*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)))
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
#s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))

eval5.0ms (0.4%)

Memory
-25.8MiB live, 12.6MiB allocated
Compiler

Compiled 1 601 to 73 computations (95.4% saved)

prune9.0ms (0.7%)

Memory
25.7MiB live, 25.7MiB allocated
Pruning

11 alts after pruning (0 fresh and 11 done)

PrunedKeptTotal
New31031
Fresh000
Picked033
Done088
Total311142
Accuracy
100.0%
Counts
42 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
30.1%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
25.1%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
2.7%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
3.1%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
62.9%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
100.0%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
3.4%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
2.7%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
3.1%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
2.5%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
3.4%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
Compiler

Compiled 722 to 225 computations (68.8% saved)

regimes26.0ms (2%)

Memory
-7.9MiB live, 69.4MiB allocated
Counts
13 → 1
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) (*.f64 z #s(literal 1/2 binary64)))) z)
Outputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
Calls

5 calls:

6.0ms
(-.f64 x y)
5.0ms
y
5.0ms
z
4.0ms
x
4.0ms
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1z
100.0%1(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
100.0%1(-.f64 x y)
Compiler

Compiled 17 to 23 computations (-35.3% saved)

regimes23.0ms (1.8%)

Memory
-28.6MiB live, 53.9MiB allocated
Counts
10 → 3
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Outputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
Calls

5 calls:

6.0ms
(-.f64 x y)
4.0ms
y
4.0ms
z
4.0ms
x
3.0ms
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Results
AccuracySegmentsBranch
62.9%1x
62.9%1y
62.9%1z
67.8%3(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
62.9%1(-.f64 x y)
Compiler

Compiled 17 to 23 computations (-35.3% saved)

regimes11.0ms (0.8%)

Memory
27.0MiB live, 27.0MiB allocated
Counts
9 → 1
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
Outputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
Calls

3 calls:

3.0ms
z
3.0ms
(-.f64 x y)
3.0ms
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Results
AccuracySegmentsBranch
62.9%1z
62.9%1(-.f64 x y)
62.9%1(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Compiler

Compiled 15 to 17 computations (-13.3% saved)

regimes17.0ms (1.3%)

Memory
1.8MiB live, 40.8MiB allocated
Counts
8 → 1
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
Outputs
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
Calls

5 calls:

4.0ms
z
3.0ms
y
3.0ms
(-.f64 x y)
3.0ms
x
3.0ms
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Results
AccuracySegmentsBranch
25.1%1y
25.1%1x
25.1%1(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
25.1%1z
25.1%1(-.f64 x y)
Compiler

Compiled 17 to 23 computations (-35.3% saved)

regimes15.0ms (1.2%)

Memory
-3.2MiB live, 35.9MiB allocated
Accuracy

Total -1.5b remaining (-2.4%)

Threshold costs -1.5b (-2.4%)

Counts
6 → 1
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 #s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))) (*.f64 z #s(literal 1/2 binary64)))))
Outputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
Calls

5 calls:

4.0ms
z
3.0ms
(-.f64 x y)
3.0ms
x
2.0ms
y
2.0ms
(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Results
AccuracySegmentsBranch
3.4%1x
3.4%1y
3.4%1(-.f64 x y)
3.4%1z
3.4%1(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Compiler

Compiled 17 to 23 computations (-35.3% saved)

bsearch1.0ms (0.1%)

Memory
2.3MiB live, 2.3MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-1.999999987942918
1732.2026741048267
0.0ms
-18.459243620961857
-2.0108666988234285
Compiler

Compiled 14 to 16 computations (-14.3% saved)

simplify5.0ms (0.4%)

Memory
12.9MiB live, 12.9MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
(if (<=.f64 (/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z) #s(literal -10 binary64)) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)))) (if (<=.f64 (/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z) #s(literal -1 binary64)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
Outputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) #s(approx (- x y) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))) z))))
(if (<=.f64 (/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z) #s(literal -10 binary64)) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)))) (if (<=.f64 (/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z) #s(literal -1 binary64)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))))
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))))
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))

soundness3.0ms (0.2%)

Memory
-39.0MiB live, 3.0MiB allocated
Stop Event
done
Compiler

Compiled 243 to 37 computations (84.8% saved)

preprocess37.0ms (2.9%)

Memory
9.1MiB live, 85.4MiB allocated
Compiler

Compiled 534 to 116 computations (78.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...