Graphics.Rendering.Chart.Plot.Vectors:renderPlotVectors from Chart-1.5.3

Time bar (total: 2.2s)

analyze0.0ms (0%)

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 12 to 9 computations (25% saved)

sample792.0ms (35.4%)

Results
499.0ms5857×body256valid
105.0ms601×body1024valid
90.0ms1081×body256infinite
84.0ms709×body512valid
2.0msbody2048valid
Bogosity

preprocess199.0ms (8.9%)

Algorithm
egg-herbie
Rules
5896×fma-def
1004×unsub-neg
934×sub-neg
876×fma-neg
706×associate-+l-
Problems
191×No Errors
65×(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
Iterations

Useful iterations: 12 (0.0ms)

IterNodesCost
020137
141109
2111109
3421109
4195195
5473995
6565595
7594195
8598495
9599995
10600295
11600295
12600275
Stop Event
node limit
Calls
Call 1
Inputs
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
(+.f64 (neg.f64 x) (*.f64 (-.f64 1 (neg.f64 x)) (-.f64 1 y)))
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 (neg.f64 y))))
(+.f64 y (*.f64 (-.f64 1 y) (-.f64 1 x)))
Outputs
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
(fma.f64 (-.f64 1 x) (-.f64 1 y) x)
(+.f64 1 (*.f64 y (+.f64 x -1)))
(fma.f64 y (+.f64 x -1) 1)
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
(fma.f64 (-.f64 1 x) (-.f64 1 y) x)
(+.f64 1 (*.f64 y (+.f64 x -1)))
(fma.f64 y (+.f64 x -1) 1)
(+.f64 (neg.f64 x) (*.f64 (-.f64 1 (neg.f64 x)) (-.f64 1 y)))
(+.f64 (neg.f64 x) (*.f64 (-.f64 1 y) (-.f64 1 (neg.f64 x))))
(-.f64 (*.f64 (-.f64 1 y) (+.f64 x 1)) x)
(fma.f64 (-.f64 1 y) (+.f64 x 1) (neg.f64 x))
(-.f64 1 (*.f64 y (+.f64 x 1)))
(-.f64 1 (fma.f64 x y y))
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 (neg.f64 y))))
(fma.f64 (-.f64 1 x) (+.f64 1 y) x)
(+.f64 1 (fma.f64 x (neg.f64 y) y))
(-.f64 y (fma.f64 x y -1))
(+.f64 y (*.f64 (-.f64 1 y) (-.f64 1 x)))
(+.f64 y (*.f64 (-.f64 1 x) (-.f64 1 y)))
(fma.f64 (-.f64 1 x) (-.f64 1 y) y)
(+.f64 1 (fma.f64 x y (neg.f64 x)))
(-.f64 (fma.f64 x y 1) x)
Compiler

Compiled 39 to 27 computations (30.8% saved)

eval1.0ms (0%)

Compiler

Compiled 23 to 16 computations (30.4% saved)

prune2.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
Compiler

Compiled 18 to 14 computations (22.2% saved)

localize31.0ms (1.4%)

Localize:

Found 1 expressions with local error:

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

Compiled 22 to 15 computations (31.8% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite57.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
1594×pow1
1474×add-exp-log
1474×log1p-expm1-u
1474×expm1-log1p-u
1448×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
115313
2198613
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(*.f64 y (+.f64 x -1))
Outputs
(+.f64 (*.f64 y x) (neg.f64 y))
(+.f64 (neg.f64 y) (*.f64 y x))
(+.f64 (*.f64 (*.f64 y x) 1) (*.f64 (neg.f64 y) 1))
(-.f64 (+.f64 1 (*.f64 y (+.f64 x -1))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 (neg.f64 y) 3)) (+.f64 (*.f64 (*.f64 y x) (*.f64 y x)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (*.f64 (*.f64 y x) (neg.f64 y)))))
(/.f64 (-.f64 (*.f64 (*.f64 y x) (*.f64 y x)) (*.f64 (neg.f64 y) (neg.f64 y))) (-.f64 (*.f64 y x) (neg.f64 y)))
(/.f64 (*.f64 y (+.f64 -1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 (*.f64 x -1))))
(/.f64 (*.f64 y (fma.f64 x x -1)) (+.f64 x 1))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 x 3)) y) (fma.f64 x x (-.f64 1 (*.f64 x -1))))
(/.f64 (*.f64 (fma.f64 x x -1) y) (+.f64 x 1))
(pow.f64 (*.f64 y (+.f64 x -1)) 1)
(pow.f64 (cbrt.f64 (*.f64 y (+.f64 x -1))) 3)
(pow.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 y (+.f64 x -1))) 2)
(sqrt.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2))
(log.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))
(cbrt.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 3))
(expm1.f64 (log1p.f64 (*.f64 y (+.f64 x -1))))
(exp.f64 (log.f64 (*.f64 y (+.f64 x -1))))
(log1p.f64 (expm1.f64 (*.f64 y (+.f64 x -1))))
(fma.f64 y x (neg.f64 y))
(fma.f64 x y (neg.f64 y))

simplify59.0ms (2.6%)

Algorithm
egg-herbie
Rules
862×fma-neg
846×div-sub
632×distribute-lft-neg-out
572×associate-+r+
560×fma-def
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
075710
1220688
2795676
33453674
Stop Event
node limit
Counts
46 → 37
Calls
Call 1
Inputs
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 -1 y)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 y x) (neg.f64 y))
(+.f64 (neg.f64 y) (*.f64 y x))
(+.f64 (*.f64 (*.f64 y x) 1) (*.f64 (neg.f64 y) 1))
(-.f64 (+.f64 1 (*.f64 y (+.f64 x -1))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 (neg.f64 y) 3)) (+.f64 (*.f64 (*.f64 y x) (*.f64 y x)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (*.f64 (*.f64 y x) (neg.f64 y)))))
(/.f64 (-.f64 (*.f64 (*.f64 y x) (*.f64 y x)) (*.f64 (neg.f64 y) (neg.f64 y))) (-.f64 (*.f64 y x) (neg.f64 y)))
(/.f64 (*.f64 y (+.f64 -1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 (*.f64 x -1))))
(/.f64 (*.f64 y (fma.f64 x x -1)) (+.f64 x 1))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 x 3)) y) (fma.f64 x x (-.f64 1 (*.f64 x -1))))
(/.f64 (*.f64 (fma.f64 x x -1) y) (+.f64 x 1))
(pow.f64 (*.f64 y (+.f64 x -1)) 1)
(pow.f64 (cbrt.f64 (*.f64 y (+.f64 x -1))) 3)
(pow.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 y (+.f64 x -1))) 2)
(sqrt.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2))
(log.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))
(cbrt.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 3))
(expm1.f64 (log1p.f64 (*.f64 y (+.f64 x -1))))
(exp.f64 (log.f64 (*.f64 y (+.f64 x -1))))
(log1p.f64 (expm1.f64 (*.f64 y (+.f64 x -1))))
(fma.f64 y x (neg.f64 y))
(fma.f64 x y (neg.f64 y))
Outputs
(*.f64 y (-.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 x y)
(*.f64 y x)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(*.f64 x y)
(*.f64 y x)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(+.f64 (*.f64 y x) (neg.f64 y))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(+.f64 (neg.f64 y) (*.f64 y x))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(+.f64 (*.f64 (*.f64 y x) 1) (*.f64 (neg.f64 y) 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(-.f64 (+.f64 1 (*.f64 y (+.f64 x -1))) 1)
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 (neg.f64 y) 3)) (+.f64 (*.f64 (*.f64 y x) (*.f64 y x)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (*.f64 (*.f64 y x) (neg.f64 y)))))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 (*.f64 y x) (*.f64 y x) (*.f64 (neg.f64 y) (-.f64 (neg.f64 y) (*.f64 y x)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (fma.f64 y (*.f64 x (*.f64 y x)) (fma.f64 y y (*.f64 y (*.f64 y x)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 x (*.f64 y (fma.f64 y x y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (*.f64 y (*.f64 y (+.f64 x (fma.f64 x x 1)))))
(/.f64 (-.f64 (*.f64 (*.f64 y x) (*.f64 y x)) (*.f64 (neg.f64 y) (neg.f64 y))) (-.f64 (*.f64 y x) (neg.f64 y)))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(/.f64 (*.f64 y (+.f64 -1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 (*.f64 x -1))))
(/.f64 y (/.f64 (fma.f64 x x (-.f64 1 (*.f64 x -1))) (+.f64 -1 (pow.f64 x 3))))
(/.f64 y (/.f64 (fma.f64 x x (+.f64 x 1)) (+.f64 -1 (pow.f64 x 3))))
(*.f64 y (/.f64 (+.f64 -1 (pow.f64 x 3)) (+.f64 x (fma.f64 x x 1))))
(/.f64 (*.f64 y (fma.f64 x x -1)) (+.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 x 3)) y) (fma.f64 x x (-.f64 1 (*.f64 x -1))))
(/.f64 y (/.f64 (fma.f64 x x (-.f64 1 (*.f64 x -1))) (+.f64 -1 (pow.f64 x 3))))
(/.f64 y (/.f64 (fma.f64 x x (+.f64 x 1)) (+.f64 -1 (pow.f64 x 3))))
(*.f64 y (/.f64 (+.f64 -1 (pow.f64 x 3)) (+.f64 x (fma.f64 x x 1))))
(/.f64 (*.f64 (fma.f64 x x -1) y) (+.f64 x 1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(pow.f64 (*.f64 y (+.f64 x -1)) 1)
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(pow.f64 (cbrt.f64 (*.f64 y (+.f64 x -1))) 3)
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(pow.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 3) 1/3)
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(pow.f64 (sqrt.f64 (*.f64 y (+.f64 x -1))) 2)
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(sqrt.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(log.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(cbrt.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 3))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(expm1.f64 (log1p.f64 (*.f64 y (+.f64 x -1))))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(exp.f64 (log.f64 (*.f64 y (+.f64 x -1))))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(log1p.f64 (expm1.f64 (*.f64 y (+.f64 x -1))))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(fma.f64 x y (neg.f64 y))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))

eval9.0ms (0.4%)

Compiler

Compiled 466 to 281 computations (39.7% saved)

prune8.0ms (0.4%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New34337
Fresh000
Picked011
Done000
Total34438
Accuracy
100.0%
Counts
38 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 1 (-.f64 (*.f64 y x) y))
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
71.0%
(+.f64 1 (*.f64 y x))
67.2%
(+.f64 1 (neg.f64 y))
100.0%
(+.f64 1 (-.f64 (*.f64 y x) y))
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
71.0%
(+.f64 1 (*.f64 y x))
67.2%
(+.f64 1 (neg.f64 y))
Compiler

Compiled 62 to 46 computations (25.8% saved)

localize42.0ms (1.9%)

Localize:

Found 1 expressions with local error:

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

Compiled 40 to 15 computations (62.5% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite55.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
1470×pow1
1360×add-exp-log
1360×log1p-expm1-u
1360×expm1-log1p-u
1332×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

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

simplify61.0ms (2.7%)

Algorithm
egg-herbie
Rules
1320×fma-neg
1040×fma-def
596×distribute-lft-neg-in
504×distribute-rgt-neg-in
454×distribute-frac-neg
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01081226
12841146
210231146
345901046
Stop Event
node limit
Counts
62 → 48
Calls
Call 1
Inputs
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 -1 y)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(+.f64 (*.f64 y x) (neg.f64 y))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 y) 1))
(+.f64 (-.f64 (*.f64 y x) y) (fma.f64 (neg.f64 y) 1 y))
(+.f64 (-.f64 (*.f64 y x) y) (fma.f64 (neg.f64 (cbrt.f64 y)) (pow.f64 (cbrt.f64 y) 2) y))
(+.f64 (-.f64 (*.f64 y x) y) (fma.f64 (neg.f64 (sqrt.f64 y)) (sqrt.f64 y) y))
(+.f64 (neg.f64 y) (*.f64 y x))
(*.f64 y (-.f64 x 1))
(*.f64 (-.f64 (*.f64 y x) y) 1)
(*.f64 1 (-.f64 (*.f64 y x) y))
(*.f64 (cbrt.f64 (-.f64 (*.f64 y x) y)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 y x) y)) 2))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 y x) y)) 2) (cbrt.f64 (-.f64 (*.f64 y x) y)))
(*.f64 (sqrt.f64 (-.f64 (*.f64 y x) y)) (sqrt.f64 (-.f64 (*.f64 y x) y)))
(*.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y (fma.f64 y x y)))))
(*.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y)) (/.f64 1 (fma.f64 y x y)))
(*.f64 (+.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 y)) (-.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 y)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y (fma.f64 y x y))) (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3))))
(/.f64 1 (/.f64 (fma.f64 y x y) (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y (fma.f64 y x y))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y)) (fma.f64 y x y))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y (fma.f64 y x y)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y))) (neg.f64 (fma.f64 y x y)))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 (neg.f64 y) 3)) (+.f64 (pow.f64 (*.f64 y x) 2) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (*.f64 (*.f64 y x) (neg.f64 y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 (neg.f64 y) (neg.f64 y))) (-.f64 (*.f64 y x) (neg.f64 y)))
(pow.f64 (-.f64 (*.f64 y x) y) 1)
(pow.f64 (cbrt.f64 (-.f64 (*.f64 y x) y)) 3)
(pow.f64 (pow.f64 (-.f64 (*.f64 y x) y) 3) 1/3)
(pow.f64 (sqrt.f64 (-.f64 (*.f64 y x) y)) 2)
(sqrt.f64 (pow.f64 (-.f64 (*.f64 y x) y) 2))
(log.f64 (exp.f64 (-.f64 (*.f64 y x) y)))
(cbrt.f64 (pow.f64 (-.f64 (*.f64 y x) y) 3))
(expm1.f64 (log1p.f64 (-.f64 (*.f64 y x) y)))
(exp.f64 (log.f64 (-.f64 (*.f64 y x) y)))
(log1p.f64 (expm1.f64 (-.f64 (*.f64 y x) y)))
(fma.f64 y x (neg.f64 y))
(fma.f64 x y (neg.f64 y))
(fma.f64 1 (*.f64 y x) (neg.f64 y))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (cbrt.f64 (*.f64 y x)) (neg.f64 y))
(fma.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x)) (neg.f64 y))
Outputs
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 x y)
(*.f64 y x)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 x y)
(*.f64 y x)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(+.f64 (*.f64 y x) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 y) 1))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(+.f64 (-.f64 (*.f64 y x) y) (fma.f64 (neg.f64 y) 1 y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(+.f64 (-.f64 (*.f64 y x) y) (fma.f64 (neg.f64 (cbrt.f64 y)) (pow.f64 (cbrt.f64 y) 2) y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(+.f64 (-.f64 (*.f64 y x) y) (fma.f64 (neg.f64 (sqrt.f64 y)) (sqrt.f64 y) y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(+.f64 (neg.f64 y) (*.f64 y x))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 (-.f64 (*.f64 y x) y) 1)
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 1 (-.f64 (*.f64 y x) y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 (cbrt.f64 (-.f64 (*.f64 y x) y)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 y x) y)) 2))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 y x) y)) 2) (cbrt.f64 (-.f64 (*.f64 y x) y)))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 (sqrt.f64 (-.f64 (*.f64 y x) y)) (sqrt.f64 (-.f64 (*.f64 y x) y)))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(*.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y (fma.f64 y x y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (fma.f64 y (fma.f64 y x y) (pow.f64 (*.f64 y x) 2)))
(/.f64 (*.f64 (pow.f64 y 3) (+.f64 (pow.f64 x 3) -1)) (fma.f64 y y (*.f64 x (*.f64 y (fma.f64 y x y)))))
(*.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y)) (/.f64 1 (fma.f64 y x y)))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y)) (fma.f64 y x y))
(/.f64 (*.f64 y (+.f64 x -1)) 1)
(*.f64 (+.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 y)) (-.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 y)))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y (fma.f64 y x y))) (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3))))
(*.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y (fma.f64 y x y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (fma.f64 y (fma.f64 y x y) (pow.f64 (*.f64 y x) 2)))
(/.f64 (*.f64 (pow.f64 y 3) (+.f64 (pow.f64 x 3) -1)) (fma.f64 y y (*.f64 x (*.f64 y (fma.f64 y x y)))))
(/.f64 1 (/.f64 (fma.f64 y x y) (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y))))
(*.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y)) (/.f64 1 (fma.f64 y x y)))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y)) (fma.f64 y x y))
(/.f64 (*.f64 y (+.f64 x -1)) 1)
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y (fma.f64 y x y))))
(*.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y (fma.f64 y x y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (fma.f64 y (fma.f64 y x y) (pow.f64 (*.f64 y x) 2)))
(/.f64 (*.f64 (pow.f64 y 3) (+.f64 (pow.f64 x 3) -1)) (fma.f64 y y (*.f64 x (*.f64 y (fma.f64 y x y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y)) (fma.f64 y x y))
(*.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y)) (/.f64 1 (fma.f64 y x y)))
(/.f64 (*.f64 y (+.f64 x -1)) 1)
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y (fma.f64 y x y)))))
(*.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y (fma.f64 y x y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (fma.f64 y (fma.f64 y x y) (pow.f64 (*.f64 y x) 2)))
(/.f64 (*.f64 (pow.f64 y 3) (+.f64 (pow.f64 x 3) -1)) (fma.f64 y y (*.f64 x (*.f64 y (fma.f64 y x y)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y))) (neg.f64 (fma.f64 y x y)))
(*.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y)) (/.f64 1 (fma.f64 y x y)))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y)) (fma.f64 y x y))
(/.f64 (*.f64 y (+.f64 x -1)) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 (neg.f64 y) 3)) (+.f64 (pow.f64 (*.f64 y x) 2) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (*.f64 (*.f64 y x) (neg.f64 y)))))
(*.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y (fma.f64 y x y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (fma.f64 y (fma.f64 y x y) (pow.f64 (*.f64 y x) 2)))
(/.f64 (*.f64 (pow.f64 y 3) (+.f64 (pow.f64 x 3) -1)) (fma.f64 y y (*.f64 x (*.f64 y (fma.f64 y x y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 (neg.f64 y) (neg.f64 y))) (-.f64 (*.f64 y x) (neg.f64 y)))
(*.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y)) (/.f64 1 (fma.f64 y x y)))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 y y)) (fma.f64 y x y))
(/.f64 (*.f64 y (+.f64 x -1)) 1)
(pow.f64 (-.f64 (*.f64 y x) y) 1)
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(pow.f64 (cbrt.f64 (-.f64 (*.f64 y x) y)) 3)
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(pow.f64 (pow.f64 (-.f64 (*.f64 y x) y) 3) 1/3)
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(pow.f64 (sqrt.f64 (-.f64 (*.f64 y x) y)) 2)
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(sqrt.f64 (pow.f64 (-.f64 (*.f64 y x) y) 2))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(log.f64 (exp.f64 (-.f64 (*.f64 y x) y)))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(cbrt.f64 (pow.f64 (-.f64 (*.f64 y x) y) 3))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(expm1.f64 (log1p.f64 (-.f64 (*.f64 y x) y)))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(exp.f64 (log.f64 (-.f64 (*.f64 y x) y)))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(log1p.f64 (expm1.f64 (-.f64 (*.f64 y x) y)))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(fma.f64 y x (neg.f64 y))
(*.f64 y (+.f64 x -1))
(fma.f64 x y (neg.f64 y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(fma.f64 1 (*.f64 y x) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (cbrt.f64 (*.f64 y x)) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))
(fma.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x)) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(fma.f64 y x (neg.f64 y))

eval17.0ms (0.7%)

Compiler

Compiled 635 to 296 computations (53.4% saved)

prune8.0ms (0.4%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New48048
Fresh000
Picked033
Done011
Total48452
Accuracy
100.0%
Counts
52 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 1 (-.f64 (*.f64 y x) y))
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
71.0%
(+.f64 1 (*.f64 y x))
67.2%
(+.f64 1 (neg.f64 y))
Compiler

Compiled 65 to 45 computations (30.8% saved)

regimes18.0ms (0.8%)

Counts
5 → 1
Calls
Call 1
Inputs
(+.f64 1 (neg.f64 y))
(+.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(+.f64 1 (-.f64 (*.f64 y x) y))
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
Outputs
(+.f64 1 (*.f64 y (+.f64 x -1)))
Calls

4 calls:

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

Compiled 56 to 38 computations (32.1% saved)

regimes229.0ms (10.2%)

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

2 calls:

208.0ms
x
20.0ms
y
Results
AccuracySegmentsBranch
98.7%3x
84.5%5y
Compiler

Compiled 17 to 12 computations (29.4% saved)

regimes6.0ms (0.3%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(+.f64 1 (neg.f64 y))
Outputs
(+.f64 1 (neg.f64 y))
Calls

2 calls:

3.0ms
y
3.0ms
x
Results
AccuracySegmentsBranch
67.2%1y
67.2%1x
Compiler

Compiled 12 to 9 computations (25% saved)

bsearch29.0ms (1.3%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
13.0ms
3.600560020839857e-5
0.043569326130354566
15.0ms
-3417.530897549561
-0.05195835842794355
Results
25.0ms272×body256valid
Compiler

Compiled 271 to 216 computations (20.3% saved)

simplify6.0ms (0.3%)

Algorithm
egg-herbie
Rules
10×+-commutative
*-commutative
unsub-neg
sub-neg
1-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02271
13871
24071
34171
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 1 (*.f64 y (+.f64 x -1)))
(if (<=.f64 x -1) (+.f64 1 (*.f64 y x)) (if (<=.f64 x 3098476543630901/72057594037927936) (+.f64 1 (neg.f64 y)) (+.f64 1 (*.f64 y x))))
(+.f64 1 (neg.f64 y))
Outputs
(+.f64 1 (*.f64 y (+.f64 x -1)))
(if (<=.f64 x -1) (+.f64 1 (*.f64 y x)) (if (<=.f64 x 3098476543630901/72057594037927936) (+.f64 1 (neg.f64 y)) (+.f64 1 (*.f64 y x))))
(if (or (<=.f64 x -1) (not (<=.f64 x 3098476543630901/72057594037927936))) (+.f64 1 (*.f64 y x)) (-.f64 1 y))
(+.f64 1 (neg.f64 y))
(-.f64 1 y)
Compiler

Compiled 33 to 25 computations (24.2% saved)

soundness558.0ms (25%)

Rules
5896×fma-def
1004×unsub-neg
934×sub-neg
876×fma-neg
862×fma-neg
Iterations

Useful iterations: 12 (0.0ms)

IterNodesCost
020137
141109
2111109
3421109
4195195
5473995
6565595
7594195
8598495
9599995
10600295
11600295
12600275
075710
1220688
2795676
33453674
075710
1220688
2795676
33453674
Stop Event
node limit
node limit
node limit
Compiler

Compiled 204 to 140 computations (31.4% saved)

end0.0ms (0%)

preprocess47.0ms (2.1%)

Compiler

Compiled 98 to 70 computations (28.6% saved)

Profiling

Loading profile data...