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

Time bar (total: 1.0s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0%)

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

sample632.0ms (61.2%)

Memory
56.9MiB live, 901.3MiB allocated
Samples
398.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 197.0ms
ival-mult: 114.0ms (57.7% of total)
ival-add: 75.0ms (38% of total)
ival-true: 5.0ms (2.5% of total)
ival-assert: 3.0ms (1.5% of total)
Bogosity

explain85.0ms (8.2%)

Memory
3.0MiB live, 121.8MiB 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
28.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 (59% of total)
ival-add: 4.0ms (33.7% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess4.0ms (0.4%)

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

prune2.0ms (0.2%)

Memory
-37.4MiB live, 0.7MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.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

localize18.0ms (1.8%)

Memory
27.0MiB live, 27.0MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
accuracy0.0
(*.f64 x y)
accuracy0.0078125
(+.f64 (*.f64 x y) z)
accuracy0.0546875
(*.f64 (+.f64 (*.f64 x y) z) y)
Samples
13.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 (52.2% of total)
ival-add: 2.0ms (34.8% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series8.0ms (0.7%)

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

rewrite2.0ms (0.2%)

Memory
-39.5MiB live, 0.7MiB 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.6MiB live, 1.6MiB allocated
Compiler

Compiled 100 to 18 computations (82% saved)

prune1.0ms (0.1%)

Memory
2.6MiB live, 2.6MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New538
Fresh000
Picked011
Done000
Total549
Accuracy
100.0%
Counts
9 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
33.4%
(+.f64 #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)) t)
40.4%
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
65.7%
#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.0MiB live, 1.0MiB 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

localize25.0ms (2.4%)

Memory
-1.9MiB live, 36.2MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(+.f64 #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)) t)
accuracy0.0
(*.f64 x y)
accuracy0.0078125
(+.f64 (*.f64 x y) z)
accuracy56.866625643445346
#s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))
accuracy0.0
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
accuracy0.0
(*.f64 x y)
accuracy54.72677381061764
#s(approx (* (+ (* x y) z) y) (*.f64 x y))
accuracy0.0
(*.f64 x y)
accuracy0.0078125
(+.f64 (*.f64 x y) z)
accuracy0.0546875
(*.f64 (+.f64 (*.f64 x y) z) y)
accuracy21.935399810401556
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y))
Samples
16.0ms256×0valid
Compiler

Compiled 184 to 26 computations (85.9% saved)

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

series5.0ms (0.5%)

Memory
8.2MiB live, 8.2MiB 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
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))
1.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))
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
@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))

simplify0.0ms (0%)

Memory
0.8MiB live, 0.8MiB 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, 0.9MiB 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
3.8MiB live, 3.8MiB allocated
Compiler

Compiled 442 to 37 computations (91.6% saved)

prune3.0ms (0.3%)

Memory
5.3MiB live, 5.3MiB allocated
Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New16420
Fresh000
Picked123
Done011
Total17724
Accuracy
100.0%
Counts
24 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
40.4%
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
15.6%
(+.f64 #s(approx (* (+ (* x y) z) y) #s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t))) t)
65.7%
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y))
44.0%
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y))
10.8%
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
10.6%
#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.5MiB live, 1.5MiB 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

localize29.0ms (2.8%)

Memory
4.9MiB live, 42.8MiB allocated
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x y)
accuracy54.72677381061764
#s(approx (* (+ (* x y) z) y) (*.f64 x y))
accuracy56.866625643445346
#s(approx (* (+ (* x y) z) y) #s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)))
accuracy57.0726888470435
#s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t))
accuracy0.0546875
(*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y)
accuracy21.935399810401556
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y))
accuracy54.72677381061764
#s(approx (* (+ (* x y) z) y) (*.f64 x y))
accuracy56.866625643445346
#s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))
accuracy0.0
(*.f64 x y)
accuracy0.0078125
(+.f64 (*.f64 x y) z)
accuracy21.935399810401556
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
accuracy56.866625643445346
#s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))
accuracy0.0
(*.f64 x y)
accuracy21.935399810401556
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (*.f64 x y)))
accuracy54.72677381061764
#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.9% of total)
ival-add: 2.0ms (34% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series6.0ms (0.6%)

Memory
10.1MiB live, 10.1MiB 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
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))
0.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))

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)

eval5.0ms (0.5%)

Memory
-31.4MiB live, 6.8MiB allocated
Compiler

Compiled 1 257 to 73 computations (94.2% saved)

prune5.0ms (0.5%)

Memory
9.3MiB live, 9.3MiB allocated
Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New36137
Fresh000
Picked044
Done033
Total36844
Accuracy
100.0%
Counts
44 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
40.4%
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
15.6%
(+.f64 #s(approx (* (+ (* x y) z) y) #s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t))) t)
65.7%
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y))
44.0%
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y))
10.8%
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
10.8%
#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)))
10.6%
#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.1%)

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

localize27.0ms (2.6%)

Memory
-13.8MiB live, 29.6MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy21.935399810401556
#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)))
accuracy54.72677381061764
#s(approx (* x y) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
accuracy56.866625643445346
#s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z))
accuracy56.866625643445346
#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.1% of total)
ival-add: 2.0ms (34.1% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series4.0ms (0.4%)

Memory
7.0MiB live, 7.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
1.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
@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))

simplify0.0ms (0%)

Memory
0.8MiB live, 0.8MiB 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.7MiB live, 0.7MiB 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
1.8MiB live, 1.8MiB allocated
Compiler

Compiled 304 to 21 computations (93.1% saved)

prune4.0ms (0.4%)

Memory
7.1MiB live, 7.1MiB allocated
Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New808
Fresh000
Picked011
Done077
Total8816
Accuracy
100.0%
Counts
16 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
40.4%
(+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t)
15.6%
(+.f64 #s(approx (* (+ (* x y) z) y) #s(approx (+ (* x y) z) (+.f64 #s(approx (* (+ (* x y) z) y) (*.f64 x y)) t))) t)
65.7%
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 (+.f64 (*.f64 x y) z) y))
44.0%
#s(approx (+ (* (+ (* x y) z) y) t) (*.f64 #s(approx (+ (* x y) z) #s(approx (* (+ (* x y) z) y) (*.f64 x y))) y))
10.8%
#s(approx (+ (* (+ (* x y) z) y) t) #s(approx (* (+ (* x y) z) y) (+.f64 (*.f64 x y) z)))
10.8%
#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)))
10.6%
#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)

regimes22.0ms (2.2%)

Memory
-3.2MiB live, 35.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:

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

Compiled 20 to 31 computations (-55% saved)

regimes20.0ms (2%)

Memory
-5.6MiB live, 32.9MiB 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:

4.0ms
y
3.0ms
t
3.0ms
x
3.0ms
z
3.0ms
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
Results
AccuracySegmentsBranch
65.7%1x
77.9%3y
68.8%3z
72.4%3t
69.2%3(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
82.7%3(*.f64 (+.f64 (*.f64 x y) z) y)
Compiler

Compiled 20 to 31 computations (-55% saved)

regimes17.0ms (1.7%)

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

6 calls:

3.0ms
z
3.0ms
t
3.0ms
x
3.0ms
y
3.0ms
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
Results
AccuracySegmentsBranch
53.7%3x
46.0%2z
59.7%3(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
54.9%3t
66.8%3y
66.5%3(*.f64 (+.f64 (*.f64 x y) z) y)
Compiler

Compiled 20 to 31 computations (-55% saved)

regimes12.0ms (1.2%)

Memory
-17.2MiB live, 21.3MiB 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:

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

Compiled 20 to 31 computations (-55% saved)

regimes9.0ms (0.9%)

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

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

Compiled 20 to 31 computations (-55% saved)

regimes9.0ms (0.9%)

Memory
-23.9MiB live, 16.2MiB 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:

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

Compiled 20 to 31 computations (-55% saved)

bsearch1.0ms (0.1%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.5692080746832804e+42
1.102415853060851e+55
0.0ms
-5.903356168256009e-127
-2.2325353000843504e-152
Compiler

Compiled 12 to 15 computations (-25% saved)

bsearch28.0ms (2.7%)

Memory
-1.1MiB live, 37.2MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
13.0ms
0.0011968342119474387
113.2301733485463
13.0ms
-1.6544348191384587e-40
-3.2859170431517656e-50
Samples
15.0ms304×0valid
Compiler

Compiled 810 to 490 computations (39.5% saved)

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

simplify5.0ms (0.5%)

Memory
9.9MiB live, 9.9MiB 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 -3048582568667961/6097165137335922326917182089439777940915230747392521779021790936768304177382354726797472857545882756171536974846497310342671827498609932238848 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 2000000000000000089771425356151833571098624 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 y #s(literal -4896139353601611/12554203470773361527671578846415332832204710888928069025792 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 y #s(literal 5404319552844595/4503599627370496 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 -3048582568667961/6097165137335922326917182089439777940915230747392521779021790936768304177382354726797472857545882756171536974846497310342671827498609932238848 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 2000000000000000089771425356151833571098624 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 y #s(literal -4896139353601611/12554203470773361527671578846415332832204710888928069025792 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 y #s(literal 5404319552844595/4503599627370496 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.7MiB live, 2.7MiB allocated
Stop Event
done
Compiler

Compiled 212 to 33 computations (84.4% saved)

preprocess31.0ms (3%)

Memory
15.0MiB live, 53.1MiB allocated
Compiler

Compiled 442 to 82 computations (81.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...