Details

Time bar (total: 1.8s)

analyze66.0ms (3.7%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
37.5%37.5%62.4%0.1%0%0%0%6
56.3%56.2%43.7%0.1%0%0%0%7
63.2%56.2%32.8%0.1%10.9%0%0%8
74.3%65.6%22.6%0.1%11.7%0%0%9
79.6%65.6%16.8%0.1%17.6%0%0%10
85.9%70.2%11.5%0.1%18.1%0%0%11
89.2%70.2%8.5%0.1%21.2%0%0%12
Compiler

Compiled 10 to 7 computations (30% saved)

sample771.0ms (43.9%)

Results
726.0ms8256×body256valid
34.0ms400×body256infinite
Bogosity

preprocess52.0ms (2.9%)

Algorithm
egg-herbie
Rules
1012×fma-def
96×distribute-lft-neg-in
92×distribute-lft-in
86×associate-*r*
84×distribute-rgt-in
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01138
12138
24138
38338
414738
520638
638738
766738
8106038
9116238
10118038
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 1/2 (-.f64 (*.f64 x x) y))
(*.f64 1/2 (-.f64 (*.f64 y y) x))
Outputs
(*.f64 1/2 (-.f64 (*.f64 x x) y))
(*.f64 1/2 (-.f64 (*.f64 y y) x))
Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify63.0ms (3.6%)

Algorithm
egg-herbie
Rules
630×fma-def
76×distribute-lft-in
74×unsub-neg
68×distribute-rgt-in
56×distribute-lft-neg-in
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
11419
22519
34919
48419
511619
620719
734519
855819
972519
1082419
1184019
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 1/2 (-.f64 (*.f64 x x) y))
Outputs
(*.f64 1/2 (-.f64 (*.f64 x x) y))

eval0.0ms (0%)

Compiler

Compiled 9 to 6 computations (33.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Accurracy
100.0%
Counts
2 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 1/2 (-.f64 (*.f64 x x) y))
Compiler

Compiled 9 to 6 computations (33.3% saved)

localize6.0ms (0.4%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(-.f64 (*.f64 x x) y)
Compiler

Compiled 20 to 7 computations (65% saved)

series1.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(-.f64 (*.f64 x x) y)
0.0ms
x
@0
(-.f64 (*.f64 x x) y)
0.0ms
y
@inf
(-.f64 (*.f64 x x) y)
0.0ms
y
@0
(-.f64 (*.f64 x x) y)
0.0ms
x
@-inf
(-.f64 (*.f64 x x) y)

rewrite101.0ms (5.7%)

Algorithm
batch-egg-rewrite
Rules
1408×pow1
1308×add-exp-log
1308×log1p-expm1-u
1308×expm1-log1p-u
1280×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
113213
2179913
Stop Event
node limit
Counts
1 → 35
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) y)
Outputs
(+.f64 (*.f64 x x) (neg.f64 y))
(+.f64 (*.f64 x x) (*.f64 (neg.f64 y) 1))
(+.f64 (-.f64 (*.f64 x x) y) (fma.f64 (neg.f64 y) 1 y))
(+.f64 (-.f64 (*.f64 x x) y) (fma.f64 (neg.f64 (cbrt.f64 y)) (pow.f64 (cbrt.f64 y) 2) y))
(+.f64 (-.f64 (*.f64 x x) y) (fma.f64 (neg.f64 (sqrt.f64 y)) (sqrt.f64 y) y))
(+.f64 (neg.f64 y) (*.f64 x x))
(*.f64 (-.f64 (*.f64 x x) y) 1)
(*.f64 1 (-.f64 (*.f64 x x) y))
(*.f64 (cbrt.f64 (-.f64 (*.f64 x x) y)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) y)) 2))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) y)) 2) (cbrt.f64 (-.f64 (*.f64 x x) y)))
(*.f64 (sqrt.f64 (-.f64 (*.f64 x x) y)) (sqrt.f64 (-.f64 (*.f64 x x) y)))
(*.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y)))))
(*.f64 (-.f64 (pow.f64 x 4) (*.f64 y y)) (/.f64 1 (fma.f64 x x y)))
(*.f64 (+.f64 x (sqrt.f64 y)) (-.f64 x (sqrt.f64 y)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y))) (-.f64 (pow.f64 x 6) (pow.f64 y 3))))
(/.f64 1 (/.f64 (fma.f64 x x y) (-.f64 (pow.f64 x 4) (*.f64 y y))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y))))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 x x y))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3))) (neg.f64 (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 4) (*.f64 y y))) (neg.f64 (fma.f64 x x y)))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 (neg.f64 y) 3)) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (*.f64 (*.f64 x x) (neg.f64 y)))))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 (neg.f64 y) (neg.f64 y))) (-.f64 (*.f64 x x) (neg.f64 y)))
(pow.f64 (-.f64 (*.f64 x x) y) 1)
(pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) y)) 3)
(pow.f64 (pow.f64 (-.f64 (*.f64 x x) y) 3) 1/3)
(pow.f64 (sqrt.f64 (-.f64 (*.f64 x x) y)) 2)
(sqrt.f64 (pow.f64 (-.f64 (*.f64 x x) y) 2))
(log.f64 (exp.f64 (-.f64 (*.f64 x x) y)))
(cbrt.f64 (pow.f64 (-.f64 (*.f64 x x) y) 3))
(expm1.f64 (log1p.f64 (-.f64 (*.f64 x x) y)))
(exp.f64 (log.f64 (-.f64 (*.f64 x x) y)))
(log1p.f64 (expm1.f64 (-.f64 (*.f64 x x) y)))
(fma.f64 x x (neg.f64 y))
(fma.f64 1 (*.f64 x x) (neg.f64 y))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (neg.f64 y))

simplify62.0ms (3.5%)

Algorithm
egg-herbie
Rules
1348×div-sub
1026×fma-neg
790×fma-def
750×associate-*r*
680×associate-*l*
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0101965
1249915
2892915
34610915
Stop Event
node limit
Counts
59 → 43
Calls
Call 1
Inputs
(*.f64 -1 y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(*.f64 -1 y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(*.f64 -1 y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(+.f64 (*.f64 x x) (neg.f64 y))
(+.f64 (*.f64 x x) (*.f64 (neg.f64 y) 1))
(+.f64 (-.f64 (*.f64 x x) y) (fma.f64 (neg.f64 y) 1 y))
(+.f64 (-.f64 (*.f64 x x) y) (fma.f64 (neg.f64 (cbrt.f64 y)) (pow.f64 (cbrt.f64 y) 2) y))
(+.f64 (-.f64 (*.f64 x x) y) (fma.f64 (neg.f64 (sqrt.f64 y)) (sqrt.f64 y) y))
(+.f64 (neg.f64 y) (*.f64 x x))
(*.f64 (-.f64 (*.f64 x x) y) 1)
(*.f64 1 (-.f64 (*.f64 x x) y))
(*.f64 (cbrt.f64 (-.f64 (*.f64 x x) y)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) y)) 2))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) y)) 2) (cbrt.f64 (-.f64 (*.f64 x x) y)))
(*.f64 (sqrt.f64 (-.f64 (*.f64 x x) y)) (sqrt.f64 (-.f64 (*.f64 x x) y)))
(*.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y)))))
(*.f64 (-.f64 (pow.f64 x 4) (*.f64 y y)) (/.f64 1 (fma.f64 x x y)))
(*.f64 (+.f64 x (sqrt.f64 y)) (-.f64 x (sqrt.f64 y)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y))) (-.f64 (pow.f64 x 6) (pow.f64 y 3))))
(/.f64 1 (/.f64 (fma.f64 x x y) (-.f64 (pow.f64 x 4) (*.f64 y y))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y))))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 x x y))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3))) (neg.f64 (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 4) (*.f64 y y))) (neg.f64 (fma.f64 x x y)))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 (neg.f64 y) 3)) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (*.f64 (*.f64 x x) (neg.f64 y)))))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 (neg.f64 y) (neg.f64 y))) (-.f64 (*.f64 x x) (neg.f64 y)))
(pow.f64 (-.f64 (*.f64 x x) y) 1)
(pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) y)) 3)
(pow.f64 (pow.f64 (-.f64 (*.f64 x x) y) 3) 1/3)
(pow.f64 (sqrt.f64 (-.f64 (*.f64 x x) y)) 2)
(sqrt.f64 (pow.f64 (-.f64 (*.f64 x x) y) 2))
(log.f64 (exp.f64 (-.f64 (*.f64 x x) y)))
(cbrt.f64 (pow.f64 (-.f64 (*.f64 x x) y) 3))
(expm1.f64 (log1p.f64 (-.f64 (*.f64 x x) y)))
(exp.f64 (log.f64 (-.f64 (*.f64 x x) y)))
(log1p.f64 (expm1.f64 (-.f64 (*.f64 x x) y)))
(fma.f64 x x (neg.f64 y))
(fma.f64 1 (*.f64 x x) (neg.f64 y))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (neg.f64 y))
Outputs
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (pow.f64 x 2) (*.f64 -1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (*.f64 x x) (neg.f64 y))
(-.f64 (*.f64 x x) y)
(+.f64 (*.f64 x x) (*.f64 (neg.f64 y) 1))
(-.f64 (*.f64 x x) y)
(+.f64 (-.f64 (*.f64 x x) y) (fma.f64 (neg.f64 y) 1 y))
(-.f64 (*.f64 x x) y)
(+.f64 (-.f64 (*.f64 x x) y) (fma.f64 (neg.f64 (cbrt.f64 y)) (pow.f64 (cbrt.f64 y) 2) y))
(-.f64 (*.f64 x x) y)
(+.f64 (-.f64 (*.f64 x x) y) (fma.f64 (neg.f64 (sqrt.f64 y)) (sqrt.f64 y) y))
(-.f64 (*.f64 x x) y)
(+.f64 (neg.f64 y) (*.f64 x x))
(-.f64 (*.f64 x x) y)
(*.f64 (-.f64 (*.f64 x x) y) 1)
(-.f64 (*.f64 x x) y)
(*.f64 1 (-.f64 (*.f64 x x) y))
(-.f64 (*.f64 x x) y)
(*.f64 (cbrt.f64 (-.f64 (*.f64 x x) y)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) y)) 2))
(-.f64 (*.f64 x x) y)
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) y)) 2) (cbrt.f64 (-.f64 (*.f64 x x) y)))
(-.f64 (*.f64 x x) y)
(*.f64 (sqrt.f64 (-.f64 (*.f64 x x) y)) (sqrt.f64 (-.f64 (*.f64 x x) y)))
(-.f64 (*.f64 x x) y)
(*.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y)))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (fma.f64 y (fma.f64 x x y) (pow.f64 x 4)))
(*.f64 (-.f64 (pow.f64 x 4) (*.f64 y y)) (/.f64 1 (fma.f64 x x y)))
(-.f64 (*.f64 x x) y)
(*.f64 (+.f64 x (sqrt.f64 y)) (-.f64 x (sqrt.f64 y)))
(-.f64 (*.f64 x x) y)
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y))) (-.f64 (pow.f64 x 6) (pow.f64 y 3))))
(*.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y)))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (fma.f64 y (fma.f64 x x y) (pow.f64 x 4)))
(/.f64 1 (/.f64 (fma.f64 x x y) (-.f64 (pow.f64 x 4) (*.f64 y y))))
(-.f64 (*.f64 x x) y)
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y))))
(*.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y)))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (fma.f64 y (fma.f64 x x y) (pow.f64 x 4)))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 x x y))
(-.f64 (*.f64 x x) y)
(/.f64 (neg.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3))) (neg.f64 (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y)))))
(*.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y)))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (fma.f64 y (fma.f64 x x y) (pow.f64 x 4)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 4) (*.f64 y y))) (neg.f64 (fma.f64 x x y)))
(-.f64 (*.f64 x x) y)
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 (neg.f64 y) 3)) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (*.f64 (*.f64 x x) (neg.f64 y)))))
(*.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 x 4) (*.f64 y (fma.f64 x x y)))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 y 3)) (fma.f64 y (fma.f64 x x y) (pow.f64 x 4)))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 (neg.f64 y) (neg.f64 y))) (-.f64 (*.f64 x x) (neg.f64 y)))
(-.f64 (*.f64 x x) y)
(pow.f64 (-.f64 (*.f64 x x) y) 1)
(-.f64 (*.f64 x x) y)
(pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) y)) 3)
(-.f64 (*.f64 x x) y)
(pow.f64 (pow.f64 (-.f64 (*.f64 x x) y) 3) 1/3)
(-.f64 (*.f64 x x) y)
(pow.f64 (sqrt.f64 (-.f64 (*.f64 x x) y)) 2)
(-.f64 (*.f64 x x) y)
(sqrt.f64 (pow.f64 (-.f64 (*.f64 x x) y) 2))
(-.f64 (*.f64 x x) y)
(log.f64 (exp.f64 (-.f64 (*.f64 x x) y)))
(-.f64 (*.f64 x x) y)
(cbrt.f64 (pow.f64 (-.f64 (*.f64 x x) y) 3))
(-.f64 (*.f64 x x) y)
(expm1.f64 (log1p.f64 (-.f64 (*.f64 x x) y)))
(-.f64 (*.f64 x x) y)
(exp.f64 (log.f64 (-.f64 (*.f64 x x) y)))
(-.f64 (*.f64 x x) y)
(log1p.f64 (expm1.f64 (-.f64 (*.f64 x x) y)))
(-.f64 (*.f64 x x) y)
(fma.f64 x x (neg.f64 y))
(-.f64 (*.f64 x x) y)
(fma.f64 1 (*.f64 x x) (neg.f64 y))
(-.f64 (*.f64 x x) y)
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (neg.f64 y))
(-.f64 (*.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x))) y)

eval8.0ms (0.5%)

Compiler

Compiled 536 to 264 computations (50.7% saved)

prune8.0ms (0.4%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New40343
Fresh000
Picked011
Done000
Total40444
Accurracy
100.0%
Counts
44 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 1/2 (fma.f64 x x (neg.f64 y)))
100.0%
(*.f64 1/2 (-.f64 (*.f64 x x) y))
35.5%
(*.f64 1/2 (*.f64 x x))
66.5%
(*.f64 1/2 (neg.f64 y))
Compiler

Compiled 31 to 22 computations (29% saved)

localize4.0ms (0.2%)

Compiler

Compiled 10 to 6 computations (40% saved)

localize4.0ms (0.2%)

Compiler

Compiled 12 to 6 computations (50% saved)

localize7.0ms (0.4%)

Compiler

Compiled 19 to 7 computations (63.2% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done033
Total044
Accurracy
100.0%
Counts
4 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 1/2 (fma.f64 x x (neg.f64 y)))
100.0%
(*.f64 1/2 (-.f64 (*.f64 x x) y))
35.5%
(*.f64 1/2 (*.f64 x x))
66.5%
(*.f64 1/2 (neg.f64 y))
Compiler

Compiled 31 to 22 computations (29% saved)

regimes48.0ms (2.7%)

Counts
4 → 1
Calls
Call 1
Inputs
(*.f64 1/2 (neg.f64 y))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (-.f64 (*.f64 x x) y))
(*.f64 1/2 (fma.f64 x x (neg.f64 y)))
Outputs
(*.f64 1/2 (fma.f64 x x (neg.f64 y)))
Calls

5 calls:

34.0ms
(-.f64 (*.f64 x x) y)
4.0ms
(*.f64 1/2 (-.f64 (*.f64 x x) y))
3.0ms
y
3.0ms
x
3.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(*.f64 1/2 (-.f64 (*.f64 x x) y))
100.0%1(-.f64 (*.f64 x x) y)
100.0%1(*.f64 x x)
Compiler

Compiled 52 to 31 computations (40.4% saved)

regimes60.0ms (3.4%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 1/2 (neg.f64 y))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (-.f64 (*.f64 x x) y))
Outputs
(*.f64 1/2 (-.f64 (*.f64 x x) y))
Calls

5 calls:

47.0ms
(-.f64 (*.f64 x x) y)
3.0ms
(*.f64 1/2 (-.f64 (*.f64 x x) y))
3.0ms
y
3.0ms
x
2.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(*.f64 1/2 (-.f64 (*.f64 x x) y))
100.0%1(-.f64 (*.f64 x x) y)
100.0%1(*.f64 x x)
Compiler

Compiled 45 to 28 computations (37.8% saved)

regimes77.0ms (4.4%)

Accuracy

Total -54.3b remaining (-716.9%)

Threshold costs -54.3b (-716.9%)

Counts
2 → 7
Calls
Call 1
Inputs
(*.f64 1/2 (neg.f64 y))
(*.f64 1/2 (*.f64 x x))
Outputs
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (neg.f64 y))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (neg.f64 y))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (neg.f64 y))
(*.f64 1/2 (*.f64 x x))
Calls

3 calls:

58.0ms
x
12.0ms
y
7.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
88.2%7x
76.8%3y
84.2%2(*.f64 x x)
Compiler

Compiled 22 to 15 computations (31.8% saved)

bsearch95.0ms (5.4%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
12.0ms
4.837619418042951e+26
2.7645390251287387e+28
6.0ms
4.3114042795241725e-9
7.389886458497293e-9
8.0ms
3.7103499898737456e-31
9.69336397442077e-31
44.0ms
-1.1591823647261083e-9
-5.96434186244361e-22
12.0ms
-4.745735048340357e+23
-9.836738544019188e+21
14.0ms
-3.1323470621668914e+62
-1.9131562081857148e+55
Results
86.0ms672×body256valid
Compiler

Compiled 644 to 514 computations (20.2% saved)

simplify11.0ms (0.6%)

Algorithm
egg-herbie
Rules
16×not-or
16×*-commutative
14×not-not
14×if-not
10×if-if-or-not
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
036182
152178
264172
376164
486158
597154
6104154
7109154
8111154
9112154
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 1/2 (fma.f64 x x (neg.f64 y)))
(*.f64 1/2 (-.f64 (*.f64 x x) y))
(if (<=.f64 x -19500000000000001356543854429157523193267222131895173120) (*.f64 1/2 (*.f64 x x)) (if (<=.f64 x -420000000000000025165824) (*.f64 1/2 (neg.f64 y)) (if (<=.f64 x -4352132950612665/19342813113834066795298816) (*.f64 1/2 (*.f64 x x)) (if (<=.f64 x 4224653170409641/5708990770823839524233143877797980545530986496) (*.f64 1/2 (neg.f64 y)) (if (<=.f64 x 8583373319263867/1208925819614629174706176) (*.f64 1/2 (*.f64 x x)) (if (<=.f64 x 599999999999999994228637696) (*.f64 1/2 (neg.f64 y)) (*.f64 1/2 (*.f64 x x))))))))
(*.f64 1/2 (neg.f64 y))
Outputs
(*.f64 1/2 (fma.f64 x x (neg.f64 y)))
(*.f64 1/2 (-.f64 (*.f64 x x) y))
(if (<=.f64 x -19500000000000001356543854429157523193267222131895173120) (*.f64 1/2 (*.f64 x x)) (if (<=.f64 x -420000000000000025165824) (*.f64 1/2 (neg.f64 y)) (if (<=.f64 x -4352132950612665/19342813113834066795298816) (*.f64 1/2 (*.f64 x x)) (if (<=.f64 x 4224653170409641/5708990770823839524233143877797980545530986496) (*.f64 1/2 (neg.f64 y)) (if (<=.f64 x 8583373319263867/1208925819614629174706176) (*.f64 1/2 (*.f64 x x)) (if (<=.f64 x 599999999999999994228637696) (*.f64 1/2 (neg.f64 y)) (*.f64 1/2 (*.f64 x x))))))))
(if (<=.f64 x -19500000000000001356543854429157523193267222131895173120) (*.f64 1/2 (*.f64 x x)) (if (<=.f64 x -420000000000000025165824) (*.f64 1/2 (neg.f64 y)) (if (<=.f64 x -4352132950612665/19342813113834066795298816) (*.f64 1/2 (*.f64 x x)) (if (<=.f64 x 4224653170409641/5708990770823839524233143877797980545530986496) (*.f64 1/2 (neg.f64 y)) (if (or (<=.f64 x 8583373319263867/1208925819614629174706176) (not (<=.f64 x 599999999999999994228637696))) (*.f64 1/2 (*.f64 x x)) (*.f64 1/2 (neg.f64 y)))))))
(if (<=.f64 x -19500000000000001356543854429157523193267222131895173120) (*.f64 1/2 (*.f64 x x)) (if (<=.f64 x -420000000000000025165824) (*.f64 1/2 (neg.f64 y)) (if (<=.f64 x -4352132950612665/19342813113834066795298816) (*.f64 1/2 (*.f64 x x)) (if (or (<=.f64 x 4224653170409641/5708990770823839524233143877797980545530986496) (not (or (<=.f64 x 8583373319263867/1208925819614629174706176) (not (<=.f64 x 599999999999999994228637696))))) (*.f64 1/2 (neg.f64 y)) (*.f64 1/2 (*.f64 x x))))))
(if (<=.f64 x -19500000000000001356543854429157523193267222131895173120) (*.f64 1/2 (*.f64 x x)) (if (<=.f64 x -420000000000000025165824) (*.f64 1/2 (neg.f64 y)) (if (or (<=.f64 x -4352132950612665/19342813113834066795298816) (not (or (<=.f64 x 4224653170409641/5708990770823839524233143877797980545530986496) (not (or (<=.f64 x 8583373319263867/1208925819614629174706176) (not (<=.f64 x 599999999999999994228637696))))))) (*.f64 1/2 (*.f64 x x)) (*.f64 1/2 (neg.f64 y)))))
(if (<=.f64 x -19500000000000001356543854429157523193267222131895173120) (*.f64 1/2 (*.f64 x x)) (if (or (<=.f64 x -420000000000000025165824) (not (or (<=.f64 x -4352132950612665/19342813113834066795298816) (not (or (<=.f64 x 4224653170409641/5708990770823839524233143877797980545530986496) (and (not (<=.f64 x 8583373319263867/1208925819614629174706176)) (<=.f64 x 599999999999999994228637696))))))) (*.f64 1/2 (neg.f64 y)) (*.f64 1/2 (*.f64 x x))))
(if (or (<=.f64 x -19500000000000001356543854429157523193267222131895173120) (not (or (<=.f64 x -420000000000000025165824) (not (or (<=.f64 x -4352132950612665/19342813113834066795298816) (not (or (<=.f64 x 4224653170409641/5708990770823839524233143877797980545530986496) (and (not (<=.f64 x 8583373319263867/1208925819614629174706176)) (<=.f64 x 599999999999999994228637696))))))))) (*.f64 1/2 (*.f64 x x)) (*.f64 1/2 (neg.f64 y)))
(if (or (<=.f64 x -19500000000000001356543854429157523193267222131895173120) (not (or (<=.f64 x -420000000000000025165824) (and (not (<=.f64 x -4352132950612665/19342813113834066795298816)) (or (<=.f64 x 4224653170409641/5708990770823839524233143877797980545530986496) (and (not (<=.f64 x 8583373319263867/1208925819614629174706176)) (<=.f64 x 599999999999999994228637696))))))) (*.f64 1/2 (*.f64 x x)) (*.f64 1/2 (neg.f64 y)))
(*.f64 1/2 (neg.f64 y))
Compiler

Compiled 62 to 46 computations (25.8% saved)

soundness276.0ms (15.7%)

Rules
1408×pow1
1348×div-sub
1348×div-sub
1308×add-exp-log
1308×log1p-expm1-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
113213
2179913
0101965
1249915
2892915
34610915
0101965
1249915
2892915
34610915
Stop Event
node limit
node limit
node limit
Compiler

Compiled 39 to 28 computations (28.2% saved)

end36.0ms (2%)

Compiler

Compiled 56 to 37 computations (33.9% saved)

Profiling

Loading profile data...