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

Time bar (total: 2.4s)

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)

sample929.0ms (38.3%)

Results
604.0ms5916×256valid
96.0ms1049×256infinite
123.0ms730×512valid
95.0ms559×1024valid
0.0ms2048valid
Bogosity

preprocess328.0ms (13.5%)

Algorithm
egg-herbie
Rules
1328×fma-neg
1134×unsub-neg
1046×sub-neg
862×distribute-lft-out
830×distribute-lft-out--
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
491(24736200240.61253 7.678271721176168e-38)0-(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
00-0-x
00-0-(*.f64 (-.f64 1 x) (-.f64 1 y))
00-0-(-.f64 1 y)
00-0-(-.f64 1 x)
00-0-y
00-0-1
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
025270
157222
2167218
3709218
42704175
55021175
66074175
76595175
86840175
96992175
107081175
117201175
127542175
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 -1 x)))
(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 y (+.f64 x -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)))
Compiler

Compiled 67 to 46 computations (31.3% saved)

eval0.0ms (0%)

Compiler

Compiled 17 to 12 computations (29.4% saved)

prune1.0ms (0%)

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

Compiled 9 to 7 computations (22.2% saved)

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

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite183.0ms (7.5%)

Algorithm
batch-egg-rewrite
Rules
692×unpow-prod-down
515×log1p-expm1-u
515×expm1-log1p-u
502×log-prod
480×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
110419
2141119
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 (*.f64 3 (log.f64 (*.f64 y (+.f64 x -1)))) 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))

simplify180.0ms (7.4%)

Algorithm
egg-herbie
Rules
1308×fma-neg
1056×fma-def
654×div-sub
592×cancel-sign-sub-inv
432×distribute-lft-in
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01531763
13831705
210601689
344111689
Stop Event
node limit
Counts
77 → 70
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 (*.f64 3 (log.f64 (*.f64 y (+.f64 x -1)))) 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 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 (*.f64 y (+.f64 -1 (pow.f64 x 3))) (+.f64 x (fma.f64 x x 1)))
(*.f64 (+.f64 -1 (pow.f64 x 3)) (/.f64 y (+.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 (*.f64 y (+.f64 -1 (pow.f64 x 3))) (-.f64 (fma.f64 x x 1) (*.f64 x -1)))
(/.f64 (*.f64 y (+.f64 -1 (pow.f64 x 3))) (+.f64 x (fma.f64 x x 1)))
(*.f64 (+.f64 -1 (pow.f64 x 3)) (/.f64 y (+.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 (*.f64 3 (log.f64 (*.f64 y (+.f64 x -1)))) 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))

eval20.0ms (0.8%)

Compiler

Compiled 882 to 555 computations (37.1% saved)

prune10.0ms (0.4%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New68270
Fresh000
Picked011
Done000
Total68371
Accuracy
100.0%
Counts
71 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
74.7%
(+.f64 1 (*.f64 y x))
64.0%
(+.f64 1 (neg.f64 y))
Compiler

Compiled 22 to 17 computations (22.7% saved)

localize32.0ms (1.3%)

Compiler

Compiled 22 to 11 computations (50% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done011
Total033
Accuracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
74.7%
(+.f64 1 (*.f64 y x))
64.0%
(+.f64 1 (neg.f64 y))
Compiler

Compiled 49 to 36 computations (26.5% saved)

regimes38.0ms (1.6%)

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

4 calls:

4.0ms
x
4.0ms
y
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 22 to 16 computations (27.3% saved)

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

21.0ms
y
9.0ms
x
Results
AccuracySegmentsBranch
99.1%3x
85.0%7y
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes5.0ms (0.2%)

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
64.0%1y
64.0%1x
Compiler

Compiled 6 to 4 computations (33.3% saved)

bsearch49.0ms (2%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
18.0ms
4.9919225985719674e-29
7.280175671978668e-15
30.0ms
-532324269662.5995
-7.196106770159534e-6
Results
44.0ms318×256valid
0.0ms256infinite
Compiler

Compiled 316 to 252 computations (20.3% saved)

simplify4.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02595
14495
24695
34795
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 2281771080410813/316912650057057350374175801344) (+.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 2281771080410813/316912650057057350374175801344) (+.f64 1 (neg.f64 y)) (+.f64 1 (*.f64 y x))))
(if (or (<=.f64 x -1) (not (<=.f64 x 2281771080410813/316912650057057350374175801344))) (+.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)

soundness531.0ms (21.9%)

Rules
1328×fma-neg
1308×fma-neg
1308×fma-neg
1134×unsub-neg
1056×fma-def
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
025270
157222
2167218
3709218
42704175
55021175
66074175
76595175
86840175
96992175
107081175
117201175
127542175
01531763
13831705
210601689
344111689
01531763
13831705
210601689
344111689
Stop Event
node limit
node limit
node limit
Compiler

Compiled 226 to 148 computations (34.5% saved)

end0.0ms (0%)

preprocess46.0ms (1.9%)

Compiler

Compiled 98 to 70 computations (28.6% saved)

Profiling

Loading profile data...