Linear.V4:$cdot from linear-1.19.1.3, C

Time bar (total: 1.7s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze1.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.6%0.4%0%0%0%0
100%99.6%0%0.4%0%0%0%1
Compiler

Compiled 17 to 17 computations (0% saved)

sample1.0s (60.1%)

Memory
29.0MiB live, 1 483.8MiB allocated
Samples
671.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 358.0ms
ival-mult: 242.0ms (67.5% of total)
ival-add: 107.0ms (29.9% of total)
ival-true: 7.0ms (2% of total)
ival-assert: 3.0ms (0.8% of total)
Bogosity

explain144.0ms (8.3%)

Memory
-29.4MiB live, 205.3MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
90-0-(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
90-0-(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i))
10-0-(+.f64 (*.f64 x y) (*.f64 z t))
00-0-(*.f64 c i)
00-0-a
00-0-t
00-0-(*.f64 z t)
00-0-z
00-0-(*.f64 x y)
00-0-c
00-0-y
00-0-i
00-0-b
00-0-(*.f64 a b)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
+.f64(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))nan-rescue90
(*.f64 x y)overflow29
(+.f64 (*.f64 x y) (*.f64 z t))overflow66
(*.f64 z t)overflow42
(*.f64 a b)overflow37
+.f64(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i))nan-rescue90
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))overflow92
(*.f64 a b)overflow37
(*.f64 x y)overflow29
(+.f64 (*.f64 x y) (*.f64 z t))overflow66
(*.f64 z t)overflow42
(*.f64 c i)overflow23
+.f64(+.f64 (*.f64 x y) (*.f64 z t))nan-rescue10
(*.f64 x y)overflow29
(*.f64 z t)overflow42
Confusion
Predicted +Predicted -
+160
-0240
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+1600
-00240
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0240
114
21
31
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
52.0ms512×0valid
Compiler

Compiled 178 to 64 computations (64% saved)

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

preprocess6.0ms (0.4%)

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

Compiled 15 to 15 computations (0% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 8 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 15 to 15 computations (0% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

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

localize33.0ms (1.9%)

Memory
5.4MiB live, 42.2MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 a b)
accuracy0.20312500000000003
(+.f64 (*.f64 x y) (*.f64 z t))
accuracy1.9531188074906176
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i))
accuracy2.152329300811441
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
Samples
26.0ms256×0valid
Compiler

Compiled 108 to 32 computations (70.4% saved)

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

series21.0ms (1.2%)

Memory
-11.5MiB live, 25.0MiB allocated
Counts
5 → 48
Calls
Call 1
Inputs
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (*.f64 x y) (*.f64 z t))
(*.f64 x y)
(*.f64 a b)
Outputs
(+ (* a b) (+ (* c i) (* t z)))
(+ (* a b) (+ (* c i) (+ (* t z) (* x y))))
(+ (* a b) (* t z))
(+ (* a b) (+ (* t z) (* x y)))
(* t z)
(+ (* t z) (* x y))
(* x y)
(* x (+ y (+ (/ (* a b) x) (+ (/ (* c i) x) (/ (* t z) x)))))
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x))))
(* x (+ y (/ (* t z) x)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x)))))
(* y (+ x (+ (/ (* a b) y) (+ (/ (* c i) y) (/ (* t z) y)))))
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y))))
(* y (+ x (/ (* t z) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y)))))
(+ (* a b) (+ (* c i) (* x y)))
(+ (* a b) (* x y))
(* z (+ t (+ (/ (* a b) z) (+ (/ (* c i) z) (/ (* x y) z)))))
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z))))
(* z (+ t (/ (* x y) z)))
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (+ (* c i) (* x y))) z)))))
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z)))))
(* -1 (* z (+ (* -1 t) (* -1 (/ (* x y) z)))))
(* t (+ z (+ (/ (* a b) t) (+ (/ (* c i) t) (/ (* x y) t)))))
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t))))
(* t (+ z (/ (* x y) t)))
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (+ (* c i) (* x y))) t)))))
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t)))))
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t)))))
(+ (* c i) (+ (* t z) (* x y)))
(* a b)
(* a (+ b (+ (/ (* c i) a) (+ (/ (* t z) a) (/ (* x y) a)))))
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a))))
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) a)))))
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a)))))
(* b (+ a (+ (/ (* c i) b) (+ (/ (* t z) b) (/ (* x y) b)))))
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b))))
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) b)))))
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b)))))
(* c i)
(* c (+ i (+ (/ (* a b) c) (+ (/ (* t z) c) (/ (* x y) c)))))
(* -1 (* c (+ (* -1 i) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) c)))))
(* i (+ c (+ (/ (* a b) i) (+ (/ (* t z) i) (/ (* x y) i)))))
(* -1 (* i (+ (* -1 c) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) i)))))
Calls

24 calls:

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

simplify1.0ms (0%)

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

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
2.0MiB live, 2.0MiB allocated
Compiler

Compiled 194 to 31 computations (84% saved)

prune2.0ms (0.1%)

Memory
3.3MiB live, 3.3MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New6410
Fresh000
Picked011
Done000
Total6511
Accuracy
99.2%
Counts
11 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
93.7%
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i))
36.5%
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i))
72.5%
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i))
48.2%
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i))
76.0%
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)))
Compiler

Compiled 103 to 88 computations (14.6% 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 a b)
cost-diff0
#s(approx (+ (* x y) (* z t)) (*.f64 a b))
cost-diff0
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b))
cost-diff0
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i))
cost-diff0
(*.f64 x y)
cost-diff0
(+.f64 (*.f64 x y) (*.f64 z t))
cost-diff0
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
cost-diff0
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i))
cost-diff0
(*.f64 c i)
cost-diff0
(*.f64 x y)
cost-diff0
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
cost-diff0
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i))
cost-diff0
(*.f64 x y)
cost-diff0
(+.f64 (*.f64 x y) (*.f64 z t))
cost-diff0
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
cost-diff0
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)))
Calls
Call 1
Inputs
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (*.f64 x y) (*.f64 z t))
(*.f64 x y)
x
y
(*.f64 z t)
z
t
(*.f64 a b)
a
b
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
(*.f64 x y)
x
y
(*.f64 c i)
c
i
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
(+.f64 (*.f64 x y) (*.f64 z t))
(*.f64 x y)
x
y
(*.f64 z t)
z
t
(*.f64 c i)
c
i
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i))
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b))
#s(approx (+ (* x y) (* z t)) (*.f64 a b))
(*.f64 a b)
a
b
(*.f64 c i)
c
i
Outputs
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (*.f64 x y) (*.f64 z t))
(*.f64 x y)
x
y
(*.f64 z t)
z
t
(*.f64 a b)
a
b
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
(*.f64 x y)
x
y
(*.f64 c i)
c
i
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
(+.f64 (*.f64 x y) (*.f64 z t))
(*.f64 x y)
x
y
(*.f64 z t)
z
t
(*.f64 c i)
c
i
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i))
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b))
#s(approx (+ (* x y) (* z t)) (*.f64 a b))
(*.f64 a b)
a
b
(*.f64 c i)
c
i

localize45.0ms (2.6%)

Memory
24.2MiB live, 61.4MiB allocated
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 a b)
accuracy1.9531188074906176
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i))
accuracy2.152329300811441
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b))
accuracy61.496117739768586
#s(approx (+ (* x y) (* z t)) (*.f64 a b))
accuracy0.0
(*.f64 c i)
accuracy0.20312500000000003
(+.f64 (*.f64 x y) (*.f64 z t))
accuracy1.9531188074906176
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i))
accuracy21.716343718877216
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
accuracy0.0
(*.f64 x y)
accuracy0.0
(*.f64 c i)
accuracy1.9531188074906176
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i))
accuracy42.302930358324154
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
accuracy0.0
(*.f64 a b)
accuracy0.20312500000000003
(+.f64 (*.f64 x y) (*.f64 z t))
accuracy2.152329300811441
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
accuracy13.114122174864335
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)))
Samples
31.0ms256×0valid
Compiler

Compiled 400 to 46 computations (88.5% saved)

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

series25.0ms (1.4%)

Memory
-22.9MiB live, 25.1MiB allocated
Counts
13 → 48
Calls
Call 1
Inputs
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (*.f64 x y) (*.f64 z t))
(*.f64 x y)
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
(*.f64 c i)
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i))
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b))
#s(approx (+ (* x y) (* z t)) (*.f64 a b))
(*.f64 a b)
Outputs
(+ (* a b) (+ (* c i) (* t z)))
(+ (* a b) (+ (* c i) (+ (* t z) (* x y))))
(+ (* a b) (* t z))
(+ (* a b) (+ (* t z) (* x y)))
(* t z)
(+ (* t z) (* x y))
(* x y)
(* x (+ y (+ (/ (* a b) x) (+ (/ (* c i) x) (/ (* t z) x)))))
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x))))
(* x (+ y (/ (* t z) x)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x)))))
(* y (+ x (+ (/ (* a b) y) (+ (/ (* c i) y) (/ (* t z) y)))))
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y))))
(* y (+ x (/ (* t z) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y)))))
(+ (* a b) (+ (* c i) (* x y)))
(+ (* a b) (* x y))
(* z (+ t (+ (/ (* a b) z) (+ (/ (* c i) z) (/ (* x y) z)))))
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z))))
(* z (+ t (/ (* x y) z)))
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (+ (* c i) (* x y))) z)))))
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z)))))
(* -1 (* z (+ (* -1 t) (* -1 (/ (* x y) z)))))
(* t (+ z (+ (/ (* a b) t) (+ (/ (* c i) t) (/ (* x y) t)))))
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t))))
(* t (+ z (/ (* x y) t)))
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (+ (* c i) (* x y))) t)))))
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t)))))
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t)))))
(+ (* c i) (+ (* t z) (* x y)))
(* a b)
(* a (+ b (+ (/ (* c i) a) (+ (/ (* t z) a) (/ (* x y) a)))))
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a))))
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) a)))))
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a)))))
(* b (+ a (+ (/ (* c i) b) (+ (/ (* t z) b) (/ (* x y) b)))))
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b))))
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) b)))))
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b)))))
(* c i)
(* c (+ i (+ (/ (* a b) c) (+ (/ (* t z) c) (/ (* x y) c)))))
(* -1 (* c (+ (* -1 i) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) c)))))
(* i (+ c (+ (/ (* a b) i) (+ (/ (* t z) i) (/ (* x y) i)))))
(* -1 (* i (+ (* -1 c) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) i)))))
Calls

24 calls:

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

simplify1.0ms (0%)

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

rewrite1.0ms (0%)

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

eval4.0ms (0.2%)

Memory
6.6MiB live, 6.6MiB allocated
Compiler

Compiled 1 045 to 62 computations (94.1% saved)

prune3.0ms (0.2%)

Memory
6.2MiB live, 6.2MiB allocated
Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New31435
Fresh000
Picked134
Done101
Total33740
Accuracy
100.0%
Counts
40 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
72.5%
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i))
48.2%
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i))
48.3%
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i))
76.0%
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)))
53.8%
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))))
27.6%
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)))
28.7%
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))))
Compiler

Compiled 201 to 132 computations (34.3% saved)

simplify1.0ms (0.1%)

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

Found 15 expressions of interest:

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

localize42.0ms (2.4%)

Memory
-22.1MiB live, 52.8MiB allocated
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 a b)
accuracy1.9531188074906176
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i))
accuracy21.716343718877216
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))
accuracy61.496117739768586
#s(approx (+ (* x y) (* z t)) (*.f64 a b))
accuracy0.0
(*.f64 x y)
accuracy0.20312500000000003
(+.f64 (*.f64 x y) (*.f64 z t))
accuracy13.114122174864335
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))))
accuracy21.716343718877216
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
accuracy0.0
(*.f64 x y)
accuracy13.114122174864335
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)))
accuracy42.302930358324154
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
accuracy0.0
(*.f64 a b)
accuracy13.114122174864335
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))))
accuracy21.716343718877216
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))
accuracy61.496117739768586
#s(approx (+ (* x y) (* z t)) (*.f64 a b))
Samples
31.0ms256×0valid
Compiler

Compiled 428 to 45 computations (89.5% saved)

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

series14.0ms (0.8%)

Memory
25.3MiB live, 25.3MiB allocated
Counts
11 → 48
Calls
Call 1
Inputs
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))
#s(approx (+ (* x y) (* z t)) (*.f64 a b))
(*.f64 a b)
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
(*.f64 x y)
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
(+.f64 (*.f64 x y) (*.f64 z t))
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i))
Outputs
(+ (* a b) (+ (* c i) (* t z)))
(+ (* a b) (+ (* c i) (+ (* t z) (* x y))))
(+ (* a b) (* t z))
(+ (* a b) (+ (* t z) (* x y)))
(* t z)
(+ (* t z) (* x y))
(* x y)
(* x (+ y (+ (/ (* a b) x) (+ (/ (* c i) x) (/ (* t z) x)))))
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x))))
(* x (+ y (/ (* t z) x)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x)))))
(* y (+ x (+ (/ (* a b) y) (+ (/ (* c i) y) (/ (* t z) y)))))
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y))))
(* y (+ x (/ (* t z) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y)))))
(+ (* a b) (+ (* c i) (* x y)))
(+ (* a b) (* x y))
(* z (+ t (+ (/ (* a b) z) (+ (/ (* c i) z) (/ (* x y) z)))))
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z))))
(* z (+ t (/ (* x y) z)))
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (+ (* c i) (* x y))) z)))))
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z)))))
(* -1 (* z (+ (* -1 t) (* -1 (/ (* x y) z)))))
(* t (+ z (+ (/ (* a b) t) (+ (/ (* c i) t) (/ (* x y) t)))))
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t))))
(* t (+ z (/ (* x y) t)))
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (+ (* c i) (* x y))) t)))))
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t)))))
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t)))))
(+ (* c i) (+ (* t z) (* x y)))
(* a b)
(* a (+ b (+ (/ (* c i) a) (+ (/ (* t z) a) (/ (* x y) a)))))
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a))))
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) a)))))
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a)))))
(* b (+ a (+ (/ (* c i) b) (+ (/ (* t z) b) (/ (* x y) b)))))
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b))))
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) b)))))
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b)))))
(* c i)
(* c (+ i (+ (/ (* a b) c) (+ (/ (* t z) c) (/ (* x y) c)))))
(* -1 (* c (+ (* -1 i) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) c)))))
(* i (+ c (+ (/ (* a b) i) (+ (/ (* t z) i) (/ (* x y) i)))))
(* -1 (* i (+ (* -1 c) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) i)))))
Calls

24 calls:

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

simplify1.0ms (0%)

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

rewrite1.0ms (0%)

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

eval6.0ms (0.4%)

Memory
-31.5MiB live, 6.5MiB allocated
Compiler

Compiled 1 138 to 55 computations (95.2% saved)

prune8.0ms (0.5%)

Memory
17.3MiB live, 17.3MiB allocated
Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New30030
Fresh000
Picked044
Done033
Total30737
Accuracy
100.0%
Counts
37 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
72.5%
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i))
48.2%
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i))
48.3%
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i))
76.0%
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)))
53.8%
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))))
27.6%
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)))
28.7%
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))))
Compiler

Compiled 436 to 167 computations (61.7% saved)

regimes63.0ms (3.7%)

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

15 calls:

9.0ms
(*.f64 x y)
8.0ms
b
6.0ms
x
3.0ms
t
3.0ms
z
Results
AccuracySegmentsBranch
93.7%1x
93.7%1y
93.7%1z
93.7%1t
93.7%1a
95.3%2b
93.7%1c
93.7%1i
96.5%2(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i))
96.1%2(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
93.7%1(+.f64 (*.f64 x y) (*.f64 z t))
93.7%1(*.f64 x y)
93.7%1(*.f64 z t)
95.7%2(*.f64 a b)
93.7%1(*.f64 c i)
Compiler

Compiled 53 to 139 computations (-162.3% saved)

regimes49.0ms (2.8%)

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

15 calls:

4.0ms
(*.f64 c i)
4.0ms
c
4.0ms
y
3.0ms
b
3.0ms
z
Results
AccuracySegmentsBranch
81.1%3x
79.9%3y
79.4%3z
79.6%3t
83.9%3a
86.6%3b
87.8%3c
85.4%3i
84.0%3(+.f64 (*.f64 x y) (*.f64 z t))
80.9%3(*.f64 x y)
76.0%1(*.f64 z t)
90.1%3(*.f64 c i)
88.5%3(*.f64 a b)
89.4%4(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
80.1%3(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i))
Compiler

Compiled 53 to 139 computations (-162.3% saved)

regimes3.0ms (0.2%)

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

1 calls:

2.0ms
(*.f64 c i)
Results
AccuracySegmentsBranch
89.0%3(*.f64 c i)
Compiler

Compiled 3 to 9 computations (-200% saved)

regimes33.0ms (1.9%)

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

14 calls:

3.0ms
z
3.0ms
b
2.0ms
t
2.0ms
i
2.0ms
a
Results
AccuracySegmentsBranch
70.4%7z
67.5%4t
67.2%3y
64.6%5(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i))
68.0%3(*.f64 x y)
62.5%3x
65.3%3a
79.2%3(+.f64 (*.f64 x y) (*.f64 z t))
65.9%4i
69.6%3b
65.8%4(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
60.9%2c
73.0%3(*.f64 a b)
67.2%3(*.f64 c i)
Compiler

Compiled 50 to 130 computations (-160% saved)

regimes5.0ms (0.3%)

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

3 calls:

2.0ms
(*.f64 a b)
2.0ms
(*.f64 z t)
2.0ms
(+.f64 (*.f64 x y) (*.f64 z t))
Results
AccuracySegmentsBranch
71.2%3(*.f64 a b)
53.8%1(*.f64 z t)
63.5%3(+.f64 (*.f64 x y) (*.f64 z t))
Compiler

Compiled 13 to 29 computations (-123.1% saved)

regimes23.0ms (1.3%)

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

15 calls:

3.0ms
i
1.0ms
a
1.0ms
b
1.0ms
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
1.0ms
t
Results
AccuracySegmentsBranch
30.4%2(*.f64 z t)
33.6%3(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i))
39.8%3x
33.5%2c
43.6%3(+.f64 (*.f64 x y) (*.f64 z t))
32.8%3z
33.5%3(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
34.1%4i
40.0%3a
37.1%4t
41.0%3y
30.6%2(*.f64 c i)
47.4%3(*.f64 x y)
44.3%3b
48.6%3(*.f64 a b)
Compiler

Compiled 53 to 139 computations (-162.3% saved)

regimes19.0ms (1.1%)

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

15 calls:

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

Compiled 53 to 139 computations (-162.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 26 computations (-44.4% saved)

bsearch33.0ms (1.9%)

Memory
9.0MiB live, 47.5MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
12.0ms
8.238538132260117e+137
1.4112091808068268e+139
18.0ms
-1.6656575085836012e+103
-1.4012690665984595e+84
Samples
20.0ms272×0valid
Compiler

Compiled 806 to 709 computations (12% saved)

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

bsearch21.0ms (1.2%)

Memory
-4.1MiB live, 34.0MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
8.238538132260117e+137
1.4112091808068268e+139
18.0ms
-2.087372652261344e+164
-2.7632422284729155e+149
Samples
11.0ms160×0valid
Compiler

Compiled 766 to 689 computations (10.1% saved)

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

bsearch1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.5134211044624663e+114
3.8744785385077346e+118
0.0ms
-1.1939003416554691e+228
-1.8281346038634953e+223
Compiler

Compiled 18 to 26 computations (-44.4% saved)

bsearch41.0ms (2.4%)

Memory
-32.2MiB live, 53.1MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
18.0ms
1.4581713962414816e+131
1.0192812499220085e+141
20.0ms
-4.1427029314466815e+246
-3.2209685352245464e+240
Samples
25.0ms304×0valid
Compiler

Compiled 1 386 to 786 computations (43.3% saved)

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

bsearch33.0ms (1.9%)

Memory
15.0MiB live, 53.6MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
15.0ms
4.97119177103327e+42
1.2482932016678693e+47
15.0ms
-2.6486143925861364e+104
-9.949711726699847e+97
Samples
18.0ms272×0valid
Compiler

Compiled 1 174 to 672 computations (42.8% saved)

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

simplify5.0ms (0.3%)

Memory
10.7MiB live, 10.7MiB allocated

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...