Diagrams.TwoD.Segment:bezierClip from diagrams-lib-1.3.0.3

Time bar (total: 3.8s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.8MiB live, 0.8MiB 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 11 to 10 computations (9.1% saved)

sample1.2s (31.7%)

Memory
67.1MiB live, 1 534.7MiB allocated; 411ms collecting garbage
Samples
833.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 454.0ms
ival-mult: 260.0ms (57.3% of total)
ival-sub: 123.0ms (27.1% of total)
ival-add: 54.0ms (11.9% of total)
ival-true: 7.0ms (1.5% of total)
exact: 6.0ms (1.3% of total)
ival-assert: 3.0ms (0.7% of total)
adjust: 2.0ms (0.4% of total)
Bogosity

explain104.0ms (2.7%)

Memory
-2.7MiB live, 132.0MiB allocated; 32ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
20-0-(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
00-0-(-.f64 #s(literal 1 binary64) y)
00-0-y
00-0-#s(literal 1 binary64)
00-0-(*.f64 z (-.f64 #s(literal 1 binary64) y))
00-0-z
00-0-(*.f64 x y)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
+.f64(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))nan-rescue20
(*.f64 x y)overflow24
(*.f64 z (-.f64 #s(literal 1 binary64) y))overflow21
Confusion
Predicted +Predicted -
+20
-0254
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+200
-00254
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0254
12
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
39.0ms512×0valid
Compiler

Compiled 61 to 28 computations (54.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 19.0ms
ival-mult: 12.0ms (63.9% of total)
ival-sub: 3.0ms (16% of total)
ival-add: 2.0ms (10.7% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess245.0ms (6.4%)

Memory
-22.2MiB live, 170.6MiB allocated; 30ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03288
17784
216383
328881
449381
5126268
6757968
089
0129
1209
2379
3679
41409
54768
636878
776388
082897
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
Outputs
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
(fma.f64 (-.f64 z x) (neg.f64 y) z)
Compiler

Compiled 9 to 8 computations (11.1% 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
1.3MiB live, 1.3MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.2%
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
Compiler

Compiled 9 to 8 computations (11.1% saved)

simplify235.0ms (6.1%)

Memory
34.3MiB live, 223.1MiB allocated; 17ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(-.f64 #s(literal 1 binary64) y)
cost-diff0
(*.f64 z (-.f64 #s(literal 1 binary64) y))
cost-diff0
(*.f64 x y)
cost-diff2
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0824
01224
12024
23724
36724
414024
547623
6368723
7763823
0828922
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
(*.f64 x y)
x
y
(*.f64 z (-.f64 #s(literal 1 binary64) y))
z
(-.f64 #s(literal 1 binary64) y)
#s(literal 1 binary64)
Outputs
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
(fma.f64 (-.f64 z x) (neg.f64 y) z)
(*.f64 x y)
(*.f64 y x)
x
y
(*.f64 z (-.f64 #s(literal 1 binary64) y))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
z
(-.f64 #s(literal 1 binary64) y)
#s(literal 1 binary64)

localize45.0ms (1.2%)

Memory
-6.3MiB live, 97.2MiB allocated; 7ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 #s(literal 1 binary64) y)
accuracy0.0
(*.f64 x y)
accuracy0.00390625
(*.f64 z (-.f64 #s(literal 1 binary64) y))
accuracy0.5039021216604116
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
Samples
36.0ms256×0valid
Compiler

Compiled 26 to 10 computations (61.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-add: 10.0ms (64.5% of total)
ival-mult: 4.0ms (25.8% of total)
ival-sub: 1.0ms (6.5% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series9.0ms (0.2%)

Memory
-29.4MiB live, 17.2MiB allocated; 5ms collecting garbage
Counts
4 → 22
Calls
Call 1
Inputs
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
(*.f64 x y)
(*.f64 z (-.f64 #s(literal 1 binary64) y))
(-.f64 #s(literal 1 binary64) y)
Outputs
(* z (- 1 y))
(+ (* x y) (* z (- 1 y)))
(* x y)
(* x (+ y (/ (* z (- 1 y)) x)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* z (- 1 y)) x)))))
z
(+ z (* y (+ x (* -1 z))))
(+ z (* -1 (* y z)))
1
(+ 1 (* -1 y))
(* y (+ x (* -1 z)))
(* y (+ x (+ (* -1 z) (/ z y))))
(* -1 (* y z))
(* y (+ (* -1 z) (/ z y)))
(* -1 y)
(* y (- (/ 1 y) 1))
(* -1 (* y (+ z (* -1 x))))
(* -1 (* y (+ z (+ (* -1 x) (* -1 (/ z y))))))
(* -1 (* y (+ z (* -1 (/ z y)))))
(* -1 (* y (- 1 (/ 1 y))))
(* z (- (+ 1 (/ (* x y) z)) y))
(* -1 (* z (+ (* -1 (- 1 y)) (* -1 (/ (* x y) z)))))
Calls

9 calls:

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

simplify189.0ms (4.9%)

Memory
-5.8MiB live, 180.4MiB allocated; 57ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057127
1208106
2650106
31978106
47354106
0810998
Stop Event
iter limit
node limit
Counts
22 → 21
Calls
Call 1
Inputs
(* z (- 1 y))
(+ (* x y) (* z (- 1 y)))
(* x y)
(* x (+ y (/ (* z (- 1 y)) x)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* z (- 1 y)) x)))))
z
(+ z (* y (+ x (* -1 z))))
(+ z (* -1 (* y z)))
1
(+ 1 (* -1 y))
(* y (+ x (* -1 z)))
(* y (+ x (+ (* -1 z) (/ z y))))
(* -1 (* y z))
(* y (+ (* -1 z) (/ z y)))
(* -1 y)
(* y (- (/ 1 y) 1))
(* -1 (* y (+ z (* -1 x))))
(* -1 (* y (+ z (+ (* -1 x) (* -1 (/ z y))))))
(* -1 (* y (+ z (* -1 (/ z y)))))
(* -1 (* y (- 1 (/ 1 y))))
(* z (- (+ 1 (/ (* x y) z)) y))
(* -1 (* z (+ (* -1 (- 1 y)) (* -1 (/ (* x y) z)))))
Outputs
(* z (- 1 y))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(+ (* x y) (* z (- 1 y)))
(fma.f64 (-.f64 x z) y z)
(* x y)
(*.f64 y x)
(* x (+ y (/ (* z (- 1 y)) x)))
(fma.f64 (-.f64 x z) y z)
(* -1 (* x (+ (* -1 y) (* -1 (/ (* z (- 1 y)) x)))))
(fma.f64 (-.f64 x z) y z)
z
(+ z (* y (+ x (* -1 z))))
(fma.f64 (-.f64 x z) y z)
(+ z (* -1 (* y z)))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
1
#s(literal 1 binary64)
(+ 1 (* -1 y))
(-.f64 #s(literal 1 binary64) y)
(* y (+ x (* -1 z)))
(*.f64 (-.f64 x z) y)
(* y (+ x (+ (* -1 z) (/ z y))))
(fma.f64 (-.f64 x z) y z)
(* -1 (* y z))
(*.f64 (neg.f64 z) y)
(* y (+ (* -1 z) (/ z y)))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(* -1 y)
(neg.f64 y)
(* y (- (/ 1 y) 1))
(-.f64 #s(literal 1 binary64) y)
(* -1 (* y (+ z (* -1 x))))
(*.f64 (-.f64 x z) y)
(* -1 (* y (+ z (+ (* -1 x) (* -1 (/ z y))))))
(fma.f64 (-.f64 x z) y z)
(* -1 (* y (+ z (* -1 (/ z y)))))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(* -1 (* y (- 1 (/ 1 y))))
(-.f64 #s(literal 1 binary64) y)
(* z (- (+ 1 (/ (* x y) z)) y))
(fma.f64 (-.f64 x z) y z)
(* -1 (* z (+ (* -1 (- 1 y)) (* -1 (/ (* x y) z)))))
(fma.f64 (-.f64 x z) y z)

rewrite47.0ms (1.2%)

Memory
19.0MiB live, 65.5MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0820
01220
14620
034019
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
4 → 37
Calls
Call 1
Inputs
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
(*.f64 x y)
(*.f64 z (-.f64 #s(literal 1 binary64) y))
(-.f64 #s(literal 1 binary64) y)
Outputs
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (-.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (*.f64 y x)))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 z) (-.f64 #s(literal 1 binary64) y)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)) (*.f64 (*.f64 y x) (*.f64 (neg.f64 z) (-.f64 #s(literal 1 binary64) y))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (-.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64))) (-.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z)))
(/.f64 (+.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 y x) z) (-.f64 #s(literal 1 binary64) y)))))
(/.f64 (+.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (fma.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (-.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))))
(fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 y x))
(fma.f64 z (-.f64 #s(literal 1 binary64) y) (*.f64 y x))
(fma.f64 y x (*.f64 (neg.f64 (neg.f64 z)) (-.f64 #s(literal 1 binary64) y)))
(fma.f64 y x (*.f64 (-.f64 #s(literal 1 binary64) y) z))
(fma.f64 x y (*.f64 (neg.f64 (neg.f64 z)) (-.f64 #s(literal 1 binary64) y)))
(fma.f64 x y (*.f64 (-.f64 #s(literal 1 binary64) y) z))
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z))) (/.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)) (-.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z))))
(-.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (*.f64 (neg.f64 y) x))
(-.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (*.f64 (neg.f64 x) y))
(-.f64 (*.f64 y x) (*.f64 (neg.f64 (-.f64 #s(literal 1 binary64) y)) z))
(-.f64 (*.f64 y x) (*.f64 (neg.f64 z) (-.f64 #s(literal 1 binary64) y)))
(+.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (fma.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (-.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 3 binary64)) (fma.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (-.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 (neg.f64 z)) (-.f64 #s(literal 1 binary64) y)))
(+.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z))
(*.f64 y x)
(*.f64 x y)
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(*.f64 z (-.f64 #s(literal 1 binary64) y))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (*.f64 y y)) z) (+.f64 #s(literal 1 binary64) y))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64))) z) (+.f64 (fma.f64 y y y) #s(literal 1 binary64)))
(/.f64 (*.f64 z (-.f64 #s(literal 1 binary64) (*.f64 y y))) (+.f64 #s(literal 1 binary64) y))
(/.f64 (*.f64 z (-.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (+.f64 (fma.f64 y y y) #s(literal 1 binary64)))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 y y))) (neg.f64 (+.f64 #s(literal 1 binary64) y)))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (neg.f64 (+.f64 (fma.f64 y y y) #s(literal 1 binary64))))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 y y)) (+.f64 #s(literal 1 binary64) y))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64))) (+.f64 (fma.f64 y y y) #s(literal 1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) y)) (/.f64 (*.f64 y y) (+.f64 #s(literal 1 binary64) y)))
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (fma.f64 y y y) #s(literal 1 binary64))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (+.f64 (fma.f64 y y y) #s(literal 1 binary64))))
(-.f64 #s(literal 1 binary64) y)

eval5.0ms (0.1%)

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

Compiled 775 to 145 computations (81.3% saved)

prune2.0ms (0.1%)

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

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New42446
Fresh000
Picked101
Done000
Total43447
Accuracy
100.0%
Counts
47 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 y x))
100.0%
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
64.4%
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))
59.6%
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z))
Compiler

Compiled 54 to 41 computations (24.1% saved)

simplify166.0ms (4.3%)

Memory
-2.4MiB live, 100.4MiB allocated; 18ms collecting garbage
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 y x)
cost-diff0
(-.f64 #s(literal 1 binary64) y)
cost-diff2
(fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 y x))
cost-diff0
(-.f64 x z)
cost-diff0
(fma.f64 (-.f64 x z) y z)
cost-diff0
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
cost-diff0
(-.f64 x z)
cost-diff0
(*.f64 (-.f64 x z) y)
cost-diff0
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))
cost-diff0
(-.f64 #s(literal 1 binary64) y)
cost-diff0
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
cost-diff0
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z))
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
01898
02593
13893
26293
310293
419093
553893
6391387
7796487
0827787
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(-.f64 #s(literal 1 binary64) y)
#s(literal 1 binary64)
y
z
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))
(*.f64 (-.f64 x z) y)
(-.f64 x z)
x
z
y
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
(fma.f64 (-.f64 x z) y z)
(-.f64 x z)
x
z
y
(fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 y x))
(-.f64 #s(literal 1 binary64) y)
#s(literal 1 binary64)
y
z
(*.f64 y x)
x
Outputs
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(-.f64 #s(literal 1 binary64) y)
#s(literal 1 binary64)
y
z
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))
(*.f64 (-.f64 x z) y)
(-.f64 x z)
x
z
y
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
(fma.f64 (-.f64 x z) y z)
(-.f64 x z)
x
z
y
(fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 y x))
(fma.f64 (-.f64 x z) y z)
(-.f64 #s(literal 1 binary64) y)
#s(literal 1 binary64)
y
z
(*.f64 y x)
x

localize48.0ms (1.3%)

Memory
8.5MiB live, 53.4MiB allocated; 8ms collecting garbage
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 #s(literal 1 binary64) y)
accuracy0.0
(*.f64 y x)
accuracy0.2539034976055602
(fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 y x))
accuracy0.0
(-.f64 x z)
accuracy0.0
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
accuracy0.0078125
(fma.f64 (-.f64 x z) y z)
accuracy0.0
(-.f64 x z)
accuracy0.0234375
(*.f64 (-.f64 x z) y)
accuracy22.762461996861393
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))
accuracy0.0
(-.f64 #s(literal 1 binary64) y)
accuracy0.00390625
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
accuracy25.83585031715691
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z))
Samples
39.0ms256×0valid
Compiler

Compiled 83 to 16 computations (80.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 26.0ms
ival-mult: 20.0ms (77.7% of total)
ival-add: 3.0ms (11.7% of total)
ival-sub: 2.0ms (7.8% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series53.0ms (1.4%)

Memory
-21.1MiB live, 25.4MiB allocated; 6ms collecting garbage
Counts
10 → 47
Calls
Call 1
Inputs
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(-.f64 #s(literal 1 binary64) y)
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))
(*.f64 (-.f64 x z) y)
(-.f64 x z)
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
(fma.f64 (-.f64 x z) y z)
(fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 y x))
(*.f64 y x)
Outputs
(* z (- 1 y))
(+ (* x y) (* z (- 1 y)))
(* -1 (* y z))
(+ (* -1 (* y z)) (* x y))
(* -1 z)
(- x z)
(+ z (* -1 (* y z)))
(+ z (+ (* -1 (* y z)) (* x y)))
(* x y)
(* x (+ y (/ (* z (- 1 y)) x)))
(* x (+ y (* -1 (/ (* y z) x))))
x
(* x (+ 1 (* -1 (/ z x))))
(* x (+ y (+ (* -1 (/ (* y z) x)) (/ z x))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* z (- 1 y)) x)))))
(* -1 (* x (+ (* -1 y) (/ (* y z) x))))
(* -1 (* x (- (/ z x) 1)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ z (* -1 (* y z))) x)))))
z
(+ z (* y (+ x (* -1 z))))
1
(+ 1 (* -1 y))
(* y (- x z))
(+ z (* y (- x z)))
(* y (+ x (* -1 z)))
(* y (+ x (+ (* -1 z) (/ z y))))
(* y (+ (* -1 z) (/ z y)))
(* -1 y)
(* y (- (/ 1 y) 1))
(* y (- (+ x (/ z y)) z))
(* -1 (* y (+ z (* -1 x))))
(* -1 (* y (+ z (+ (* -1 x) (* -1 (/ z y))))))
(* -1 (* y (+ z (* -1 (/ z y)))))
(* -1 (* y (- 1 (/ 1 y))))
(* -1 (* y (+ (* -1 (- x z)) (* -1 (/ z y)))))
(+ x (* -1 z))
(+ (* x y) (* z (+ 1 (* -1 y))))
(* z (- (+ 1 (/ (* x y) z)) y))
(* z (+ (* -1 y) (/ (* x y) z)))
(* z (- (/ x z) 1))
(* z (+ 1 (* -1 y)))
(* z (+ 1 (+ (* -1 y) (/ (* x y) z))))
(* -1 (* z (+ (* -1 (- 1 y)) (* -1 (/ (* x y) z)))))
(* -1 (* z (+ y (* -1 (/ (* x y) z)))))
(* -1 (* z (+ 1 (* -1 (/ x z)))))
(* -1 (* z (- y 1)))
(* -1 (* z (- (+ y (* -1 (/ (* x y) z))) 1)))
Calls

9 calls:

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

simplify219.0ms (5.7%)

Memory
-17.5MiB live, 268.4MiB allocated; 26ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0113297
1418238
21365238
33650238
46307238
08138221
Stop Event
iter limit
node limit
Counts
47 → 45
Calls
Call 1
Inputs
(* z (- 1 y))
(+ (* x y) (* z (- 1 y)))
(* -1 (* y z))
(+ (* -1 (* y z)) (* x y))
(* -1 z)
(- x z)
(+ z (* -1 (* y z)))
(+ z (+ (* -1 (* y z)) (* x y)))
(* x y)
(* x (+ y (/ (* z (- 1 y)) x)))
(* x (+ y (* -1 (/ (* y z) x))))
x
(* x (+ 1 (* -1 (/ z x))))
(* x (+ y (+ (* -1 (/ (* y z) x)) (/ z x))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* z (- 1 y)) x)))))
(* -1 (* x (+ (* -1 y) (/ (* y z) x))))
(* -1 (* x (- (/ z x) 1)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ z (* -1 (* y z))) x)))))
z
(+ z (* y (+ x (* -1 z))))
1
(+ 1 (* -1 y))
(* y (- x z))
(+ z (* y (- x z)))
(* y (+ x (* -1 z)))
(* y (+ x (+ (* -1 z) (/ z y))))
(* y (+ (* -1 z) (/ z y)))
(* -1 y)
(* y (- (/ 1 y) 1))
(* y (- (+ x (/ z y)) z))
(* -1 (* y (+ z (* -1 x))))
(* -1 (* y (+ z (+ (* -1 x) (* -1 (/ z y))))))
(* -1 (* y (+ z (* -1 (/ z y)))))
(* -1 (* y (- 1 (/ 1 y))))
(* -1 (* y (+ (* -1 (- x z)) (* -1 (/ z y)))))
(+ x (* -1 z))
(+ (* x y) (* z (+ 1 (* -1 y))))
(* z (- (+ 1 (/ (* x y) z)) y))
(* z (+ (* -1 y) (/ (* x y) z)))
(* z (- (/ x z) 1))
(* z (+ 1 (* -1 y)))
(* z (+ 1 (+ (* -1 y) (/ (* x y) z))))
(* -1 (* z (+ (* -1 (- 1 y)) (* -1 (/ (* x y) z)))))
(* -1 (* z (+ y (* -1 (/ (* x y) z)))))
(* -1 (* z (+ 1 (* -1 (/ x z)))))
(* -1 (* z (- y 1)))
(* -1 (* z (- (+ y (* -1 (/ (* x y) z))) 1)))
Outputs
(* z (- 1 y))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(+ (* x y) (* z (- 1 y)))
(fma.f64 (-.f64 x z) y z)
(* -1 (* y z))
(*.f64 (neg.f64 y) z)
(+ (* -1 (* y z)) (* x y))
(*.f64 (-.f64 x z) y)
(* -1 z)
(neg.f64 z)
(- x z)
(-.f64 x z)
(+ z (* -1 (* y z)))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(+ z (+ (* -1 (* y z)) (* x y)))
(fma.f64 (-.f64 x z) y z)
(* x y)
(*.f64 y x)
(* x (+ y (/ (* z (- 1 y)) x)))
(fma.f64 (-.f64 x z) y z)
(* x (+ y (* -1 (/ (* y z) x))))
(*.f64 (-.f64 x z) y)
x
(* x (+ 1 (* -1 (/ z x))))
(-.f64 x z)
(* x (+ y (+ (* -1 (/ (* y z) x)) (/ z x))))
(fma.f64 (-.f64 x z) y z)
(* -1 (* x (+ (* -1 y) (* -1 (/ (* z (- 1 y)) x)))))
(fma.f64 (-.f64 x z) y z)
(* -1 (* x (+ (* -1 y) (/ (* y z) x))))
(*.f64 (-.f64 x z) y)
(* -1 (* x (- (/ z x) 1)))
(-.f64 x z)
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ z (* -1 (* y z))) x)))))
(fma.f64 (-.f64 x z) y z)
z
(+ z (* y (+ x (* -1 z))))
(fma.f64 (-.f64 x z) y z)
1
#s(literal 1 binary64)
(+ 1 (* -1 y))
(-.f64 #s(literal 1 binary64) y)
(* y (- x z))
(*.f64 (-.f64 x z) y)
(+ z (* y (- x z)))
(fma.f64 (-.f64 x z) y z)
(* y (+ x (* -1 z)))
(*.f64 (-.f64 x z) y)
(* y (+ x (+ (* -1 z) (/ z y))))
(fma.f64 (-.f64 x z) y z)
(* y (+ (* -1 z) (/ z y)))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(* -1 y)
(neg.f64 y)
(* y (- (/ 1 y) 1))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) y) y) y)
(* y (- (+ x (/ z y)) z))
(fma.f64 (-.f64 x z) y z)
(* -1 (* y (+ z (* -1 x))))
(*.f64 (-.f64 x z) y)
(* -1 (* y (+ z (+ (* -1 x) (* -1 (/ z y))))))
(fma.f64 (-.f64 x z) y z)
(* -1 (* y (+ z (* -1 (/ z y)))))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(* -1 (* y (- 1 (/ 1 y))))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) y) y) y)
(* -1 (* y (+ (* -1 (- x z)) (* -1 (/ z y)))))
(fma.f64 (-.f64 x z) y z)
(+ x (* -1 z))
(-.f64 x z)
(+ (* x y) (* z (+ 1 (* -1 y))))
(fma.f64 (-.f64 x z) y z)
(* z (- (+ 1 (/ (* x y) z)) y))
(fma.f64 (-.f64 x z) y z)
(* z (+ (* -1 y) (/ (* x y) z)))
(*.f64 (-.f64 x z) y)
(* z (- (/ x z) 1))
(-.f64 x z)
(* z (+ 1 (* -1 y)))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(* z (+ 1 (+ (* -1 y) (/ (* x y) z))))
(fma.f64 (-.f64 x z) y z)
(* -1 (* z (+ (* -1 (- 1 y)) (* -1 (/ (* x y) z)))))
(fma.f64 (-.f64 x z) y z)
(* -1 (* z (+ y (* -1 (/ (* x y) z)))))
(*.f64 (-.f64 x z) y)
(* -1 (* z (+ 1 (* -1 (/ x z)))))
(-.f64 x z)
(* -1 (* z (- y 1)))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(* -1 (* z (- (+ y (* -1 (/ (* x y) z))) 1)))
(fma.f64 (-.f64 x z) y z)

rewrite67.0ms (1.8%)

Memory
30.7MiB live, 119.2MiB allocated; 12ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01879
02576
110676
069276
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
10 → 75
Calls
Call 1
Inputs
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(-.f64 #s(literal 1 binary64) y)
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))
(*.f64 (-.f64 x z) y)
(-.f64 x z)
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
(fma.f64 (-.f64 x z) y z)
(fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 y x))
(*.f64 y x)
Outputs
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(*.f64 z (-.f64 #s(literal 1 binary64) y))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (*.f64 y y)) z) (+.f64 #s(literal 1 binary64) y))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64))) z) (+.f64 (fma.f64 y y y) #s(literal 1 binary64)))
(/.f64 (*.f64 z (-.f64 #s(literal 1 binary64) (*.f64 y y))) (+.f64 #s(literal 1 binary64) y))
(/.f64 (*.f64 z (-.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (+.f64 (fma.f64 y y y) #s(literal 1 binary64)))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 y y))) (neg.f64 (+.f64 #s(literal 1 binary64) y)))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (neg.f64 (+.f64 (fma.f64 y y y) #s(literal 1 binary64))))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 y y)) (+.f64 #s(literal 1 binary64) y))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64))) (+.f64 (fma.f64 y y y) #s(literal 1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) y)) (/.f64 (*.f64 y y) (+.f64 #s(literal 1 binary64) y)))
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (fma.f64 y y y) #s(literal 1 binary64))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (+.f64 (fma.f64 y y y) #s(literal 1 binary64))))
(-.f64 #s(literal 1 binary64) y)
#s(approx (+ (* x y) (* z (- 1 y))) (*.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)
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
(/.f64 (-.f64 (*.f64 z z) (pow.f64 (*.f64 (-.f64 x z) y) #s(literal 2 binary64))) (-.f64 z (*.f64 (-.f64 x z) y)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (-.f64 x z) y) #s(literal 2 binary64)) (*.f64 z z))) (neg.f64 (-.f64 (*.f64 (-.f64 x z) y) z)))
(/.f64 (neg.f64 (+.f64 (pow.f64 z #s(literal 3 binary64)) (pow.f64 (*.f64 (-.f64 x z) y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 z (-.f64 z (*.f64 (-.f64 x z) y)) (pow.f64 (*.f64 (-.f64 x z) y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 x z) y) #s(literal 2 binary64)) (*.f64 z z)) (-.f64 (*.f64 (-.f64 x z) y) z))
(/.f64 (+.f64 (pow.f64 z #s(literal 3 binary64)) (pow.f64 (*.f64 (-.f64 x z) y) #s(literal 3 binary64))) (fma.f64 z z (-.f64 (pow.f64 (*.f64 (-.f64 x z) y) #s(literal 2 binary64)) (*.f64 (*.f64 (-.f64 x z) y) z))))
(/.f64 (+.f64 (pow.f64 z #s(literal 3 binary64)) (pow.f64 (*.f64 (-.f64 x z) y) #s(literal 3 binary64))) (fma.f64 z (-.f64 z (*.f64 (-.f64 x z) y)) (pow.f64 (*.f64 (-.f64 x z) y) #s(literal 2 binary64))))
(fma.f64 (-.f64 x z) y z)
(fma.f64 y (-.f64 x z) z)
(-.f64 (/.f64 (pow.f64 (*.f64 (-.f64 x z) y) #s(literal 2 binary64)) (-.f64 (*.f64 (-.f64 x z) y) z)) (/.f64 (*.f64 z z) (-.f64 (*.f64 (-.f64 x z) y) z)))
(-.f64 z (*.f64 (neg.f64 (-.f64 x z)) y))
(-.f64 z (*.f64 (neg.f64 y) (-.f64 x z)))
(+.f64 (/.f64 (pow.f64 (*.f64 (-.f64 x z) y) #s(literal 3 binary64)) (fma.f64 z (-.f64 z (*.f64 (-.f64 x z) y)) (pow.f64 (*.f64 (-.f64 x z) y) #s(literal 2 binary64)))) (/.f64 (pow.f64 z #s(literal 3 binary64)) (fma.f64 z (-.f64 z (*.f64 (-.f64 x z) y)) (pow.f64 (*.f64 (-.f64 x z) y) #s(literal 2 binary64)))))
(+.f64 (*.f64 (-.f64 x z) y) z)
(+.f64 z (*.f64 (-.f64 x z) y))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 z) (-.f64 #s(literal 1 binary64) y)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)) (*.f64 (*.f64 y x) (*.f64 (neg.f64 z) (-.f64 #s(literal 1 binary64) y))))))
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 y) x) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (*.f64 (neg.f64 y) x)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (neg.f64 (fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 (neg.f64 x) y))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 (neg.f64 x) y)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z)) (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64))) (-.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z)))
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 (neg.f64 x) y)))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 3 binary64))) (fma.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 (neg.f64 x) y)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 3 binary64))) (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z)) (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64))))
(fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 (neg.f64 (neg.f64 y)) x))
(fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 y x))
(fma.f64 z (-.f64 #s(literal 1 binary64) y) (*.f64 (neg.f64 (neg.f64 y)) x))
(fma.f64 z (-.f64 #s(literal 1 binary64) y) (*.f64 y x))
(fma.f64 y x (*.f64 (neg.f64 (neg.f64 z)) (-.f64 #s(literal 1 binary64) y)))
(fma.f64 y x (*.f64 (-.f64 #s(literal 1 binary64) y) z))
(fma.f64 x y (*.f64 (neg.f64 (neg.f64 z)) (-.f64 #s(literal 1 binary64) y)))
(fma.f64 x y (*.f64 (-.f64 #s(literal 1 binary64) y) z))
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z))) (/.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)) (-.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z))))
(-.f64 (/.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)) (fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 (neg.f64 x) y))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 (neg.f64 x) y))))
(-.f64 (*.f64 y x) (*.f64 (neg.f64 (-.f64 #s(literal 1 binary64) y)) z))
(-.f64 (*.f64 y x) (*.f64 (neg.f64 z) (-.f64 #s(literal 1 binary64) y)))
(-.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (*.f64 (neg.f64 x) y))
(-.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (*.f64 (neg.f64 y) x))
(+.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (fma.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 (neg.f64 x) y)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 3 binary64)) (fma.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 (neg.f64 x) y)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(+.f64 (/.f64 (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 3 binary64)) (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z)) (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z)) (pow.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) #s(literal 2 binary64)))))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 (neg.f64 z)) (-.f64 #s(literal 1 binary64) y)))
(+.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 1 binary64) y) z))
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (*.f64 (neg.f64 (neg.f64 y)) x))
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) y) z) (*.f64 y x))
(*.f64 y x)
(*.f64 x y)

eval81.0ms (2.1%)

Memory
-15.4MiB live, 42.3MiB allocated; 29ms collecting garbage
Compiler

Compiled 2 338 to 307 computations (86.9% saved)

prune7.0ms (0.2%)

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

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New1034107
Fresh000
Picked224
Done000
Total1056111
Accuracy
100.0%
Counts
111 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
64.0%
(fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 y x))
100.0%
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
59.6%
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 #s(approx (- x z) (neg.f64 z)) y z))
64.4%
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))
25.2%
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y))
36.8%
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z))
Compiler

Compiled 96 to 69 computations (28.1% saved)

simplify127.0ms (3.3%)

Memory
14.0MiB live, 153.3MiB allocated; 10ms collecting garbage
Localize:

Found 15 expressions of interest:

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

Useful iterations: 6 (0.0ms)

IterNodesCost
022130
030130
146130
277130
3128130
4235130
5592127
64234124
08088124
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z))
(*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z)
#s(approx (- 1 y) #s(literal 1 binary64))
#s(literal 1 binary64)
z
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y))
(*.f64 #s(approx (- x z) (neg.f64 z)) y)
#s(approx (- x z) (neg.f64 z))
(neg.f64 z)
z
y
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 #s(approx (- x z) (neg.f64 z)) y z))
(fma.f64 #s(approx (- x z) (neg.f64 z)) y z)
#s(approx (- x z) (neg.f64 z))
(neg.f64 z)
z
y
(fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 y x))
#s(approx (- 1 y) (neg.f64 y))
(neg.f64 y)
y
z
(*.f64 y x)
x
Outputs
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z))
(*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z)
#s(approx (- 1 y) #s(literal 1 binary64))
#s(literal 1 binary64)
z
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y))
(*.f64 #s(approx (- x z) (neg.f64 z)) y)
#s(approx (- x z) (neg.f64 z))
(neg.f64 z)
z
y
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 #s(approx (- x z) (neg.f64 z)) y z))
(fma.f64 #s(approx (- x z) (neg.f64 z)) y z)
#s(approx (- x z) (neg.f64 z))
(neg.f64 z)
z
y
(fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 y x))
#s(approx (- 1 y) (neg.f64 y))
(neg.f64 y)
y
z
(*.f64 y x)
x

localize58.0ms (1.5%)

Memory
1.0MiB live, 98.5MiB allocated; 9ms collecting garbage
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 y x)
accuracy0.0
(neg.f64 y)
accuracy0.2539034976055602
(fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 y x))
accuracy33.46202617439758
#s(approx (- 1 y) (neg.f64 y))
accuracy0.0
(neg.f64 z)
accuracy0.0
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 #s(approx (- x z) (neg.f64 z)) y z))
accuracy0.0078125
(fma.f64 #s(approx (- x z) (neg.f64 z)) y z)
accuracy32.366586486230446
#s(approx (- x z) (neg.f64 z))
accuracy0.0
(neg.f64 z)
accuracy0.0234375
(*.f64 #s(approx (- x z) (neg.f64 z)) y)
accuracy22.762461996861393
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y))
accuracy32.366586486230446
#s(approx (- x z) (neg.f64 z))
accuracy0.00390625
(*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z)
accuracy25.83585031715691
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z))
accuracy29.584078589648904
#s(approx (- 1 y) #s(literal 1 binary64))
Samples
45.0ms256×0valid
Compiler

Compiled 85 to 18 computations (78.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 19.0ms
ival-mult: 8.0ms (41.7% of total)
ival-sub: 5.0ms (26.1% of total)
ival-add: 3.0ms (15.7% of total)
ival-neg: 2.0ms (10.4% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series32.0ms (0.8%)

Memory
-35.2MiB live, 10.6MiB allocated; 5ms collecting garbage
Counts
13 → 47
Calls
Call 1
Inputs
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z))
(*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z)
#s(approx (- 1 y) #s(literal 1 binary64))
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y))
(*.f64 #s(approx (- x z) (neg.f64 z)) y)
#s(approx (- x z) (neg.f64 z))
(neg.f64 z)
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 #s(approx (- x z) (neg.f64 z)) y z))
(fma.f64 #s(approx (- x z) (neg.f64 z)) y z)
(fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 y x))
#s(approx (- 1 y) (neg.f64 y))
(neg.f64 y)
(*.f64 y x)
Outputs
(* z (- 1 y))
(+ (* x y) (* z (- 1 y)))
(* -1 (* y z))
(+ (* -1 (* y z)) (* x y))
(* -1 z)
(- x z)
(+ z (* -1 (* y z)))
(+ z (+ (* -1 (* y z)) (* x y)))
(* x y)
(* x (+ y (/ (* z (- 1 y)) x)))
(* x (+ y (* -1 (/ (* y z) x))))
x
(* x (+ 1 (* -1 (/ z x))))
(* x (+ y (+ (* -1 (/ (* y z) x)) (/ z x))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* z (- 1 y)) x)))))
(* -1 (* x (+ (* -1 y) (/ (* y z) x))))
(* -1 (* x (- (/ z x) 1)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ z (* -1 (* y z))) x)))))
z
(+ z (* y (+ x (* -1 z))))
1
(+ 1 (* -1 y))
(* y (- x z))
(+ z (* y (- x z)))
(* -1 y)
(* y (+ x (* -1 z)))
(* y (+ x (+ (* -1 z) (/ z y))))
(* y (+ (* -1 z) (/ z y)))
(* y (- (/ 1 y) 1))
(* y (- (+ x (/ z y)) z))
(* -1 (* y (+ z (* -1 x))))
(* -1 (* y (+ z (+ (* -1 x) (* -1 (/ z y))))))
(* -1 (* y (+ z (* -1 (/ z y)))))
(* -1 (* y (- 1 (/ 1 y))))
(* -1 (* y (+ (* -1 (- x z)) (* -1 (/ z y)))))
(+ x (* -1 z))
(+ (* x y) (* z (+ 1 (* -1 y))))
(* z (- (+ 1 (/ (* x y) z)) y))
(* z (+ (* -1 y) (/ (* x y) z)))
(* z (- (/ x z) 1))
(* z (+ 1 (* -1 y)))
(* z (+ 1 (+ (* -1 y) (/ (* x y) z))))
(* -1 (* z (+ (* -1 (- 1 y)) (* -1 (/ (* x y) z)))))
(* -1 (* z (+ y (* -1 (/ (* x y) z)))))
(* -1 (* z (+ 1 (* -1 (/ x z)))))
(* -1 (* z (- y 1)))
(* -1 (* z (- (+ y (* -1 (/ (* x y) z))) 1)))
Calls

9 calls:

TimeVariablePointExpression
26.0ms
y
@-inf
((+ (* x y) (* z (- 1 y))) (* (- 1 y) z) (- 1 y) (+ (* x y) (* z (- 1 y))) (* (- x z) y) (- x z) (neg z) (+ (* x y) (* z (- 1 y))) (+ (* (- x z) y) z) (+ (* (- 1 y) z) (* y x)) (- 1 y) (neg y) (* y x))
1.0ms
y
@inf
((+ (* x y) (* z (- 1 y))) (* (- 1 y) z) (- 1 y) (+ (* x y) (* z (- 1 y))) (* (- x z) y) (- x z) (neg z) (+ (* x y) (* z (- 1 y))) (+ (* (- x z) y) z) (+ (* (- 1 y) z) (* y x)) (- 1 y) (neg y) (* y x))
1.0ms
z
@-inf
((+ (* x y) (* z (- 1 y))) (* (- 1 y) z) (- 1 y) (+ (* x y) (* z (- 1 y))) (* (- x z) y) (- x z) (neg z) (+ (* x y) (* z (- 1 y))) (+ (* (- x z) y) z) (+ (* (- 1 y) z) (* y x)) (- 1 y) (neg y) (* y x))
1.0ms
z
@inf
((+ (* x y) (* z (- 1 y))) (* (- 1 y) z) (- 1 y) (+ (* x y) (* z (- 1 y))) (* (- x z) y) (- x z) (neg z) (+ (* x y) (* z (- 1 y))) (+ (* (- x z) y) z) (+ (* (- 1 y) z) (* y x)) (- 1 y) (neg y) (* y x))
1.0ms
x
@-inf
((+ (* x y) (* z (- 1 y))) (* (- 1 y) z) (- 1 y) (+ (* x y) (* z (- 1 y))) (* (- x z) y) (- x z) (neg z) (+ (* x y) (* z (- 1 y))) (+ (* (- x z) y) z) (+ (* (- 1 y) z) (* y x)) (- 1 y) (neg y) (* y x))

simplify127.0ms (3.3%)

Memory
15.3MiB live, 151.6MiB allocated; 24ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0113297
1418238
21365238
33658238
46315238
08139221
Stop Event
iter limit
node limit
Counts
47 → 45
Calls
Call 1
Inputs
(* z (- 1 y))
(+ (* x y) (* z (- 1 y)))
(* -1 (* y z))
(+ (* -1 (* y z)) (* x y))
(* -1 z)
(- x z)
(+ z (* -1 (* y z)))
(+ z (+ (* -1 (* y z)) (* x y)))
(* x y)
(* x (+ y (/ (* z (- 1 y)) x)))
(* x (+ y (* -1 (/ (* y z) x))))
x
(* x (+ 1 (* -1 (/ z x))))
(* x (+ y (+ (* -1 (/ (* y z) x)) (/ z x))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (* z (- 1 y)) x)))))
(* -1 (* x (+ (* -1 y) (/ (* y z) x))))
(* -1 (* x (- (/ z x) 1)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ z (* -1 (* y z))) x)))))
z
(+ z (* y (+ x (* -1 z))))
1
(+ 1 (* -1 y))
(* y (- x z))
(+ z (* y (- x z)))
(* -1 y)
(* y (+ x (* -1 z)))
(* y (+ x (+ (* -1 z) (/ z y))))
(* y (+ (* -1 z) (/ z y)))
(* y (- (/ 1 y) 1))
(* y (- (+ x (/ z y)) z))
(* -1 (* y (+ z (* -1 x))))
(* -1 (* y (+ z (+ (* -1 x) (* -1 (/ z y))))))
(* -1 (* y (+ z (* -1 (/ z y)))))
(* -1 (* y (- 1 (/ 1 y))))
(* -1 (* y (+ (* -1 (- x z)) (* -1 (/ z y)))))
(+ x (* -1 z))
(+ (* x y) (* z (+ 1 (* -1 y))))
(* z (- (+ 1 (/ (* x y) z)) y))
(* z (+ (* -1 y) (/ (* x y) z)))
(* z (- (/ x z) 1))
(* z (+ 1 (* -1 y)))
(* z (+ 1 (+ (* -1 y) (/ (* x y) z))))
(* -1 (* z (+ (* -1 (- 1 y)) (* -1 (/ (* x y) z)))))
(* -1 (* z (+ y (* -1 (/ (* x y) z)))))
(* -1 (* z (+ 1 (* -1 (/ x z)))))
(* -1 (* z (- y 1)))
(* -1 (* z (- (+ y (* -1 (/ (* x y) z))) 1)))
Outputs
(* z (- 1 y))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(+ (* x y) (* z (- 1 y)))
(fma.f64 (-.f64 x z) y z)
(* -1 (* y z))
(*.f64 (neg.f64 y) z)
(+ (* -1 (* y z)) (* x y))
(*.f64 (-.f64 x z) y)
(* -1 z)
(neg.f64 z)
(- x z)
(-.f64 x z)
(+ z (* -1 (* y z)))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(+ z (+ (* -1 (* y z)) (* x y)))
(fma.f64 (-.f64 x z) y z)
(* x y)
(*.f64 y x)
(* x (+ y (/ (* z (- 1 y)) x)))
(fma.f64 (-.f64 x z) y z)
(* x (+ y (* -1 (/ (* y z) x))))
(*.f64 (-.f64 x z) y)
x
(* x (+ 1 (* -1 (/ z x))))
(-.f64 x z)
(* x (+ y (+ (* -1 (/ (* y z) x)) (/ z x))))
(fma.f64 (-.f64 x z) y z)
(* -1 (* x (+ (* -1 y) (* -1 (/ (* z (- 1 y)) x)))))
(fma.f64 (-.f64 x z) y z)
(* -1 (* x (+ (* -1 y) (/ (* y z) x))))
(*.f64 (-.f64 x z) y)
(* -1 (* x (- (/ z x) 1)))
(-.f64 x z)
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ z (* -1 (* y z))) x)))))
(fma.f64 (-.f64 x z) y z)
z
(+ z (* y (+ x (* -1 z))))
(fma.f64 (-.f64 x z) y z)
1
#s(literal 1 binary64)
(+ 1 (* -1 y))
(-.f64 #s(literal 1 binary64) y)
(* y (- x z))
(*.f64 (-.f64 x z) y)
(+ z (* y (- x z)))
(fma.f64 (-.f64 x z) y z)
(* -1 y)
(neg.f64 y)
(* y (+ x (* -1 z)))
(*.f64 (-.f64 x z) y)
(* y (+ x (+ (* -1 z) (/ z y))))
(fma.f64 (-.f64 x z) y z)
(* y (+ (* -1 z) (/ z y)))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(* y (- (/ 1 y) 1))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) y) y) y)
(* y (- (+ x (/ z y)) z))
(fma.f64 (-.f64 x z) y z)
(* -1 (* y (+ z (* -1 x))))
(*.f64 (-.f64 x z) y)
(* -1 (* y (+ z (+ (* -1 x) (* -1 (/ z y))))))
(fma.f64 (-.f64 x z) y z)
(* -1 (* y (+ z (* -1 (/ z y)))))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(* -1 (* y (- 1 (/ 1 y))))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) y) y) y)
(* -1 (* y (+ (* -1 (- x z)) (* -1 (/ z y)))))
(fma.f64 (-.f64 x z) y z)
(+ x (* -1 z))
(-.f64 x z)
(+ (* x y) (* z (+ 1 (* -1 y))))
(fma.f64 (-.f64 x z) y z)
(* z (- (+ 1 (/ (* x y) z)) y))
(fma.f64 (-.f64 x z) y z)
(* z (+ (* -1 y) (/ (* x y) z)))
(*.f64 (-.f64 x z) y)
(* z (- (/ x z) 1))
(-.f64 x z)
(* z (+ 1 (* -1 y)))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(* z (+ 1 (+ (* -1 y) (/ (* x y) z))))
(fma.f64 (-.f64 x z) y z)
(* -1 (* z (+ (* -1 (- 1 y)) (* -1 (/ (* x y) z)))))
(fma.f64 (-.f64 x z) y z)
(* -1 (* z (+ y (* -1 (/ (* x y) z)))))
(*.f64 (-.f64 x z) y)
(* -1 (* z (+ 1 (* -1 (/ x z)))))
(-.f64 x z)
(* -1 (* z (- y 1)))
(*.f64 (-.f64 #s(literal 1 binary64) y) z)
(* -1 (* z (- (+ y (* -1 (/ (* x y) z))) 1)))
(fma.f64 (-.f64 x z) y z)

rewrite46.0ms (1.2%)

Memory
11.0MiB live, 55.4MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022113
030113
1111113
0735110
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
13 → 50
Calls
Call 1
Inputs
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z))
(*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z)
#s(approx (- 1 y) #s(literal 1 binary64))
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y))
(*.f64 #s(approx (- x z) (neg.f64 z)) y)
#s(approx (- x z) (neg.f64 z))
(neg.f64 z)
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 #s(approx (- x z) (neg.f64 z)) y z))
(fma.f64 #s(approx (- x z) (neg.f64 z)) y z)
(fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 y x))
#s(approx (- 1 y) (neg.f64 y))
(neg.f64 y)
(*.f64 y x)
Outputs
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z))
(*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z)
(*.f64 z #s(approx (- 1 y) #s(literal 1 binary64)))
#s(approx (- 1 y) #s(literal 1 binary64))
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y))
(*.f64 #s(approx (- x z) (neg.f64 z)) y)
(*.f64 y #s(approx (- x z) (neg.f64 z)))
#s(approx (- x z) (neg.f64 z))
(neg.f64 z)
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 #s(approx (- x z) (neg.f64 z)) y z))
(/.f64 (-.f64 (*.f64 z z) (pow.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) #s(literal 2 binary64))) (-.f64 z (*.f64 #s(approx (- x z) (neg.f64 z)) y)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) #s(literal 2 binary64)) (*.f64 z z))) (neg.f64 (-.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) z)))
(/.f64 (neg.f64 (+.f64 (pow.f64 z #s(literal 3 binary64)) (pow.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 z (-.f64 z (*.f64 #s(approx (- x z) (neg.f64 z)) y)) (pow.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) #s(literal 2 binary64)) (*.f64 z z)) (-.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) z))
(/.f64 (+.f64 (pow.f64 z #s(literal 3 binary64)) (pow.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) #s(literal 3 binary64))) (fma.f64 z z (-.f64 (pow.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) #s(literal 2 binary64)) (*.f64 #s(approx (- x z) (neg.f64 z)) (*.f64 y z)))))
(/.f64 (+.f64 (pow.f64 z #s(literal 3 binary64)) (pow.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) #s(literal 3 binary64))) (fma.f64 z (-.f64 z (*.f64 #s(approx (- x z) (neg.f64 z)) y)) (pow.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) #s(literal 2 binary64))))
(fma.f64 #s(approx (- x z) (neg.f64 z)) y z)
(fma.f64 y #s(approx (- x z) (neg.f64 z)) z)
(-.f64 (/.f64 (pow.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) #s(literal 2 binary64)) (-.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) z)) (/.f64 (*.f64 z z) (-.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) z)))
(-.f64 z (*.f64 (neg.f64 #s(approx (- x z) (neg.f64 z))) y))
(-.f64 z (*.f64 (neg.f64 y) #s(approx (- x z) (neg.f64 z))))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) #s(literal 3 binary64)) (fma.f64 z (-.f64 z (*.f64 #s(approx (- x z) (neg.f64 z)) y)) (pow.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) #s(literal 2 binary64)))) (/.f64 (pow.f64 z #s(literal 3 binary64)) (fma.f64 z (-.f64 z (*.f64 #s(approx (- x z) (neg.f64 z)) y)) (pow.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) #s(literal 2 binary64)))))
(+.f64 (*.f64 #s(approx (- x z) (neg.f64 z)) y) z)
(+.f64 z (*.f64 #s(approx (- x z) (neg.f64 z)) y))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 2 binary64))) (-.f64 (*.f64 y x) (*.f64 #s(approx (- 1 y) (neg.f64 y)) z)))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 y) x) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) (*.f64 (neg.f64 y) x)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (neg.f64 (fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 (neg.f64 x) y))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (*.f64 #s(approx (- 1 y) (neg.f64 y)) z)) (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 (neg.f64 x) y)))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 2 binary64)) (*.f64 #s(approx (- 1 y) (neg.f64 y)) (*.f64 z (*.f64 y x))))))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 3 binary64))) (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (*.f64 #s(approx (- 1 y) (neg.f64 y)) z)) (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 2 binary64))))
(fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 (neg.f64 (neg.f64 y)) x))
(fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 y x))
(fma.f64 z #s(approx (- 1 y) (neg.f64 y)) (*.f64 (neg.f64 (neg.f64 y)) x))
(fma.f64 z #s(approx (- 1 y) (neg.f64 y)) (*.f64 y x))
(fma.f64 y x (*.f64 #s(approx (- 1 y) (neg.f64 y)) z))
(fma.f64 x y (*.f64 #s(approx (- 1 y) (neg.f64 y)) z))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 2 binary64)) (fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 (neg.f64 x) y))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 (neg.f64 x) y))))
(-.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) (*.f64 (neg.f64 x) y))
(-.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) (*.f64 (neg.f64 y) x))
(-.f64 (*.f64 y x) (*.f64 (neg.f64 #s(approx (- 1 y) (neg.f64 y))) z))
(-.f64 (*.f64 y x) (*.f64 (neg.f64 z) #s(approx (- 1 y) (neg.f64 y))))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 3 binary64)) (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (*.f64 #s(approx (- 1 y) (neg.f64 y)) z)) (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (*.f64 #s(approx (- 1 y) (neg.f64 y)) z)) (pow.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) #s(literal 2 binary64)))))
(+.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) (*.f64 (neg.f64 (neg.f64 y)) x))
(+.f64 (*.f64 #s(approx (- 1 y) (neg.f64 y)) z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 #s(approx (- 1 y) (neg.f64 y)) z))
#s(approx (- 1 y) (neg.f64 y))
(neg.f64 y)
(*.f64 y x)
(*.f64 x y)

eval6.0ms (0.2%)

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

Compiled 1 555 to 181 computations (88.4% saved)

prune6.0ms (0.1%)

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

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New66066
Fresh000
Picked044
Done022
Total66672
Accuracy
100.0%
Counts
72 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
64.0%
(fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 y x))
100.0%
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
59.6%
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 #s(approx (- x z) (neg.f64 z)) y z))
64.4%
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))
25.2%
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y))
36.8%
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z))
Compiler

Compiled 224 to 104 computations (53.6% saved)

regimes23.0ms (0.6%)

Memory
-24.9MiB live, 20.2MiB allocated; 5ms collecting garbage
Counts
9 → 1
Calls
Call 1
Inputs
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z))
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y))
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z))
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 #s(approx (- x z) (neg.f64 z)) y z))
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
(fma.f64 #s(approx (- 1 y) (neg.f64 y)) z (*.f64 y x))
(fma.f64 (-.f64 #s(literal 1 binary64) y) z (*.f64 y x))
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
Outputs
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
Calls

4 calls:

13.0ms
y
3.0ms
x
3.0ms
z
3.0ms
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
Results
AccuracySegmentsBranch
100.0%1(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
100.0%1x
100.0%1y
100.0%1z
Compiler

Compiled 12 to 17 computations (-41.7% saved)

regimes9.0ms (0.2%)

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

4 calls:

2.0ms
z
2.0ms
y
2.0ms
x
2.0ms
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
Results
AccuracySegmentsBranch
78.4%5(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
82.7%3x
84.0%3y
80.4%3z
Compiler

Compiled 12 to 17 computations (-41.7% saved)

regimes2.0ms (0.1%)

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

1 calls:

2.0ms
y
Results
AccuracySegmentsBranch
84.0%3y
Compiler

Compiled 1 to 3 computations (-200% saved)

regimes7.0ms (0.2%)

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

4 calls:

2.0ms
x
2.0ms
z
2.0ms
y
1.0ms
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
Results
AccuracySegmentsBranch
59.6%1(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
59.6%1z
59.6%1x
59.6%1y
Compiler

Compiled 12 to 17 computations (-41.7% saved)

regimes30.0ms (0.8%)

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

4 calls:

16.0ms
y
11.0ms
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
1.0ms
x
1.0ms
z
Results
AccuracySegmentsBranch
36.8%1x
46.3%3(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
58.7%3y
36.8%1z
Compiler

Compiled 12 to 17 computations (-41.7% saved)

regimes2.0ms (0.1%)

Memory
6.3MiB live, 6.2MiB allocated; 0ms collecting garbage
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

2 calls:

1.0ms
(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
1.0ms
y
Results
AccuracySegmentsBranch
36.8%1(+.f64 (*.f64 x y) (*.f64 z (-.f64 #s(literal 1 binary64) y)))
36.8%1y
Compiler

Compiled 10 to 11 computations (-10% saved)

bsearch32.0ms (0.8%)

Memory
2.1MiB live, 45.4MiB allocated; 7ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
10.0ms
3.849483831211461e-102
7.336750762085342e-100
20.0ms
-0.03291750085144647
-1.145512134027898e-14
Samples
14.0ms272×0valid
Compiler

Compiled 590 to 456 computations (22.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
ival-mult: 4.0ms (56.9% of total)
ival-sub: 1.0ms (14.2% of total)
ival-add: 1.0ms (14.2% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch2.0ms (0%)

Memory
3.0MiB live, 3.0MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
3.849483831211461e-102
7.336750762085342e-100
1.0ms
-0.03291750085144647
-1.145512134027898e-14
Compiler

Compiled 522 to 439 computations (15.9% saved)

bsearch30.0ms (0.8%)

Memory
-4.2MiB live, 41.1MiB allocated; 6ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
12.0ms
4.043662604358054e-9
12.066497018004638
15.0ms
-615440.4542992124
-17.70867415271381
Samples
13.0ms272×0valid
Compiler

Compiled 607 to 473 computations (22.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
ival-mult: 4.0ms (59.2% of total)
ival-sub: 1.0ms (14.8% of total)
ival-add: 1.0ms (14.8% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify41.0ms (1.1%)

Memory
-6.8MiB live, 37.8MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
039174
160174
280174
3111174
4173174
5477174
63478174
Stop Event
node limit
Calls
Call 1
Inputs
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
(if (<=.f64 y #s(literal -7732668661392199/633825300114114700748351602688 binary64)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y)) (if (<=.f64 y #s(literal 7683391208296923/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816 binary64)) #s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 #s(approx (- x z) (neg.f64 z)) y z)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))))
(if (<=.f64 y #s(literal -7732668661392199/633825300114114700748351602688 binary64)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y)) (if (<=.f64 y #s(literal 7683391208296923/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816 binary64)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))))
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z))
(if (<=.f64 y #s(literal -18 binary64)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y)) (if (<=.f64 y #s(literal 1 binary64)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y))))
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z))
Outputs
#s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 (-.f64 x z) y z))
(if (<=.f64 y #s(literal -7732668661392199/633825300114114700748351602688 binary64)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y)) (if (<=.f64 y #s(literal 7683391208296923/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816 binary64)) #s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 #s(approx (- x z) (neg.f64 z)) y z)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))))
(if (or (<=.f64 y #s(literal -7732668661392199/633825300114114700748351602688 binary64)) (not (<=.f64 y #s(literal 7683391208296923/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816 binary64)))) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y)) #s(approx (+ (* x y) (* z (- 1 y))) (fma.f64 #s(approx (- x z) (neg.f64 z)) y z)))
(if (<=.f64 y #s(literal -7732668661392199/633825300114114700748351602688 binary64)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y)) (if (<=.f64 y #s(literal 7683391208296923/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816 binary64)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y))))
(if (or (<=.f64 y #s(literal -7732668661392199/633825300114114700748351602688 binary64)) (not (<=.f64 y #s(literal 7683391208296923/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816 binary64)))) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 x z) y)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z)))
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) y) z))
(if (<=.f64 y #s(literal -18 binary64)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y)) (if (<=.f64 y #s(literal 1 binary64)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y))))
(if (or (<=.f64 y #s(literal -18 binary64)) (not (<=.f64 y #s(literal 1 binary64)))) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- x z) (neg.f64 z)) y)) #s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z)))
#s(approx (+ (* x y) (* z (- 1 y))) (*.f64 #s(approx (- 1 y) #s(literal 1 binary64)) z))

derivations440.0ms (11.5%)

Memory
6.0MiB live, 406.6MiB allocated; 111ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057127
1208106
2650106
31978106
47354106
0810998
0113297
1418238
21365238
33650238
46307238
08138221
Stop Event
done
iter limit
node limit
iter limit
node limit
Compiler

Compiled 174 to 41 computations (76.4% saved)

preprocess81.0ms (2.1%)

Memory
-8.3MiB live, 89.7MiB allocated; 9ms collecting garbage
Compiler

Compiled 380 to 110 computations (71.1% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...