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

Time bar (total: 2.1s)

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)

sample769.0ms (36.1%)

Results
478.0ms5799×body256valid
106.0ms696×body1024valid
87.0ms743×body512valid
82.0ms1010×body256infinite
2.0msbody2048valid
Bogosity

preprocess197.0ms (9.2%)

Algorithm
egg-herbie
Rules
5896×fma-def
1004×unsub-neg
934×sub-neg
876×fma-neg
706×associate-+l-
Problems
204×No Errors
52×(+.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)

prune1.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)

localize75.0ms (3.5%)

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))

rewrite58.0ms (2.7%)

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))

simplify56.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))

eval8.0ms (0.4%)

Compiler

Compiled 466 to 281 computations (39.7% saved)

prune8.0ms (0.4%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New34337
Fresh000
Picked101
Done000
Total35338
Accuracy
100.0%
Counts
38 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 1 (-.f64 (*.f64 y x) y))
70.1%
(+.f64 1 (*.f64 y x))
66.2%
(+.f64 1 (neg.f64 y))
100.0%
(+.f64 1 (-.f64 (*.f64 y x) y))
70.1%
(+.f64 1 (*.f64 y x))
66.2%
(+.f64 1 (neg.f64 y))
Compiler

Compiled 44 to 32 computations (27.3% saved)

localize92.0ms (4.3%)

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)

rewrite62.0ms (2.9%)

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))

simplify67.0ms (3.1%)

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))

eval10.0ms (0.5%)

Compiler

Compiled 635 to 296 computations (53.4% saved)

prune8.0ms (0.4%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New48048
Fresh000
Picked033
Done000
Total48351
Accuracy
100.0%
Counts
51 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 1 (-.f64 (*.f64 y x) y))
70.1%
(+.f64 1 (*.f64 y x))
66.2%
(+.f64 1 (neg.f64 y))
Compiler

Compiled 56 to 38 computations (32.1% saved)

regimes20.0ms (1%)

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 (*.f64 y x) y))
Calls

4 calls:

5.0ms
y
4.0ms
x
3.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)

regimes9.0ms (0.4%)

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

2 calls:

4.0ms
x
4.0ms
y
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
Compiler

Compiled 24 to 17 computations (29.2% saved)

regimes28.0ms (1.3%)

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:

18.0ms
y
10.0ms
x
Results
AccuracySegmentsBranch
98.1%3x
82.7%5y
Compiler

Compiled 17 to 12 computations (29.4% saved)

regimes7.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:

4.0ms
x
3.0ms
y
Results
AccuracySegmentsBranch
66.2%1y
66.2%1x
Compiler

Compiled 12 to 9 computations (25% saved)

bsearch19.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
12.0ms
6.832280436308039e-10
5.52512764307029e-8
6.0ms
-37.4747508373283
-22.6895152260013
Results
16.0ms176×body256valid
Compiler

Compiled 181 to 144 computations (20.4% saved)

simplify8.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02590
14390
24690
34790
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 1 (-.f64 (*.f64 y x) y))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(if (<=.f64 x -23) (+.f64 1 (*.f64 y x)) (if (<=.f64 x 519460313115661/9444732965739290427392) (+.f64 1 (neg.f64 y)) (+.f64 1 (*.f64 y x))))
(+.f64 1 (neg.f64 y))
Outputs
(+.f64 1 (-.f64 (*.f64 y x) y))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(if (<=.f64 x -23) (+.f64 1 (*.f64 y x)) (if (<=.f64 x 519460313115661/9444732965739290427392) (+.f64 1 (neg.f64 y)) (+.f64 1 (*.f64 y x))))
(if (or (<=.f64 x -23) (not (<=.f64 x 519460313115661/9444732965739290427392))) (+.f64 1 (*.f64 y x)) (-.f64 1 y))
(+.f64 1 (neg.f64 y))
(-.f64 1 y)
Compiler

Compiled 42 to 31 computations (26.2% saved)

soundness551.0ms (25.8%)

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
075710
1220688
2795676
33453674
Stop Event
node limit
node limit
node limit
node limit
Compiler

Compiled 247 to 165 computations (33.2% saved)

end0.0ms (0%)

preprocess73.0ms (3.4%)

Compiler

Compiled 112 to 76 computations (32.1% saved)

Profiling

Loading profile data...