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

Time bar (total: 3.8s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated; 0ms collecting garbage

analyze0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
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)

sample1.6s (41.2%)

Memory
33.0MiB live, 1 925.8MiB allocated; 412ms collecting garbage
Samples
663.0ms2 552×1valid
517.0ms5 704×0valid
Precisions
Click to see histograms. Total time spent on operations: 774.0ms
ival-mult: 416.0ms (53.7% of total)
adjust: 158.0ms (20.4% of total)
ival-sub: 140.0ms (18.1% of total)
ival-add: 51.0ms (6.6% of total)
ival-true: 5.0ms (0.6% of total)
ival-assert: 3.0ms (0.4% of total)
Bogosity

explain224.0ms (5.9%)

Memory
-1.1MiB live, 428.3MiB allocated; 42ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1140-0-(+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y))
120-0-(-.f64 (*.f64 x y) (*.f64 y y))
30-0-(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
00-0-z
00-0-(*.f64 x y)
00-0-y
00-0-(*.f64 y z)
00-0-(*.f64 y y)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
+.f64(+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y))nan-rescue590
(*.f64 y y)overflow62
(*.f64 x y)overflow39
(-.f64 (*.f64 x y) (*.f64 y y))overflow71
(*.f64 y y)overflow62
+.f64(+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y))cancellation230
-.f64(-.f64 (*.f64 x y) (*.f64 y y))nan-rescue120
(*.f64 x y)overflow39
(*.f64 y y)overflow62
-.f64(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))nan-rescue30
(*.f64 y y)overflow124
(+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y))overflow39
(*.f64 x y)overflow39
(-.f64 (*.f64 x y) (*.f64 y y))overflow71
(*.f64 y z)overflow30
Confusion
Predicted +Predicted -
+790
-6171
Precision
0.9294117647058824
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+7900
-60171
Precision?
0.9294117647058824
Recall?
1.0
Freqs
test
numberfreq
0171
174
210
31
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
37.0ms222×1valid
24.0ms284×0valid
1.0ms2valid
Compiler

Compiled 109 to 31 computations (71.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 40.0ms
ival-mult: 17.0ms (42.9% of total)
ival-sub: 10.0ms (25.2% of total)
adjust: 9.0ms (22.7% of total)
ival-add: 3.0ms (7.6% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

preprocess257.0ms (6.8%)

Memory
11.2MiB live, 192.1MiB allocated; 36ms collecting garbage
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
041136
115194
268772
3272352
4598152
5753052
0915
01513
1339
21387
35035
429425
553795
679185
085185
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
Outputs
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
(*.f64 (-.f64 x z) y)
Symmetry

(negabs y)

Compiler

Compiled 15 to 9 computations (40% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated; 0ms collecting garbage
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
70.5%
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
Compiler

Compiled 15 to 9 computations (40% saved)

simplify225.0ms (6%)

Memory
-20.5MiB live, 108.5MiB allocated; 99ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x y)
cost-diff2
(-.f64 (*.f64 x y) (*.f64 y y))
cost-diff2
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
cost-diff6
(+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y))
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0945
01533
13329
213827
350325
4294225
5537925
6791825
0851825
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
(+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y))
(-.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 y)) (*.f64 y z))
(*.f64 (-.f64 x z) y)
(+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y))
(*.f64 y x)
(-.f64 (*.f64 x y) (*.f64 y y))
(*.f64 (-.f64 x y) y)
(*.f64 x y)
(*.f64 y x)
x
y
(*.f64 y y)
(*.f64 y z)
(*.f64 z y)
z

localize59.0ms (1.6%)

Memory
2.3MiB live, 49.9MiB allocated; 26ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x y)
accuracy0.6601541858302059
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
accuracy3.59763147996247
(-.f64 (*.f64 x y) (*.f64 y y))
accuracy26.141059397456786
(+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y))
Samples
35.0ms142×0valid
17.0ms111×1valid
1.0ms2valid
Compiler

Compiled 47 to 11 computations (76.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 42.0ms
ival-mult: 32.0ms (76.9% of total)
adjust: 4.0ms (9.6% of total)
ival-sub: 3.0ms (7.2% of total)
ival-add: 2.0ms (4.8% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series7.0ms (0.2%)

Memory
12.4MiB live, 12.3MiB allocated; 0ms collecting garbage
Counts
4 → 19
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y))
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
(-.f64 (*.f64 x y) (*.f64 y y))
(*.f64 x y)
Outputs
#s(approx (+ (- (* x y) (* y y)) (* y y)) #s(hole binary64 (* x y)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* y z))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (- (* x y) (* y z))))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* -1 (pow y 2))))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (- (* x y) (pow y 2))))
#s(approx (* x y) #s(hole binary64 (* x y)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* x y)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* x (+ y (* -1 (/ (* y z) x))))))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* x y)))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* x (+ y (* -1 (/ (pow y 2) x))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (* y z) x))))))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (pow y 2) x))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* y (- x z))))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* y (+ x (* -1 y)))))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* (pow y 2) (- (/ x y) 1))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* y (- (* -1 x) (* -1 z))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (+ (* -1 (* y z)) (* x y))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* z (- (/ (* x y) z) y))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 y))))))
Calls

9 calls:

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

simplify295.0ms (7.8%)

Memory
-17.2MiB live, 264.3MiB allocated; 32ms collecting garbage
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
071311
1191251
2595207
31989207
47714207
08100207
Stop Event
iter limit
node limit
Counts
19 → 19
Calls
Call 1
Inputs
#s(approx (+ (- (* x y) (* y y)) (* y y)) #s(hole binary64 (* x y)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* y z))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (- (* x y) (* y z))))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* -1 (pow y 2))))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (- (* x y) (pow y 2))))
#s(approx (* x y) #s(hole binary64 (* x y)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* x y)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* x (+ y (* -1 (/ (* y z) x))))))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* x y)))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* x (+ y (* -1 (/ (pow y 2) x))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (* y z) x))))))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (pow y 2) x))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* y (- x z))))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* y (+ x (* -1 y)))))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* (pow y 2) (- (/ x y) 1))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* y (- (* -1 x) (* -1 z))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (+ (* -1 (* y z)) (* x y))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* z (- (/ (* x y) z) y))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 y))))))
Outputs
#s(approx (+ (- (* x y) (* y y)) (* y y)) #s(hole binary64 (* x y)))
#s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* y z))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (- (* x y) (* y z))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* -1 (pow y 2))))
#s(approx (- (* x y) (* y y)) (*.f64 (neg.f64 y) y))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (- (* x y) (pow y 2))))
#s(approx (- (* x y) (* y y)) (*.f64 (-.f64 x y) y))
#s(approx (* x y) #s(hole binary64 (* x y)))
#s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* x y)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* x (+ y (* -1 (/ (* y z) x))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* x y)))
#s(approx (- (* x y) (* y y)) (*.f64 y x))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* x (+ y (* -1 (/ (pow y 2) x))))))
#s(approx (- (* x y) (* y y)) (*.f64 (-.f64 x y) y))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (* y z) x))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (pow y 2) x))))))
#s(approx (- (* x y) (* y y)) (*.f64 (-.f64 x y) y))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* y (- x z))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* y (+ x (* -1 y)))))
#s(approx (- (* x y) (* y y)) (*.f64 (-.f64 x y) y))
#s(approx (- (* x y) (* y y)) #s(hole binary64 (* (pow y 2) (- (/ x y) 1))))
#s(approx (- (* x y) (* y y)) (*.f64 (*.f64 (-.f64 (/.f64 x y) #s(literal 1 binary64)) y) y))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* y (- (* -1 x) (* -1 z))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (+ (* -1 (* y z)) (* x y))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* z (- (/ (* x y) z) y))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 (/.f64 (*.f64 y x) z) y) z))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 y))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 (/.f64 (*.f64 y x) z) y) z))

rewrite73.0ms (1.9%)

Memory
-9.2MiB live, 49.6MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0936
01530
17022
072622
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
4 → 119
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y))
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
(-.f64 (*.f64 x y) (*.f64 y y))
(*.f64 x y)
Outputs
(*.f64 y (+.f64 (-.f64 x y) y))
(*.f64 y (+.f64 y (-.f64 x y)))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) #s(literal 0 binary64)) (fma.f64 y x #s(literal 0 binary64)))
(/.f64 (-.f64 (pow.f64 y #s(literal 4 binary64)) (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 2 binary64))) (-.f64 (*.f64 y y) (*.f64 (-.f64 x y) y)))
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 y) y) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 2 binary64)) (+.f64 (pow.f64 y #s(literal 4 binary64)) (*.f64 (*.f64 (-.f64 x y) y) (*.f64 (neg.f64 y) y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) #s(literal 0 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (+.f64 #s(literal 0 binary64) (*.f64 (*.f64 y x) #s(literal 0 binary64)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 2 binary64)) (pow.f64 y #s(literal 4 binary64)))) (neg.f64 (*.f64 y (-.f64 (-.f64 x y) y))))
(/.f64 (neg.f64 (+.f64 (pow.f64 y #s(literal 6 binary64)) (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 y y) (-.f64 (*.f64 y y) (*.f64 (-.f64 x y) y)) (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 2 binary64)) (pow.f64 y #s(literal 4 binary64))) (*.f64 y (-.f64 (-.f64 x y) y)))
(/.f64 (+.f64 (pow.f64 y #s(literal 6 binary64)) (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 3 binary64))) (+.f64 (pow.f64 y #s(literal 4 binary64)) (-.f64 (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 2 binary64)) (*.f64 (*.f64 (-.f64 x y) y) (*.f64 y y)))))
(/.f64 (+.f64 (pow.f64 y #s(literal 6 binary64)) (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 3 binary64))) (fma.f64 (*.f64 y y) (-.f64 (*.f64 y y) (*.f64 (-.f64 x y) y)) (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 2 binary64))))
(fma.f64 (pow.f64 y #s(literal 1 binary64)) (pow.f64 y #s(literal 1 binary64)) (*.f64 (-.f64 x y) y))
(fma.f64 (neg.f64 (neg.f64 y)) (neg.f64 (neg.f64 y)) (*.f64 (-.f64 x y) y))
(fma.f64 (neg.f64 (fabs.f64 y)) (neg.f64 (fabs.f64 y)) (*.f64 (-.f64 x y) y))
(fma.f64 (fabs.f64 (fabs.f64 y)) (fabs.f64 (fabs.f64 y)) (*.f64 (-.f64 x y) y))
(fma.f64 (-.f64 x y) y (*.f64 (neg.f64 (neg.f64 y)) y))
(fma.f64 (-.f64 x y) y (*.f64 y y))
(fma.f64 (neg.f64 y) (neg.f64 y) (*.f64 (-.f64 x y) y))
(fma.f64 (fabs.f64 y) (fabs.f64 y) (*.f64 (-.f64 x y) y))
(fma.f64 y (+.f64 x (neg.f64 y)) (*.f64 (neg.f64 (neg.f64 y)) y))
(fma.f64 y (+.f64 x (neg.f64 y)) (*.f64 y y))
(fma.f64 y (+.f64 x y) (*.f64 (neg.f64 y) y))
(fma.f64 y (-.f64 x y) (*.f64 (neg.f64 (neg.f64 y)) y))
(fma.f64 y (-.f64 x y) (*.f64 y y))
(fma.f64 y y (*.f64 (-.f64 x y) y))
(fma.f64 y x (-.f64 (*.f64 (neg.f64 y) y) (*.f64 (neg.f64 y) y)))
(fma.f64 y x (fma.f64 (neg.f64 y) y (*.f64 y y)))
(fma.f64 x y (-.f64 (*.f64 (neg.f64 y) y) (*.f64 (neg.f64 y) y)))
(fma.f64 x y (fma.f64 (neg.f64 y) y (*.f64 y y)))
(-.f64 (/.f64 (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 2 binary64)) (*.f64 y (-.f64 (-.f64 x y) y))) (/.f64 (pow.f64 y #s(literal 4 binary64)) (*.f64 y (-.f64 (-.f64 x y) y))))
(-.f64 (*.f64 y (+.f64 x y)) (*.f64 y y))
(-.f64 (*.f64 (-.f64 x y) y) (*.f64 (neg.f64 (neg.f64 y)) (neg.f64 y)))
(-.f64 (*.f64 (-.f64 x y) y) (*.f64 (neg.f64 (fabs.f64 y)) (fabs.f64 y)))
(-.f64 (*.f64 (-.f64 x y) y) (*.f64 (neg.f64 y) y))
(-.f64 (*.f64 y y) (*.f64 (neg.f64 y) (-.f64 x y)))
(-.f64 (*.f64 y x) #s(literal 0 binary64))
(+.f64 (/.f64 (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 3 binary64)) (fma.f64 (*.f64 y y) (-.f64 (*.f64 y y) (*.f64 (-.f64 x y) y)) (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 2 binary64)))) (/.f64 (pow.f64 y #s(literal 6 binary64)) (fma.f64 (*.f64 y y) (-.f64 (*.f64 y y) (*.f64 (-.f64 x y) y)) (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 2 binary64)))))
(+.f64 (*.f64 y (+.f64 x y)) (*.f64 (neg.f64 y) y))
(+.f64 (*.f64 (-.f64 x y) y) (*.f64 (neg.f64 (neg.f64 y)) y))
(+.f64 (*.f64 (-.f64 x y) y) (*.f64 y y))
(+.f64 (*.f64 y y) (*.f64 (-.f64 x y) y))
(+.f64 (*.f64 y x) (-.f64 (*.f64 (neg.f64 y) y) (*.f64 (neg.f64 y) y)))
(+.f64 (*.f64 y x) (fma.f64 (neg.f64 y) y (*.f64 y y)))
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 2 binary64)) (*.f64 (*.f64 y (-.f64 y z)) (*.f64 y (-.f64 y z)))) (-.f64 (*.f64 (-.f64 x y) y) (*.f64 y (-.f64 y z))))
(/.f64 (+.f64 (pow.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 y) z) #s(literal 3 binary64))) (+.f64 (pow.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 z y) #s(literal 2 binary64)) (*.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) (*.f64 (neg.f64 y) z)))))
(/.f64 (+.f64 (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 3 binary64)) (pow.f64 (*.f64 y (-.f64 y z)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (-.f64 x y) y) #s(literal 2 binary64)) (-.f64 (*.f64 (*.f64 y (-.f64 y z)) (*.f64 y (-.f64 y z))) (*.f64 (*.f64 (-.f64 x y) y) (*.f64 y (-.f64 y z))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) #s(literal 2 binary64)) (pow.f64 (*.f64 z y) #s(literal 2 binary64)))) (neg.f64 (fma.f64 z y (-.f64 (*.f64 y x) #s(literal 0 binary64)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) #s(literal 3 binary64)) (pow.f64 (*.f64 z y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 z y) (fma.f64 z y (-.f64 (*.f64 y x) #s(literal 0 binary64))) (pow.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) #s(literal 2 binary64)) (pow.f64 (*.f64 z y) #s(literal 2 binary64))) (fma.f64 z y (-.f64 (*.f64 y x) #s(literal 0 binary64))))
(/.f64 (-.f64 (pow.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) #s(literal 3 binary64)) (pow.f64 (*.f64 z y) #s(literal 3 binary64))) (fma.f64 (*.f64 z y) (fma.f64 z y (-.f64 (*.f64 y x) #s(literal 0 binary64))) (pow.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) #s(literal 2 binary64))))
(fma.f64 (pow.f64 y #s(literal 1 binary64)) (pow.f64 y #s(literal 1 binary64)) (-.f64 (*.f64 (-.f64 x y) y) (*.f64 z y)))
(fma.f64 (pow.f64 y #s(literal 1 binary64)) (pow.f64 y #s(literal 1 binary64)) (fma.f64 (-.f64 x y) y (*.f64 (neg.f64 y) z)))
(fma.f64 (neg.f64 (neg.f64 y)) (neg.f64 (neg.f64 y)) (-.f64 (*.f64 (-.f64 x y) y) (*.f64 z y)))
(fma.f64 (neg.f64 (neg.f64 y)) (neg.f64 (neg.f64 y)) (fma.f64 (-.f64 x y) y (*.f64 (neg.f64 y) z)))
(fma.f64 (neg.f64 (fabs.f64 y)) (neg.f64 (fabs.f64 y)) (-.f64 (*.f64 (-.f64 x y) y) (*.f64 z y)))
(fma.f64 (neg.f64 (fabs.f64 y)) (neg.f64 (fabs.f64 y)) (fma.f64 (-.f64 x y) y (*.f64 (neg.f64 y) z)))
(fma.f64 (fabs.f64 (fabs.f64 y)) (fabs.f64 (fabs.f64 y)) (-.f64 (*.f64 (-.f64 x y) y) (*.f64 z y)))
(fma.f64 (fabs.f64 (fabs.f64 y)) (fabs.f64 (fabs.f64 y)) (fma.f64 (-.f64 x y) y (*.f64 (neg.f64 y) z)))
(fma.f64 (-.f64 x y) y (*.f64 y (-.f64 y z)))
(fma.f64 (neg.f64 y) (neg.f64 y) (-.f64 (*.f64 (-.f64 x y) y) (*.f64 z y)))
(fma.f64 (neg.f64 y) (neg.f64 y) (fma.f64 (-.f64 x y) y (*.f64 (neg.f64 y) z)))
(fma.f64 (neg.f64 y) z (-.f64 (*.f64 y x) #s(literal 0 binary64)))
(fma.f64 (fabs.f64 y) (fabs.f64 y) (-.f64 (*.f64 (-.f64 x y) y) (*.f64 z y)))
(fma.f64 (fabs.f64 y) (fabs.f64 y) (fma.f64 (-.f64 x y) y (*.f64 (neg.f64 y) z)))
(fma.f64 z (neg.f64 y) (-.f64 (*.f64 y x) #s(literal 0 binary64)))
(fma.f64 y (+.f64 x (neg.f64 y)) (*.f64 y (-.f64 y z)))
(fma.f64 y (-.f64 y z) (*.f64 (-.f64 x y) y))
(fma.f64 y (+.f64 (-.f64 x y) y) (*.f64 (neg.f64 z) y))
(fma.f64 y (+.f64 (-.f64 x y) y) (*.f64 (neg.f64 y) z))
(fma.f64 y (+.f64 y (-.f64 x y)) (*.f64 (neg.f64 z) y))
(fma.f64 y (+.f64 y (-.f64 x y)) (*.f64 (neg.f64 y) z))
(fma.f64 y (-.f64 x y) (*.f64 y (-.f64 y z)))
(fma.f64 y y (-.f64 (*.f64 (-.f64 x y) y) (*.f64 z y)))
(fma.f64 y y (fma.f64 (-.f64 x y) y (*.f64 (neg.f64 y) z)))
(fma.f64 y x (fma.f64 (neg.f64 y) y (*.f64 y (-.f64 y z))))
(fma.f64 x y (fma.f64 (neg.f64 y) y (*.f64 y (-.f64 y z))))
(-.f64 (/.f64 (pow.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) #s(literal 2 binary64)) (fma.f64 z y (-.f64 (*.f64 y x) #s(literal 0 binary64)))) (/.f64 (pow.f64 (*.f64 z y) #s(literal 2 binary64)) (fma.f64 z y (-.f64 (*.f64 y x) #s(literal 0 binary64)))))
(-.f64 (/.f64 (pow.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) #s(literal 3 binary64)) (fma.f64 (*.f64 z y) (fma.f64 z y (-.f64 (*.f64 y x) #s(literal 0 binary64))) (pow.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 z y) #s(literal 3 binary64)) (fma.f64 (*.f64 z y) (fma.f64 z y (-.f64 (*.f64 y x) #s(literal 0 binary64))) (pow.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) #s(literal 2 binary64)))))
(-.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) (*.f64 (neg.f64 (neg.f64 y)) z))
(-.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) (*.f64 z y))
(-.f64 (*.f64 (-.f64 x y) y) (fma.f64 (neg.f64 y) y (*.f64 z y)))
(-.f64 (*.f64 (-.f64 x y) y) (-.f64 (*.f64 (neg.f64 y) y) (*.f64 (neg.f64 y) z)))
(-.f64 (*.f64 y x) (+.f64 #s(literal 0 binary64) (*.f64 z y)))
(-.f64 (*.f64 y x) (-.f64 #s(literal 0 binary64) (*.f64 (neg.f64 y) z)))
(-.f64 (*.f64 y x) (-.f64 (*.f64 y y) (*.f64 y (-.f64 y z))))
(+.f64 (*.f64 y (-.f64 y z)) (*.f64 (-.f64 x y) y))
(+.f64 (*.f64 (neg.f64 y) z) (-.f64 (*.f64 y x) #s(literal 0 binary64)))
(+.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) (*.f64 (neg.f64 z) y))
(+.f64 (-.f64 (*.f64 y x) #s(literal 0 binary64)) (*.f64 (neg.f64 y) z))
(+.f64 (*.f64 (-.f64 x y) y) (*.f64 y (-.f64 y z)))
(+.f64 (*.f64 y y) (-.f64 (*.f64 (-.f64 x y) y) (*.f64 z y)))
(+.f64 (*.f64 y y) (fma.f64 (-.f64 x y) y (*.f64 (neg.f64 y) z)))
(+.f64 (*.f64 y x) (fma.f64 (neg.f64 y) y (*.f64 y (-.f64 y z))))
(*.f64 (-.f64 x y) y)
(*.f64 y (+.f64 x (neg.f64 y)))
(*.f64 y (-.f64 x y))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 y) y) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 y #s(literal 4 binary64)) (*.f64 (*.f64 y x) (*.f64 (neg.f64 y) y)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 y #s(literal 4 binary64)))) (neg.f64 (*.f64 y (+.f64 x y))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 y #s(literal 6 binary64)))) (neg.f64 (fma.f64 (*.f64 y y) (*.f64 y (+.f64 x y)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 y #s(literal 4 binary64))) (*.f64 y (+.f64 x y)))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 y #s(literal 6 binary64))) (fma.f64 (*.f64 y y) (*.f64 y (+.f64 x y)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))))
(fma.f64 (neg.f64 y) y (*.f64 y x))
(fma.f64 y (neg.f64 y) (*.f64 y x))
(fma.f64 y x (*.f64 (neg.f64 (neg.f64 y)) (neg.f64 y)))
(fma.f64 y x (*.f64 (neg.f64 (fabs.f64 y)) (fabs.f64 y)))
(fma.f64 y x (*.f64 (neg.f64 y) y))
(fma.f64 x y (*.f64 (neg.f64 (neg.f64 y)) (neg.f64 y)))
(fma.f64 x y (*.f64 (neg.f64 (fabs.f64 y)) (fabs.f64 y)))
(fma.f64 x y (*.f64 (neg.f64 y) y))
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 y (+.f64 x y))) (/.f64 (pow.f64 y #s(literal 4 binary64)) (*.f64 y (+.f64 x y))))
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (fma.f64 (*.f64 y y) (*.f64 y (+.f64 x y)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (/.f64 (pow.f64 y #s(literal 6 binary64)) (fma.f64 (*.f64 y y) (*.f64 y (+.f64 x y)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(-.f64 (*.f64 y x) (*.f64 (neg.f64 (neg.f64 y)) y))
(-.f64 (*.f64 y x) (*.f64 y y))
(+.f64 (*.f64 (neg.f64 y) y) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 (neg.f64 y)) (neg.f64 y)))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 (fabs.f64 y)) (fabs.f64 y)))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 y) y))
(*.f64 y x)
(*.f64 x y)

eval13.0ms (0.3%)

Memory
17.9MiB live, 17.9MiB allocated; 0ms collecting garbage
Compiler

Compiled 2 339 to 368 computations (84.3% saved)

prune4.0ms (0.1%)

Memory
7.8MiB live, 7.8MiB allocated; 0ms collecting garbage
Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New1244128
Fresh000
Picked101
Done000
Total1254129
Accuracy
100.0%
Counts
129 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.8%
(-.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) (*.f64 y z))
100.0%
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
53.3%
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y))
55.5%
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
Compiler

Compiled 79 to 46 computations (41.8% saved)

simplify207.0ms (5.5%)

Memory
-29.3MiB live, 249.6MiB allocated; 34ms collecting garbage
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 y z)
cost-diff0
(*.f64 y x)
cost-diff0
#s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))
cost-diff0
(-.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) (*.f64 y z))
cost-diff0
(-.f64 x z)
cost-diff0
(*.f64 (-.f64 x z) y)
cost-diff0
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
cost-diff0
(neg.f64 z)
cost-diff0
(*.f64 (neg.f64 z) y)
cost-diff0
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y))
cost-diff0
(*.f64 y x)
cost-diff0
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
020127
027117
15197
215687
354981
4313981
5553481
6703881
0811781
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
(*.f64 y x)
y
x
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y))
(*.f64 (neg.f64 z) y)
(neg.f64 z)
z
y
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
(*.f64 (-.f64 x z) y)
(-.f64 x z)
x
z
y
(-.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) (*.f64 y z))
#s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))
(*.f64 y x)
y
x
(*.f64 y z)
z
Outputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
(*.f64 y x)
y
x
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y))
(*.f64 (neg.f64 z) y)
(neg.f64 z)
z
y
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
(*.f64 (-.f64 x z) y)
(-.f64 x z)
x
z
y
(-.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) (*.f64 y z))
(fma.f64 (neg.f64 y) z #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)))
#s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))
(*.f64 y x)
y
x
(*.f64 y z)
(*.f64 z y)
z

localize77.0ms (2%)

Memory
-0.8MiB live, 238.9MiB allocated; 31ms collecting garbage
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 y z)
accuracy0.0
(*.f64 y x)
accuracy0.0
#s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))
accuracy0.6601541858302059
(-.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) (*.f64 y z))
accuracy0.0
(-.f64 x z)
accuracy0.0
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
accuracy0.01953125
(*.f64 (-.f64 x z) y)
accuracy0.0
(*.f64 (neg.f64 z) y)
accuracy0.0
(neg.f64 z)
accuracy29.856639821288194
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y))
accuracy0.0
(*.f64 y x)
accuracy28.50285385727395
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
Samples
35.0ms142×0valid
27.0ms111×1valid
1.0ms2valid
Compiler

Compiled 106 to 16 computations (84.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 33.0ms
ival-mult: 13.0ms (39.2% of total)
ival-sub: 11.0ms (33.2% of total)
adjust: 6.0ms (18.1% of total)
ival-add: 2.0ms (6% of total)
ival-neg: 1.0ms (3% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series11.0ms (0.3%)

Memory
26.5MiB live, 26.5MiB allocated; 0ms collecting garbage
Counts
11 → 31
Calls
Call 1
Inputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
(*.f64 y x)
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y))
(*.f64 (neg.f64 z) y)
(neg.f64 z)
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
(*.f64 (-.f64 x z) y)
(-.f64 x z)
(-.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) (*.f64 y z))
#s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))
(*.f64 y z)
Outputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* y z))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (- (* x y) (* y z))))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (* (- x z) y) #s(hole binary64 (* -1 (* y z))))
#s(approx (* (- x z) y) #s(hole binary64 (+ (* -1 (* y z)) (* x y))))
#s(approx (- x z) #s(hole binary64 (* -1 z)))
#s(approx (- x z) #s(hole binary64 (- x z)))
#s(approx (+ (- (* x y) (* y y)) (* y y)) #s(hole binary64 (* x y)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* x y)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* x (+ y (* -1 (/ (* y z) x))))))
#s(approx (* (- x z) y) #s(hole binary64 (* x y)))
#s(approx (* (- x z) y) #s(hole binary64 (* x (+ y (* -1 (/ (* y z) x))))))
#s(approx (- x z) #s(hole binary64 x))
#s(approx (- x z) #s(hole binary64 (* x (+ 1 (* -1 (/ z x))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (* y z) x))))))
#s(approx (* (- x z) y) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (* y z) x))))))
#s(approx (- x z) #s(hole binary64 (* -1 (* x (- (/ z x) 1)))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* y (- x z))))
#s(approx (* (neg z) y) #s(hole binary64 (* -1 (* y z))))
#s(approx (* (- x z) y) #s(hole binary64 (* y (- x z))))
#s(approx (* y z) #s(hole binary64 (* y z)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* y (- (* -1 x) (* -1 z))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (+ (* -1 (* y z)) (* x y))))
#s(approx (neg z) #s(hole binary64 (* -1 z)))
#s(approx (- x z) #s(hole binary64 (+ x (* -1 z))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* z (- (/ (* x y) z) y))))
#s(approx (* (- x z) y) #s(hole binary64 (* z (+ (* -1 y) (/ (* x y) z)))))
#s(approx (- x z) #s(hole binary64 (* z (- (/ x z) 1))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 y))))))
#s(approx (* (- x z) y) #s(hole binary64 (* -1 (* z (+ y (* -1 (/ (* x y) z)))))))
#s(approx (- x z) #s(hole binary64 (* -1 (* z (+ 1 (* -1 (/ x z)))))))
Calls

9 calls:

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

simplify153.0ms (4.1%)

Memory
-0.7MiB live, 190.2MiB allocated; 19ms collecting garbage
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
091452
1234352
2716280
32126280
08716280
Stop Event
iter limit
node limit
Counts
31 → 31
Calls
Call 1
Inputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* y z))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (- (* x y) (* y z))))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (* (- x z) y) #s(hole binary64 (* -1 (* y z))))
#s(approx (* (- x z) y) #s(hole binary64 (+ (* -1 (* y z)) (* x y))))
#s(approx (- x z) #s(hole binary64 (* -1 z)))
#s(approx (- x z) #s(hole binary64 (- x z)))
#s(approx (+ (- (* x y) (* y y)) (* y y)) #s(hole binary64 (* x y)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* x y)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* x (+ y (* -1 (/ (* y z) x))))))
#s(approx (* (- x z) y) #s(hole binary64 (* x y)))
#s(approx (* (- x z) y) #s(hole binary64 (* x (+ y (* -1 (/ (* y z) x))))))
#s(approx (- x z) #s(hole binary64 x))
#s(approx (- x z) #s(hole binary64 (* x (+ 1 (* -1 (/ z x))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (* y z) x))))))
#s(approx (* (- x z) y) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (* y z) x))))))
#s(approx (- x z) #s(hole binary64 (* -1 (* x (- (/ z x) 1)))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* y (- x z))))
#s(approx (* (neg z) y) #s(hole binary64 (* -1 (* y z))))
#s(approx (* (- x z) y) #s(hole binary64 (* y (- x z))))
#s(approx (* y z) #s(hole binary64 (* y z)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* y (- (* -1 x) (* -1 z))))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (+ (* -1 (* y z)) (* x y))))
#s(approx (neg z) #s(hole binary64 (* -1 z)))
#s(approx (- x z) #s(hole binary64 (+ x (* -1 z))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* z (- (/ (* x y) z) y))))
#s(approx (* (- x z) y) #s(hole binary64 (* z (+ (* -1 y) (/ (* x y) z)))))
#s(approx (- x z) #s(hole binary64 (* z (- (/ x z) 1))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 y))))))
#s(approx (* (- x z) y) #s(hole binary64 (* -1 (* z (+ y (* -1 (/ (* x y) z)))))))
#s(approx (- x z) #s(hole binary64 (* -1 (* z (+ 1 (* -1 (/ x z)))))))
Outputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* y z))))
#s(approx (* (- x z) y) (*.f64 (neg.f64 y) z))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (- (* x y) (* y z))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (* y x) (*.f64 y x))
#s(approx (* (- x z) y) #s(hole binary64 (* -1 (* y z))))
#s(approx (* (- x z) y) (*.f64 (neg.f64 y) z))
#s(approx (* (- x z) y) #s(hole binary64 (+ (* -1 (* y z)) (* x y))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (- x z) #s(hole binary64 (* -1 z)))
#s(approx (- x z) (neg.f64 z))
#s(approx (- x z) #s(hole binary64 (- x z)))
#s(approx (- x z) (-.f64 x z))
#s(approx (+ (- (* x y) (* y y)) (* y y)) #s(hole binary64 (* x y)))
#s(approx (* y x) (*.f64 y x))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* x y)))
#s(approx (* (- x z) y) (*.f64 y x))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* x (+ y (* -1 (/ (* y z) x))))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (* (- x z) y) #s(hole binary64 (* x y)))
#s(approx (* (- x z) y) (*.f64 y x))
#s(approx (* (- x z) y) #s(hole binary64 (* x (+ y (* -1 (/ (* y z) x))))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (- x z) #s(hole binary64 x))
#s(approx (- x z) x)
#s(approx (- x z) #s(hole binary64 (* x (+ 1 (* -1 (/ z x))))))
#s(approx (- x z) (-.f64 x z))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (* y z) x))))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (* (- x z) y) #s(hole binary64 (* -1 (* x (+ (* -1 y) (/ (* y z) x))))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (- x z) #s(hole binary64 (* -1 (* x (- (/ z x) 1)))))
#s(approx (- x z) (-.f64 x z))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* y (- x z))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (* (neg z) y) #s(hole binary64 (* -1 (* y z))))
#s(approx (* (neg z) y) (*.f64 (neg.f64 y) z))
#s(approx (* (- x z) y) #s(hole binary64 (* y (- x z))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (* y z) #s(hole binary64 (* y z)))
#s(approx (* y z) (*.f64 z y))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* y (- (* -1 x) (* -1 z))))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (+ (* -1 (* y z)) (* x y))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (neg z) #s(hole binary64 (* -1 z)))
#s(approx (neg z) (neg.f64 z))
#s(approx (- x z) #s(hole binary64 (+ x (* -1 z))))
#s(approx (- x z) (-.f64 x z))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* z (- (/ (* x y) z) y))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (* (- x z) y) #s(hole binary64 (* z (+ (* -1 y) (/ (* x y) z)))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (- x z) #s(hole binary64 (* z (- (/ x z) 1))))
#s(approx (- x z) (-.f64 x z))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 y))))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (* (- x z) y) #s(hole binary64 (* -1 (* z (+ y (* -1 (/ (* x y) z)))))))
#s(approx (* (- x z) y) (*.f64 (-.f64 x z) y))
#s(approx (- x z) #s(hole binary64 (* -1 (* z (+ 1 (* -1 (/ x z)))))))
#s(approx (- x z) (-.f64 x z))

rewrite53.0ms (1.4%)

Memory
-17.6MiB live, 82.4MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
020114
027104
111084
096084
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
11 → 42
Calls
Call 1
Inputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
(*.f64 y x)
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y))
(*.f64 (neg.f64 z) y)
(neg.f64 z)
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
(*.f64 (-.f64 x z) y)
(-.f64 x z)
(-.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) (*.f64 y z))
#s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))
(*.f64 y z)
Outputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
(*.f64 y x)
(*.f64 x y)
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 y) z))
(*.f64 (neg.f64 y) z)
(*.f64 (neg.f64 z) y)
(*.f64 z (neg.f64 y))
(*.f64 y (neg.f64 z))
(neg.f64 (*.f64 z y))
(neg.f64 z)
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
(*.f64 (-.f64 x z) y)
(*.f64 y (-.f64 x z))
(/.f64 (*.f64 (*.f64 (+.f64 z x) (-.f64 x z)) y) (+.f64 z x))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) y) (fma.f64 z (+.f64 z x) (*.f64 x x)))
(/.f64 (*.f64 y (*.f64 (+.f64 z x) (-.f64 x z))) (+.f64 z x))
(/.f64 (*.f64 y (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64)))) (fma.f64 z (+.f64 z x) (*.f64 x x)))
(/.f64 (neg.f64 (*.f64 (+.f64 z x) (-.f64 x z))) (neg.f64 (+.f64 z x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64)))) (neg.f64 (fma.f64 z (+.f64 z x) (*.f64 x x))))
(/.f64 (*.f64 (+.f64 z x) (-.f64 x z)) (+.f64 z x))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 z (+.f64 z x) (*.f64 x x)))
(-.f64 (/.f64 (*.f64 x x) (+.f64 z x)) (/.f64 (*.f64 z z) (+.f64 z x)))
(-.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 z (+.f64 z x) (*.f64 x x))) (/.f64 (pow.f64 z #s(literal 3 binary64)) (fma.f64 z (+.f64 z x) (*.f64 x x))))
(-.f64 x z)
(/.f64 (+.f64 (pow.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 y) z) #s(literal 3 binary64))) (+.f64 (pow.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 z y) #s(literal 2 binary64)) (*.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) (*.f64 (neg.f64 y) z)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) #s(literal 2 binary64)) (pow.f64 (*.f64 z y) #s(literal 2 binary64)))) (neg.f64 (fma.f64 z y #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 (*.f64 z y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 z y) (fma.f64 z y #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))) (pow.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) #s(literal 2 binary64)) (pow.f64 (*.f64 z y) #s(literal 2 binary64))) (fma.f64 z y #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))))
(/.f64 (-.f64 (pow.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 (*.f64 z y) #s(literal 3 binary64))) (fma.f64 (*.f64 z y) (fma.f64 z y #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))) (pow.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) #s(literal 2 binary64))))
(fma.f64 (neg.f64 y) z #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)))
(fma.f64 (neg.f64 z) y #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)))
(fma.f64 z (neg.f64 y) #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)))
(fma.f64 y (neg.f64 z) #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)))
(-.f64 (/.f64 (pow.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) #s(literal 2 binary64)) (fma.f64 z y #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)))) (/.f64 (pow.f64 (*.f64 z y) #s(literal 2 binary64)) (fma.f64 z y #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)))))
(-.f64 (/.f64 (pow.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) #s(literal 3 binary64)) (fma.f64 (*.f64 z y) (fma.f64 z y #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))) (pow.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 z y) #s(literal 3 binary64)) (fma.f64 (*.f64 z y) (fma.f64 z y #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))) (pow.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) #s(literal 2 binary64)))))
(-.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) (*.f64 (neg.f64 (neg.f64 y)) z))
(-.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) (*.f64 z y))
(+.f64 (*.f64 (neg.f64 y) z) #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)))
(+.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) (*.f64 (neg.f64 y) z))
#s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x))
(*.f64 z y)
(*.f64 y z)

eval5.0ms (0.1%)

Memory
15.3MiB live, 15.3MiB allocated; 0ms collecting garbage
Compiler

Compiled 1 530 to 150 computations (90.2% saved)

prune8.0ms (0.2%)

Memory
-31.4MiB live, 15.4MiB allocated; 2ms collecting garbage
Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New55055
Fresh000
Picked044
Done000
Total55459
Accuracy
100.0%
Counts
59 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.8%
(-.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) (*.f64 y z))
100.0%
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
53.3%
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y))
55.5%
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
Compiler

Compiled 173 to 71 computations (59% saved)

regimes9.0ms (0.2%)

Memory
22.6MiB live, 22.6MiB allocated; 0ms collecting garbage
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
(-.f64 #s(approx (+ (- (* x y) (* y y)) (* y y)) (*.f64 y x)) (*.f64 y z))
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
Outputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
Calls

4 calls:

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

Compiled 18 to 18 computations (0% saved)

regimes6.0ms (0.1%)

Memory
16.2MiB live, 16.2MiB allocated; 0ms collecting garbage
Counts
2 → 3
Calls
Call 1
Inputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y))
Outputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
Calls

4 calls:

1.0ms
y
1.0ms
x
1.0ms
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
1.0ms
z
Results
AccuracySegmentsBranch
60.2%3(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
81.8%3x
61.4%3y
79.9%3z
Compiler

Compiled 18 to 18 computations (0% saved)

regimes33.0ms (0.9%)

Memory
-34.7MiB live, 11.3MiB allocated; 6ms collecting garbage
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

4 calls:

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

Compiled 18 to 18 computations (0% saved)

bsearch77.0ms (2%)

Memory
22.2MiB live, 73.5MiB allocated; 9ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
53.0ms
1.828677121521327e-56
2.5692337554894092e-52
20.0ms
-1.3971376767168193e+51
-3.488424619271691e+32
Samples
49.0ms100×1valid
11.0ms188×0valid
Compiler

Compiled 720 to 465 computations (35.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-mult: 7.0ms (42.5% of total)
adjust: 4.0ms (24.3% of total)
ival-sub: 3.0ms (18.2% of total)
ival-add: 2.0ms (12.1% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

simplify78.0ms (2.1%)

Memory
-1.1MiB live, 86.6MiB allocated; 17ms collecting garbage
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02380
15264
216456
353248
4297648
5533648
6788248
Stop Event
node limit
Calls
Call 1
Inputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
(if (<=.f64 x #s(literal -35999999999999999756255514388529676288 binary64)) #s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x)) (if (<=.f64 x #s(literal 1051437920018875/53919893334301279589334030174039261347274288845081144962207220498432 binary64)) #s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y)) #s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))
Outputs
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (-.f64 x z) y))
(if (<=.f64 x #s(literal -35999999999999999756255514388529676288 binary64)) #s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x)) (if (<=.f64 x #s(literal 1051437920018875/53919893334301279589334030174039261347274288845081144962207220498432 binary64)) #s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y)) #s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))))
(if (or (<=.f64 x #s(literal -35999999999999999756255514388529676288 binary64)) (not (<=.f64 x #s(literal 1051437920018875/53919893334301279589334030174039261347274288845081144962207220498432 binary64)))) #s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x)) #s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 (neg.f64 z) y)))
#s(approx (- (+ (- (* x y) (* y y)) (* y y)) (* y z)) (*.f64 y x))

derivations319.0ms (8.4%)

Memory
-23.9MiB live, 130.1MiB allocated; 30ms collecting garbage
Stop Event
done
Compiler

Compiled 88 to 24 computations (72.7% saved)

preprocess24.0ms (0.6%)

Memory
13.0MiB live, 58.8MiB allocated; 5ms collecting garbage
Remove

(negabs y)

Compiler

Compiled 258 to 100 computations (61.2% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...