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

Time bar (total: 1.3s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze47.0ms (3.6%)

Memory
-6.1MiB live, 69.4MiB 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)

sample822.0ms (61.7%)

Memory
-7.8MiB live, 1 362.4MiB allocated
Samples
522.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 298.0ms
ival-mult: 115.0ms (38.6% of total)
ival-sub: 105.0ms (35.2% of total)
ival-div: 59.0ms (19.8% of total)
exact: 9.0ms (3% of total)
ival-true: 7.0ms (2.3% of total)
ival-assert: 4.0ms (1.3% of total)
Bogosity

explain94.0ms (7.1%)

Memory
8.7MiB live, 206.6MiB 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))))overflow2
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
35.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 (40.5% of total)
ival-sub: 6.0ms (34.7% of total)
ival-div: 4.0ms (23.1% of total)
exact: 1.0ms (5.8% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess5.0ms (0.4%)

Memory
-31.1MiB live, 7.7MiB 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.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.9MiB live, 0.9MiB 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
0.9MiB live, 0.9MiB 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.8%)

Memory
2.4MiB live, 40.8MiB 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.26109939124537795
(/.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: 9.0ms
ival-sub: 4.0ms (42.4% of total)
ival-mult: 3.0ms (31.8% of total)
ival-div: 2.0ms (21.2% 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
20.1MiB live, 20.1MiB 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
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))
1.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))

simplify1.0ms (0%)

Memory
1.3MiB live, 1.3MiB 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
6.2MiB live, 6.2MiB allocated
Compiler

Compiled 148 to 26 computations (82.4% saved)

prune2.0ms (0.1%)

Memory
3.5MiB live, 3.5MiB 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)
32.7%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
27.5%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
4.2%
#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)

simplify5.0ms (0.4%)

Memory
-37.9MiB live, 1.2MiB 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)

localize34.0ms (2.6%)

Memory
19.7MiB live, 56.2MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 x y)
accuracy0.0
(*.f64 z #s(literal 1/2 binary64))
accuracy0.26109939124537795
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
accuracy52.99585143240451
#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.26109939124537795
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
accuracy56.51539409354078
#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))))
accuracy61.33454438234005
#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
25.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 (36.7% of total)
ival-mult: 3.0ms (36.7% of total)
ival-div: 2.0ms (24.5% 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.4%)

Memory
11.5MiB live, 11.5MiB 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
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))
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))

simplify1.0ms (0%)

Memory
1.5MiB live, 1.5MiB 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%)

Memory
1.4MiB live, 1.4MiB 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
5.9MiB live, 5.9MiB allocated
Compiler

Compiled 677 to 51 computations (92.5% saved)

prune10.0ms (0.8%)

Memory
-25.2MiB live, 12.3MiB allocated
Pruning

9 alts after pruning (5 fresh and 4 done)

PrunedKeptTotal
New20525
Fresh000
Picked033
Done011
Total20929
Accuracy
100.0%
Counts
29 → 9
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)
32.7%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
27.5%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
2.6%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
4.2%
#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)))))
61.6%
#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.6%
#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.8%
#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)))))
4.2%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
Compiler

Compiled 348 to 204 computations (41.4% saved)

simplify1.0ms (0.1%)

Memory
2.2MiB live, 2.2MiB 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)

localize45.0ms (3.4%)

Memory
-9.3MiB live, 74.6MiB allocated
Localize:

Found 17 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 x y)
accuracy0.0
(*.f64 z #s(literal 1/2 binary64))
accuracy52.99585143240451
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64))))
accuracy61.33454438234005
#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.99585143240451
#s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
accuracy56.51539409354078
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
accuracy61.33454438234005
#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.326791088014595
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
accuracy0.0
(-.f64 x y)
accuracy56.51539409354078
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
accuracy61.33454438234005
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
accuracy0.26109939124537795
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
accuracy56.51539409354078
#s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y))
accuracy61.33454438234005
#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))))
accuracy61.543338068966214
#s(approx (- (- x y) (* z 1/2)) (/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z))
Samples
27.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 (36.8% of total)
ival-mult: 3.0ms (36.8% of total)
ival-div: 2.0ms (24.6% 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.5%)

Memory
19.9MiB live, 19.9MiB 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
@-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)))
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
1.8MiB live, 1.8MiB 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
1.8MiB live, 1.8MiB 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)))

eval4.0ms (0.3%)

Memory
8.6MiB live, 8.6MiB allocated
Compiler

Compiled 1 540 to 85 computations (94.5% saved)

prune13.0ms (1%)

Memory
-20.9MiB live, 16.9MiB allocated
Pruning

11 alts after pruning (2 fresh and 9 done)

PrunedKeptTotal
New40242
Fresh000
Picked055
Done044
Total401151
Accuracy
100.0%
Counts
51 → 11
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)
32.7%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
27.5%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
2.6%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
4.2%
#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)))))
61.6%
#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.6%
#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.6%
#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.8%
#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)))))
4.2%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
Compiler

Compiled 303 to 165 computations (45.5% saved)

simplify1.0ms (0.1%)

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

Found 8 expressions of interest:

NewMetricScoreProgram
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)
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)

localize30.0ms (2.2%)

Memory
8.2MiB live, 46.4MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy56.51539409354078
#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.281613716509014
#s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))
accuracy61.33454438234005
#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.326791088014595
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
accuracy52.99585143240451
#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.281613716509014
#s(approx (- x y) #s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64))))
accuracy61.33454438234005
#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.326791088014595
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
Samples
21.0ms256×0valid
Compiler

Compiled 440 to 34 computations (92.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-sub: 3.0ms (36.9% of total)
ival-mult: 3.0ms (36.9% of total)
ival-div: 2.0ms (24.6% 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.4%)

Memory
10.1MiB live, 10.1MiB allocated
Counts
9 → 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 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
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))
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))
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))) (- (- x y) (* z 1/2)) (* 4 (- (- x y) (* z 1/2))) (/ (* 4 (- (- x y) (* z 1/2))) z))
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))
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))) (- (- x y) (* z 1/2)) (* 4 (- (- x y) (* z 1/2))) (/ (* 4 (- (- x y) (* z 1/2))) z))

simplify1.0ms (0.1%)

Memory
1.4MiB live, 1.4MiB allocated
Algorithm
egg-herbie
Counts
49 → 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)
-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 z #s(literal 1/2 binary64)))

rewrite1.0ms (0.1%)

Memory
1.5MiB live, 1.5MiB allocated
Counts
9 → 9
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 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 z #s(literal 1/2 binary64)))

eval6.0ms (0.4%)

Memory
-33.1MiB live, 5.2MiB allocated
Compiler

Compiled 1 019 to 47 computations (95.4% saved)

prune7.0ms (0.5%)

Memory
16.4MiB live, 16.3MiB allocated
Pruning

11 alts after pruning (0 fresh and 11 done)

PrunedKeptTotal
New19019
Fresh000
Picked022
Done099
Total191130
Accuracy
100.0%
Counts
30 → 11
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)
32.7%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
27.5%
(/.f64 #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)) z)
2.6%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) (*.f64 z #s(literal 1/2 binary64)))
4.2%
#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)))))
61.6%
#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.6%
#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.6%
#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.8%
#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)))))
4.2%
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
Compiler

Compiled 606 to 204 computations (66.3% saved)

regimes24.0ms (1.8%)

Memory
-9.3MiB live, 42.2MiB allocated
Counts
11 → 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)
(/.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)
Calls

5 calls:

8.0ms
z
4.0ms
(-.f64 x y)
4.0ms
y
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
99.6%1x
99.6%1y
99.6%1z
99.6%1(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
99.6%1(-.f64 x y)
Compiler

Compiled 17 to 23 computations (-35.3% saved)

regimes21.0ms (1.6%)

Memory
0.7MiB live, 38.6MiB 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:

7.0ms
z
3.0ms
(-.f64 x y)
3.0ms
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
61.6%1x
61.6%1y
61.6%1z
66.9%3(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
61.6%1(-.f64 x y)
Compiler

Compiled 17 to 23 computations (-35.3% saved)

regimes7.0ms (0.5%)

Memory
14.1MiB live, 14.1MiB 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

2 calls:

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
61.6%1(-.f64 x y)
61.6%1(/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z)
Compiler

Compiled 14 to 14 computations (0% saved)

regimes19.0ms (1.4%)

Memory
-0.8MiB live, 36.2MiB 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:

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

Compiled 17 to 23 computations (-35.3% saved)

regimes15.0ms (1.2%)

Memory
-9.0MiB live, 29.1MiB allocated
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) (*.f64 #s(literal 4 binary64) #s(approx (- (- x y) (* z 1/2)) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))))
Calls

5 calls:

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

Compiled 17 to 23 computations (-35.3% saved)

regimes7.0ms (0.5%)

Memory
19.9MiB live, 19.9MiB allocated
Accuracy

Total -1.5b remaining (-2.5%)

Threshold costs -1.5b (-2.5%)

Counts
2 → 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)))
Outputs
#s(approx (/ (* 4 (- (- x y) (* z 1/2))) z) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
Calls

5 calls:

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

Compiled 17 to 23 computations (-35.3% saved)

bsearch1.0ms (0.1%)

Memory
1.5MiB live, 1.5MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-1.3188506346506044
2418983.851024427
0.0ms
-2309.46276621509
-2.0000010880433785
Compiler

Compiled 14 to 16 computations (-14.3% saved)

simplify8.0ms (0.6%)

Memory
-31.3MiB live, 13.0MiB 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)
(if (<=.f64 (/.f64 (*.f64 #s(literal 4 binary64) (-.f64 (-.f64 x y) (*.f64 z #s(literal 1/2 binary64)))) z) #s(literal -2000 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) (*.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) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))
Outputs
(/.f64 (*.f64 #s(literal 4 binary64) (-.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 -2000 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) (*.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) #s(approx (* 4 (- (- x y) (* z 1/2))) (-.f64 x y)))

soundness1.0ms (0.1%)

Memory
3.5MiB live, 3.5MiB allocated
Stop Event
done
Compiler

Compiled 244 to 34 computations (86.1% saved)

preprocess40.0ms (3%)

Memory
-6.1MiB live, 109.4MiB allocated
Compiler

Compiled 536 to 110 computations (79.5% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...