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

Time bar (total: 2.3s)

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.1s (48%)

Results
801.0ms5937×body256valid
120.0ms606×body1024valid
85.0ms1049×body256infinite
77.0ms658×body512valid
1.0msbody2048valid
Bogosity

preprocess212.0ms (9.3%)

Algorithm
egg-herbie
Rules
5896×fma-def
1004×unsub-neg
952×sub-neg
876×fma-neg
702×associate-+l-
Problems
206×No Errors
50×(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
Iterations

Useful iterations: 12 (0.0ms)

IterNodesCost
023182
144154
2114154
3424154
41951125
54744125
65705125
75997125
86040125
96055125
106058125
116058125
126058105
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 (-.f64 1 x) y))
(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 (-.f64 1 x) y))
(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)
(+.f64 1 (*.f64 y (-.f64 -1 x)))
(fma.f64 y (-.f64 -1 x) 1)
(+.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))
(fma.f64 (-.f64 1 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 (*.f64 x (+.f64 y -1)))
(fma.f64 x (+.f64 y -1) 1)
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 (-.f64 1 x) y))
100.0%
(-.f64 1 (*.f64 (-.f64 1 x) y))
Compiler

Compiled 18 to 14 computations (22.2% saved)

localize52.0ms (2.3%)

Localize:

Found 1 expressions with local error:

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

Compiled 21 to 14 computations (33.3% saved)

series3.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

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

rewrite95.0ms (4.1%)

Algorithm
batch-egg-rewrite
Rules
624×unpow-prod-down
458×log-prod
456×cbrt-prod
455×log1p-expm1-u
455×expm1-log1p-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
110019
2120619
Stop Event
node limit
Counts
1 → 37
Calls
Call 1
Inputs
(*.f64 (-.f64 1 x) y)
Outputs
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 (neg.f64 x) y))
(+.f64 0 (*.f64 (-.f64 1 x) y))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))))
(-.f64 (+.f64 1 (*.f64 (-.f64 1 x) y)) 1)
(/.f64 (*.f64 y (-.f64 1 (pow.f64 x 3))) (fma.f64 x (+.f64 1 x) 1))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 x 2))) (+.f64 1 x))
(/.f64 (*.f64 (-.f64 1 (pow.f64 x 3)) y) (fma.f64 x (+.f64 1 x) 1))
(/.f64 (*.f64 (-.f64 1 (pow.f64 x 2)) y) (+.f64 1 x))
(pow.f64 (*.f64 (-.f64 1 x) y) 1)
(pow.f64 (cbrt.f64 (*.f64 (-.f64 1 x) y)) 3)
(pow.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (-.f64 1 x) y)) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 (-.f64 1 x) y)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (-.f64 1 x) y))) 2)) (cbrt.f64 (log.f64 (*.f64 (-.f64 1 x) y))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (-.f64 1 x) y)))) (sqrt.f64 (log.f64 (*.f64 (-.f64 1 x) y))))
(sqrt.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 2))
(log.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))
(cbrt.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 3))
(expm1.f64 (log1p.f64 (*.f64 (-.f64 1 x) y)))
(exp.f64 (log.f64 (*.f64 (-.f64 1 x) y)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (-.f64 1 x) y))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 1 x) y))) 2))
(log1p.f64 (expm1.f64 (*.f64 (-.f64 1 x) y)))
(fma.f64 1 y (*.f64 y (neg.f64 x)))
(fma.f64 1 y (*.f64 (neg.f64 x) y))
(fma.f64 y 1 (*.f64 y (neg.f64 x)))
(fma.f64 y 1 (*.f64 (neg.f64 x) y))
(fma.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 y) 2) (*.f64 y (neg.f64 x)))
(fma.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 y) 2) (*.f64 (neg.f64 x) y))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 y) (*.f64 y (neg.f64 x)))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 y) (*.f64 (neg.f64 x) y))
(fma.f64 (sqrt.f64 y) (sqrt.f64 y) (*.f64 y (neg.f64 x)))
(fma.f64 (sqrt.f64 y) (sqrt.f64 y) (*.f64 (neg.f64 x) y))

simplify70.0ms (3.1%)

Algorithm
egg-herbie
Rules
1674×log-prod
738×associate-*r*
662×associate-*l*
616×fma-neg
402×fma-def
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01031598
12291358
25931358
334581358
470671358
Stop Event
node limit
Counts
61 → 56
Calls
Call 1
Inputs
y
(+.f64 y (*.f64 -1 (*.f64 x y)))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(*.f64 -1 (*.f64 x y))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(*.f64 -1 (*.f64 x y))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 (neg.f64 x) y))
(+.f64 0 (*.f64 (-.f64 1 x) y))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))))
(-.f64 (+.f64 1 (*.f64 (-.f64 1 x) y)) 1)
(/.f64 (*.f64 y (-.f64 1 (pow.f64 x 3))) (fma.f64 x (+.f64 1 x) 1))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 x 2))) (+.f64 1 x))
(/.f64 (*.f64 (-.f64 1 (pow.f64 x 3)) y) (fma.f64 x (+.f64 1 x) 1))
(/.f64 (*.f64 (-.f64 1 (pow.f64 x 2)) y) (+.f64 1 x))
(pow.f64 (*.f64 (-.f64 1 x) y) 1)
(pow.f64 (cbrt.f64 (*.f64 (-.f64 1 x) y)) 3)
(pow.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (-.f64 1 x) y)) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 (-.f64 1 x) y)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (-.f64 1 x) y))) 2)) (cbrt.f64 (log.f64 (*.f64 (-.f64 1 x) y))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (-.f64 1 x) y)))) (sqrt.f64 (log.f64 (*.f64 (-.f64 1 x) y))))
(sqrt.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 2))
(log.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))
(cbrt.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 3))
(expm1.f64 (log1p.f64 (*.f64 (-.f64 1 x) y)))
(exp.f64 (log.f64 (*.f64 (-.f64 1 x) y)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (-.f64 1 x) y))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 1 x) y))) 2))
(log1p.f64 (expm1.f64 (*.f64 (-.f64 1 x) y)))
(fma.f64 1 y (*.f64 y (neg.f64 x)))
(fma.f64 1 y (*.f64 (neg.f64 x) y))
(fma.f64 y 1 (*.f64 y (neg.f64 x)))
(fma.f64 y 1 (*.f64 (neg.f64 x) y))
(fma.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 y) 2) (*.f64 y (neg.f64 x)))
(fma.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 y) 2) (*.f64 (neg.f64 x) y))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 y) (*.f64 y (neg.f64 x)))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 y) (*.f64 (neg.f64 x) y))
(fma.f64 (sqrt.f64 y) (sqrt.f64 y) (*.f64 y (neg.f64 x)))
(fma.f64 (sqrt.f64 y) (sqrt.f64 y) (*.f64 (neg.f64 x) y))
Outputs
y
(+.f64 y (*.f64 -1 (*.f64 x y)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 -1 (*.f64 x y))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 -1 (*.f64 x y))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(+.f64 y (*.f64 -1 (*.f64 x y)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(+.f64 y (*.f64 y (neg.f64 x)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(+.f64 y (*.f64 (neg.f64 x) y))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(+.f64 0 (*.f64 (-.f64 1 x) y))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))))
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))) 3)
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(-.f64 (+.f64 1 (*.f64 (-.f64 1 x) y)) 1)
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 x 3))) (fma.f64 x (+.f64 1 x) 1))
(/.f64 y (/.f64 (fma.f64 x (+.f64 x 1) 1) (-.f64 1 (pow.f64 x 3))))
(*.f64 y (/.f64 (-.f64 1 (pow.f64 x 3)) (fma.f64 x (+.f64 x 1) 1)))
(/.f64 (-.f64 1 (pow.f64 x 3)) (/.f64 (fma.f64 x (+.f64 x 1) 1) y))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 x 2))) (+.f64 1 x))
(/.f64 (-.f64 1 (pow.f64 x 2)) (/.f64 (+.f64 x 1) y))
(*.f64 (/.f64 y (+.f64 x 1)) (-.f64 1 (pow.f64 x 2)))
(*.f64 y (/.f64 (-.f64 1 (pow.f64 x 2)) (+.f64 x 1)))
(*.f64 (-.f64 1 (pow.f64 x 2)) (/.f64 y (+.f64 x 1)))
(/.f64 (*.f64 (-.f64 1 (pow.f64 x 3)) y) (fma.f64 x (+.f64 1 x) 1))
(/.f64 y (/.f64 (fma.f64 x (+.f64 x 1) 1) (-.f64 1 (pow.f64 x 3))))
(*.f64 y (/.f64 (-.f64 1 (pow.f64 x 3)) (fma.f64 x (+.f64 x 1) 1)))
(/.f64 (-.f64 1 (pow.f64 x 3)) (/.f64 (fma.f64 x (+.f64 x 1) 1) y))
(/.f64 (*.f64 (-.f64 1 (pow.f64 x 2)) y) (+.f64 1 x))
(/.f64 (-.f64 1 (pow.f64 x 2)) (/.f64 (+.f64 x 1) y))
(*.f64 (/.f64 y (+.f64 x 1)) (-.f64 1 (pow.f64 x 2)))
(*.f64 y (/.f64 (-.f64 1 (pow.f64 x 2)) (+.f64 x 1)))
(*.f64 (-.f64 1 (pow.f64 x 2)) (/.f64 y (+.f64 x 1)))
(pow.f64 (*.f64 (-.f64 1 x) y) 1)
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(pow.f64 (cbrt.f64 (*.f64 (-.f64 1 x) y)) 3)
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(pow.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 2) 1/2)
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(pow.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 3) 1/3)
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(pow.f64 (sqrt.f64 (*.f64 (-.f64 1 x) y)) 2)
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(pow.f64 (E.f64) (log.f64 (*.f64 (-.f64 1 x) y)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (-.f64 1 x) y))) 2)) (cbrt.f64 (log.f64 (*.f64 (-.f64 1 x) y))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 y (-.f64 1 x)))) 2)) (cbrt.f64 (log.f64 (*.f64 y (-.f64 1 x)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (-.f64 1 x) y)))) (sqrt.f64 (log.f64 (*.f64 (-.f64 1 x) y))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 y (-.f64 1 x))))) (sqrt.f64 (log.f64 (*.f64 y (-.f64 1 x)))))
(sqrt.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 2))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(log.f64 (pow.f64 (exp.f64 y) (-.f64 1 x)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(cbrt.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 3))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(expm1.f64 (log1p.f64 (*.f64 (-.f64 1 x) y)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(exp.f64 (log.f64 (*.f64 (-.f64 1 x) y)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (-.f64 1 x) y))) 3))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (-.f64 1 x) y) 3)) 1/3))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 1 x) y))) 2))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(log1p.f64 (expm1.f64 (*.f64 (-.f64 1 x) y)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(fma.f64 1 y (*.f64 y (neg.f64 x)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(fma.f64 1 y (*.f64 (neg.f64 x) y))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(fma.f64 y 1 (*.f64 y (neg.f64 x)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(fma.f64 y 1 (*.f64 (neg.f64 x) y))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(fma.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 y) 2) (*.f64 y (neg.f64 x)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(fma.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 y) 2) (*.f64 (neg.f64 x) y))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 y) (*.f64 y (neg.f64 x)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 y) (*.f64 (neg.f64 x) y))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(fma.f64 (sqrt.f64 y) (sqrt.f64 y) (*.f64 y (neg.f64 x)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))
(fma.f64 (sqrt.f64 y) (sqrt.f64 y) (*.f64 (neg.f64 x) y))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (-.f64 1 x))

eval14.0ms (0.6%)

Compiler

Compiled 667 to 464 computations (30.4% saved)

prune18.0ms (0.8%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New53356
Fresh000
Picked011
Done000
Total53457
Accuracy
100.0%
Counts
57 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 1 (+.f64 y (*.f64 (neg.f64 x) y)))
100.0%
(-.f64 1 (*.f64 (-.f64 1 x) y))
75.1%
(-.f64 1 (*.f64 y (neg.f64 x)))
59.9%
(-.f64 1 y)
100.0%
(-.f64 1 (+.f64 y (*.f64 (neg.f64 x) y)))
100.0%
(-.f64 1 (*.f64 (-.f64 1 x) y))
75.1%
(-.f64 1 (*.f64 y (neg.f64 x)))
59.9%
(-.f64 1 y)
Compiler

Compiled 64 to 48 computations (25% saved)

localize80.0ms (3.5%)

Compiler

Compiled 46 to 16 computations (65.2% 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 y (*.f64 (neg.f64 x) y)))
100.0%
(-.f64 1 (*.f64 (-.f64 1 x) y))
75.1%
(-.f64 1 (*.f64 y (neg.f64 x)))
59.9%
(-.f64 1 y)
Compiler

Compiled 67 to 47 computations (29.9% saved)

regimes18.0ms (0.8%)

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

4 calls:

5.0ms
x
4.0ms
y
4.0ms
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
3.0ms
(-.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 39 computations (31.6% saved)

regimes12.0ms (0.5%)

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

3 calls:

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

Compiled 29 to 21 computations (27.6% saved)

regimes51.0ms (2.2%)

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

3 calls:

24.0ms
y
17.0ms
(-.f64 1 y)
10.0ms
x
Results
AccuracySegmentsBranch
98.8%3x
83.3%7y
83.3%7(-.f64 1 y)
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes9.0ms (0.4%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

3 calls:

3.0ms
(-.f64 1 y)
3.0ms
y
3.0ms
x
Results
AccuracySegmentsBranch
59.9%1y
59.9%1(-.f64 1 y)
59.9%1x
Compiler

Compiled 16 to 12 computations (25% saved)

bsearch39.0ms (1.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
12.0ms
0.02591877280936344
2.3092149043058208
27.0ms
-444869806217197250.0
-0.8714346289974625
Results
35.0ms272×body256valid
Compiler

Compiled 271 to 216 computations (20.3% saved)

simplify11.0ms (0.5%)

Algorithm
egg-herbie
Rules
72×unsub-neg
72×distribute-lft-neg-in
58×cancel-sign-sub-inv
46×neg-mul-1
40×distribute-neg-in
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
027131
158123
297123
3140123
4190123
5223123
6262123
7291123
8301123
Stop Event
done
saturated
Calls
Call 1
Inputs
(-.f64 1 (+.f64 y (*.f64 (neg.f64 x) y)))
(-.f64 1 (*.f64 (-.f64 1 x) y))
(if (<=.f64 x -1) (-.f64 1 (*.f64 y (neg.f64 x))) (if (<=.f64 x 1) (-.f64 1 y) (-.f64 1 (*.f64 y (neg.f64 x)))))
(-.f64 1 y)
Outputs
(-.f64 1 (+.f64 y (*.f64 (neg.f64 x) y)))
(-.f64 1 (+.f64 y (*.f64 y (neg.f64 x))))
(-.f64 1 (-.f64 y (*.f64 y x)))
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 1 (*.f64 (-.f64 1 x) y))
(-.f64 1 (*.f64 y (-.f64 1 x)))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(if (<=.f64 x -1) (-.f64 1 (*.f64 y (neg.f64 x))) (if (<=.f64 x 1) (-.f64 1 y) (-.f64 1 (*.f64 y (neg.f64 x)))))
(if (or (<=.f64 x -1) (not (<=.f64 x 1))) (-.f64 1 (*.f64 y (neg.f64 x))) (-.f64 1 y))
(if (or (<=.f64 x -1) (not (<=.f64 x 1))) (+.f64 1 (*.f64 y x)) (-.f64 1 y))
(-.f64 1 y)
Compiler

Compiled 42 to 31 computations (26.2% saved)

soundness443.0ms (19.4%)

Rules
5896×fma-def
1674×log-prod
1004×unsub-neg
952×sub-neg
876×fma-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023182
144154
2114154
3424154
41951125
54744125
65705125
75997125
86040125
96055125
106058125
116058125
126058105
01019
110019
2120619
01031598
12291358
25931358
334581358
470671358
Stop Event
node limit
node limit
node limit
Compiler

Compiled 217 to 141 computations (35% saved)

end0.0ms (0%)

preprocess58.0ms (2.5%)

Compiler

Compiled 112 to 76 computations (32.1% saved)

Profiling

Loading profile data...