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

Time bar (total: 1.4s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0%)

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

sample947.0ms (66.5%)

Memory
4.6MiB live, 1 610.5MiB allocated
Samples
342.0ms5 774×0valid
297.0ms2 427×1valid
9.0ms55×2valid
Precisions
Click to see histograms. Total time spent on operations: 419.0ms
ival-mult: 208.0ms (49.7% of total)
ival-sub: 91.0ms (21.7% of total)
adjust: 62.0ms (14.8% of total)
ival-add: 48.0ms (11.5% of total)
ival-true: 6.0ms (1.4% of total)
ival-assert: 3.0ms (0.7% of total)
Bogosity

explain125.0ms (8.8%)

Memory
13.0MiB live, 250.1MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
950-0-(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
140-0-(+.f64 (*.f64 x y) (*.f64 y y))
80-0-(-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z))
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-rescue690
(-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z))overflow90
(+.f64 (*.f64 x y) (*.f64 y y))overflow85
(*.f64 y z)overflow35
(*.f64 y y)overflow80
(*.f64 x y)overflow35
(*.f64 y y)overflow80
-.f64(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))cancellation261
+.f64(+.f64 (*.f64 x y) (*.f64 y y))nan-rescue140
(*.f64 x y)overflow35
(*.f64 y y)overflow80
-.f64(-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z))nan-rescue80
(+.f64 (*.f64 x y) (*.f64 y y))overflow85
(*.f64 y y)overflow80
(*.f64 x y)overflow35
(*.f64 y z)overflow35
Confusion
Predicted +Predicted -
+1060
-0150
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+10600
-01149
Precision?
0.9906542056074766
Recall?
1.0
Freqs
test
numberfreq
0150
195
211
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
24.0ms360×0valid
21.0ms152×1valid
Compiler

Compiled 154 to 40 computations (74% saved)

Precisions
Click to see histograms. Total time spent on operations: 26.0ms
ival-mult: 13.0ms (50.4% of total)
ival-sub: 6.0ms (23.3% of total)
ival-add: 3.0ms (11.6% of total)
adjust: 3.0ms (11.6% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

preprocess3.0ms (0.2%)

Memory
9.5MiB live, 9.5MiB 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
60.2%
(-.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.2MiB live, 1.2MiB 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

localize32.0ms (2.2%)

Memory
-16.1MiB live, 64.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x y)
accuracy1.9531105508114408
(-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z))
accuracy2.9960854933208236
(+.f64 (*.f64 x y) (*.f64 y y))
accuracy20.819547978440724
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Samples
13.0ms180×0valid
12.0ms76×1valid
Compiler

Compiled 92 to 20 computations (78.3% saved)

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

series7.0ms (0.5%)

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

eval2.0ms (0.2%)

Memory
-35.3MiB live, 3.1MiB allocated
Compiler

Compiled 160 to 21 computations (86.9% saved)

prune1.0ms (0.1%)

Memory
4.3MiB live, 4.3MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New538
Fresh000
Picked011
Done000
Total549
Accuracy
79.0%
Counts
9 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
60.2%
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
34.6%
(-.f64 #s(approx (- (+ (* x y) (* y y)) (* y z)) (+.f64 (*.f64 x y) (*.f64 y y))) (*.f64 y y))
40.8%
(-.f64 #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y)) (*.f64 y y))
68.8%
#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.8MiB live, 1.8MiB 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
0.4MiB live, 119.2MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x y)
accuracy2.9960854933208236
(+.f64 (*.f64 x y) (*.f64 y y))
accuracy17.844205991603665
#s(approx (- (+ (* x y) (* y y)) (* y z)) (+.f64 (*.f64 x y) (*.f64 y y)))
accuracy20.819547978440724
(-.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.819547978440724
(-.f64 #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y)) (*.f64 y y))
accuracy37.443304886897806
#s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))
accuracy0.0
(*.f64 x y)
accuracy1.9531105508114408
(-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z))
accuracy2.9960854933208236
(+.f64 (*.f64 x y) (*.f64 y y))
accuracy16.2310243129543
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)))
Samples
14.0ms180×0valid
12.0ms76×1valid
Compiler

Compiled 278 to 30 computations (89.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-mult: 6.0ms (49.4% of total)
ival-sub: 3.0ms (24.7% of total)
adjust: 2.0ms (16.5% of total)
ival-add: 1.0ms (8.2% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series6.0ms (0.4%)

Memory
18.0MiB live, 18.0MiB 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
2.0MiB live, 2.0MiB 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
2.2MiB live, 2.2MiB 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
7.9MiB live, 7.9MiB allocated
Compiler

Compiled 755 to 43 computations (94.3% saved)

prune5.0ms (0.3%)

Memory
-33.9MiB live, 4.9MiB allocated
Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New22325
Fresh000
Picked303
Done101
Total26329
Accuracy
100.0%
Counts
29 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
42.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)))
98.0%
#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)))
52.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
2.0MiB live, 2.1MiB 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

localize42.0ms (2.9%)

Memory
4.8MiB live, 82.0MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy1.9531105508114408
(-.f64 (+.f64 #s(approx (* x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
accuracy2.9960854933208236
(+.f64 #s(approx (* x y) (*.f64 y y)) (*.f64 y y))
accuracy16.2310243129543
#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.89001831635661
#s(approx (* x y) (*.f64 y y))
accuracy1.9531105508114408
(-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))) (*.f64 y z))
accuracy16.2310243129543
#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)))
accuracy17.844205991603665
#s(approx (+ (* x y) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y)))
accuracy37.443304886897806
#s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))
accuracy0.0
(*.f64 x y)
accuracy16.2310243129543
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y)))
accuracy37.443304886897806
#s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y))
Samples
17.0ms180×0valid
12.0ms76×1valid
Compiler

Compiled 370 to 32 computations (91.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-mult: 6.0ms (50% of total)
ival-sub: 3.0ms (25% of total)
adjust: 2.0ms (16.7% of total)
ival-add: 1.0ms (8.3% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series5.0ms (0.4%)

Memory
11.8MiB live, 11.8MiB 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
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
y
@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))
0.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))

simplify1.0ms (0%)

Memory
1.1MiB live, 1.1MiB 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.3MiB live, 1.3MiB 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.2%)

Memory
5.1MiB live, 5.1MiB allocated
Compiler

Compiled 998 to 47 computations (95.3% saved)

prune4.0ms (0.3%)

Memory
9.0MiB live, 9.0MiB allocated
Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New21122
Fresh000
Picked123
Done000
Total22325
Accuracy
100.0%
Counts
25 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.0%
#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)))
42.2%
#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)))
52.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.1MiB live, 1.1MiB 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

localize42.0ms (3%)

Memory
-25.7MiB live, 55.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy1.9531105508114408
(-.f64 #s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y))) (*.f64 y z))
accuracy16.2310243129543
#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)))
accuracy28.174341045746075
#s(approx (+ (* x y) (* y y)) #s(approx (* x y) (*.f64 y y)))
accuracy52.89001831635661
#s(approx (* x y) (*.f64 y y))
Samples
26.0ms180×0valid
10.0ms76×1valid
Compiler

Compiled 130 to 26 computations (80% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-mult: 11.0ms (64% of total)
ival-sub: 3.0ms (17.5% of total)
adjust: 2.0ms (11.6% of total)
ival-add: 1.0ms (5.8% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series4.0ms (0.3%)

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

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
2.1MiB live, 2.1MiB allocated
Compiler

Compiled 269 to 20 computations (92.6% saved)

prune3.0ms (0.2%)

Memory
7.4MiB live, 7.4MiB allocated
Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New617
Fresh000
Picked101
Done022
Total7310
Accuracy
100.0%
Counts
10 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.0%
#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)))
52.5%
#s(approx (- (- (+ (* x y) (* y y)) (* y z)) (* y y)) #s(approx (- (+ (* x y) (* y y)) (* y z)) (*.f64 x y)))
18.2%
#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)

regimes16.0ms (1.1%)

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

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

Compiled 18 to 18 computations (0% saved)

regimes7.0ms (0.5%)

Memory
17.3MiB live, 17.3MiB 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
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
2.0ms
x
2.0ms
z
2.0ms
y
Results
AccuracySegmentsBranch
69.9%3x
57.2%3y
72.1%3z
56.4%3(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Compiler

Compiled 18 to 18 computations (0% saved)

regimes8.0ms (0.6%)

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

4.0ms
z
1.0ms
y
1.0ms
x
1.0ms
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Results
AccuracySegmentsBranch
52.5%1(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
52.5%1y
52.5%1x
54.1%2z
Compiler

Compiled 18 to 18 computations (0% saved)

regimes5.0ms (0.3%)

Memory
12.8MiB live, 12.8MiB 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
z
1.0ms
x
1.0ms
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
1.0ms
y
Results
AccuracySegmentsBranch
18.2%1y
18.2%1(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
18.2%1x
18.2%1z
Compiler

Compiled 18 to 18 computations (0% saved)

bsearch44.0ms (3.1%)

Memory
-10.1MiB live, 72.6MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
17.0ms
2.8514613571410374e+27
9.614200530496444e+29
23.0ms
-1.1344477884418045e+91
-1.4358177769049733e+71
Samples
17.0ms203×0valid
12.0ms101×1valid
Compiler

Compiled 1 272 to 566 computations (55.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
ival-mult: 10.0ms (48.8% of total)
ival-add: 5.0ms (24.4% of total)
ival-sub: 3.0ms (14.6% of total)
adjust: 2.0ms (9.8% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

bsearch18.0ms (1.3%)

Memory
-13.6MiB live, 24.5MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
16.0ms
2.016743918630694e+193
9.866304639250209e+197
Samples
6.0ms110×0valid
6.0ms18×1valid
Compiler

Compiled 610 to 239 computations (60.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-mult: 6.0ms (71.4% of total)
ival-sub: 1.0ms (11.9% of total)
ival-add: 1.0ms (11.9% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

simplify5.0ms (0.3%)

Memory
11.5MiB live, 11.5MiB 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 -1720000000000000016254533423267495161131025452867218764322134322282390541507231744 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 779999999999999936697013895168 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 380000000000000014630575687338878686128051007054365442679300045781288645467757086489801231091814099865299658629981608060447126513927308196681366568492707714858272601369899646518989415664781466009600 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 -1720000000000000016254533423267495161131025452867218764322134322282390541507231744 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 779999999999999936697013895168 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 380000000000000014630575687338878686128051007054365442679300045781288645467757086489801231091814099865299658629981608060447126513927308196681366568492707714858272601369899646518989415664781466009600 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)))))

soundness2.0ms (0.1%)

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

Compiled 273 to 32 computations (88.3% saved)

preprocess35.0ms (2.5%)

Memory
-16.5MiB live, 64.1MiB allocated
Compiler

Compiled 586 to 92 computations (84.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...