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)

sample1.0s (44.8%)

Results
659.0ms5951×body256valid
124.0ms1064×body256infinite
106.0ms558×body1024valid
103.0ms680×body512valid
1.0msbody2048valid
Bogosity

preprocess237.0ms (10.5%)

Algorithm
egg-herbie
Rules
1320×fma-neg
1138×unsub-neg
1048×sub-neg
864×distribute-lft-out
830×distribute-lft-out--
Problems
187×No Errors
69×(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
025270
154222
2164218
3706218
42701175
55027175
66094175
76619175
86869175
97021175
107110175
117230175
127571175
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))))
(neg.f64 (+.f64 (neg.f64 x) (*.f64 (-.f64 1 (neg.f64 x)) (-.f64 1 y))))
(neg.f64 (+.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)))
(+.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)))
(+.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))))
(fma.f64 (-.f64 1 y) (+.f64 x 1) (neg.f64 x))
(-.f64 (*.f64 (-.f64 1 y) (+.f64 x 1)) x)
(+.f64 1 (*.f64 y (-.f64 -1 x)))
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 (neg.f64 y))))
(fma.f64 (-.f64 1 x) (+.f64 1 y) x)
(+.f64 1 (*.f64 (-.f64 1 x) y))
(neg.f64 (+.f64 (neg.f64 x) (*.f64 (-.f64 1 (neg.f64 x)) (-.f64 1 y))))
(neg.f64 (+.f64 (neg.f64 x) (*.f64 (-.f64 1 y) (-.f64 1 (neg.f64 x)))))
(-.f64 x (*.f64 (-.f64 1 y) (+.f64 x 1)))
(fma.f64 (+.f64 x 1) (+.f64 y -1) x)
(fma.f64 (-.f64 1 y) (-.f64 -1 x) x)
(+.f64 -1 (*.f64 y (+.f64 x 1)))
(neg.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 (neg.f64 y)))))
(neg.f64 (fma.f64 (-.f64 1 x) (+.f64 1 y) x))
(fma.f64 (+.f64 1 y) (+.f64 x -1) (neg.f64 x))
(-.f64 -1 (*.f64 (-.f64 1 x) y))
(+.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 (*.f64 x (-.f64 1 y)))
Compiler

Compiled 39 to 27 computations (30.8% saved)

eval0.0ms (0%)

Compiler

Compiled 17 to 12 computations (29.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)

localize35.0ms (1.6%)

Localize:

Found 1 expressions with local error:

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

Compiled 22 to 15 computations (31.8% saved)

series4.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
(*.f64 y (+.f64 x -1))
1.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))

rewrite105.0ms (4.7%)

Algorithm
batch-egg-rewrite
Rules
694×unpow-prod-down
517×log1p-expm1-u
517×expm1-log1p-u
502×log-prod
450×prod-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
110419
2140819
Stop Event
node limit
Counts
1 → 53
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 0 (*.f64 y (+.f64 x -1)))
(+.f64 (*.f64 (*.f64 y x) 1) (*.f64 (neg.f64 y) 1))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))))
(-.f64 (+.f64 1 (*.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 (pow.f64 (neg.f64 y) 2) (*.f64 (*.f64 y x) (neg.f64 y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (pow.f64 (neg.f64 y) 2)) (-.f64 (*.f64 y x) (neg.f64 y)))
(/.f64 (*.f64 y (+.f64 -1 (pow.f64 x 3))) (-.f64 (fma.f64 x x 1) (*.f64 x -1)))
(/.f64 (*.f64 y (fma.f64 x x -1)) (+.f64 x 1))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 x 3)) y) (-.f64 (fma.f64 x x 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)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 y (+.f64 x -1))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 y (+.f64 x -1))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 y (+.f64 x -1)))) 2)) (cbrt.f64 (log.f64 (*.f64 y (+.f64 x -1)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 y (+.f64 x -1))))) (sqrt.f64 (log.f64 (*.f64 y (+.f64 x -1)))))
(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))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 y (+.f64 x -1)))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 y (+.f64 x -1)))) 2))
(log1p.f64 (expm1.f64 (*.f64 y (+.f64 x -1))))
(fma.f64 y x (neg.f64 y))
(fma.f64 y -1 (*.f64 y x))
(fma.f64 x y (neg.f64 y))
(fma.f64 -1 y (*.f64 y x))
(fma.f64 1 (*.f64 y x) (neg.f64 y))
(fma.f64 1 (neg.f64 y) (*.f64 y x))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) x) (neg.f64 y))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) -1) (*.f64 y x))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) y) (neg.f64 y))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x) (neg.f64 y))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) -1) (*.f64 y x))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) y) (neg.f64 y))
(fma.f64 (*.f64 y x) 1 (*.f64 (neg.f64 y) 1))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (cbrt.f64 (*.f64 y x)) (neg.f64 y))
(fma.f64 (pow.f64 (cbrt.f64 (neg.f64 y)) 2) (cbrt.f64 (neg.f64 y)) (*.f64 y x))
(fma.f64 (sqrt.f64 (neg.f64 y)) (sqrt.f64 (neg.f64 y)) (*.f64 y x))
(fma.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x)) (neg.f64 y))
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (neg.f64 y))
(fma.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 y))
(fma.f64 (*.f64 -1 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 y x))
(fma.f64 (*.f64 -1 (sqrt.f64 y)) (sqrt.f64 y) (*.f64 y x))
(fma.f64 (*.f64 x (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (neg.f64 y))
(fma.f64 (*.f64 x (sqrt.f64 y)) (sqrt.f64 y) (neg.f64 y))

simplify70.0ms (3.1%)

Algorithm
egg-herbie
Rules
1306×fma-neg
1062×fma-def
654×div-sub
590×cancel-sign-sub-inv
482×log-prod
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01531763
13781705
210621689
344861689
Stop Event
node limit
Counts
77 → 72
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 0 (*.f64 y (+.f64 x -1)))
(+.f64 (*.f64 (*.f64 y x) 1) (*.f64 (neg.f64 y) 1))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))))
(-.f64 (+.f64 1 (*.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 (pow.f64 (neg.f64 y) 2) (*.f64 (*.f64 y x) (neg.f64 y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (pow.f64 (neg.f64 y) 2)) (-.f64 (*.f64 y x) (neg.f64 y)))
(/.f64 (*.f64 y (+.f64 -1 (pow.f64 x 3))) (-.f64 (fma.f64 x x 1) (*.f64 x -1)))
(/.f64 (*.f64 y (fma.f64 x x -1)) (+.f64 x 1))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 x 3)) y) (-.f64 (fma.f64 x x 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)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 y (+.f64 x -1))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 y (+.f64 x -1))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 y (+.f64 x -1)))) 2)) (cbrt.f64 (log.f64 (*.f64 y (+.f64 x -1)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 y (+.f64 x -1))))) (sqrt.f64 (log.f64 (*.f64 y (+.f64 x -1)))))
(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))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 y (+.f64 x -1)))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 y (+.f64 x -1)))) 2))
(log1p.f64 (expm1.f64 (*.f64 y (+.f64 x -1))))
(fma.f64 y x (neg.f64 y))
(fma.f64 y -1 (*.f64 y x))
(fma.f64 x y (neg.f64 y))
(fma.f64 -1 y (*.f64 y x))
(fma.f64 1 (*.f64 y x) (neg.f64 y))
(fma.f64 1 (neg.f64 y) (*.f64 y x))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) x) (neg.f64 y))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) -1) (*.f64 y x))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) y) (neg.f64 y))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x) (neg.f64 y))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) -1) (*.f64 y x))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) y) (neg.f64 y))
(fma.f64 (*.f64 y x) 1 (*.f64 (neg.f64 y) 1))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (cbrt.f64 (*.f64 y x)) (neg.f64 y))
(fma.f64 (pow.f64 (cbrt.f64 (neg.f64 y)) 2) (cbrt.f64 (neg.f64 y)) (*.f64 y x))
(fma.f64 (sqrt.f64 (neg.f64 y)) (sqrt.f64 (neg.f64 y)) (*.f64 y x))
(fma.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x)) (neg.f64 y))
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (neg.f64 y))
(fma.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 y))
(fma.f64 (*.f64 -1 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 y x))
(fma.f64 (*.f64 -1 (sqrt.f64 y)) (sqrt.f64 y) (*.f64 y x))
(fma.f64 (*.f64 x (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (neg.f64 y))
(fma.f64 (*.f64 x (sqrt.f64 y)) (sqrt.f64 y) (neg.f64 y))
Outputs
(*.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 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)
(neg.f64 y)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(*.f64 x y)
(*.f64 y x)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(*.f64 x y)
(*.f64 y x)
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(+.f64 (*.f64 -1 y) (*.f64 x y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(+.f64 (*.f64 y x) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(+.f64 (neg.f64 y) (*.f64 y x))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(+.f64 0 (*.f64 y (+.f64 x -1)))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(+.f64 (*.f64 (*.f64 y x) 1) (*.f64 (neg.f64 y) 1))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 x 1)) y))))
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))) 3)
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(-.f64 (+.f64 1 (*.f64 y (+.f64 x -1))) 1)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 (neg.f64 y) 3)) (+.f64 (pow.f64 (*.f64 y x) 2) (-.f64 (pow.f64 (neg.f64 y) 2) (*.f64 (*.f64 y x) (neg.f64 y)))))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 (neg.f64 y) 3)) (+.f64 (pow.f64 (*.f64 y x) 2) (-.f64 (pow.f64 (neg.f64 y) 2) (neg.f64 (*.f64 (*.f64 y x) y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)) (+.f64 (pow.f64 (*.f64 y x) 2) (*.f64 (neg.f64 y) (-.f64 (neg.f64 y) (*.f64 y x)))))
(/.f64 (*.f64 (pow.f64 y 3) (+.f64 -1 (pow.f64 x 3))) (fma.f64 y y (*.f64 (*.f64 y x) (fma.f64 y x y))))
(/.f64 (*.f64 (pow.f64 y 3) (+.f64 -1 (pow.f64 x 3))) (fma.f64 y y (*.f64 x (*.f64 y (fma.f64 y x y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (pow.f64 (neg.f64 y) 2)) (-.f64 (*.f64 y x) (neg.f64 y)))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(/.f64 (*.f64 y (+.f64 -1 (pow.f64 x 3))) (-.f64 (fma.f64 x x 1) (*.f64 x -1)))
(/.f64 y (/.f64 (-.f64 (fma.f64 x x 1) (*.f64 x -1)) (+.f64 -1 (pow.f64 x 3))))
(/.f64 (*.f64 y (+.f64 -1 (pow.f64 x 3))) (+.f64 x (fma.f64 x x 1)))
(*.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 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 x 3)) y) (-.f64 (fma.f64 x x 1) (*.f64 x -1)))
(/.f64 y (/.f64 (-.f64 (fma.f64 x x 1) (*.f64 x -1)) (+.f64 -1 (pow.f64 x 3))))
(/.f64 (*.f64 y (+.f64 -1 (pow.f64 x 3))) (+.f64 x (fma.f64 x x 1)))
(*.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 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(pow.f64 (*.f64 y (+.f64 x -1)) 1)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(pow.f64 (cbrt.f64 (*.f64 y (+.f64 x -1))) 3)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(pow.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2) 1/2)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(pow.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 3) 1/3)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(pow.f64 (sqrt.f64 (*.f64 y (+.f64 x -1))) 2)
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(pow.f64 (E.f64) (log.f64 (*.f64 y (+.f64 x -1))))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 y (+.f64 x -1)))) 2)) (cbrt.f64 (log.f64 (*.f64 y (+.f64 x -1)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 y (-.f64 x 1)))) 2)) (cbrt.f64 (log.f64 (*.f64 y (-.f64 x 1)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 y (+.f64 x -1))))) (sqrt.f64 (log.f64 (*.f64 y (+.f64 x -1)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 y (-.f64 x 1))))) (sqrt.f64 (log.f64 (*.f64 y (-.f64 x 1)))))
(sqrt.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(log.f64 (pow.f64 (exp.f64 (+.f64 x -1)) y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(cbrt.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 3))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(expm1.f64 (log1p.f64 (*.f64 y (+.f64 x -1))))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(exp.f64 (log.f64 (*.f64 y (+.f64 x -1))))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 y (+.f64 x -1)))) 3))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) 1/3))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 y (+.f64 x -1)))) 2))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(log1p.f64 (expm1.f64 (*.f64 y (+.f64 x -1))))
(*.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 -1 (*.f64 y x))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 x y (neg.f64 y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 -1 y (*.f64 y x))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 1 (*.f64 y x) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 1 (neg.f64 y) (*.f64 y x))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) x) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) -1) (*.f64 y x))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) y) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) -1) (*.f64 y x))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) y) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (*.f64 y x) 1 (*.f64 (neg.f64 y) 1))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (cbrt.f64 (*.f64 y x)) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (pow.f64 (cbrt.f64 (neg.f64 y)) 2) (cbrt.f64 (neg.f64 y)) (*.f64 y x))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (sqrt.f64 (neg.f64 y)) (sqrt.f64 (neg.f64 y)) (*.f64 y x))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x)) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (*.f64 -1 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 y x))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (*.f64 -1 (sqrt.f64 y)) (sqrt.f64 y) (*.f64 y x))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (*.f64 x (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))
(fma.f64 (*.f64 x (sqrt.f64 y)) (sqrt.f64 y) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 x 1))

eval18.0ms (0.8%)

Compiler

Compiled 930 to 584 computations (37.2% saved)

prune13.0ms (0.6%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New69372
Fresh000
Picked011
Done000
Total69473
Accuracy
100.0%
Counts
73 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 1 (+.f64 (*.f64 y x) (neg.f64 y)))
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
75.9%
(+.f64 1 (*.f64 y x))
56.9%
(+.f64 1 (neg.f64 y))
100.0%
(+.f64 1 (+.f64 (*.f64 y x) (neg.f64 y)))
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
75.9%
(+.f64 1 (*.f64 y x))
56.9%
(+.f64 1 (neg.f64 y))
Compiler

Compiled 64 to 48 computations (25% saved)

localize46.0ms (2%)

Compiler

Compiled 44 to 15 computations (65.9% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0.1%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New000
Fresh000
Picked033
Done011
Total044
Accuracy
100.0%
Counts
4 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 1 (+.f64 (*.f64 y x) (neg.f64 y)))
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
75.9%
(+.f64 1 (*.f64 y x))
56.9%
(+.f64 1 (neg.f64 y))
Compiler

Compiled 67 to 46 computations (31.3% 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) (neg.f64 y)))
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
Outputs
(+.f64 1 (+.f64 (*.f64 y x) (neg.f64 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 57 to 38 computations (33.3% 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
y
3.0ms
x
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
Compiler

Compiled 24 to 17 computations (29.2% saved)

regimes26.0ms (1.1%)

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:

16.0ms
y
9.0ms
x
Results
AccuracySegmentsBranch
99.0%3x
81.7%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
x
3.0ms
y
Results
AccuracySegmentsBranch
56.9%1y
56.9%1x
Compiler

Compiled 12 to 9 computations (25% saved)

bsearch35.0ms (1.5%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
0.36629197981267425
682.2080326021592
20.0ms
-25224724608.32476
-7.957250252784014
Results
29.0ms269×body256valid
0.0msbody256infinite
Compiler

Compiled 271 to 216 computations (20.3% saved)

simplify5.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
027123
146123
248123
349123
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 1 (+.f64 (*.f64 y x) (neg.f64 y)))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(if (<=.f64 x -8) (+.f64 1 (*.f64 y x)) (if (<=.f64 x 1) (+.f64 1 (neg.f64 y)) (+.f64 1 (*.f64 y x))))
(+.f64 1 (neg.f64 y))
Outputs
(+.f64 1 (+.f64 (*.f64 y x) (neg.f64 y)))
(+.f64 1 (-.f64 (*.f64 y x) y))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(if (<=.f64 x -8) (+.f64 1 (*.f64 y x)) (if (<=.f64 x 1) (+.f64 1 (neg.f64 y)) (+.f64 1 (*.f64 y x))))
(if (or (<=.f64 x -8) (not (<=.f64 x 1))) (+.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)

soundness560.0ms (24.9%)

Rules
1320×fma-neg
1306×fma-neg
1306×fma-neg
1138×unsub-neg
1062×fma-def
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025270
154222
2164218
3706218
42701175
55027175
66094175
76619175
86869175
97021175
107110175
117230175
127571175
01019
110419
2140819
01531763
13781705
210621689
344861689
01531763
13781705
210621689
344861689
Stop Event
node limit
node limit
node limit
node limit
Compiler

Compiled 261 to 171 computations (34.5% saved)

end0.0ms (0%)

preprocess51.0ms (2.3%)

Compiler

Compiled 112 to 76 computations (32.1% saved)

Profiling

Loading profile data...