Graphics.Rasterific.CubicBezier:cachedBezierAt from Rasterific-0.6.1

Time bar (total: 1.7s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze1.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.7%0.3%0%0%0%0
100%99.7%0%0.3%0%0%0%1
Compiler

Compiled 17 to 15 computations (11.8% saved)

sample918.0ms (55.3%)

Memory
24.3MiB live, 1 302.5MiB allocated
Samples
589.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 348.0ms
ival-mult: 218.0ms (62.7% of total)
ival-add: 121.0ms (34.8% of total)
ival-true: 5.0ms (1.4% of total)
ival-assert: 3.0ms (0.9% of total)
Bogosity

explain161.0ms (9.7%)

Memory
-27.7MiB live, 253.5MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
221(-7.45129845515544e+44 2.2426653820370577e+207 2.7350803689894027e-300 1.9867682266428453e-134 2.1144305182718998e-163 1.9481058473595922e+139)0-(*.f64 (*.f64 a z) b)
100-0-(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
10-0-(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
00-0-(+.f64 x (*.f64 y z))
00-0-a
00-0-t
00-0-z
00-0-y
00-0-(*.f64 a z)
00-0-b
00-0-(*.f64 y z)
00-0-(*.f64 t a)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
*.f64(*.f64 (*.f64 a z) b)n*o110
+.f64(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))nan-rescue100
(+.f64 x (*.f64 y z))overflow32
(*.f64 y z)overflow32
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))overflow60
(*.f64 t a)overflow30
(*.f64 a z)overflow38
(*.f64 (*.f64 a z) b)overflow41
+.f64(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))nan-rescue10
(+.f64 x (*.f64 y z))overflow32
(*.f64 y z)overflow32
(*.f64 t a)overflow30
Confusion
Predicted +Predicted -
+180
-3235
Precision
0.8571428571428571
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+1800
-30235
Precision?
0.8571428571428571
Recall?
1.0
Freqs
test
numberfreq
0235
120
21
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
52.0ms512×0valid
Compiler

Compiled 166 to 56 computations (66.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 23.0ms
ival-mult: 13.0ms (56.2% of total)
ival-add: 10.0ms (43.3% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess5.0ms (0.3%)

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

Compiled 15 to 13 computations (13.3% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 6 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 15 to 13 computations (13.3% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

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

localize30.0ms (1.8%)

Memory
7.6MiB live, 45.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0078125
(+.f64 x (*.f64 y z))
accuracy0.19921875000000003
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
accuracy2.304675114981235
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
accuracy4.692619530280376
(*.f64 (*.f64 a z) b)
Samples
23.0ms256×0valid
Compiler

Compiled 100 to 28 computations (72% saved)

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

series21.0ms (1.3%)

Memory
-16.1MiB live, 26.6MiB allocated
Counts
5 → 46
Calls
Call 1
Inputs
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
(+.f64 x (*.f64 y z))
(*.f64 y z)
(*.f64 (*.f64 a z) b)
Outputs
(+ (* a t) (+ (* a (* b z)) (* y z)))
(+ x (+ (* a t) (+ (* a (* b z)) (* y z))))
(+ (* a t) (* y z))
(+ x (+ (* a t) (* y z)))
(* y z)
(+ x (* y z))
x
(* x (+ 1 (+ (/ (* a t) x) (+ (/ (* a (* b z)) x) (/ (* y z) x)))))
(* x (+ 1 (+ (/ (* a t) x) (/ (* y z) x))))
(* x (+ 1 (/ (* y z) x)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (+ (* a (* b z)) (* y z))) x)) 1)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (* y z)) x)) 1)))
(* -1 (* x (- (* -1 (/ (* y z) x)) 1)))
(+ x (+ (* a t) (* a (* b z))))
(+ x (* a t))
(* y (+ z (+ (/ x y) (+ (/ (* a t) y) (/ (* a (* b z)) y)))))
(* y (+ z (+ (/ x y) (/ (* a t) y))))
(* y (+ z (/ x y)))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (+ (* a t) (* a (* b z)))) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (* a t)) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ x y)))))
(+ x (+ (* a t) (* z (+ y (* a b)))))
(* a (* b z))
(* z (+ y (* a b)))
(* z (+ y (+ (* a b) (+ (/ x z) (/ (* a t) z)))))
(* z (+ y (+ (/ x z) (/ (* a t) z))))
(* z (+ y (/ x z)))
(* -1 (* z (+ (* -1 y) (* -1 (* a b)))))
(* -1 (* z (+ (* -1 y) (+ (* -1 (* a b)) (* -1 (/ (+ x (* a t)) z))))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ x (* a t)) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ x z)))))
(+ x (+ (* a (* b z)) (* y z)))
(* a t)
(* t (+ a (+ (/ x t) (+ (/ (* a (* b z)) t) (/ (* y z) t)))))
(* t (+ a (+ (/ x t) (/ (* y z) t))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (+ (* a (* b z)) (* y z))) t)))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (* y z)) t)))))
(+ x (+ (* a (+ t (* b z))) (* y z)))
(* a (+ t (* b z)))
(* a (+ t (+ (* b z) (+ (/ x a) (/ (* y z) a)))))
(* a (+ t (+ (/ x a) (/ (* y z) a))))
(* -1 (* a (+ (* -1 t) (* -1 (* b z)))))
(* -1 (* a (+ (* -1 t) (+ (* -1 (* b z)) (* -1 (/ (+ x (* y z)) a))))))
(* -1 (* a (+ (* -1 t) (* -1 (/ (+ x (* y z)) a)))))
(* b (+ (* a z) (+ (/ x b) (+ (/ (* a t) b) (/ (* y z) b)))))
(* -1 (* b (+ (* -1 (* a z)) (* -1 (/ (+ x (+ (* a t) (* y z))) b)))))
Calls

18 calls:

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

simplify1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated
Algorithm
egg-herbie
Counts
46 → 5
Calls
Call 1
Inputs
(+ (* a t) (+ (* a (* b z)) (* y z)))
(+ x (+ (* a t) (+ (* a (* b z)) (* y z))))
(+ (* a t) (* y z))
(+ x (+ (* a t) (* y z)))
(* y z)
(+ x (* y z))
x
(* x (+ 1 (+ (/ (* a t) x) (+ (/ (* a (* b z)) x) (/ (* y z) x)))))
(* x (+ 1 (+ (/ (* a t) x) (/ (* y z) x))))
(* x (+ 1 (/ (* y z) x)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (+ (* a (* b z)) (* y z))) x)) 1)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (* y z)) x)) 1)))
(* -1 (* x (- (* -1 (/ (* y z) x)) 1)))
(+ x (+ (* a t) (* a (* b z))))
(+ x (* a t))
(* y (+ z (+ (/ x y) (+ (/ (* a t) y) (/ (* a (* b z)) y)))))
(* y (+ z (+ (/ x y) (/ (* a t) y))))
(* y (+ z (/ x y)))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (+ (* a t) (* a (* b z)))) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (* a t)) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ x y)))))
(+ x (+ (* a t) (* z (+ y (* a b)))))
(* a (* b z))
(* z (+ y (* a b)))
(* z (+ y (+ (* a b) (+ (/ x z) (/ (* a t) z)))))
(* z (+ y (+ (/ x z) (/ (* a t) z))))
(* z (+ y (/ x z)))
(* -1 (* z (+ (* -1 y) (* -1 (* a b)))))
(* -1 (* z (+ (* -1 y) (+ (* -1 (* a b)) (* -1 (/ (+ x (* a t)) z))))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ x (* a t)) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ x z)))))
(+ x (+ (* a (* b z)) (* y z)))
(* a t)
(* t (+ a (+ (/ x t) (+ (/ (* a (* b z)) t) (/ (* y z) t)))))
(* t (+ a (+ (/ x t) (/ (* y z) t))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (+ (* a (* b z)) (* y z))) t)))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (* y z)) t)))))
(+ x (+ (* a (+ t (* b z))) (* y z)))
(* a (+ t (* b z)))
(* a (+ t (+ (* b z) (+ (/ x a) (/ (* y z) a)))))
(* a (+ t (+ (/ x a) (/ (* y z) a))))
(* -1 (* a (+ (* -1 t) (* -1 (* b z)))))
(* -1 (* a (+ (* -1 t) (+ (* -1 (* b z)) (* -1 (/ (+ x (* y z)) a))))))
(* -1 (* a (+ (* -1 t) (* -1 (/ (+ x (* y z)) a)))))
(* b (+ (* a z) (+ (/ x b) (+ (/ (* a t) b) (/ (* y z) b)))))
(* -1 (* b (+ (* -1 (* a z)) (* -1 (/ (+ x (+ (* a t) (* y z))) b)))))
Outputs
(+ (* a t) (+ (* a (* b z)) (* y z)))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+ x (+ (* a t) (+ (* a (* b z)) (* y z))))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
(+ (* a t) (* y z))
(+.f64 x (*.f64 y z))
(+ x (+ (* a t) (* y z)))
(*.f64 y z)
(* y z)
(*.f64 (*.f64 a z) b)

rewrite0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Counts
5 → 5
Calls
Call 1
Inputs
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
(+.f64 x (*.f64 y z))
(*.f64 y z)
(*.f64 (*.f64 a z) b)
Outputs
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
(+.f64 x (*.f64 y z))
(*.f64 y z)
(*.f64 (*.f64 a z) b)

eval1.0ms (0.1%)

Memory
2.7MiB live, 2.7MiB allocated
Compiler

Compiled 192 to 29 computations (84.9% saved)

prune2.0ms (0.1%)

Memory
3.7MiB live, 3.7MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New6410
Fresh000
Picked011
Done000
Total6511
Accuracy
98.9%
Counts
11 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
93.1%
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
37.8%
(+.f64 (+.f64 #s(approx (+ x (* y z)) (*.f64 (*.f64 a z) b)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
74.5%
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))) (*.f64 (*.f64 a z) b))
49.8%
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)) (*.f64 (*.f64 a z) b))
78.6%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)))
Compiler

Compiled 101 to 76 computations (24.8% saved)

simplify1.0ms (0.1%)

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

Found 16 expressions of interest:

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

localize44.0ms (2.7%)

Memory
7.5MiB live, 83.0MiB allocated
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
accuracy0.19921875000000003
(+.f64 #s(approx (+ x (* y z)) (*.f64 (*.f64 a z) b)) (*.f64 t a))
accuracy2.304675114981235
(+.f64 (+.f64 #s(approx (+ x (* y z)) (*.f64 (*.f64 a z) b)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
accuracy4.692619530280376
(*.f64 (*.f64 a z) b)
accuracy60.47355660660799
#s(approx (+ x (* y z)) (*.f64 (*.f64 a z) b))
accuracy0.0078125
(+.f64 x (*.f64 y z))
accuracy2.304675114981235
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))) (*.f64 (*.f64 a z) b))
accuracy4.692619530280376
(*.f64 (*.f64 a z) b)
accuracy20.026025225689466
#s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z)))
accuracy0.0
(*.f64 a z)
accuracy2.304675114981235
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)) (*.f64 (*.f64 a z) b))
accuracy4.692619530280376
(*.f64 (*.f64 a z) b)
accuracy38.92579587180625
#s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))
accuracy0.0
(*.f64 t a)
accuracy0.0078125
(+.f64 x (*.f64 y z))
accuracy0.19921875000000003
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
accuracy13.704116835724504
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)))
Samples
31.0ms256×0valid
Compiler

Compiled 386 to 42 computations (89.1% saved)

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

series19.0ms (1.1%)

Memory
11.1MiB live, 49.8MiB allocated
Counts
14 → 47
Calls
Call 1
Inputs
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
(+.f64 x (*.f64 y z))
(*.f64 y z)
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)) (*.f64 (*.f64 a z) b))
#s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))
(*.f64 (*.f64 a z) b)
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))) (*.f64 (*.f64 a z) b))
#s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z)))
(+.f64 (+.f64 #s(approx (+ x (* y z)) (*.f64 (*.f64 a z) b)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 #s(approx (+ x (* y z)) (*.f64 (*.f64 a z) b)) (*.f64 t a))
#s(approx (+ x (* y z)) (*.f64 (*.f64 a z) b))
(*.f64 t a)
(*.f64 a z)
Outputs
(+ (* a t) (+ (* a (* b z)) (* y z)))
(+ x (+ (* a t) (+ (* a (* b z)) (* y z))))
(+ (* a t) (* y z))
(+ x (+ (* a t) (* y z)))
(* y z)
(+ x (* y z))
x
(* x (+ 1 (+ (/ (* a t) x) (+ (/ (* a (* b z)) x) (/ (* y z) x)))))
(* x (+ 1 (+ (/ (* a t) x) (/ (* y z) x))))
(* x (+ 1 (/ (* y z) x)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (+ (* a (* b z)) (* y z))) x)) 1)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (* y z)) x)) 1)))
(* -1 (* x (- (* -1 (/ (* y z) x)) 1)))
(+ x (+ (* a t) (* a (* b z))))
(+ x (* a t))
(* y (+ z (+ (/ x y) (+ (/ (* a t) y) (/ (* a (* b z)) y)))))
(* y (+ z (+ (/ x y) (/ (* a t) y))))
(* y (+ z (/ x y)))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (+ (* a t) (* a (* b z)))) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (* a t)) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ x y)))))
(+ x (+ (* a t) (* z (+ y (* a b)))))
(* a (* b z))
(* a z)
(* z (+ y (* a b)))
(* z (+ y (+ (* a b) (+ (/ x z) (/ (* a t) z)))))
(* z (+ y (+ (/ x z) (/ (* a t) z))))
(* z (+ y (/ x z)))
(* -1 (* z (+ (* -1 y) (* -1 (* a b)))))
(* -1 (* z (+ (* -1 y) (+ (* -1 (* a b)) (* -1 (/ (+ x (* a t)) z))))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ x (* a t)) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ x z)))))
(+ x (+ (* a (* b z)) (* y z)))
(* a t)
(* t (+ a (+ (/ x t) (+ (/ (* a (* b z)) t) (/ (* y z) t)))))
(* t (+ a (+ (/ x t) (/ (* y z) t))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (+ (* a (* b z)) (* y z))) t)))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (* y z)) t)))))
(+ x (+ (* a (+ t (* b z))) (* y z)))
(* a (+ t (* b z)))
(* a (+ t (+ (* b z) (+ (/ x a) (/ (* y z) a)))))
(* a (+ t (+ (/ x a) (/ (* y z) a))))
(* -1 (* a (+ (* -1 t) (* -1 (* b z)))))
(* -1 (* a (+ (* -1 t) (+ (* -1 (* b z)) (* -1 (/ (+ x (* y z)) a))))))
(* -1 (* a (+ (* -1 t) (* -1 (/ (+ x (* y z)) a)))))
(* b (+ (* a z) (+ (/ x b) (+ (/ (* a t) b) (/ (* y z) b)))))
(* -1 (* b (+ (* -1 (* a z)) (* -1 (/ (+ x (+ (* a t) (* y z))) b)))))
Calls

18 calls:

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

simplify1.0ms (0%)

Memory
2.3MiB live, 2.3MiB allocated
Algorithm
egg-herbie
Counts
47 → 14
Calls
Call 1
Inputs
(+ (* a t) (+ (* a (* b z)) (* y z)))
(+ x (+ (* a t) (+ (* a (* b z)) (* y z))))
(+ (* a t) (* y z))
(+ x (+ (* a t) (* y z)))
(* y z)
(+ x (* y z))
x
(* x (+ 1 (+ (/ (* a t) x) (+ (/ (* a (* b z)) x) (/ (* y z) x)))))
(* x (+ 1 (+ (/ (* a t) x) (/ (* y z) x))))
(* x (+ 1 (/ (* y z) x)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (+ (* a (* b z)) (* y z))) x)) 1)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (* y z)) x)) 1)))
(* -1 (* x (- (* -1 (/ (* y z) x)) 1)))
(+ x (+ (* a t) (* a (* b z))))
(+ x (* a t))
(* y (+ z (+ (/ x y) (+ (/ (* a t) y) (/ (* a (* b z)) y)))))
(* y (+ z (+ (/ x y) (/ (* a t) y))))
(* y (+ z (/ x y)))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (+ (* a t) (* a (* b z)))) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (* a t)) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ x y)))))
(+ x (+ (* a t) (* z (+ y (* a b)))))
(* a (* b z))
(* a z)
(* z (+ y (* a b)))
(* z (+ y (+ (* a b) (+ (/ x z) (/ (* a t) z)))))
(* z (+ y (+ (/ x z) (/ (* a t) z))))
(* z (+ y (/ x z)))
(* -1 (* z (+ (* -1 y) (* -1 (* a b)))))
(* -1 (* z (+ (* -1 y) (+ (* -1 (* a b)) (* -1 (/ (+ x (* a t)) z))))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ x (* a t)) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ x z)))))
(+ x (+ (* a (* b z)) (* y z)))
(* a t)
(* t (+ a (+ (/ x t) (+ (/ (* a (* b z)) t) (/ (* y z) t)))))
(* t (+ a (+ (/ x t) (/ (* y z) t))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (+ (* a (* b z)) (* y z))) t)))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (* y z)) t)))))
(+ x (+ (* a (+ t (* b z))) (* y z)))
(* a (+ t (* b z)))
(* a (+ t (+ (* b z) (+ (/ x a) (/ (* y z) a)))))
(* a (+ t (+ (/ x a) (/ (* y z) a))))
(* -1 (* a (+ (* -1 t) (* -1 (* b z)))))
(* -1 (* a (+ (* -1 t) (+ (* -1 (* b z)) (* -1 (/ (+ x (* y z)) a))))))
(* -1 (* a (+ (* -1 t) (* -1 (/ (+ x (* y z)) a)))))
(* b (+ (* a z) (+ (/ x b) (+ (/ (* a t) b) (/ (* y z) b)))))
(* -1 (* b (+ (* -1 (* a z)) (* -1 (/ (+ x (+ (* a t) (* y z))) b)))))
Outputs
(+ (* a t) (+ (* a (* b z)) (* y z)))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)))
(+ x (+ (* a t) (+ (* a (* b z)) (* y z))))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
(+ (* a t) (* y z))
(+.f64 x (*.f64 y z))
(+ x (+ (* a t) (* y z)))
(*.f64 y z)
(* y z)
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)) (*.f64 (*.f64 a z) b))
(+ x (* y z))
#s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))
x
(*.f64 (*.f64 a z) b)
(* x (+ 1 (+ (/ (* a t) x) (+ (/ (* a (* b z)) x) (/ (* y z) x)))))
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))) (*.f64 (*.f64 a z) b))
(* x (+ 1 (+ (/ (* a t) x) (/ (* y z) x))))
#s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z)))
(* x (+ 1 (/ (* y z) x)))
(+.f64 (+.f64 #s(approx (+ x (* y z)) (*.f64 (*.f64 a z) b)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(* -1 (* x (- (* -1 (/ (+ (* a t) (+ (* a (* b z)) (* y z))) x)) 1)))
(+.f64 #s(approx (+ x (* y z)) (*.f64 (*.f64 a z) b)) (*.f64 t a))
(* -1 (* x (- (* -1 (/ (+ (* a t) (* y z)) x)) 1)))
#s(approx (+ x (* y z)) (*.f64 (*.f64 a z) b))
(* -1 (* x (- (* -1 (/ (* y z) x)) 1)))
(*.f64 t a)
(+ x (+ (* a t) (* a (* b z))))
(*.f64 a z)

rewrite1.0ms (0%)

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

eval7.0ms (0.4%)

Memory
-44.6MiB live, 11.2MiB allocated
Compiler

Compiled 1 065 to 58 computations (94.6% saved)

prune5.0ms (0.3%)

Memory
13.8MiB live, 13.8MiB allocated
Pruning

9 alts after pruning (6 fresh and 3 done)

PrunedKeptTotal
New33639
Fresh000
Picked134
Done101
Total35944
Accuracy
98.9%
Counts
44 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
74.5%
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))) (*.f64 (*.f64 a z) b))
49.8%
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)) (*.f64 (*.f64 a z) b))
45.0%
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))) (*.f64 (*.f64 a z) b))
78.6%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)))
53.5%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 #s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))) (*.f64 t a)))
26.7%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 (*.f64 a z) b))
9.0%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 a z))
56.8%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))))
31.8%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)))
Compiler

Compiled 393 to 247 computations (37.2% saved)

simplify1.0ms (0.1%)

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

Found 16 expressions of interest:

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

localize38.0ms (2.3%)

Memory
0.5MiB live, 78.2MiB allocated
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
accuracy0.19921875000000003
(+.f64 #s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))) (*.f64 t a))
accuracy13.704116835724504
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 #s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))) (*.f64 t a)))
accuracy20.026025225689466
#s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)))
accuracy38.92579587180625
#s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))
accuracy0.0
(*.f64 a z)
accuracy4.692619530280376
(*.f64 (*.f64 a z) b)
accuracy46.952565791327046
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 (*.f64 a z) b))
accuracy0.0
(*.f64 a z)
accuracy58.270560435454996
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 a z))
accuracy0.0
(*.f64 y z)
accuracy13.704116835724504
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)))
accuracy38.92579587180625
#s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))
accuracy0.0
(*.f64 y z)
accuracy0.0078125
(+.f64 x (*.f64 y z))
accuracy13.704116835724504
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))))
accuracy20.026025225689466
#s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z)))
Samples
27.0ms256×0valid
Compiler

Compiled 424 to 42 computations (90.1% saved)

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

series16.0ms (0.9%)

Memory
-11.1MiB live, 27.6MiB allocated
Counts
13 → 47
Calls
Call 1
Inputs
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))))
#s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z)))
(+.f64 x (*.f64 y z))
(*.f64 y z)
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)))
#s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 a z))
(*.f64 a z)
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 (*.f64 a z) b))
(*.f64 (*.f64 a z) b)
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 #s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))) (*.f64 t a)))
(+.f64 #s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))) (*.f64 t a))
#s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)))
Outputs
(+ (* a t) (+ (* a (* b z)) (* y z)))
(+ x (+ (* a t) (+ (* a (* b z)) (* y z))))
(+ (* a t) (* y z))
(+ x (+ (* a t) (* y z)))
(* y z)
(+ x (* y z))
x
(* x (+ 1 (+ (/ (* a t) x) (+ (/ (* a (* b z)) x) (/ (* y z) x)))))
(* x (+ 1 (+ (/ (* a t) x) (/ (* y z) x))))
(* x (+ 1 (/ (* y z) x)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (+ (* a (* b z)) (* y z))) x)) 1)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (* y z)) x)) 1)))
(* -1 (* x (- (* -1 (/ (* y z) x)) 1)))
(+ x (+ (* a t) (* a (* b z))))
(+ x (* a t))
(* y (+ z (+ (/ x y) (+ (/ (* a t) y) (/ (* a (* b z)) y)))))
(* y (+ z (+ (/ x y) (/ (* a t) y))))
(* y (+ z (/ x y)))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (+ (* a t) (* a (* b z)))) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (* a t)) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ x y)))))
(+ x (+ (* a t) (* z (+ y (* a b)))))
(* a z)
(* a (* b z))
(* z (+ y (* a b)))
(* z (+ y (+ (* a b) (+ (/ x z) (/ (* a t) z)))))
(* z (+ y (+ (/ x z) (/ (* a t) z))))
(* z (+ y (/ x z)))
(* -1 (* z (+ (* -1 y) (* -1 (* a b)))))
(* -1 (* z (+ (* -1 y) (+ (* -1 (* a b)) (* -1 (/ (+ x (* a t)) z))))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ x (* a t)) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ x z)))))
(+ x (+ (* a (* b z)) (* y z)))
(* a t)
(* t (+ a (+ (/ x t) (+ (/ (* a (* b z)) t) (/ (* y z) t)))))
(* t (+ a (+ (/ x t) (/ (* y z) t))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (+ (* a (* b z)) (* y z))) t)))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (* y z)) t)))))
(+ x (+ (* a (+ t (* b z))) (* y z)))
(* a (+ t (* b z)))
(* a (+ t (+ (* b z) (+ (/ x a) (/ (* y z) a)))))
(* a (+ t (+ (/ x a) (/ (* y z) a))))
(* -1 (* a (+ (* -1 t) (* -1 (* b z)))))
(* -1 (* a (+ (* -1 t) (+ (* -1 (* b z)) (* -1 (/ (+ x (* y z)) a))))))
(* -1 (* a (+ (* -1 t) (* -1 (/ (+ x (* y z)) a)))))
(* b (+ (* a z) (+ (/ x b) (+ (/ (* a t) b) (/ (* y z) b)))))
(* -1 (* b (+ (* -1 (* a z)) (* -1 (/ (+ x (+ (* a t) (* y z))) b)))))
Calls

18 calls:

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

simplify1.0ms (0%)

Memory
1.6MiB live, 1.6MiB allocated
Algorithm
egg-herbie
Counts
47 → 13
Calls
Call 1
Inputs
(+ (* a t) (+ (* a (* b z)) (* y z)))
(+ x (+ (* a t) (+ (* a (* b z)) (* y z))))
(+ (* a t) (* y z))
(+ x (+ (* a t) (* y z)))
(* y z)
(+ x (* y z))
x
(* x (+ 1 (+ (/ (* a t) x) (+ (/ (* a (* b z)) x) (/ (* y z) x)))))
(* x (+ 1 (+ (/ (* a t) x) (/ (* y z) x))))
(* x (+ 1 (/ (* y z) x)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (+ (* a (* b z)) (* y z))) x)) 1)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (* y z)) x)) 1)))
(* -1 (* x (- (* -1 (/ (* y z) x)) 1)))
(+ x (+ (* a t) (* a (* b z))))
(+ x (* a t))
(* y (+ z (+ (/ x y) (+ (/ (* a t) y) (/ (* a (* b z)) y)))))
(* y (+ z (+ (/ x y) (/ (* a t) y))))
(* y (+ z (/ x y)))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (+ (* a t) (* a (* b z)))) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (* a t)) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ x y)))))
(+ x (+ (* a t) (* z (+ y (* a b)))))
(* a z)
(* a (* b z))
(* z (+ y (* a b)))
(* z (+ y (+ (* a b) (+ (/ x z) (/ (* a t) z)))))
(* z (+ y (+ (/ x z) (/ (* a t) z))))
(* z (+ y (/ x z)))
(* -1 (* z (+ (* -1 y) (* -1 (* a b)))))
(* -1 (* z (+ (* -1 y) (+ (* -1 (* a b)) (* -1 (/ (+ x (* a t)) z))))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ x (* a t)) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ x z)))))
(+ x (+ (* a (* b z)) (* y z)))
(* a t)
(* t (+ a (+ (/ x t) (+ (/ (* a (* b z)) t) (/ (* y z) t)))))
(* t (+ a (+ (/ x t) (/ (* y z) t))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (+ (* a (* b z)) (* y z))) t)))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (* y z)) t)))))
(+ x (+ (* a (+ t (* b z))) (* y z)))
(* a (+ t (* b z)))
(* a (+ t (+ (* b z) (+ (/ x a) (/ (* y z) a)))))
(* a (+ t (+ (/ x a) (/ (* y z) a))))
(* -1 (* a (+ (* -1 t) (* -1 (* b z)))))
(* -1 (* a (+ (* -1 t) (+ (* -1 (* b z)) (* -1 (/ (+ x (* y z)) a))))))
(* -1 (* a (+ (* -1 t) (* -1 (/ (+ x (* y z)) a)))))
(* b (+ (* a z) (+ (/ x b) (+ (/ (* a t) b) (/ (* y z) b)))))
(* -1 (* b (+ (* -1 (* a z)) (* -1 (/ (+ x (+ (* a t) (* y z))) b)))))
Outputs
(+ (* a t) (+ (* a (* b z)) (* y z)))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))))
(+ x (+ (* a t) (+ (* a (* b z)) (* y z))))
#s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z)))
(+ (* a t) (* y z))
(+.f64 x (*.f64 y z))
(+ x (+ (* a t) (* y z)))
(*.f64 y z)
(* y z)
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)))
(+ x (* y z))
#s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))
x
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 a z))
(* x (+ 1 (+ (/ (* a t) x) (+ (/ (* a (* b z)) x) (/ (* y z) x)))))
(*.f64 a z)
(* x (+ 1 (+ (/ (* a t) x) (/ (* y z) x))))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 (*.f64 a z) b))
(* x (+ 1 (/ (* y z) x)))
(*.f64 (*.f64 a z) b)
(* -1 (* x (- (* -1 (/ (+ (* a t) (+ (* a (* b z)) (* y z))) x)) 1)))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 #s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))) (*.f64 t a)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (* y z)) x)) 1)))
(+.f64 #s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))) (*.f64 t a))
(* -1 (* x (- (* -1 (/ (* y z) x)) 1)))
#s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)))

rewrite1.0ms (0%)

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

eval2.0ms (0.1%)

Memory
5.7MiB live, 5.7MiB allocated
Compiler

Compiled 856 to 45 computations (94.7% saved)

prune6.0ms (0.3%)

Memory
12.3MiB live, 12.3MiB allocated
Pruning

9 alts after pruning (1 fresh and 8 done)

PrunedKeptTotal
New24024
Fresh011
Picked055
Done033
Total24933
Accuracy
98.9%
Counts
33 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
74.5%
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))) (*.f64 (*.f64 a z) b))
49.8%
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)) (*.f64 (*.f64 a z) b))
45.0%
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))) (*.f64 (*.f64 a z) b))
78.6%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)))
53.5%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 #s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))) (*.f64 t a)))
26.7%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 (*.f64 a z) b))
9.0%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 a z))
56.8%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))))
31.8%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)))
Compiler

Compiled 229 to 148 computations (35.4% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

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

localize29.0ms (1.7%)

Memory
-26.6MiB live, 54.7MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy2.304675114981235
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))) (*.f64 (*.f64 a z) b))
accuracy4.692619530280376
(*.f64 (*.f64 a z) b)
accuracy20.026025225689466
#s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a)))
accuracy61.84937432319945
#s(approx (+ x (* y z)) (*.f64 t a))
Samples
21.0ms256×0valid
Compiler

Compiled 114 to 31 computations (72.8% saved)

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

series9.0ms (0.6%)

Memory
18.9MiB live, 18.9MiB allocated
Counts
5 → 46
Calls
Call 1
Inputs
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))) (*.f64 (*.f64 a z) b))
#s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a)))
#s(approx (+ x (* y z)) (*.f64 t a))
(*.f64 t a)
(*.f64 (*.f64 a z) b)
Outputs
(+ (* a t) (+ (* a (* b z)) (* y z)))
(+ x (+ (* a t) (+ (* a (* b z)) (* y z))))
(+ (* a t) (* y z))
(+ x (+ (* a t) (* y z)))
(* y z)
(+ x (* y z))
x
(* x (+ 1 (+ (/ (* a t) x) (+ (/ (* a (* b z)) x) (/ (* y z) x)))))
(* x (+ 1 (+ (/ (* a t) x) (/ (* y z) x))))
(* x (+ 1 (/ (* y z) x)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (+ (* a (* b z)) (* y z))) x)) 1)))
(* -1 (* x (- (* -1 (/ (+ (* a t) (* y z)) x)) 1)))
(* -1 (* x (- (* -1 (/ (* y z) x)) 1)))
(+ x (+ (* a t) (* a (* b z))))
(+ x (* a t))
(* y (+ z (+ (/ x y) (+ (/ (* a t) y) (/ (* a (* b z)) y)))))
(* y (+ z (+ (/ x y) (/ (* a t) y))))
(* y (+ z (/ x y)))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (+ (* a t) (* a (* b z)))) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ (+ x (* a t)) y)))))
(* -1 (* y (+ (* -1 z) (* -1 (/ x y)))))
(+ x (+ (* a t) (* z (+ y (* a b)))))
(* a (* b z))
(* z (+ y (* a b)))
(* z (+ y (+ (* a b) (+ (/ x z) (/ (* a t) z)))))
(* z (+ y (+ (/ x z) (/ (* a t) z))))
(* z (+ y (/ x z)))
(* -1 (* z (+ (* -1 y) (* -1 (* a b)))))
(* -1 (* z (+ (* -1 y) (+ (* -1 (* a b)) (* -1 (/ (+ x (* a t)) z))))))
(* -1 (* z (+ (* -1 y) (* -1 (/ (+ x (* a t)) z)))))
(* -1 (* z (+ (* -1 y) (* -1 (/ x z)))))
(+ x (+ (* a (* b z)) (* y z)))
(* a t)
(* t (+ a (+ (/ x t) (+ (/ (* a (* b z)) t) (/ (* y z) t)))))
(* t (+ a (+ (/ x t) (/ (* y z) t))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (+ (* a (* b z)) (* y z))) t)))))
(* -1 (* t (+ (* -1 a) (* -1 (/ (+ x (* y z)) t)))))
(+ x (+ (* a (+ t (* b z))) (* y z)))
(* a (+ t (* b z)))
(* a (+ t (+ (* b z) (+ (/ x a) (/ (* y z) a)))))
(* a (+ t (+ (/ x a) (/ (* y z) a))))
(* -1 (* a (+ (* -1 t) (* -1 (* b z)))))
(* -1 (* a (+ (* -1 t) (+ (* -1 (* b z)) (* -1 (/ (+ x (* y z)) a))))))
(* -1 (* a (+ (* -1 t) (* -1 (/ (+ x (* y z)) a)))))
(* b (+ (* a z) (+ (/ x b) (+ (/ (* a t) b) (/ (* y z) b)))))
(* -1 (* b (+ (* -1 (* a z)) (* -1 (/ (+ x (+ (* a t) (* y z))) b)))))
Calls

18 calls:

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

simplify1.0ms (0%)

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

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
2.0MiB live, 2.0MiB allocated
Compiler

Compiled 247 to 26 computations (89.5% saved)

prune5.0ms (0.3%)

Memory
10.7MiB live, 10.7MiB allocated
Pruning

10 alts after pruning (1 fresh and 9 done)

PrunedKeptTotal
New819
Fresh000
Picked011
Done088
Total81018
Accuracy
98.9%
Counts
18 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
74.5%
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))) (*.f64 (*.f64 a z) b))
49.8%
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)) (*.f64 (*.f64 a z) b))
45.0%
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))) (*.f64 (*.f64 a z) b))
78.6%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)))
53.5%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 #s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))) (*.f64 t a)))
26.7%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 (*.f64 a z) b))
9.0%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 a z))
56.8%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))))
31.8%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)))
24.8%
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))))
Compiler

Compiled 564 to 204 computations (63.8% saved)

regimes33.0ms (2%)

Memory
-16.7MiB live, 61.2MiB allocated
Counts
12 → 2
Calls
Call 1
Inputs
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 a z))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 (*.f64 a z) b))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 #s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))) (*.f64 t a)))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)))
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))) (*.f64 (*.f64 a z) b))
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)) (*.f64 (*.f64 a z) b))
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 #s(approx (+ x (* y z)) (*.f64 (*.f64 a z) b)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Outputs
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 a z))
Calls

7 calls:

5.0ms
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
5.0ms
y
4.0ms
x
4.0ms
b
4.0ms
t
Results
AccuracySegmentsBranch
93.1%1x
93.1%1y
93.1%1z
93.1%1t
93.1%1a
93.1%1b
95.9%2(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 21 to 49 computations (-133.3% saved)

regimes28.0ms (1.7%)

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

7 calls:

5.0ms
y
4.0ms
x
4.0ms
t
4.0ms
z
4.0ms
a
Results
AccuracySegmentsBranch
78.6%1x
89.5%3z
85.8%3t
81.1%2a
83.1%3y
88.6%3b
78.6%1(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 21 to 49 computations (-133.3% saved)

regimes12.0ms (0.7%)

Memory
-14.9MiB live, 24.3MiB allocated
Counts
9 → 3
Calls
Call 1
Inputs
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 a z))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 (*.f64 a z) b))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 #s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))) (*.f64 t a)))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)))
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))) (*.f64 (*.f64 a z) b))
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)) (*.f64 (*.f64 a z) b))
Outputs
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)) (*.f64 (*.f64 a z) b))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)))
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)) (*.f64 (*.f64 a z) b))
Calls

3 calls:

4.0ms
z
3.0ms
b
3.0ms
t
Results
AccuracySegmentsBranch
78.6%1t
81.9%2b
84.8%3z
Compiler

Compiled 3 to 18 computations (-500% saved)

regimes11.0ms (0.7%)

Memory
-15.8MiB live, 23.3MiB allocated
Counts
8 → 2
Calls
Call 1
Inputs
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 a z))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 (*.f64 a z) b))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 #s(approx (+ x (* y z)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z))) (*.f64 t a)))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)))
(+.f64 #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))) (*.f64 (*.f64 a z) b))
Outputs
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 (*.f64 a z) b))
Calls

3 calls:

4.0ms
y
3.0ms
b
3.0ms
z
Results
AccuracySegmentsBranch
78.6%1y
81.5%2b
78.6%1z
Compiler

Compiled 3 to 18 computations (-500% saved)

regimes19.0ms (1.1%)

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

7 calls:

3.0ms
b
3.0ms
x
3.0ms
a
3.0ms
t
3.0ms
y
Results
AccuracySegmentsBranch
70.0%3x
66.5%3t
60.4%3z
67.1%3(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
59.4%2y
67.9%3a
62.2%3b
Compiler

Compiled 21 to 49 computations (-133.3% saved)

regimes11.0ms (0.6%)

Memory
-18.4MiB live, 20.6MiB allocated
Counts
5 → 4
Calls
Call 1
Inputs
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (*.f64 y z)))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 a z))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 (*.f64 a z) b))
Outputs
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) (*.f64 (*.f64 a z) b))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) (+.f64 x (*.f64 y z))))
#s(approx (+ (+ (+ x (* y z)) (* t a)) (* (* a z) b)) #s(approx (+ (+ x (* y z)) (* t a)) #s(approx (+ x (* y z)) (*.f64 t a))))
Calls

4 calls:

3.0ms
x
2.0ms
a
2.0ms
t
2.0ms
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Results
AccuracySegmentsBranch
59.9%2t
61.0%3(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
65.6%4a
60.0%3x
Compiler

Compiled 18 to 31 computations (-72.2% saved)

regimes3.0ms (0.2%)

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

1 calls:

2.0ms
a
Results
AccuracySegmentsBranch
64.1%4a
Compiler

Compiled 1 to 6 computations (-500% saved)

regimes14.0ms (0.9%)

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

7 calls:

3.0ms
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
2.0ms
b
2.0ms
y
2.0ms
t
2.0ms
a
Results
AccuracySegmentsBranch
35.0%3x
44.4%3z
41.1%3y
33.4%2(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
40.5%3t
31.8%1b
43.4%3a
Compiler

Compiled 21 to 49 computations (-133.3% saved)

regimes8.0ms (0.5%)

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

7 calls:

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

Compiled 21 to 49 computations (-133.3% saved)

bsearch0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
+inf
NaN
Compiler

Compiled 18 to 22 computations (-22.2% saved)

bsearch27.0ms (1.7%)

Memory
-31.8MiB live, 44.3MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
12796842453245608000.0
3.023870771366539e+19
15.0ms
-4.017917321673032e-6
-6.206830908108646e-10
Samples
15.0ms208×0valid
Compiler

Compiled 616 to 490 computations (20.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)

bsearch31.0ms (1.8%)

Memory
13.0MiB live, 51.6MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
5.711341855620524e+64
1.771956953886219e+67
13.0ms
-1.5019128207283397e+255
-1.1560999406558342e+252
Samples
17.0ms256×0valid
Compiler

Compiled 722 to 582 computations (19.4% saved)

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

bsearch19.0ms (1.1%)

Memory
-16.0MiB live, 26.4MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
13.0ms
2.4333408038261817e+230
3.1208011009414586e+234
Samples
8.0ms128×0valid
Compiler

Compiled 386 to 310 computations (19.7% saved)

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

bsearch27.0ms (1.6%)

Memory
8.8MiB live, 47.3MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
4.121851045349065e+86
3.988078379630541e+89
10.0ms
-66818083.34572309
-5589728.911436108
Samples
16.0ms224×0valid
Compiler

Compiled 998 to 554 computations (44.5% saved)

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

bsearch46.0ms (2.8%)

Memory
9.9MiB live, 87.2MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
17.0ms
13819466741582872.0
1.6156988787120627e+32
10.0ms
-23767639626857.176
-11086436324273.297
15.0ms
-1.0974983306280497e+189
-3.184248225530038e+183
Samples
25.0ms384×0valid
Compiler

Compiled 1 512 to 877 computations (42% saved)

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

bsearch19.0ms (1.1%)

Memory
-12.8MiB live, 28.5MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
3.0ms
13819466741582872.0
1.6156988787120627e+32
1.0ms
-23767639626857.176
-11086436324273.297
13.0ms
-3.030782703437874e+179
-5.9973605419130595e+175
Samples
9.0ms128×0valid
Compiler

Compiled 1 536 to 850 computations (44.7% saved)

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

bsearch24.0ms (1.4%)

Memory
0.0MiB live, 38.8MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
7.0ms
12796842453245608000.0
3.023870771366539e+19
13.0ms
-1.2362650217266974e+40
-9.78281642212092e+35
Samples
13.0ms192×0valid
Compiler

Compiled 850 to 477 computations (43.9% saved)

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

simplify5.0ms (0.3%)

Memory
10.2MiB live, 10.2MiB allocated

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...