Main:bigenough2 from A

Time bar (total: 818.0ms)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 9 to 8 computations (11.1% saved)

sample597.0ms (73%)

Memory
-3.1MiB live, 803.6MiB allocated
Samples
366.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 173.0ms
ival-add: 106.0ms (61.1% of total)
ival-mult: 58.0ms (33.4% of total)
ival-true: 6.0ms (3.5% of total)
ival-assert: 3.0ms (1.7% of total)
Bogosity

explain68.0ms (8.3%)

Memory
21.6MiB live, 159.2MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(+.f64 z x)
00-0-y
00-0-(*.f64 y (+.f64 z x))
00-0-(+.f64 x (*.f64 y (+.f64 z x)))
00-0-z
00-0-x
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
25.0ms512×0valid
Compiler

Compiled 65 to 28 computations (56.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
ival-add: 5.0ms (53% of total)
ival-mult: 4.0ms (42.4% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess5.0ms (0.6%)

Memory
-29.4MiB live, 9.4MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(+.f64 x (*.f64 y (+.f64 z x)))
Outputs
(+.f64 x (*.f64 y (+.f64 z x)))
Compiler

Compiled 7 to 6 computations (14.3% 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
100.0%
(+.f64 x (*.f64 y (+.f64 z x)))
Compiler

Compiled 7 to 6 computations (14.3% saved)

simplify0.0ms (0%)

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

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 z x)
cost-diff0
(*.f64 y (+.f64 z x))
cost-diff0
(+.f64 x (*.f64 y (+.f64 z x)))
Calls
Call 1
Inputs
(+.f64 x (*.f64 y (+.f64 z x)))
x
(*.f64 y (+.f64 z x))
y
(+.f64 z x)
z
Outputs
(+.f64 x (*.f64 y (+.f64 z x)))
x
(*.f64 y (+.f64 z x))
y
(+.f64 z x)
z

localize18.0ms (2.1%)

Memory
-8.4MiB live, 33.7MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(+.f64 z x)
accuracy0.0
(*.f64 y (+.f64 z x))
accuracy0.00390625
(+.f64 x (*.f64 y (+.f64 z x)))
Samples
13.0ms256×0valid
Compiler

Compiled 38 to 14 computations (63.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-add: 3.0ms (47.2% of total)
ival-mult: 3.0ms (47.2% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series4.0ms (0.5%)

Memory
10.4MiB live, 10.4MiB allocated
Counts
3 → 27
Calls
Call 1
Inputs
(+.f64 x (*.f64 y (+.f64 z x)))
(*.f64 y (+.f64 z x))
(+.f64 z x)
Outputs
(* y z)
(+ (* x (+ 1 y)) (* y z))
(+ (* x y) (* y z))
z
(+ x z)
(* x (+ 1 y))
(* x (+ 1 (+ y (/ (* y z) x))))
(* x y)
(* x (+ y (/ (* y z) x)))
x
(* x (+ 1 (/ z x)))
(* -1 (* x (- (* -1 y) 1)))
(* -1 (* x (- (+ (* -1 y) (* -1 (/ (* y z) x))) 1)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* y z) x)))))
(* -1 (* x (- (* -1 (/ z x)) 1)))
(+ x (* y (+ x z)))
(* y (+ x z))
(* y (+ x (+ z (/ x y))))
(* -1 (* y (+ (* -1 (+ x z)) (* -1 (/ x y)))))
(+ x (* x y))
(+ x (+ (* x y) (* y z)))
(* z (+ y (+ (/ x z) (/ (* x y) z))))
(* z (+ y (/ (* x y) z)))
(* z (+ 1 (/ x z)))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ x (* x y)) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (* x y) z)))))
(* -1 (* z (- (* -1 (/ x z)) 1)))
Calls

9 calls:

TimeVariablePointExpression
1.0ms
y
@inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x))
1.0ms
x
@inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x))
0.0ms
y
@-inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x))
0.0ms
z
@-inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x))
0.0ms
x
@-inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x))

simplify0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
egg-herbie
Counts
27 → 3
Calls
Call 1
Inputs
(* y z)
(+ (* x (+ 1 y)) (* y z))
(+ (* x y) (* y z))
z
(+ x z)
(* x (+ 1 y))
(* x (+ 1 (+ y (/ (* y z) x))))
(* x y)
(* x (+ y (/ (* y z) x)))
x
(* x (+ 1 (/ z x)))
(* -1 (* x (- (* -1 y) 1)))
(* -1 (* x (- (+ (* -1 y) (* -1 (/ (* y z) x))) 1)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* y z) x)))))
(* -1 (* x (- (* -1 (/ z x)) 1)))
(+ x (* y (+ x z)))
(* y (+ x z))
(* y (+ x (+ z (/ x y))))
(* -1 (* y (+ (* -1 (+ x z)) (* -1 (/ x y)))))
(+ x (* x y))
(+ x (+ (* x y) (* y z)))
(* z (+ y (+ (/ x z) (/ (* x y) z))))
(* z (+ y (/ (* x y) z)))
(* z (+ 1 (/ x z)))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ x (* x y)) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (* x y) z)))))
(* -1 (* z (- (* -1 (/ x z)) 1)))
Outputs
(* y z)
(+.f64 x (*.f64 y (+.f64 z x)))
(+ (* x (+ 1 y)) (* y z))
(*.f64 y (+.f64 z x))
(+ (* x y) (* y z))
(+.f64 z x)

rewrite0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Counts
3 → 3
Calls
Call 1
Inputs
(+.f64 x (*.f64 y (+.f64 z x)))
(*.f64 y (+.f64 z x))
(+.f64 z x)
Outputs
(+.f64 x (*.f64 y (+.f64 z x)))
(*.f64 y (+.f64 z x))
(+.f64 z x)

eval1.0ms (0.1%)

Memory
1.6MiB live, 1.6MiB allocated
Compiler

Compiled 60 to 13 computations (78.3% saved)

prune1.0ms (0.1%)

Memory
2.8MiB live, 2.8MiB allocated
Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New426
Fresh000
Picked011
Done000
Total437
Accuracy
100.0%
Counts
7 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 x (*.f64 y (+.f64 z x)))
7.8%
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
65.3%
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
Compiler

Compiled 31 to 23 computations (25.8% saved)

simplify0.0ms (0%)

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

Found 6 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 z x)
cost-diff0
#s(approx (* y (+ z x)) (+.f64 z x))
cost-diff0
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
cost-diff0
(+.f64 z x)
cost-diff0
(*.f64 y (+.f64 z x))
cost-diff0
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
Calls
Call 1
Inputs
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
(*.f64 y (+.f64 z x))
y
(+.f64 z x)
z
x
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
x
#s(approx (* y (+ z x)) (+.f64 z x))
(+.f64 z x)
z
Outputs
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
(*.f64 y (+.f64 z x))
y
(+.f64 z x)
z
x
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
x
#s(approx (* y (+ z x)) (+.f64 z x))
(+.f64 z x)
z

localize20.0ms (2.4%)

Memory
5.2MiB live, 44.0MiB allocated
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(+.f64 z x)
accuracy0.00390625
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
accuracy61.57631824156104
#s(approx (* y (+ z x)) (+.f64 z x))
accuracy0.0
(+.f64 z x)
accuracy0.0
(*.f64 y (+.f64 z x))
accuracy22.18557149101372
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
Samples
15.0ms256×0valid
Compiler

Compiled 86 to 19 computations (77.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-add: 3.0ms (61% of total)
ival-mult: 2.0ms (40.7% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.3%)

Memory
5.9MiB live, 5.9MiB allocated
Counts
5 → 27
Calls
Call 1
Inputs
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
(*.f64 y (+.f64 z x))
(+.f64 z x)
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
#s(approx (* y (+ z x)) (+.f64 z x))
Outputs
(* y z)
(+ (* x (+ 1 y)) (* y z))
(+ (* x y) (* y z))
z
(+ x z)
(* x (+ 1 y))
(* x (+ 1 (+ y (/ (* y z) x))))
(* x y)
(* x (+ y (/ (* y z) x)))
x
(* x (+ 1 (/ z x)))
(* -1 (* x (- (* -1 y) 1)))
(* -1 (* x (- (+ (* -1 y) (* -1 (/ (* y z) x))) 1)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* y z) x)))))
(* -1 (* x (- (* -1 (/ z x)) 1)))
(+ x (* y (+ x z)))
(* y (+ x z))
(* y (+ x (+ z (/ x y))))
(* -1 (* y (+ (* -1 (+ x z)) (* -1 (/ x y)))))
(+ x (* x y))
(+ x (+ (* x y) (* y z)))
(* z (+ y (+ (/ x z) (/ (* x y) z))))
(* z (+ y (/ (* x y) z)))
(* z (+ 1 (/ x z)))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ x (* x y)) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (* x y) z)))))
(* -1 (* z (- (* -1 (/ x z)) 1)))
Calls

9 calls:

TimeVariablePointExpression
0.0ms
y
@inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x) (+ x (* y (+ z x))) (* y (+ z x)))
0.0ms
y
@-inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x) (+ x (* y (+ z x))) (* y (+ z x)))
0.0ms
x
@-inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x) (+ x (* y (+ z x))) (* y (+ z x)))
0.0ms
z
@-inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x) (+ x (* y (+ z x))) (* y (+ z x)))
0.0ms
x
@inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x) (+ x (* y (+ z x))) (* y (+ z x)))

simplify0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
egg-herbie
Counts
27 → 5
Calls
Call 1
Inputs
(* y z)
(+ (* x (+ 1 y)) (* y z))
(+ (* x y) (* y z))
z
(+ x z)
(* x (+ 1 y))
(* x (+ 1 (+ y (/ (* y z) x))))
(* x y)
(* x (+ y (/ (* y z) x)))
x
(* x (+ 1 (/ z x)))
(* -1 (* x (- (* -1 y) 1)))
(* -1 (* x (- (+ (* -1 y) (* -1 (/ (* y z) x))) 1)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* y z) x)))))
(* -1 (* x (- (* -1 (/ z x)) 1)))
(+ x (* y (+ x z)))
(* y (+ x z))
(* y (+ x (+ z (/ x y))))
(* -1 (* y (+ (* -1 (+ x z)) (* -1 (/ x y)))))
(+ x (* x y))
(+ x (+ (* x y) (* y z)))
(* z (+ y (+ (/ x z) (/ (* x y) z))))
(* z (+ y (/ (* x y) z)))
(* z (+ 1 (/ x z)))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ x (* x y)) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (* x y) z)))))
(* -1 (* z (- (* -1 (/ x z)) 1)))
Outputs
(* y z)
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
(+ (* x (+ 1 y)) (* y z))
(*.f64 y (+.f64 z x))
(+ (* x y) (* y z))
(+.f64 z x)
z
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
(+ x z)
#s(approx (* y (+ z x)) (+.f64 z x))

rewrite0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Counts
5 → 5
Calls
Call 1
Inputs
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
(*.f64 y (+.f64 z x))
(+.f64 z x)
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
#s(approx (* y (+ z x)) (+.f64 z x))
Outputs
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
(*.f64 y (+.f64 z x))
(+.f64 z x)
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
#s(approx (* y (+ z x)) (+.f64 z x))

eval1.0ms (0.1%)

Memory
2.4MiB live, 2.4MiB allocated
Compiler

Compiled 191 to 23 computations (88% saved)

prune2.0ms (0.2%)

Memory
3.7MiB live, 3.7MiB allocated
Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New10111
Fresh000
Picked022
Done011
Total10414
Accuracy
100.0%
Counts
14 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 x (*.f64 y (+.f64 z x)))
7.8%
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
65.3%
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
28.3%
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
Compiler

Compiled 48 to 32 computations (33.3% saved)

simplify1.0ms (0.2%)

Memory
-38.2MiB live, 0.7MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 z x)
cost-diff0
#s(approx (* y (+ z x)) (+.f64 z x))
cost-diff0
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
Calls
Call 1
Inputs
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
#s(approx (* y (+ z x)) (+.f64 z x))
(+.f64 z x)
z
x
Outputs
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
#s(approx (* y (+ z x)) (+.f64 z x))
(+.f64 z x)
z
x

localize16.0ms (1.9%)

Memory
28.5MiB live, 28.5MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(+.f64 z x)
accuracy22.18557149101372
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
accuracy61.57631824156104
#s(approx (* y (+ z x)) (+.f64 z x))
Samples
11.0ms256×0valid
Compiler

Compiled 50 to 17 computations (66% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-add: 3.0ms (65.8% of total)
ival-mult: 2.0ms (43.9% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series2.0ms (0.3%)

Memory
4.7MiB live, 4.7MiB allocated
Counts
3 → 27
Calls
Call 1
Inputs
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
#s(approx (* y (+ z x)) (+.f64 z x))
(+.f64 z x)
Outputs
(* y z)
(+ (* x (+ 1 y)) (* y z))
(+ (* x y) (* y z))
z
(+ x z)
(* x (+ 1 y))
(* x (+ 1 (+ y (/ (* y z) x))))
(* x y)
(* x (+ y (/ (* y z) x)))
x
(* x (+ 1 (/ z x)))
(* -1 (* x (- (* -1 y) 1)))
(* -1 (* x (- (+ (* -1 y) (* -1 (/ (* y z) x))) 1)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* y z) x)))))
(* -1 (* x (- (* -1 (/ z x)) 1)))
(+ x (* y (+ x z)))
(* y (+ x z))
(* y (+ x (+ z (/ x y))))
(* -1 (* y (+ (* -1 (+ x z)) (* -1 (/ x y)))))
(+ x (* x y))
(+ x (+ (* x y) (* y z)))
(* z (+ y (+ (/ x z) (/ (* x y) z))))
(* z (+ y (/ (* x y) z)))
(* z (+ 1 (/ x z)))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ x (* x y)) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (* x y) z)))))
(* -1 (* z (- (* -1 (/ x z)) 1)))
Calls

9 calls:

TimeVariablePointExpression
0.0ms
y
@inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x))
0.0ms
y
@-inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x))
0.0ms
z
@-inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x))
0.0ms
x
@-inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x))
0.0ms
x
@inf
((+ x (* y (+ z x))) (* y (+ z x)) (+ z x))

simplify0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
egg-herbie
Counts
27 → 3
Calls
Call 1
Inputs
(* y z)
(+ (* x (+ 1 y)) (* y z))
(+ (* x y) (* y z))
z
(+ x z)
(* x (+ 1 y))
(* x (+ 1 (+ y (/ (* y z) x))))
(* x y)
(* x (+ y (/ (* y z) x)))
x
(* x (+ 1 (/ z x)))
(* -1 (* x (- (* -1 y) 1)))
(* -1 (* x (- (+ (* -1 y) (* -1 (/ (* y z) x))) 1)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* y z) x)))))
(* -1 (* x (- (* -1 (/ z x)) 1)))
(+ x (* y (+ x z)))
(* y (+ x z))
(* y (+ x (+ z (/ x y))))
(* -1 (* y (+ (* -1 (+ x z)) (* -1 (/ x y)))))
(+ x (* x y))
(+ x (+ (* x y) (* y z)))
(* z (+ y (+ (/ x z) (/ (* x y) z))))
(* z (+ y (/ (* x y) z)))
(* z (+ 1 (/ x z)))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ x (* x y)) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (* x y) z)))))
(* -1 (* z (- (* -1 (/ x z)) 1)))
Outputs
(* y z)
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
(+ (* x (+ 1 y)) (* y z))
#s(approx (* y (+ z x)) (+.f64 z x))
(+ (* x y) (* y z))
(+.f64 z x)

rewrite0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Counts
3 → 3
Calls
Call 1
Inputs
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
#s(approx (* y (+ z x)) (+.f64 z x))
(+.f64 z x)
Outputs
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
#s(approx (* y (+ z x)) (+.f64 z x))
(+.f64 z x)

eval0.0ms (0.1%)

Memory
0.7MiB live, 0.7MiB allocated
Compiler

Compiled 76 to 10 computations (86.8% saved)

prune3.0ms (0.3%)

Memory
4.6MiB live, 4.6MiB allocated
Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New404
Fresh000
Picked011
Done033
Total448
Accuracy
100.0%
Counts
8 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 x (*.f64 y (+.f64 z x)))
7.8%
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
65.3%
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
28.3%
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
Compiler

Compiled 96 to 45 computations (53.1% saved)

regimes9.0ms (1.1%)

Memory
-23.9MiB live, 15.0MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
(+.f64 x (*.f64 y (+.f64 z x)))
Outputs
(+.f64 x (*.f64 y (+.f64 z x)))
Calls

4 calls:

2.0ms
z
2.0ms
x
2.0ms
y
2.0ms
(+.f64 x (*.f64 y (+.f64 z x)))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1z
100.0%1(+.f64 x (*.f64 y (+.f64 z x)))
Compiler

Compiled 10 to 15 computations (-50% saved)

regimes7.0ms (0.8%)

Memory
13.7MiB live, 13.7MiB allocated
Counts
3 → 3
Calls
Call 1
Inputs
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
Outputs
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
#s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))
Calls

4 calls:

2.0ms
z
2.0ms
y
2.0ms
x
2.0ms
(+.f64 x (*.f64 y (+.f64 z x)))
Results
AccuracySegmentsBranch
67.5%2x
76.7%3y
65.3%1z
65.3%1(+.f64 x (*.f64 y (+.f64 z x)))
Compiler

Compiled 10 to 15 computations (-50% saved)

regimes8.0ms (1%)

Memory
-27.6MiB live, 11.9MiB allocated
Accuracy

Total -13.1b remaining (-28.5%)

Threshold costs -13.1b (-28.5%)

Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
(+.f64 x #s(approx (* y (+ z x)) (+.f64 z x)))
Outputs
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
Calls

4 calls:

4.0ms
(+.f64 x (*.f64 y (+.f64 z x)))
1.0ms
y
1.0ms
z
1.0ms
x
Results
AccuracySegmentsBranch
28.3%1(+.f64 x (*.f64 y (+.f64 z x)))
28.3%1z
28.3%1x
28.3%1y
Compiler

Compiled 10 to 15 computations (-50% saved)

bsearch19.0ms (2.3%)

Memory
24.7MiB live, 24.7MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
6.0ms
1.3057415618101103e-11
3.912574116237967e-11
11.0ms
-1.8545280709795258e-16
-2.3659089034217667e-21
Samples
9.0ms224×0valid
Compiler

Compiled 430 to 292 computations (32.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 4.0ms
ival-add: 2.0ms (48.8% of total)
ival-mult: 2.0ms (48.8% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify5.0ms (0.6%)

Memory
8.5MiB live, 8.5MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(+.f64 x (*.f64 y (+.f64 z x)))
(if (<=.f64 y #s(literal -571152654438831/10384593717069655257060992658440192 binary64)) #s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x))) (if (<=.f64 y #s(literal 4332790137498831/309485009821345068724781056 binary64)) #s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x))) #s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))))
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))
Outputs
(+.f64 x (*.f64 y (+.f64 z x)))
(if (<=.f64 y #s(literal -571152654438831/10384593717069655257060992658440192 binary64)) #s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x))) (if (<=.f64 y #s(literal 4332790137498831/309485009821345068724781056 binary64)) #s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x))) #s(approx (+ x (* y (+ z x))) (*.f64 y (+.f64 z x)))))
#s(approx (+ x (* y (+ z x))) #s(approx (* y (+ z x)) (+.f64 z x)))

soundness1.0ms (0.1%)

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

Compiled 75 to 18 computations (76% saved)

preprocess23.0ms (2.8%)

Memory
-4.1MiB live, 32.9MiB allocated
Compiler

Compiled 164 to 48 computations (70.7% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...