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

Time bar (total: 3.7s)

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)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
Operation ival-sub, time spent: 0.0ms, 0.0% of total-time
Operation ival-add, time spent: 0.0ms, 0.0% of total-time
Operation ival-mult, time spent: 0.0ms, 0.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

sample1.3s (35.2%)

Results
670.0ms5321×0valid
312.0ms1532×1valid
120.0ms1006×0infinite
111.0ms396×2valid
0.0ms0valid
0.0ms5exit
Precisions
Click to see histograms. Total time spent on operations: 556.0ms
Operation ival-sub, time spent: 293.0ms, 53.0% of total-time
Operation ival-add, time spent: 139.0ms, 25.0% of total-time
Operation ival-mult, time spent: 87.0ms, 16.0% of total-time
Operation const, time spent: 37.0ms, 7.0% of total-time
Bogosity

preprocess542.0ms (14.6%)

Algorithm
egg-herbie
Rules
1450×fma-neg
1138×unsub-neg
1042×sub-neg
864×distribute-lft-out
830×distribute-lft-out--
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
674(-3708.5989581001995 -8.583620698441298e-286)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
42707175
55011175
66069175
76595175
86843175
96993175
107082175
117202175
127543175
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)

Precisions
Click to see histograms. Total time spent on operations: 121.0ms
Operation ival-sub, time spent: 97.0ms, 80.0% of total-time
Operation ival-mult, time spent: 10.0ms, 8.0% of total-time
Operation ival-add, time spent: 9.0ms, 7.0% of total-time
Operation const, time spent: 5.0ms, 4.0% of total-time

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

localize268.0ms (7.2%)

Localize:

Found 1 expressions with local error:

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

Compiled 22 to 15 computations (31.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 238.0ms
Operation ival-add, time spent: 232.0ms, 97.0% of total-time
Operation ival-mult, time spent: 4.0ms, 2.0% of total-time
Operation const, time spent: 2.0ms, 1.0% of total-time

series7.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

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

rewrite543.0ms (14.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
110419
2141519
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))))
(log1p.f64 (expm1.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))
(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 (*.f64 y x)) (sqrt.f64 (*.f64 y x)) (neg.f64 y))
(fma.f64 (sqrt.f64 (neg.f64 y)) (sqrt.f64 (neg.f64 y)) (*.f64 y x))
(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))

simplify74.0ms (2%)

Algorithm
egg-herbie
Rules
1630×fma-neg
896×fma-define
550×cancel-sign-sub-inv
454×log-prod
436×distribute-lft-in
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01531763
13901705
210831689
344221689
Stop Event
node limit
Counts
77 → 69
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))))
(log1p.f64 (expm1.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))
(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 (*.f64 y x)) (sqrt.f64 (*.f64 y x)) (neg.f64 y))
(fma.f64 (sqrt.f64 (neg.f64 y)) (sqrt.f64 (neg.f64 y)) (*.f64 y x))
(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 (*.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 -1 (pow.f64 x 3)) (-.f64 (fma.f64 x x 1) (*.f64 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 -1 (pow.f64 x 3)) (-.f64 (fma.f64 x x 1) (*.f64 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))
(log1p.f64 (expm1.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))
(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 (*.f64 y x)) (sqrt.f64 (*.f64 y x)) (neg.f64 y))
(*.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 (*.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.5%)

Compiler

Compiled 861 to 544 computations (36.8% saved)

prune11.0ms (0.3%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New66369
Fresh000
Picked011
Done000
Total66470
Accuracy
100.0%
Counts
70 → 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)))
77.0%
(+.f64 1 (*.f64 y x))
62.6%
(+.f64 1 (neg.f64 y))
Compiler

Compiled 32 to 24 computations (25% saved)

localize62.0ms (1.7%)

Compiler

Compiled 44 to 15 computations (65.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 23.0ms
Operation ival-add, time spent: 17.0ms, 75.0% of total-time
Operation const, time spent: 2.0ms, 9.0% of total-time
Operation ival-mult, time spent: 2.0ms, 9.0% of total-time
Operation ival-neg, time spent: 2.0ms, 9.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune5.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)))
77.0%
(+.f64 1 (*.f64 y x))
62.6%
(+.f64 1 (neg.f64 y))
Compiler

Compiled 67 to 46 computations (31.3% saved)

regimes72.0ms (1.9%)

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:

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

regimes10.0ms (0.3%)

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:

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

Compiled 6 to 4 computations (33.3% saved)

regimes28.0ms (0.8%)

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
99.4%3x
84.9%5y
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes6.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
y
3.0ms
x
Results
AccuracySegmentsBranch
62.6%1y
62.6%1x
Compiler

Compiled 6 to 4 computations (33.3% saved)

bsearch48.0ms (1.3%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
28.0ms
2.69658410831291e-13
24326171559657.64
20.0ms
-487260663.536327
-4176443.5173593517
Results
40.0ms287×0valid
0.0ms0valid
Compiler

Compiled 286 to 228 computations (20.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
Operation ival-sub, time spent: 7.0ms, 44.0% of total-time
Operation ival-add, time spent: 5.0ms, 31.0% of total-time
Operation ival-mult, time spent: 2.0ms, 12.0% of total-time
Operation const, time spent: 1.0ms, 6.0% of total-time

simplify5.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
027123
149123
251123
352123
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 -4200000) (+.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 -4200000) (+.f64 1 (*.f64 y x)) (if (<=.f64 x 1) (+.f64 1 (neg.f64 y)) (+.f64 1 (*.f64 y x))))
(if (or (<=.f64 x -4200000) (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)

soundness662.0ms (17.8%)

Rules
1630×fma-neg
1630×fma-neg
1450×fma-neg
1138×unsub-neg
1042×sub-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025270
157222
2167218
3709218
42707175
55011175
66069175
76595175
86843175
96993175
107082175
117202175
127543175
01019
110419
2141519
01531763
13901705
210831689
344221689
01531763
13901705
210831689
344221689
Stop Event
node limit
node limit
node limit
node limit
Compiler

Compiled 261 to 171 computations (34.5% saved)

end0.0ms (0%)

preprocess52.0ms (1.4%)

Compiler

Compiled 112 to 76 computations (32.1% saved)

Profiling

Loading profile data...