Linear.V3:$cdot from linear-1.19.1.3, B

Time bar (total: 1.4s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

Memory
0.6MiB live, 0.6MiB 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 13 to 13 computations (0% saved)

sample849.0ms (59.6%)

Memory
35.4MiB live, 1 214.5MiB allocated
Samples
543.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 268.0ms
ival-mult: 185.0ms (69.1% of total)
ival-add: 74.0ms (27.6% of total)
ival-true: 6.0ms (2.2% of total)
ival-assert: 3.0ms (1.1% of total)
Bogosity

explain94.0ms (6.6%)

Memory
7.8MiB live, 210.5MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
60-0-(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
30-0-(+.f64 (*.f64 x y) (*.f64 z t))
00-0-a
00-0-t
00-0-(*.f64 z t)
00-0-z
00-0-(*.f64 x y)
00-0-y
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-rescue60
(*.f64 x y)overflow35
(+.f64 (*.f64 x y) (*.f64 z t))overflow64
(*.f64 z t)overflow34
(*.f64 a b)overflow32
+.f64(+.f64 (*.f64 x y) (*.f64 z t))nan-rescue30
(*.f64 x y)overflow35
(*.f64 z t)overflow34
Confusion
Predicted +Predicted -
+90
-0247
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+900
-00247
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0247
19
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
35.0ms512×0valid
Compiler

Compiled 114 to 48 computations (57.9% saved)

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

preprocess6.0ms (0.4%)

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

Compiled 11 to 11 computations (0% 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
96.5%
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
Compiler

Compiled 11 to 11 computations (0% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 z t)
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))
Calls
Call 1
Inputs
(+.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
Outputs
(+.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

localize24.0ms (1.7%)

Memory
14.6MiB live, 53.6MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x y)
accuracy0.0
(*.f64 a b)
accuracy0.7070271216604117
(+.f64 (*.f64 x y) (*.f64 z t))
accuracy1.3046833716604118
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
Samples
17.0ms256×0valid
Compiler

Compiled 68 to 24 computations (64.7% saved)

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

series12.0ms (0.9%)

Memory
-19.0MiB live, 19.5MiB allocated
Counts
5 → 27
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (*.f64 x y) (*.f64 z t))
(*.f64 x y)
(*.f64 z t)
(*.f64 a b)
Outputs
(+ (* a b) (* t z))
(+ (* a b) (+ (* t z) (* x y)))
(* t z)
(+ (* t z) (* x y))
(* x y)
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x))))
(* x (+ y (/ (* 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) (/ (* t z) y))))
(* y (+ x (/ (* t z) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y)))))
(+ (* a b) (* x y))
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z))))
(* z (+ t (/ (* 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) (/ (* x y) t))))
(* t (+ z (/ (* x y) t)))
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t)))))
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t)))))
(* a b)
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a))))
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a)))))
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b))))
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b)))))
Calls

18 calls:

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

simplify0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
egg-herbie
Counts
27 → 5
Calls
Call 1
Inputs
(+ (* a b) (* t z))
(+ (* a b) (+ (* t z) (* x y)))
(* t z)
(+ (* t z) (* x y))
(* x y)
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x))))
(* x (+ y (/ (* 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) (/ (* t z) y))))
(* y (+ x (/ (* t z) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y)))))
(+ (* a b) (* x y))
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z))))
(* z (+ t (/ (* 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) (/ (* x y) t))))
(* t (+ z (/ (* x y) t)))
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t)))))
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t)))))
(* a b)
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a))))
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a)))))
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b))))
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b)))))
Outputs
(+ (* a b) (* t z))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+ (* a b) (+ (* t z) (* x y)))
(+.f64 (*.f64 x y) (*.f64 z t))
(* t z)
(*.f64 x y)
(+ (* t z) (* x y))
(*.f64 z t)
(* x y)
(*.f64 a b)

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
1.9MiB live, 1.9MiB allocated
Compiler

Compiled 142 to 25 computations (82.4% saved)

prune1.0ms (0.1%)

Memory
2.3MiB live, 2.3MiB allocated
Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New7310
Fresh000
Picked101
Done000
Total8311
Accuracy
100.0%
Counts
11 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
70.3%
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
67.1%
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b))
63.3%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
Compiler

Compiled 49 to 41 computations (16.3% saved)

simplify1.0ms (0%)

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

Found 12 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 a b)
cost-diff0
(*.f64 z t)
cost-diff0
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
cost-diff0
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
cost-diff0
(*.f64 a b)
cost-diff0
(*.f64 x y)
cost-diff0
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
cost-diff0
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b))
cost-diff0
(*.f64 z t)
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)))
Calls
Call 1
Inputs
#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)) (*.f64 x y)) (*.f64 a b))
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
(*.f64 x y)
x
y
(*.f64 a b)
a
b
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
(*.f64 z t)
z
t
(*.f64 a b)
a
b
Outputs
#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)) (*.f64 x y)) (*.f64 a b))
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
(*.f64 x y)
x
y
(*.f64 a b)
a
b
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
(*.f64 z t)
z
t
(*.f64 a b)
a
b

localize30.0ms (2.1%)

Memory
4.8MiB live, 43.0MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 z t)
accuracy0.0
(*.f64 a b)
accuracy1.3046833716604118
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
accuracy28.33593972799666
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
accuracy0.0
(*.f64 x y)
accuracy0.0
(*.f64 a b)
accuracy1.3046833716604118
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b))
accuracy33.632797858030116
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
accuracy0.0
(*.f64 z t)
accuracy0.0
(*.f64 x y)
accuracy0.7070271216604117
(+.f64 (*.f64 x y) (*.f64 z t))
accuracy22.72906520404325
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
Samples
22.0ms256×0valid
Compiler

Compiled 194 to 33 computations (83% saved)

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

series8.0ms (0.6%)

Memory
13.7MiB live, 13.7MiB allocated
Counts
9 → 27
Calls
Call 1
Inputs
#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)
(*.f64 z t)
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b))
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
(*.f64 a b)
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
Outputs
(+ (* a b) (* t z))
(+ (* a b) (+ (* t z) (* x y)))
(* t z)
(+ (* t z) (* x y))
(* x y)
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x))))
(* x (+ y (/ (* 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) (/ (* t z) y))))
(* y (+ x (/ (* t z) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y)))))
(+ (* a b) (* x y))
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z))))
(* z (+ t (/ (* 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) (/ (* x y) t))))
(* t (+ z (/ (* x y) t)))
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t)))))
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t)))))
(* a b)
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a))))
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a)))))
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b))))
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b)))))
Calls

18 calls:

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

simplify1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
egg-herbie
Counts
27 → 9
Calls
Call 1
Inputs
(+ (* a b) (* t z))
(+ (* a b) (+ (* t z) (* x y)))
(* t z)
(+ (* t z) (* x y))
(* x y)
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x))))
(* x (+ y (/ (* 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) (/ (* t z) y))))
(* y (+ x (/ (* t z) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y)))))
(+ (* a b) (* x y))
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z))))
(* z (+ t (/ (* 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) (/ (* x y) t))))
(* t (+ z (/ (* x y) t)))
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t)))))
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t)))))
(* a b)
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a))))
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a)))))
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b))))
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b)))))
Outputs
(+ (* a b) (* t z))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
(+ (* a b) (+ (* t z) (* x y)))
(+.f64 (*.f64 x y) (*.f64 z t))
(* t z)
(*.f64 x y)
(+ (* t z) (* x y))
(*.f64 z t)
(* x y)
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b))
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x))))
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
(* x (+ y (/ (* t z) x)))
(*.f64 a b)
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x)))))
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x)))))
#s(approx (+ (* x y) (* z t)) (*.f64 z t))

rewrite0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Counts
9 → 9
Calls
Call 1
Inputs
#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)
(*.f64 z t)
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b))
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
(*.f64 a b)
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
Outputs
#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)
(*.f64 z t)
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b))
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
(*.f64 a b)
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
#s(approx (+ (* x y) (* z t)) (*.f64 z t))

eval2.0ms (0.1%)

Memory
4.1MiB live, 4.1MiB allocated
Compiler

Compiled 413 to 33 computations (92% saved)

prune2.0ms (0.2%)

Memory
4.5MiB live, 4.5MiB allocated
Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New16319
Fresh000
Picked033
Done000
Total16622
Accuracy
100.0%
Counts
22 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
70.3%
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
67.1%
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b))
63.3%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
36.2%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
31.5%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y)))
39.0%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))
Compiler

Compiled 118 to 83 computations (29.7% saved)

simplify1.0ms (0%)

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

Found 9 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 z t)
cost-diff0
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
cost-diff0
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
cost-diff0
(*.f64 x y)
cost-diff0
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
cost-diff0
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.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)))
Calls
Call 1
Inputs
#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)) #s(approx (+ (* x y) (* z t)) (*.f64 x y)))
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
(*.f64 x y)
x
y
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
(*.f64 z t)
z
t
Outputs
#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)) #s(approx (+ (* x y) (* z t)) (*.f64 x y)))
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
(*.f64 x y)
x
y
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
(*.f64 z t)
z
t

localize30.0ms (2.1%)

Memory
-11.1MiB live, 35.8MiB allocated
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 z t)
accuracy22.72906520404325
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
accuracy28.33593972799666
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
accuracy0.0
(*.f64 x y)
accuracy22.72906520404325
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y)))
accuracy33.632797858030116
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
accuracy0.0
(*.f64 a b)
accuracy22.72906520404325
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))
accuracy61.05676203413827
#s(approx (+ (* x y) (* z t)) (*.f64 a b))
Samples
18.0ms256×0valid
Compiler

Compiled 188 to 33 computations (82.4% saved)

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

series9.0ms (0.7%)

Memory
-24.2MiB live, 14.3MiB allocated
Counts
9 → 27
Calls
Call 1
Inputs
#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)) #s(approx (+ (* x y) (* z t)) (*.f64 x y)))
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
(*.f64 x y)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
(*.f64 z t)
Outputs
(+ (* a b) (* t z))
(+ (* a b) (+ (* t z) (* x y)))
(* t z)
(+ (* t z) (* x y))
(* x y)
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x))))
(* x (+ y (/ (* 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) (/ (* t z) y))))
(* y (+ x (/ (* t z) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y)))))
(+ (* a b) (* x y))
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z))))
(* z (+ t (/ (* 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) (/ (* x y) t))))
(* t (+ z (/ (* x y) t)))
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t)))))
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t)))))
(* a b)
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a))))
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a)))))
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b))))
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b)))))
Calls

18 calls:

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

simplify1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Algorithm
egg-herbie
Counts
27 → 9
Calls
Call 1
Inputs
(+ (* a b) (* t z))
(+ (* a b) (+ (* t z) (* x y)))
(* t z)
(+ (* t z) (* x y))
(* x y)
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x))))
(* x (+ y (/ (* 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) (/ (* t z) y))))
(* y (+ x (/ (* t z) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y)))))
(+ (* a b) (* x y))
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z))))
(* z (+ t (/ (* 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) (/ (* x y) t))))
(* t (+ z (/ (* x y) t)))
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t)))))
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t)))))
(* a b)
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a))))
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a)))))
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b))))
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b)))))
Outputs
(+ (* a b) (* t z))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))
(+ (* a b) (+ (* t z) (* x y)))
#s(approx (+ (* x y) (* z t)) (*.f64 a b))
(* t z)
(*.f64 a b)
(+ (* t z) (* x y))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y)))
(* x y)
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x))))
(*.f64 x y)
(* x (+ y (/ (* t z) x)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x)))))
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x)))))
(*.f64 z t)

rewrite0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Counts
9 → 9
Calls
Call 1
Inputs
#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)) #s(approx (+ (* x y) (* z t)) (*.f64 x y)))
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
(*.f64 x y)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
(*.f64 z t)
Outputs
#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)) #s(approx (+ (* x y) (* z t)) (*.f64 x y)))
#s(approx (+ (* x y) (* z t)) (*.f64 x y))
(*.f64 x y)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
#s(approx (+ (* x y) (* z t)) (*.f64 z t))
(*.f64 z t)

eval1.0ms (0.1%)

Memory
2.7MiB live, 2.7MiB allocated
Compiler

Compiled 378 to 29 computations (92.3% saved)

prune4.0ms (0.3%)

Memory
7.0MiB live, 7.0MiB allocated
Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New14014
Fresh000
Picked033
Done033
Total14620
Accuracy
100.0%
Counts
20 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
70.3%
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
67.1%
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b))
63.3%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
36.2%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
31.5%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y)))
39.0%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))
Compiler

Compiled 247 to 108 computations (56.3% saved)

regimes33.0ms (2.3%)

Memory
20.2MiB live, 58.7MiB allocated
Counts
7 → 1
Calls
Call 1
Inputs
#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 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b))
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
Outputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
Calls

11 calls:

4.0ms
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
3.0ms
b
3.0ms
y
3.0ms
a
3.0ms
x
Results
AccuracySegmentsBranch
96.5%1x
96.5%1y
96.5%1z
96.5%1t
96.5%1a
96.5%1b
96.5%1(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
96.5%1(+.f64 (*.f64 x y) (*.f64 z t))
96.5%1(*.f64 x y)
96.5%1(*.f64 z t)
96.5%1(*.f64 a b)
Compiler

Compiled 33 to 77 computations (-133.3% saved)

regimes32.0ms (2.2%)

Memory
-23.1MiB live, 57.2MiB allocated
Counts
6 → 3
Calls
Call 1
Inputs
#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 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b))
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
Calls

11 calls:

4.0ms
z
4.0ms
(*.f64 a b)
3.0ms
y
3.0ms
x
3.0ms
b
Results
AccuracySegmentsBranch
84.2%4x
84.3%3y
82.7%3z
82.4%3t
82.3%4a
84.3%4b
74.5%2(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
86.3%4(+.f64 (*.f64 x y) (*.f64 z t))
88.4%3(*.f64 x y)
85.3%3(*.f64 z t)
85.1%3(*.f64 a b)
Compiler

Compiled 33 to 77 computations (-133.3% saved)

regimes9.0ms (0.6%)

Memory
16.5MiB live, 16.5MiB allocated
Counts
5 → 3
Calls
Call 1
Inputs
#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 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b))
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
Calls

4 calls:

2.0ms
(*.f64 a b)
2.0ms
(*.f64 z t)
2.0ms
(*.f64 x y)
2.0ms
(+.f64 (*.f64 x y) (*.f64 z t))
Results
AccuracySegmentsBranch
82.5%3(+.f64 (*.f64 x y) (*.f64 z t))
83.9%3(*.f64 a b)
84.8%3(*.f64 z t)
75.7%5(*.f64 x y)
Compiler

Compiled 16 to 30 computations (-87.5% saved)

regimes20.0ms (1.4%)

Memory
-4.1MiB live, 34.7MiB allocated
Counts
4 → 3
Calls
Call 1
Inputs
#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 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))
Outputs
#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)) (+.f64 (*.f64 x y) (*.f64 z t)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))
Calls

9 calls:

3.0ms
(*.f64 a b)
2.0ms
a
2.0ms
b
2.0ms
t
2.0ms
y
Results
AccuracySegmentsBranch
72.1%3a
66.8%3t
76.0%3(+.f64 (*.f64 x y) (*.f64 z t))
67.6%3x
68.0%3z
72.9%3b
79.0%3(*.f64 a b)
63.3%1y
68.0%3(*.f64 z t)
Compiler

Compiled 19 to 59 computations (-210.5% saved)

regimes20.0ms (1.4%)

Memory
-1.0MiB live, 37.9MiB allocated
Counts
3 → 6
Calls
Call 1
Inputs
#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 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t)))
#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 z t)))
#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 x y)))
Calls

11 calls:

2.0ms
(*.f64 x y)
2.0ms
b
2.0ms
a
2.0ms
t
2.0ms
y
Results
AccuracySegmentsBranch
56.4%6y
51.5%3t
54.4%4x
59.6%5z
58.2%3(*.f64 z t)
53.6%3a
63.7%6(*.f64 x y)
55.4%4b
57.0%3(+.f64 (*.f64 x y) (*.f64 z t))
44.3%3(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
59.2%4(*.f64 a b)
Compiler

Compiled 33 to 77 computations (-133.3% saved)

regimes2.0ms (0.1%)

Memory
3.3MiB live, 3.3MiB allocated
Counts
2 → 3
Calls
Call 1
Inputs
#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 x y)))
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y)))
#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 x y)))
Calls

1 calls:

1.0ms
(*.f64 x y)
Results
AccuracySegmentsBranch
58.4%3(*.f64 x y)
Compiler

Compiled 3 to 7 computations (-133.3% saved)

regimes13.0ms (0.9%)

Memory
-8.7MiB live, 30.3MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#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)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))
Calls

11 calls:

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

Compiled 33 to 77 computations (-133.3% saved)

bsearch28.0ms (1.9%)

Memory
-4.9MiB live, 34.8MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
16.0ms
6.876078986810307e+101
7.583351576150604e+118
10.0ms
-2.9028895919995117e+80
-3.6518429962754838e+78
Samples
16.0ms272×0valid
Compiler

Compiled 558 to 513 computations (8.1% saved)

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

bsearch31.0ms (2.2%)

Memory
0.9MiB live, 38.9MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
15.0ms
5.149089356184419e+138
1.8476353746790605e+156
14.0ms
-99705015423660.17
-16.969110898815522
Samples
17.0ms320×0valid
Compiler

Compiled 654 to 600 computations (8.3% saved)

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

bsearch30.0ms (2.1%)

Memory
-1.4MiB live, 36.7MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
15.0ms
2.599332874567869e+136
2.0057770418742217e+154
12.0ms
-8.138250794928201e+262
-5.485864200262072e+256
Samples
17.0ms304×0valid
Compiler

Compiled 774 to 590 computations (23.8% saved)

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

bsearch67.0ms (4.7%)

Memory
3.6MiB live, 81.6MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
11.0ms
7.583351576150604e+118
3.2762175913207665e+123
15.0ms
7.100522938362225e-159
2.3596634622003505e-124
4.0ms
-2.923541925053265e-208
-2.1659831473983624e-208
15.0ms
-4.2907248303803294e+68
-6.05634764796212e+58
14.0ms
-1.2602534393593517e+208
-1.2960798930944083e+198
Samples
35.0ms672×0valid
Compiler

Compiled 1 910 to 1 262 computations (33.9% saved)

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

bsearch11.0ms (0.7%)

Memory
13.7MiB live, 13.7MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
7.583351576150604e+118
3.2762175913207665e+123
9.0ms
-4.2907248303803294e+68
-6.05634764796212e+58
Samples
5.0ms96×0valid
Compiler

Compiled 806 to 542 computations (32.8% saved)

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

simplify5.0ms (0.4%)

Memory
10.0MiB live, 10.0MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(if (<=.f64 (*.f64 x y) #s(literal -8000000000000000067948971469517623809190959396790084927159992821622375247249408 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (if (<=.f64 (*.f64 x y) #s(literal 4300000000000000066905489356707425004353266006760564163490013495852585259008449524039437176634704025007687007731712 binary64)) (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))))
(if (<=.f64 (*.f64 z t) #s(literal -300000000000 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (if (<=.f64 (*.f64 z t) #s(literal 6199999999999999542561718642821942737804169878658552683771660278523012158123690297967016920580564133451276489947514252996408616908752945152 binary64)) (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))))
(if (<=.f64 (*.f64 a b) #s(literal -54999999999999998323014078067802700619050864326979333513386777736725997137641636923142560685986981235537310930167357683523226080801130531013466645550073919742854628924178152853853394054085346349694044660575294716102269370272391168694987749814739539821854720 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (if (<=.f64 (*.f64 a b) #s(literal 47999999999999998107173275270611804491725066629278944365123268263872017525304946186030470741968972918236599842021662027616446843119567227584512 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))))
(if (<=.f64 (*.f64 x y) #s(literal -1299999999999999903290155652052623498841327950424918962831086047835061324122236056300967934289139058454807416762897619066320180032165510642881437067121736556095148977076835753611586322757705019686912 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) (if (<=.f64 (*.f64 x y) #s(literal -489999999999999968063457832036469839520756208149095253897379840 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) (if (<=.f64 (*.f64 x y) #s(literal -6014923810931807/23134322349737717735007099635340311456574291245888123082206428617627187858318938111228919160792924135185595314161942499967986047925275778642956722900885062503881081581426410459731001937860227299113020288850612472756100399104 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (if (<=.f64 (*.f64 x y) #s(literal 2349638813994493/30916300184138066757562815127455898754391418637651479989257882011612153138316483396289550132655380623699708928252017417418920629288343901245943269387736645989575846518587392 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) (if (<=.f64 (*.f64 x y) #s(literal 76000000000000003282276321631171517241985444198917179675145217770227306337261215601693768864944492317964327288087511040 binary64)) #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 x y))))))))
(if (<=.f64 (*.f64 x y) #s(literal -2049999999999999963324268916181853087014912836703762059811094528 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) (if (<=.f64 (*.f64 x y) #s(literal 76000000000000003282276321631171517241985444198917179675145217770227306337261215601693768864944492317964327288087511040 binary64)) #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 x y)))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))
Outputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(if (<=.f64 (*.f64 x y) #s(literal -8000000000000000067948971469517623809190959396790084927159992821622375247249408 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (if (<=.f64 (*.f64 x y) #s(literal 4300000000000000066905489356707425004353266006760564163490013495852585259008449524039437176634704025007687007731712 binary64)) (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))))
(if (<=.f64 (*.f64 z t) #s(literal -300000000000 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (if (<=.f64 (*.f64 z t) #s(literal 6199999999999999542561718642821942737804169878658552683771660278523012158123690297967016920580564133451276489947514252996408616908752945152 binary64)) (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))))
(if (<=.f64 (*.f64 a b) #s(literal -54999999999999998323014078067802700619050864326979333513386777736725997137641636923142560685986981235537310930167357683523226080801130531013466645550073919742854628924178152853853394054085346349694044660575294716102269370272391168694987749814739539821854720 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (if (<=.f64 (*.f64 a b) #s(literal 47999999999999998107173275270611804491725066629278944365123268263872017525304946186030470741968972918236599842021662027616446843119567227584512 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))))
(if (<=.f64 (*.f64 x y) #s(literal -1299999999999999903290155652052623498841327950424918962831086047835061324122236056300967934289139058454807416762897619066320180032165510642881437067121736556095148977076835753611586322757705019686912 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) (if (<=.f64 (*.f64 x y) #s(literal -489999999999999968063457832036469839520756208149095253897379840 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) (if (<=.f64 (*.f64 x y) #s(literal -6014923810931807/23134322349737717735007099635340311456574291245888123082206428617627187858318938111228919160792924135185595314161942499967986047925275778642956722900885062503881081581426410459731001937860227299113020288850612472756100399104 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (if (<=.f64 (*.f64 x y) #s(literal 2349638813994493/30916300184138066757562815127455898754391418637651479989257882011612153138316483396289550132655380623699708928252017417418920629288343901245943269387736645989575846518587392 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) (if (<=.f64 (*.f64 x y) #s(literal 76000000000000003282276321631171517241985444198917179675145217770227306337261215601693768864944492317964327288087511040 binary64)) #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 x y))))))))
(if (<=.f64 (*.f64 x y) #s(literal -2049999999999999963324268916181853087014912836703762059811094528 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) (if (<=.f64 (*.f64 x y) #s(literal 76000000000000003282276321631171517241985444198917179675145217770227306337261215601693768864944492317964327288087511040 binary64)) #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 x y)))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))

soundness2.0ms (0.2%)

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

Compiled 490 to 61 computations (87.6% saved)

preprocess40.0ms (2.8%)

Memory
-11.9MiB live, 63.8MiB allocated
Compiler

Compiled 1 002 to 144 computations (85.6% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...