Linear.Quaternion:$c/ from linear-1.19.1.3, C

Time bar (total: 1.4s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

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

Compiled 17 to 11 computations (35.3% saved)

sample971.0ms (68.6%)

Memory
15.2MiB live, 1 697.4MiB allocated
Samples
340.0ms5 734×0valid
337.0ms2 473×1valid
13.0ms49×2valid
Precisions
Click to see histograms. Total time spent on operations: 472.0ms
ival-mult: 240.0ms (50.8% of total)
ival-sub: 109.0ms (23.1% of total)
adjust: 65.0ms (13.8% of total)
ival-add: 49.0ms (10.4% of total)
ival-true: 6.0ms (1.3% of total)
ival-assert: 4.0ms (0.8% of total)
Bogosity

explain125.0ms (8.8%)

Memory
18.9MiB live, 257.9MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
890-0-(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
120-0-(-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z))
90-0-(+.f64 (*.f64 x y) (*.f64 y y))
00-0-z
00-0-(*.f64 x y)
00-0-y
00-0-(*.f64 y y)
00-0-(*.f64 y z)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
-.f64(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))nan-rescue550
(-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z))overflow77
(+.f64 (*.f64 x y) (*.f64 y y))overflow69
(*.f64 y z)overflow34
(*.f64 y y)overflow64
(*.f64 x y)overflow28
(*.f64 y y)overflow64
-.f64(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))cancellation340
-.f64(-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z))nan-rescue120
(+.f64 (*.f64 x y) (*.f64 y y))overflow69
(*.f64 y y)overflow64
(*.f64 x y)overflow28
(*.f64 y z)overflow34
+.f64(+.f64 (*.f64 x y) (*.f64 y y))nan-rescue90
(*.f64 x y)overflow28
(*.f64 y y)overflow64
Confusion
Predicted +Predicted -
+980
-0158
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+9800
-00158
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0158
187
210
31
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
26.0ms354×0valid
21.0ms158×1valid
Compiler

Compiled 154 to 40 computations (74% saved)

Precisions
Click to see histograms. Total time spent on operations: 27.0ms
ival-mult: 14.0ms (52.1% of total)
ival-sub: 6.0ms (22.3% of total)
ival-add: 3.0ms (11.2% of total)
adjust: 3.0ms (11.2% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

preprocess6.0ms (0.4%)

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

Compiled 15 to 9 computations (40% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 15 to 9 computations (40% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

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

localize30.0ms (2.1%)

Memory
22.3MiB live, 61.3MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x y)
accuracy2.0624896791510294
(+.f64 (*.f64 x y) (*.f64 y y))
accuracy2.6484271791510294
(-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z))
accuracy20.25412063280363
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Samples
11.0ms177×0valid
11.0ms79×1valid
Compiler

Compiled 92 to 20 computations (78.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 6.0ms (47.3% of total)
ival-sub: 3.0ms (23.7% of total)
adjust: 2.0ms (15.8% of total)
ival-add: 1.0ms (7.9% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series9.0ms (0.6%)

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

9 calls:

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

simplify0.0ms (0%)

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

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
2.0MiB live, 2.0MiB allocated
Compiler

Compiled 160 to 21 computations (86.9% saved)

prune1.0ms (0.1%)

Memory
3.2MiB live, 3.2MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New538
Fresh000
Picked011
Done000
Total549
Accuracy
77.4%
Counts
9 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
62.8%
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
35.5%
(-.f64 #s(approx (- (+ (* x y) (* y y)) (* y z)) (+.f64 (*.f64 x y) (*.f64 y y))) (*.f64 y y))
39.6%
(-.f64 #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y)) (*.f64 y y))
69.3%
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)))
Compiler

Compiled 84 to 49 computations (41.7% saved)

simplify1.0ms (0%)

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

Found 12 expressions of interest:

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

localize40.0ms (2.8%)

Memory
-4.5MiB live, 80.2MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x y)
accuracy2.0624896791510294
(+.f64 (*.f64 x y) (*.f64 y y))
accuracy18.44746013994742
#s(approx (- (+ (* x y) (* y y)) (* y z)) (+.f64 (*.f64 x y) (*.f64 y y)))
accuracy20.25412063280363
(-.f64 #s(approx (- (+ (* x y) (* y y)) (* y z)) (+.f64 (*.f64 x y) (*.f64 y y))) (*.f64 y y))
accuracy0.0
(*.f64 y y)
accuracy0.0
(*.f64 x y)
accuracy20.25412063280363
(-.f64 #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y)) (*.f64 y y))
accuracy37.61563659524079
#s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))
accuracy0.0
(*.f64 x y)
accuracy2.0624896791510294
(+.f64 (*.f64 x y) (*.f64 y y))
accuracy2.6484271791510294
(-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z))
accuracy16.91153747698702
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)))
Samples
14.0ms79×1valid
13.0ms177×0valid
Compiler

Compiled 278 to 30 computations (89.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 14.0ms
ival-mult: 8.0ms (55.8% of total)
ival-sub: 3.0ms (20.9% of total)
adjust: 2.0ms (14% of total)
ival-add: 1.0ms (7% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series6.0ms (0.4%)

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

9 calls:

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

simplify1.0ms (0%)

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

rewrite1.0ms (0%)

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

eval2.0ms (0.2%)

Memory
5.7MiB live, 5.7MiB allocated
Compiler

Compiled 755 to 43 computations (94.3% saved)

prune2.0ms (0.1%)

Memory
4.3MiB live, 4.3MiB allocated
Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New22325
Fresh000
Picked303
Done101
Total26329
Accuracy
98.8%
Counts
29 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
40.4%
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 (+.f64 #s(approx (* x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z)))
97.7%
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))) (*.f64 y z)))
54.5%
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y)))
Compiler

Compiled 105 to 42 computations (60% saved)

simplify1.0ms (0.1%)

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

Found 11 expressions of interest:

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

localize39.0ms (2.8%)

Memory
-5.4MiB live, 111.4MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy2.0624896791510294
(+.f64 #s(approx (* x y) (*.f64 y y)) (*.f64 y y))
accuracy2.6484271791510294
(-.f64 (+.f64 #s(approx (* x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
accuracy16.91153747698702
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 (+.f64 #s(approx (* x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z)))
accuracy52.805024157572916
#s(approx (* x y) (*.f64 y y))
accuracy2.6484271791510294
(-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))) (*.f64 y z))
accuracy16.91153747698702
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))) (*.f64 y z)))
accuracy18.44746013994742
#s(approx (+ (* x y) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y)))
accuracy37.61563659524079
#s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))
accuracy0.0
(*.f64 x y)
accuracy16.91153747698702
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y)))
accuracy37.61563659524079
#s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))
Samples
14.0ms177×0valid
14.0ms79×1valid
Compiler

Compiled 370 to 32 computations (91.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-mult: 7.0ms (47.5% of total)
ival-sub: 4.0ms (27.1% of total)
ival-add: 2.0ms (13.6% of total)
adjust: 2.0ms (13.6% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series7.0ms (0.5%)

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

9 calls:

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

simplify1.0ms (0%)

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

rewrite1.0ms (0%)

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

eval2.0ms (0.1%)

Memory
6.2MiB live, 6.2MiB allocated
Compiler

Compiled 998 to 47 computations (95.3% saved)

prune4.0ms (0.2%)

Memory
8.5MiB live, 8.5MiB allocated
Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New21122
Fresh000
Picked123
Done000
Total22325
Accuracy
98.8%
Counts
25 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
97.7%
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))) (*.f64 y z)))
40.4%
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y))) (*.f64 y z)))
54.5%
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y)))
Compiler

Compiled 109 to 42 computations (61.5% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

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

localize30.0ms (2.1%)

Memory
-9.6MiB live, 68.2MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy2.6484271791510294
(-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y))) (*.f64 y z))
accuracy16.91153747698702
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y))) (*.f64 y z)))
accuracy26.34049486213521
#s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y)))
accuracy52.805024157572916
#s(approx (* x y) (*.f64 y y))
Samples
12.0ms177×0valid
10.0ms79×1valid
Compiler

Compiled 130 to 26 computations (80% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 6.0ms (47.4% of total)
ival-sub: 3.0ms (23.7% of total)
adjust: 2.0ms (15.8% of total)
ival-add: 1.0ms (7.9% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series4.0ms (0.3%)

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

9 calls:

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

simplify0.0ms (0%)

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

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
1.9MiB live, 1.9MiB allocated
Compiler

Compiled 269 to 20 computations (92.6% saved)

prune3.0ms (0.2%)

Memory
7.3MiB live, 7.3MiB allocated
Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New617
Fresh000
Picked101
Done022
Total7310
Accuracy
98.8%
Counts
10 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
97.7%
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))) (*.f64 y z)))
54.5%
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y)))
13.9%
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) #s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y)))))
Compiler

Compiled 384 to 74 computations (80.7% saved)

regimes15.0ms (1%)

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

4 calls:

5.0ms
z
3.0ms
x
3.0ms
y
3.0ms
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Results
AccuracySegmentsBranch
97.7%1x
97.7%1y
97.7%1z
97.7%1(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Compiler

Compiled 18 to 18 computations (0% saved)

regimes9.0ms (0.6%)

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

4 calls:

2.0ms
x
2.0ms
z
2.0ms
y
2.0ms
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Results
AccuracySegmentsBranch
70.3%3x
58.6%3y
75.1%3z
58.1%3(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Compiler

Compiled 18 to 18 computations (0% saved)

regimes6.0ms (0.4%)

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

4 calls:

1.0ms
z
1.0ms
x
1.0ms
y
1.0ms
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Results
AccuracySegmentsBranch
54.5%1(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
54.5%1y
54.5%1x
56.4%2z
Compiler

Compiled 18 to 18 computations (0% saved)

regimes5.0ms (0.3%)

Memory
13.4MiB live, 13.4MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

4 calls:

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

Compiled 18 to 18 computations (0% saved)

bsearch38.0ms (2.7%)

Memory
-19.3MiB live, 57.6MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
19.0ms
2.0310347761381705e+130
2.1241409879521533e+136
16.0ms
-8.632290581044975e-17
-1.3439759218396182e-20
Samples
13.0ms79×1valid
11.0ms193×0valid
Compiler

Compiled 1 140 to 508 computations (55.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-mult: 7.0ms (42.7% of total)
adjust: 5.0ms (30.5% of total)
ival-sub: 3.0ms (18.3% of total)
ival-add: 2.0ms (12.2% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

bsearch15.0ms (1%)

Memory
24.7MiB live, 24.7MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
13.0ms
2.930831188385979e+159
5.4446458468488e+162
Samples
6.0ms105×0valid
3.0ms23×1valid
Compiler

Compiled 610 to 239 computations (60.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 3.0ms (55.6% of total)
adjust: 1.0ms (18.5% of total)
ival-sub: 1.0ms (18.5% of total)
ival-add: 1.0ms (18.5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

simplify9.0ms (0.6%)

Memory
-27.2MiB live, 10.7MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))) (*.f64 y z)))
(if (<=.f64 z #s(literal -215500602038799/2535301200456458802993406410752 binary64)) #s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y))) (*.f64 y z))) (if (<=.f64 z #s(literal 20499999999999998886058986133135908067018039071266016276300017787674220912359897542346918516539652824341589200308997086906526203904 binary64)) #s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))) #s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y))) (*.f64 y z)))))
(if (<=.f64 z #s(literal 5400000000000000303723777150543755305783948522610886538341816323768595333920116344737551793893831529687149797361384443749741139971183075400865564690029208294916096 binary64)) #s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))) #s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) #s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y))))))
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) #s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y)))))
Outputs
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))) (*.f64 y z)))
(if (<=.f64 z #s(literal -215500602038799/2535301200456458802993406410752 binary64)) #s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y))) (*.f64 y z))) (if (<=.f64 z #s(literal 20499999999999998886058986133135908067018039071266016276300017787674220912359897542346918516539652824341589200308997086906526203904 binary64)) #s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))) #s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y))) (*.f64 y z)))))
(if (<=.f64 z #s(literal 5400000000000000303723777150543755305783948522610886538341816323768595333920116344737551793893831529687149797361384443749741139971183075400865564690029208294916096 binary64)) #s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))) #s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) #s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y))))))
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) #s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y)))))

soundness1.0ms (0.1%)

Memory
3.0MiB live, 3.0MiB allocated
Stop Event
fuel
Compiler

Compiled 273 to 32 computations (88.3% saved)

preprocess31.0ms (2.2%)

Memory
17.3MiB live, 58.2MiB allocated
Compiler

Compiled 586 to 92 computations (84.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...