Language.Haskell.HsColour.ColourHighlight:unbase from hscolour-1.23

Time bar (total: 1.1s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
100%99.8%0%0.2%0%0%0%1
Compiler

Compiled 11 to 10 computations (9.1% saved)

sample681.0ms (64.6%)

Memory
39.8MiB live, 985.1MiB allocated
Samples
405.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 204.0ms
ival-mult: 124.0ms (60.7% of total)
ival-add: 71.0ms (34.7% of total)
ival-true: 6.0ms (2.9% of total)
ival-assert: 3.0ms (1.5% of total)
Bogosity

explain85.0ms (8.1%)

Memory
-15.3MiB live, 143.7MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(+.f64 (*.f64 x y) z)
00-0-(*.f64 (+.f64 (*.f64 x y) z) y)
00-0-y
00-0-t
00-0-z
00-0-(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
00-0-(*.f64 x y)
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
33.0ms512×0valid
Compiler

Compiled 97 to 36 computations (62.9% saved)

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

preprocess4.0ms (0.4%)

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

Compiled 9 to 8 computations (11.1% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 4 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
Compiler

Compiled 9 to 8 computations (11.1% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

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

localize20.0ms (1.9%)

Memory
-5.9MiB live, 32.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x y)
accuracy0.00390625
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
accuracy0.014872480164287516
(+.f64 (*.f64 x y) z)
accuracy0.078125
(*.f64 (+.f64 (*.f64 x y) z) y)
Samples
15.0ms256×0valid
Compiler

Compiled 58 to 18 computations (69% saved)

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

series8.0ms (0.7%)

Memory
13.4MiB live, 13.4MiB allocated
Counts
4 → 31
Calls
Call 1
Inputs
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
(*.f64 (+.f64 (*.f64 x y) z) y)
(+.f64 (*.f64 x y) z)
(*.f64 x y)
Outputs
(+ t (* y z))
(+ t (+ (* x (pow y 2)) (* y z)))
(* y z)
(+ (* x (pow y 2)) (* y z))
z
(+ z (* x y))
(* x y)
(* x (pow y 2))
(* x (+ (/ t x) (+ (/ (* y z) x) (pow y 2))))
(* x (+ (/ (* y z) x) (pow y 2)))
(* x (+ y (/ z x)))
(* -1 (* x (+ (* -1 (/ (+ t (* y z)) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 (/ (* y z) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ z x)))))
t
(+ t (* y (+ z (* x y))))
(* y (+ z (* x y)))
(* (pow y 2) (+ x (/ z y)))
(* (pow y 2) (+ x (+ (/ t (pow y 2)) (/ z y))))
(* y (+ x (/ z y)))
(* (pow y 2) (+ x (* -1 (/ (+ (* -1 z) (* -1 (/ t y))) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ z y)))))
(+ t (* x (pow y 2)))
(* z (+ y (+ (/ t z) (/ (* x (pow y 2)) z))))
(* z (+ y (/ (* x (pow y 2)) z)))
(* z (+ 1 (/ (* x y) z)))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ t (* x (pow y 2))) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (* x (pow y 2)) z)))))
(* -1 (* z (- (* -1 (/ (* x y) z)) 1)))
(* t (+ 1 (/ (* y (+ z (* x y))) t)))
(* -1 (* t (- (* -1 (/ (* y (+ z (* x y))) t)) 1)))
Calls

12 calls:

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

simplify0.0ms (0%)

Memory
0.7MiB live, 0.8MiB allocated
Algorithm
egg-herbie
Counts
31 → 4
Calls
Call 1
Inputs
(+ t (* y z))
(+ t (+ (* x (pow y 2)) (* y z)))
(* y z)
(+ (* x (pow y 2)) (* y z))
z
(+ z (* x y))
(* x y)
(* x (pow y 2))
(* x (+ (/ t x) (+ (/ (* y z) x) (pow y 2))))
(* x (+ (/ (* y z) x) (pow y 2)))
(* x (+ y (/ z x)))
(* -1 (* x (+ (* -1 (/ (+ t (* y z)) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 (/ (* y z) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ z x)))))
t
(+ t (* y (+ z (* x y))))
(* y (+ z (* x y)))
(* (pow y 2) (+ x (/ z y)))
(* (pow y 2) (+ x (+ (/ t (pow y 2)) (/ z y))))
(* y (+ x (/ z y)))
(* (pow y 2) (+ x (* -1 (/ (+ (* -1 z) (* -1 (/ t y))) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ z y)))))
(+ t (* x (pow y 2)))
(* z (+ y (+ (/ t z) (/ (* x (pow y 2)) z))))
(* z (+ y (/ (* x (pow y 2)) z)))
(* z (+ 1 (/ (* x y) z)))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ t (* x (pow y 2))) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (* x (pow y 2)) z)))))
(* -1 (* z (- (* -1 (/ (* x y) z)) 1)))
(* t (+ 1 (/ (* y (+ z (* x y))) t)))
(* -1 (* t (- (* -1 (/ (* y (+ z (* x y))) t)) 1)))
Outputs
(+ t (* y z))
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
(+ t (+ (* x (pow y 2)) (* y z)))
(*.f64 (+.f64 (*.f64 x y) z) y)
(* y z)
(+.f64 (*.f64 x y) z)
(+ (* x (pow y 2)) (* y z))
(*.f64 x y)

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
1.8MiB live, 1.8MiB allocated
Compiler

Compiled 100 to 18 computations (82% saved)

prune1.0ms (0.1%)

Memory
3.0MiB live, 3.0MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New538
Fresh000
Picked011
Done000
Total549
Accuracy
99.9%
Counts
9 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
33.0%
(+.f64 #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)) t)
39.8%
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
64.4%
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y))
Compiler

Compiled 54 to 41 computations (24.1% saved)

simplify1.0ms (0.1%)

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

Found 11 expressions of interest:

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

localize26.0ms (2.5%)

Memory
5.1MiB live, 43.5MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x y)
accuracy0.00390625
(+.f64 #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)) t)
accuracy0.014872480164287516
(+.f64 (*.f64 x y) z)
accuracy58.800402560419315
#s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))
accuracy0.0
(*.f64 x y)
accuracy0.00390625
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
accuracy56.01238691875246
#s(approx (* (+ (* x y) z) y) (*.f64 x y))
accuracy0.0
(*.f64 x y)
accuracy0.014872480164287516
(+.f64 (*.f64 x y) z)
accuracy0.078125
(*.f64 (+.f64 (*.f64 x y) z) y)
accuracy22.758327625217824
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y))
Samples
18.0ms256×0valid
Compiler

Compiled 184 to 26 computations (85.9% saved)

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

series6.0ms (0.6%)

Memory
-29.3MiB live, 9.5MiB allocated
Counts
8 → 31
Calls
Call 1
Inputs
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y))
(*.f64 (+.f64 (*.f64 x y) z) y)
(+.f64 (*.f64 x y) z)
(*.f64 x y)
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
#s(approx (* (+ (* x y) z) y) (*.f64 x y))
(+.f64 #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)) t)
#s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))
Outputs
(+ t (* y z))
(+ t (+ (* x (pow y 2)) (* y z)))
(* y z)
(+ (* x (pow y 2)) (* y z))
z
(+ z (* x y))
(* x y)
(* x (pow y 2))
(* x (+ (/ t x) (+ (/ (* y z) x) (pow y 2))))
(* x (+ (/ (* y z) x) (pow y 2)))
(* x (+ y (/ z x)))
(* -1 (* x (+ (* -1 (/ (+ t (* y z)) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 (/ (* y z) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ z x)))))
t
(+ t (* y (+ z (* x y))))
(* y (+ z (* x y)))
(* (pow y 2) (+ x (/ z y)))
(* (pow y 2) (+ x (+ (/ t (pow y 2)) (/ z y))))
(* y (+ x (/ z y)))
(* (pow y 2) (+ x (* -1 (/ (+ (* -1 z) (* -1 (/ t y))) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ z y)))))
(+ t (* x (pow y 2)))
(* z (+ y (+ (/ t z) (/ (* x (pow y 2)) z))))
(* z (+ y (/ (* x (pow y 2)) z)))
(* z (+ 1 (/ (* x y) z)))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ t (* x (pow y 2))) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (* x (pow y 2)) z)))))
(* -1 (* z (- (* -1 (/ (* x y) z)) 1)))
(* t (+ 1 (/ (* y (+ z (* x y))) t)))
(* -1 (* t (- (* -1 (/ (* y (+ z (* x y))) t)) 1)))
Calls

12 calls:

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

simplify0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Algorithm
egg-herbie
Counts
31 → 8
Calls
Call 1
Inputs
(+ t (* y z))
(+ t (+ (* x (pow y 2)) (* y z)))
(* y z)
(+ (* x (pow y 2)) (* y z))
z
(+ z (* x y))
(* x y)
(* x (pow y 2))
(* x (+ (/ t x) (+ (/ (* y z) x) (pow y 2))))
(* x (+ (/ (* y z) x) (pow y 2)))
(* x (+ y (/ z x)))
(* -1 (* x (+ (* -1 (/ (+ t (* y z)) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 (/ (* y z) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ z x)))))
t
(+ t (* y (+ z (* x y))))
(* y (+ z (* x y)))
(* (pow y 2) (+ x (/ z y)))
(* (pow y 2) (+ x (+ (/ t (pow y 2)) (/ z y))))
(* y (+ x (/ z y)))
(* (pow y 2) (+ x (* -1 (/ (+ (* -1 z) (* -1 (/ t y))) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ z y)))))
(+ t (* x (pow y 2)))
(* z (+ y (+ (/ t z) (/ (* x (pow y 2)) z))))
(* z (+ y (/ (* x (pow y 2)) z)))
(* z (+ 1 (/ (* x y) z)))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ t (* x (pow y 2))) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (* x (pow y 2)) z)))))
(* -1 (* z (- (* -1 (/ (* x y) z)) 1)))
(* t (+ 1 (/ (* y (+ z (* x y))) t)))
(* -1 (* t (- (* -1 (/ (* y (+ z (* x y))) t)) 1)))
Outputs
(+ t (* y z))
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y))
(+ t (+ (* x (pow y 2)) (* y z)))
(*.f64 (+.f64 (*.f64 x y) z) y)
(* y z)
(+.f64 (*.f64 x y) z)
(+ (* x (pow y 2)) (* y z))
(*.f64 x y)
z
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
(+ z (* x y))
#s(approx (* (+ (* x y) z) y) (*.f64 x y))
(* x y)
(+.f64 #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)) t)
(* x (pow y 2))
#s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))

rewrite0.0ms (0%)

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

eval2.0ms (0.2%)

Memory
4.5MiB live, 4.5MiB allocated
Compiler

Compiled 442 to 37 computations (91.6% saved)

prune3.0ms (0.3%)

Memory
6.1MiB live, 6.1MiB allocated
Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New16420
Fresh000
Picked123
Done011
Total17724
Accuracy
99.9%
Counts
24 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
39.8%
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
12.9%
(+.f64 #s(approx (* (+ (* x y) z) y) #s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t))) t)
64.4%
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y))
41.7%
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y))
8.1%
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
7.5%
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))
Compiler

Compiled 141 to 79 computations (44% saved)

simplify1.0ms (0.1%)

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

Found 15 expressions of interest:

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

localize30.0ms (2.8%)

Memory
9.5MiB live, 50.1MiB allocated
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(+.f64 #s(approx (* (+ (* x y) z) y) #s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t))) t)
accuracy56.01238691875246
#s(approx (* (+ (* x y) z) y) (*.f64 x y))
accuracy58.800402560419315
#s(approx (* (+ (* x y) z) y) #s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)))
accuracy58.841080305200805
#s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t))
accuracy0.078125
(*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y)
accuracy22.758327625217824
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y))
accuracy56.01238691875246
#s(approx (* (+ (* x y) z) y) (*.f64 x y))
accuracy58.800402560419315
#s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))
accuracy0.0
(*.f64 x y)
accuracy0.014872480164287516
(+.f64 (*.f64 x y) z)
accuracy22.758327625217824
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
accuracy58.800402560419315
#s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))
accuracy0.0
(*.f64 x y)
accuracy22.758327625217824
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))
accuracy56.01238691875246
#s(approx (* (+ (* x y) z) y) (*.f64 x y))
Samples
20.0ms256×0valid
Compiler

Compiled 396 to 31 computations (92.2% saved)

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

series7.0ms (0.7%)

Memory
-27.5MiB live, 10.8MiB allocated
Counts
13 → 31
Calls
Call 1
Inputs
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))
#s(approx (* (+ (* x y) z) y) (*.f64 x y))
(*.f64 x y)
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
#s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))
(+.f64 (*.f64 x y) z)
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y))
(*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y)
#s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))
(+.f64 #s(approx (* (+ (* x y) z) y) #s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t))) t)
#s(approx (* (+ (* x y) z) y) #s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)))
#s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t))
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
Outputs
(+ t (* y z))
(+ t (+ (* x (pow y 2)) (* y z)))
(* y z)
(+ (* x (pow y 2)) (* y z))
(* x y)
z
(+ z (* x y))
(* x (pow y 2))
(* x (+ (/ t x) (+ (/ (* y z) x) (pow y 2))))
(* x (+ (/ (* y z) x) (pow y 2)))
(* x (+ y (/ z x)))
(* -1 (* x (+ (* -1 (/ (+ t (* y z)) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 (/ (* y z) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ z x)))))
t
(+ t (* y (+ z (* x y))))
(* y (+ z (* x y)))
(* (pow y 2) (+ x (/ z y)))
(* (pow y 2) (+ x (+ (/ t (pow y 2)) (/ z y))))
(* y (+ x (/ z y)))
(* (pow y 2) (+ x (* -1 (/ (+ (* -1 z) (* -1 (/ t y))) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ z y)))))
(+ t (* x (pow y 2)))
(* z (+ y (+ (/ t z) (/ (* x (pow y 2)) z))))
(* z (+ y (/ (* x (pow y 2)) z)))
(* z (+ 1 (/ (* x y) z)))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ t (* x (pow y 2))) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (* x (pow y 2)) z)))))
(* -1 (* z (- (* -1 (/ (* x y) z)) 1)))
(* t (+ 1 (/ (* y (+ z (* x y))) t)))
(* -1 (* t (- (* -1 (/ (* y (+ z (* x y))) t)) 1)))
Calls

12 calls:

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

simplify1.0ms (0.1%)

Memory
1.0MiB live, 1.0MiB allocated
Algorithm
egg-herbie
Counts
31 → 13
Calls
Call 1
Inputs
(+ t (* y z))
(+ t (+ (* x (pow y 2)) (* y z)))
(* y z)
(+ (* x (pow y 2)) (* y z))
(* x y)
z
(+ z (* x y))
(* x (pow y 2))
(* x (+ (/ t x) (+ (/ (* y z) x) (pow y 2))))
(* x (+ (/ (* y z) x) (pow y 2)))
(* x (+ y (/ z x)))
(* -1 (* x (+ (* -1 (/ (+ t (* y z)) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 (/ (* y z) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ z x)))))
t
(+ t (* y (+ z (* x y))))
(* y (+ z (* x y)))
(* (pow y 2) (+ x (/ z y)))
(* (pow y 2) (+ x (+ (/ t (pow y 2)) (/ z y))))
(* y (+ x (/ z y)))
(* (pow y 2) (+ x (* -1 (/ (+ (* -1 z) (* -1 (/ t y))) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ z y)))))
(+ t (* x (pow y 2)))
(* z (+ y (+ (/ t z) (/ (* x (pow y 2)) z))))
(* z (+ y (/ (* x (pow y 2)) z)))
(* z (+ 1 (/ (* x y) z)))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ t (* x (pow y 2))) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (* x (pow y 2)) z)))))
(* -1 (* z (- (* -1 (/ (* x y) z)) 1)))
(* t (+ 1 (/ (* y (+ z (* x y))) t)))
(* -1 (* t (- (* -1 (/ (* y (+ z (* x y))) t)) 1)))
Outputs
(+ t (* y z))
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))
(+ t (+ (* x (pow y 2)) (* y z)))
#s(approx (* (+ (* x y) z) y) (*.f64 x y))
(* y z)
(*.f64 x y)
(+ (* x (pow y 2)) (* y z))
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
(* x y)
#s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))
z
(+.f64 (*.f64 x y) z)
(+ z (* x y))
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y))
(* x (pow y 2))
(*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y)
(* x (+ (/ t x) (+ (/ (* y z) x) (pow y 2))))
#s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))
(* x (+ (/ (* y z) x) (pow y 2)))
(+.f64 #s(approx (* (+ (* x y) z) y) #s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t))) t)
(* x (+ y (/ z x)))
#s(approx (* (+ (* x y) z) y) #s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)))
(* -1 (* x (+ (* -1 (/ (+ t (* y z)) x)) (* -1 (pow y 2)))))
#s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t))
(* -1 (* x (+ (* -1 (/ (* y z) x)) (* -1 (pow y 2)))))
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)

rewrite1.0ms (0.1%)

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

eval4.0ms (0.4%)

Memory
7.4MiB live, 7.4MiB allocated
Compiler

Compiled 1 257 to 73 computations (94.2% saved)

prune5.0ms (0.5%)

Memory
9.7MiB live, 9.7MiB allocated
Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New36137
Fresh000
Picked044
Done033
Total36844
Accuracy
99.9%
Counts
44 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
39.8%
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
12.9%
(+.f64 #s(approx (* (+ (* x y) z) y) #s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t))) t)
64.4%
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y))
41.7%
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y))
8.1%
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
8.1%
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 #s(approx (* x y) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))) z)))
7.5%
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))
Compiler

Compiled 178 to 94 computations (47.2% saved)

simplify1.0ms (0%)

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

Found 4 expressions of interest:

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

localize21.0ms (2%)

Memory
-5.2MiB live, 33.0MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy22.758327625217824
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 #s(approx (* x y) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))) z)))
accuracy56.01238691875246
#s(approx (* x y) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
accuracy58.800402560419315
#s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))
accuracy58.800402560419315
#s(approx (* (+ (* x y) z) y) (+.f64 #s(approx (* x y) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))) z))
Samples
14.0ms256×0valid
Compiler

Compiled 168 to 25 computations (85.1% saved)

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

series4.0ms (0.4%)

Memory
8.0MiB live, 8.0MiB allocated
Counts
5 → 31
Calls
Call 1
Inputs
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 #s(approx (* x y) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))) z)))
#s(approx (* (+ (* x y) z) y) (+.f64 #s(approx (* x y) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))) z))
(+.f64 #s(approx (* x y) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))) z)
#s(approx (* x y) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
#s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))
Outputs
(+ t (* y z))
(+ t (+ (* x (pow y 2)) (* y z)))
(* y z)
(+ (* x (pow y 2)) (* y z))
z
(+ z (* x y))
(* x y)
(* x (pow y 2))
(* x (+ (/ t x) (+ (/ (* y z) x) (pow y 2))))
(* x (+ (/ (* y z) x) (pow y 2)))
(* x (+ y (/ z x)))
(* -1 (* x (+ (* -1 (/ (+ t (* y z)) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 (/ (* y z) x)) (* -1 (pow y 2)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ z x)))))
t
(+ t (* y (+ z (* x y))))
(* y (+ z (* x y)))
(* (pow y 2) (+ x (/ z y)))
(* (pow y 2) (+ x (+ (/ t (pow y 2)) (/ z y))))
(* y (+ x (/ z y)))
(* (pow y 2) (+ x (* -1 (/ (+ (* -1 z) (* -1 (/ t y))) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ z y)))))
(+ t (* x (pow y 2)))
(* z (+ y (+ (/ t z) (/ (* x (pow y 2)) z))))
(* z (+ y (/ (* x (pow y 2)) z)))
(* z (+ 1 (/ (* x y) z)))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ t (* x (pow y 2))) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (* x (pow y 2)) z)))))
(* -1 (* z (- (* -1 (/ (* x y) z)) 1)))
(* t (+ 1 (/ (* y (+ z (* x y))) t)))
(* -1 (* t (- (* -1 (/ (* y (+ z (* x y))) t)) 1)))
Calls

12 calls:

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

simplify0.0ms (0%)

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

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
2.1MiB live, 2.1MiB allocated
Compiler

Compiled 304 to 21 computations (93.1% saved)

prune4.0ms (0.4%)

Memory
9.2MiB live, 9.2MiB allocated
Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New808
Fresh000
Picked011
Done077
Total8816
Accuracy
99.9%
Counts
16 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
39.8%
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
12.9%
(+.f64 #s(approx (* (+ (* x y) z) y) #s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t))) t)
64.4%
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y))
41.7%
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y))
8.1%
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
8.1%
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 #s(approx (* x y) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))) z)))
7.5%
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))
Compiler

Compiled 371 to 123 computations (66.8% saved)

regimes24.0ms (2.3%)

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

6 calls:

6.0ms
(*.f64 (+.f64 (*.f64 x y) z) y)
4.0ms
t
4.0ms
z
3.0ms
x
3.0ms
y
Results
AccuracySegmentsBranch
99.9%1x
99.9%1y
99.9%1z
99.9%1t
99.9%1(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
99.9%1(*.f64 (+.f64 (*.f64 x y) z) y)
Compiler

Compiled 20 to 31 computations (-55% saved)

regimes25.0ms (2.4%)

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

6 calls:

9.0ms
(*.f64 (+.f64 (*.f64 x y) z) y)
3.0ms
t
3.0ms
z
3.0ms
x
3.0ms
y
Results
AccuracySegmentsBranch
64.4%1x
82.1%3y
68.0%3z
73.7%3t
69.7%3(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
86.2%3(*.f64 (+.f64 (*.f64 x y) z) y)
Compiler

Compiled 20 to 31 computations (-55% saved)

regimes13.0ms (1.2%)

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

4 calls:

4.0ms
y
3.0ms
t
3.0ms
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
3.0ms
(*.f64 (+.f64 (*.f64 x y) z) y)
Results
AccuracySegmentsBranch
60.6%3(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
54.8%3t
65.5%3y
68.1%3(*.f64 (+.f64 (*.f64 x y) z) y)
Compiler

Compiled 18 to 23 computations (-27.8% saved)

regimes11.0ms (1.1%)

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

6 calls:

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

Compiled 20 to 31 computations (-55% saved)

regimes11.0ms (1%)

Memory
-17.7MiB live, 20.7MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
Outputs
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
Calls

6 calls:

3.0ms
z
1.0ms
y
1.0ms
x
1.0ms
t
1.0ms
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
Results
AccuracySegmentsBranch
8.1%1(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
8.1%1(*.f64 (+.f64 (*.f64 x y) z) y)
8.1%1t
8.1%1x
8.1%1y
8.1%1z
Compiler

Compiled 20 to 31 computations (-55% saved)

regimes7.0ms (0.7%)

Memory
17.0MiB live, 17.0MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

6 calls:

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

Compiled 20 to 31 computations (-55% saved)

bsearch1.0ms (0.1%)

Memory
1.1MiB live, 1.1MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.2713457711048127e+43
4.974780287350317e+50
0.0ms
-1.93023037780612e+44
-3.748126160734243e+41
Compiler

Compiled 12 to 15 computations (-25% saved)

bsearch1.0ms (0.1%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.991716292734747e+85
9.053294414062235e+89
0.0ms
-1.4652453325622524e+67
-1.93023037780612e+44
Compiler

Compiled 12 to 15 computations (-25% saved)

simplify6.0ms (0.6%)

Memory
-28.1MiB live, 10.5MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
(if (<=.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal -100000000000000008821361405306422640701865984 binary64)) #s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y)) (if (<=.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal 20000000000000000278744233918828198261424128 binary64)) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t) #s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y))))
(if (<=.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal -9999999999999999827367757839185598317239782875580932278577147150336 binary64)) #s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y)) (if (<=.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal 50000000000000000731534761533743651548502149393232752963930539358489818212557410795520 binary64)) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t) #s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y))))
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))
Outputs
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
(if (<=.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal -100000000000000008821361405306422640701865984 binary64)) #s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y)) (if (<=.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal 20000000000000000278744233918828198261424128 binary64)) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t) #s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y))))
(if (<=.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal -9999999999999999827367757839185598317239782875580932278577147150336 binary64)) #s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y)) (if (<=.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal 50000000000000000731534761533743651548502149393232752963930539358489818212557410795520 binary64)) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t) #s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y))))
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))

soundness1.0ms (0.1%)

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

Compiled 224 to 33 computations (85.3% saved)

preprocess34.0ms (3.2%)

Memory
21.7MiB live, 61.5MiB allocated
Compiler

Compiled 466 to 82 computations (82.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...