Details

Time bar (total: 11.9s)

analyze66.0ms (0.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
25%74.9%0.1%5
37.5%62.4%0.1%6
50%48.4%1.7%7
59.3%38.2%2.4%8
67.1%27.7%5.2%9
72.6%21.3%6.1%10
76.9%14.7%8.4%11
79.8%11.2%9%12
Compiler

Compiled 10 to 6 computations (40% saved)

sample1.2s (10.2%)

Results
1.2s8253×body256valid
41.0ms318×body256invalid
0.0msbody512valid
0.0msbody1024valid

preprocess33.0ms (0.3%)

Algorithm
egg-herbie
Rules
247×fma-neg_binary64
165×fma-def_binary64
59×cancel-sign-sub-inv_binary64
36×associate--r+_binary64
35×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0920
12720
24620
38218
415216
528316
652916
778116
892316
994316
1094416
022
122
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(-.f64 (+.f64 x y) (*.f64 x y))
(-.f64 (+.f64 y x) (*.f64 y x))
Outputs
(-.f64 (+.f64 x y) (*.f64 x y))
(+.f64 x (-.f64 y (*.f64 x y)))
(fma.f64 x (neg.f64 y) (+.f64 x y))
(fma.f64 (fma.f64 x -1 1) y x)
(fma.f64 y (-.f64 1 x) x)
(-.f64 (+.f64 y x) (*.f64 y x))
(+.f64 x (-.f64 y (*.f64 x y)))
(fma.f64 x (neg.f64 y) (+.f64 x y))
(fma.f64 (fma.f64 x -1 1) y x)
(fma.f64 y (-.f64 1 x) x)
Symmetry

(sort x y)

Compiler

Compiled 11 to 7 computations (36.4% saved)

simplify20.0ms (0.2%)

Algorithm
egg-herbie
Rules
249×fma-neg_binary64
175×fma-def_binary64
55×cancel-sign-sub-inv_binary64
37×sub-neg_binary64
36×associate--r+_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0610
11510
23510
3699
41368
52658
65068
77618
89378
99668
109678
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(-.f64 (+.f64 x y) (*.f64 x y))
Outputs
(-.f64 (+.f64 x y) (*.f64 x y))
(+.f64 x (-.f64 y (*.f64 x y)))
(fma.f64 (fma.f64 x -1 1) y x)
(fma.f64 x (-.f64 1 y) y)

eval1.0ms (0%)

Compiler

Compiled 15 to 8 computations (46.7% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(fma.f64 x (-.f64 1 y) y)
0.0b
(-.f64 (+.f64 x y) (*.f64 x y))
Compiler

Compiled 17 to 10 computations (41.2% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (+.f64 x y) (*.f64 x y))
0.0b
(-.f64 (+.f64 x y) (*.f64 x y))
Compiler

Compiled 17 to 5 computations (70.6% saved)

series4.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite53.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
917×pow1_binary64
857×add-log-exp_binary64
857×log1p-expm1-u_binary64
857×expm1-log1p-u_binary64
840×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0610
114410
2232110
Stop Event
node limit
Counts
1 → 47
Calls
Call 1
Inputs
(-.f64 (+.f64 x y) (*.f64 x y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (-.f64 y (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 (-.f64 y (*.f64 x y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 y (-.f64 x (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 y (+.f64 x (*.f64 x (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x y) (*.f64 x (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x y) (*.f64 (*.f64 x (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (fma.f64 (neg.f64 y) x (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (fma.f64 (neg.f64 x) y (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (fma.f64 (*.f64 x (neg.f64 y)) 1 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 x y))) (sqrt.f64 (*.f64 x y)) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (neg.f64 y)) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 y (*.f64 x y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))) (pow.f64 (cbrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))) 2) (cbrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))) (sqrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (*.f64 x y) 3)) (/.f64 1 (+.f64 (pow.f64 (+.f64 x y) 2) (*.f64 (*.f64 x y) (+.f64 x (+.f64 y (*.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (+.f64 x y) 2) (pow.f64 (*.f64 x y) 2)) (/.f64 1 (+.f64 x (+.f64 y (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (+.f64 x y)) (sqrt.f64 (*.f64 x y))) (-.f64 (sqrt.f64 (+.f64 x y)) (sqrt.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (+.f64 x y) 2) (*.f64 (*.f64 x y) (+.f64 x (+.f64 y (*.f64 x y))))) (-.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (*.f64 x y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 x (+.f64 y (*.f64 x y))) (-.f64 (pow.f64 (+.f64 x y) 2) (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (*.f64 x y) 3)) (+.f64 (pow.f64 (+.f64 x y) 2) (*.f64 (*.f64 x y) (+.f64 x (+.f64 y (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 x y) 2) (pow.f64 (*.f64 x y) 2)) (+.f64 x (+.f64 y (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (*.f64 x y) 3))) (neg.f64 (+.f64 (pow.f64 (+.f64 x y) 2) (*.f64 (*.f64 x y) (+.f64 x (+.f64 y (*.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (+.f64 x y) 2) (pow.f64 (*.f64 x y) 2))) (neg.f64 (+.f64 x (+.f64 y (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (-.f64 y (*.f64 x y)) 3)) (+.f64 (*.f64 x x) (-.f64 (*.f64 (-.f64 y (*.f64 x y)) (-.f64 y (*.f64 x y))) (*.f64 x (-.f64 y (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (*.f64 x (neg.f64 y)) 3)) (+.f64 (pow.f64 (+.f64 x y) 2) (-.f64 (*.f64 (*.f64 x (neg.f64 y)) (*.f64 x (neg.f64 y))) (*.f64 (+.f64 x y) (*.f64 x (neg.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 (-.f64 y (*.f64 x y)) (-.f64 y (*.f64 x y)))) (-.f64 x (-.f64 y (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 x y) 2) (*.f64 (*.f64 x (neg.f64 y)) (*.f64 x (neg.f64 y)))) (-.f64 (+.f64 x y) (*.f64 x (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (-.f64 y (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 x y) (*.f64 x (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (-.f64 y (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (cbrt.f64 (+.f64 x y)) (*.f64 x (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (-.f64 y (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 x y)) (sqrt.f64 (+.f64 x y)) (*.f64 x (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (+.f64 x y) (*.f64 x y))))))))

simplify25.0ms (0.2%)

Algorithm
egg-herbie
Rules
260×fma-def_binary64
185×fma-neg_binary64
38×cancel-sign-sub-inv_binary64
33×distribute-rgt-in_binary64
33×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
019210
145174
286174
3166174
4243174
5349174
6523174
7793174
8923174
9961174
10965174
Stop Event
saturated
Counts
71 → 60
Calls
Call 1
Inputs
y
(+.f64 y (*.f64 (-.f64 1 y) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(*.f64 (-.f64 1 y) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(+.f64 y (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 y (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 y (*.f64 (+.f64 1 (*.f64 -1 y)) x))
x
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 (*.f64 y (-.f64 1 x)) x)
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 (*.f64 y (-.f64 1 x)) x)
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 x))) x)
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 x))) x)
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 x))) x)
Outputs
y
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 y (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(+.f64 y (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(+.f64 y (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
x
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(*.f64 y (-.f64 1 x))
(-.f64 y (*.f64 y x))
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (-.f64 1 x))
(-.f64 y (*.f64 y x))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 x))) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 x))) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 x))) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(fma.f64 (-.f64 1 y) x y)
(fma.f64 y (-.f64 1 x) x)

localize7.0ms (0.1%)

Compiler

Compiled 14 to 8 computations (42.9% saved)

eval12.0ms (0.1%)

Compiler

Compiled 809 to 244 computations (69.8% saved)

prune12.0ms (0.1%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New55560
Fresh000
Picked101
Done011
Total56662
Error
0b
Counts
62 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
33.1b
y
25.5b
(-.f64 y (*.f64 y x))
0.0b
(-.f64 (+.f64 x y) (*.f64 x y))
37.1b
x
0.5b
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (-.f64 y (*.f64 x y)))
29.4b
(*.f64 (-.f64 1 y) x)
Compiler

Compiled 43 to 26 computations (39.5% saved)

localize6.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 1 y) x)
0.0b
(*.f64 (-.f64 1 y) x)
Compiler

Compiled 13 to 8 computations (38.5% saved)

series3.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite72.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
617×pow1_binary64
572×add-log-exp_binary64
572×log1p-expm1-u_binary64
572×expm1-log1p-u_binary64
561×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11227
215097
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(*.f64 (-.f64 1 y) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 (neg.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (-.f64 1 y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 y 3)) x) (+.f64 1 (fma.f64 y y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 y y)) x) (+.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (pow.f64 y 3))) (+.f64 1 (fma.f64 y y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (*.f64 y y))) (+.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1 y) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 1 y) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 1 y) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 1 y) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (-.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 1 y) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 1 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 1 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 1 y) x)))))))

simplify15.0ms (0.1%)

Algorithm
egg-herbie
Rules
140×fma-def_binary64
84×fma-neg_binary64
20×cancel-sign-sub-inv_binary64
19×associate-*r*_binary64
19×associate-*l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0885
11476
23376
35176
47276
514676
627276
738176
846176
952576
Stop Event
saturated
Counts
29 → 23
Calls
Call 1
Inputs
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
Outputs
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(fma.f64 -1 (*.f64 x y) x)
(-.f64 x (*.f64 x y))
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(fma.f64 -1 (*.f64 x y) x)
(-.f64 x (*.f64 x y))
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(fma.f64 -1 (*.f64 x y) x)
(-.f64 x (*.f64 x y))
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 x y) x)
(-.f64 x (*.f64 x y))
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 x y) x)
(-.f64 x (*.f64 x y))
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 x y) x)
(-.f64 x (*.f64 x y))
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 x y) x)
(-.f64 x (*.f64 x y))
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 x y) x)
(-.f64 x (*.f64 x y))
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 x y) x)
(-.f64 x (*.f64 x y))
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))

localize14.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.6b
(cbrt.f64 x)
0.5b
(pow.f64 (cbrt.f64 x) 2)
0.1b
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (-.f64 y (*.f64 x y)))
0.1b
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (-.f64 y (*.f64 x y)))
0.5b
(pow.f64 (cbrt.f64 x) 2)
0.6b
(cbrt.f64 x)
Compiler

Compiled 31 to 11 computations (64.5% saved)

series9.0ms (0.1%)

Counts
3 → 18
Calls

12 calls:

TimeVariablePointExpression
1.0ms
y
@0
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (-.f64 y (*.f64 x y)))
1.0ms
x
@-inf
(cbrt.f64 x)
1.0ms
x
@-inf
(pow.f64 (cbrt.f64 x) 2)
1.0ms
x
@0
(cbrt.f64 x)
1.0ms
x
@0
(pow.f64 (cbrt.f64 x) 2)

rewrite52.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
948×pow1_binary64
883×add-log-exp_binary64
882×log1p-expm1-u_binary64
882×expm1-log1p-u_binary64
98×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
119619
2247519
Stop Event
node limit
Counts
3 → 61
Calls
Call 1
Inputs
(cbrt.f64 x)
(pow.f64 (cbrt.f64 x) 2)
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (-.f64 y (*.f64 x y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) (cbrt.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/6) (pow.f64 x 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 x (cbrt.f64 x)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 x) 1/3) (pow.f64 (sqrt.f64 x) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 x 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 x) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) (cbrt.f64 (*.f64 x (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) (*.f64 (cbrt.f64 (cbrt.f64 x)) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (cbrt.f64 x))) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (pow.f64 x 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/6) (*.f64 (pow.f64 x 1/6) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2)) (cbrt.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (cbrt.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 x) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (-.f64 y (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 y (*.f64 x y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x y) (*.f64 x (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (-.f64 (+.f64 x y) (*.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x y) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))) (pow.f64 (cbrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))) 2) (cbrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))) (sqrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (-.f64 y (*.f64 x y)) 3)) (+.f64 (*.f64 x x) (-.f64 (pow.f64 (-.f64 y (*.f64 x y)) 2) (*.f64 x (-.f64 y (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (-.f64 y (*.f64 x y)) 2)) (-.f64 x (-.f64 y (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (+.f64 x y) (*.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (+.f64 x y) (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (+.f64 x y) (*.f64 x y))))))))

simplify4.7s (39.8%)

Algorithm
egg-herbie
Rules
1764×sqr-pow_binary64
1763×pow-base-1_binary64
239×fma-def_binary64
199×fma-neg_binary64
34×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
018161
151121
284121
3146121
4249121
5413121
6706121
7913121
8976121
9983121
10988121
11992121
12996121
131000121
141004121
151008121
161012121
171016121
181020121
191024121
201028121
211032121
221036121
231040121
241044121
251048121
261052121
271056121
281060121
291064121
301068121
311072121
321076121
331080121
341084121
351088121
361092121
371096121
381100121
391104121
401108121
411112121
421116121
431120121
441124121
451128121
461132121
471136121
481140121
491144121
501148121
511152121
521156121
531160121
541164121
551168121
561172121
571176121
581180121
591184121
601188121
611192121
621196121
631200121
641204121
651208121
661212121
671216121
681220121
691224121
701228121
711232121
721236121
731240121
741244121
751248121
761252121
771256121
781260121
791264121
801268121
811272121
821276121
831280121
841284121
851288121
861292121
871296121
881300121
891304121
901308121
911312121
921316121
931320121
941324121
951328121
961332121
971336121
981340121
991344121
1001348121
1011352121
1021356121
1031360121
1041364121
1051368121
1061372121
1071376121
1081380121
1091384121
1101388121
1111392121
1121396121
1131400121
1141404121
1151408121
1161412121
1171416121
1181420121
1191424121
1201428121
1211432121
1221436121
1231440121
1241444121
1251448121
1261452121
1271456121
1281460121
1291464121
1301468121
1311472121
1321476121
1331480121
1341484121
1351488121
1361492121
1371496121
1381500121
1391504121
1401508121
1411512121
1421516121
1431520121
1441524121
1451528121
1461532121
1471536121
1481540121
1491544121
1501548121
1511552121
1521556121
1531560121
1541564121
1551568121
1561572121
1571576121
1581580121
1591584121
1601588121
1611592121
1621596121
1631600121
1641604121
1651608121
1661612121
1671616121
1681620121
1691624121
1701628121
1711632121
1721636121
1731640121
1741644121
1751648121
1761652121
1771656121
1781660121
1791664121
1801668121
1811672121
1821676121
1831680121
1841684121
1851688121
1861692121
1871696121
1881700121
1891704121
1901708121
1911712121
1921716121
1931720121
1941724121
1951728121
1961732121
1971736121
1981740121
1991744121
2001748121
2011752121
2021756121
2031760121
2041764121
2051768121
2061772121
2071776121
2081780121
2091784121
2101788121
2111792121
2121796121
2131800121
2141804121
2151808121
2161812121
2171816121
2181820121
2191824121
2201828121
2211832121
2221836121
2231840121
2241844121
2251848121
2261852121
2271856121
2281860121
2291864121
2301868121
2311872121
2321876121
2331880121
2341884121
2351888121
2361892121
2371896121
2381900121
2391904121
2401908121
2411912121
2421916121
2431920121
2441924121
2451928121
2461932121
2471936121
2481940121
2491944121
2501948121
2511952121
2521956121
2531960121
2541964121
2551968121
2561972121
2571976121
2581980121
2591984121
2601988121
2611992121
2621996121
2632000121
2642004121
2652008121
2662012121
2672016121
2682020121
2692024121
2702028121
2712032121
2722036121
2732040121
2742044121
2752048121
2762052121
2772056121
2782060121
2792064121
2802068121
2812072121
2822076121
2832080121
2842084121
2852088121
2862092121
2872096121
2882100121
2892104121
2902108121
2912112121
2922116121
2932120121
2942124121
2952128121
2962132121
2972136121
2982140121
2992144121
3002148121
3012152121
3022156121
3032160121
3042164121
3052168121
3062172121
3072176121
3082180121
3092184121
3102188121
3112192121
3122196121
3132200121
3142204121
3152208121
3162212121
3172216121
3182220121
3192224121
3202228121
3212232121
3222236121
3232240121
3242244121
3252248121
3262252121
3272256121
3282260121
3292264121
3302268121
3312272121
3322276121
3332280121
3342284121
3352288121
3362292121
3372296121
3382300121
3392304121
3402308121
3412312121
3422316121
3432320121
3442324121
3452328121
3462332121
3472336121
3482340121
3492344121
3502348121
3512352121
3522356121
3532360121
3542364121
3552368121
3562372121
3572376121
3582380121
3592384121
3602388121
3612392121
3622396121
3632400121
3642404121
3652408121
3662412121
3672416121
3682420121
3692424121
3702428121
3712432121
3722436121
3732440121
3742444121
3752448121
3762452121
3772456121
3782460121
3792464121
3802468121
3812472121
3822476121
3832480121
3842484121
3852488121
3862492121
3872496121
3882500121
3892504121
3902508121
3912512121
3922516121
3932520121
3942524121
3952528121
3962532121
3972536121
3982540121
3992544121
4002548121
4012552121
4022556121
4032560121
4042564121
4052568121
4062572121
4072576121
4082580121
4092584121
4102588121
4112592121
4122596121
4132600121
4142604121
4152608121
4162612121
4172616121
4182620121
4192624121
4202628121
4212632121
4222636121
4232640121
4242644121
4252648121
4262652121
4272656121
4282660121
4292664121
4302668121
4312672121
4322676121
4332680121
4342684121
4352688121
4362692121
4372696121
4382700121
4392704121
4402708121
4412712121
4422716121
4432720121
4442724121
4452728121
4462732121
4472736121
4482740121
4492744121
4502748121
4512752121
4522756121
4532760121
4542764121
4552768121
4562772121
4572776121
4582780121
4592784121
4602788121
4612792121
4622796121
4632800121
4642804121
4652808121
4662812121
4672816121
4682820121
4692824121
4702828121
4712832121
4722836121
4732840121
4742844121
4752848121
4762852121
4772856121
4782860121
4792864121
4802868121
4812872121
4822876121
4832880121
4842884121
4852888121
4862892121
4872896121
4882900121
4892904121
4902908121
4912912121
4922916121
4932920121
4942924121
4952928121
4962932121
4972936121
4982940121
4992944121
5002948121
5012952121
5022956121
5032960121
5042964121
5052968121
5062972121
5072976121
5082980121
5092984121
5102988121
5112992121
5122996121
5133000121
5143004121
5153008121
5163012121
5173016121
5183020121
5193024121
5203028121
5213032121
5223036121
5233040121
5243044121
5253048121
5263052121
5273056121
5283060121
5293064121
5303068121
5313072121
5323076121
5333080121
5343084121
5353088121
5363092121
5373096121
5383100121
5393104121
5403108121
5413112121
5423116121
5433120121
5443124121
5453128121
5463132121
5473136121
5483140121
5493144121
5503148121
5513152121
5523156121
5533160121
5543164121
5553168121
5563172121
5573176121
5583180121
5593184121
5603188121
5613192121
5623196121
5633200121
5643204121
5653208121
5663212121
5673216121
5683220121
5693224121
5703228121
5713232121
5723236121
5733240121
5743244121
5753248121
5763252121
5773256121
5783260121
5793264121
5803268121
5813272121
5823276121
5833280121
5843284121
5853288121
5863292121
5873296121
5883300121
5893304121
5903308121
5913312121
5923316121
5933320121
5943324121
5953328121
5963332121
5973336121
5983340121
5993344121
6003348121
6013352121
6023356121
6033360121
6043364121
6053368121
6063372121
6073376121
6083380121
6093384121
6103388121
6113392121
6123396121
6133400121
6143404121
6153408121
6163412121
6173416121
6183420121
6193424121
6203428121
6213432121
6223436121
6233440121
6243444121
6253448121
6263452121
6273456121
6283460121
6293464121
6303468121
6313472121
6323476121
6333480121
6343484121
6353488121
6363492121
6373496121
6383500121
6393504121
6403508121
6413512121
6423516121
6433520121
6443524121
6453528121
6463532121
6473536121
6483540121
6493544121
6503548121
6513552121
6523556121
6533560121
6543564121
6553568121
6563572121
6573576121
6583580121
6593584121
6603588121
6613592121
6623596121
6633600121
6643604121
6653608121
6663612121
6673616121
6683620121
6693624121
6703628121
6713632121
6723636121
6733640121
6743644121
6753648121
6763652121
6773656121
6783660121
6793664121
6803668121
6813672121
6823676121
6833680121
6843684121
6853688121
6863692121
6873696121
6883700121
6893704121
6903708121
6913712121
6923716121
6933720121
6943724121
6953728121
6963732121
6973736121
6983740121
6993744121
7003748121
7013752121
7023756121
7033760121
7043764121
7053768121
7063772121
7073776121
7083780121
7093784121
7103788121
7113792121
7123796121
7133800121
7143804121
7153808121
7163812121
7173816121
7183820121
7193824121
7203828121
7213832121
7223836121
7233840121
7243844121
7253848121
7263852121
7273856121
7283860121
7293864121
7303868121
7313872121
7323876121
7333880121
7343884121
7353888121
7363892121
7373896121
7383900121
7393904121
7403908121
7413912121
7423916121
7433920121
7443924121
7453928121
7463932121
7473936121
7483940121
7493944121
7503948121
7513952121
7523956121
7533960121
7543964121
7553968121
7563972121
7573976121
7583980121
7593984121
7603988121
7613992121
7623996121
7634000121
7644004121
7654008121
7664012121
7674016121
7684020121
7694024121
7704028121
7714032121
7724036121
7734040121
7744044121
7754048121
7764052121
7774056121
7784060121
7794064121
7804068121
7814072121
7824076121
7834080121
7844084121
7854088121
7864092121
7874096121
7884100121
7894104121
7904108121
7914112121
7924116121
7934120121
7944124121
7954128121
7964132121
7974136121
7984140121
7994144121
8004148121
8014152121
8024156121
8034160121
8044164121
8054168121
8064172121
8074176121
8084180121
8094184121
8104188121
8114192121
8124196121
8134200121
8144204121
8154208121
8164212121
8174216121
8184220121
8194224121
8204228121
8214232121
8224236121
8234240121
8244244121
8254248121
8264252121
8274256121
8284260121
8294264121
8304268121
8314272121
8324276121
8334280121
8344284121
8354288121
8364292121
8374296121
8384300121
8394304121
8404308121
8414312121
8424316121
8434320121
8444324121
8454328121
8464332121
8474336121
8484340121
8494344121
8504348121
8514352121
8524356121
8534360121
8544364121
8554368121
8564372121
8574376121
8584380121
8594384121
8604388121
8614392121
8624396121
8634400121
8644404121
8654408121
8664412121
8674416121
8684420121
8694424121
8704428121
8714432121
8724436121
8734440121
8744444121
8754448121
8764452121
8774456121
8784460121
8794464121
8804468121
8814472121
8824476121
8834480121
8844484121
8854488121
8864492121
8874496121
8884500121
8894504121
8904508121
8914512121
8924516121
8934520121
8944524121
8954528121
8964532121
8974536121
8984540121
8994544121
9004548121
9014552121
9024556121
9034560121
9044564121
9054568121
9064572121
9074576121
9084580121
9094584121
9104588121
9114592121
9124596121
9134600121
9144604121
9154608121
9164612121
9174616121
9184620121
9194624121
9204628121
9214632121
9224636121
9234640121
9244644121
9254648121
9264652121
9274656121
9284660121
9294664121
9304668121
9314672121
9324676121
9334680121
9344684121
9354688121
9364692121
9374696121
9384700121
9394704121
9404708121
9414712121
9424716121
9434720121
9444724121
9454728121
9464732121
9474736121
9484740121
9494744121
9504748121
9514752121
9524756121
9534760121
9544764121
9554768121
9564772121
9574776121
9584780121
9594784121
9604788121
9614792121
9624796121
9634800121
9644804121
9654808121
9664812121
9674816121
9684820121
9694824121
9704828121
9714832121
9724836121
9734840121
9744844121
9754848121
9764852121
9774856121
9784860121
9794864121
9804868121
9814872121
9824876121
9834880121
9844884121
9854888121
9864892121
9874896121
9884900121
9894904121
9904908121
9914912121
9924916121
9934920121
9944924121
9954928121
9964932121
9974936121
9984940121
9994944121
10004948121
10014952121
10024956121
10034960121
10044964121
10054968121
10064972121
10074976121
10084980121
10094984121
10104988121
10114992121
10124996121
10135000121
10145004121
10155008121
10165012121
10175016121
10185020121
10195024121
10205028121
10215032121
10225036121
10235040121
10245044121
10255048121
10265052121
10275056121
10285060121
10295064121
10305068121
10315072121
10325076121
10335080121
10345084121
10355088121
10365092121
10375096121
10385100121
10395104121
10405108121
10415112121
10425116121
10435120121
10445124121
10455128121
10465132121
10475136121
10485140121
10495144121
10505148121
10515152121
10525156121
10535160121
10545164121
10555168121
10565172121
10575176121
10585180121
10595184121
10605188121
10615192121
10625196121
10635200121
10645204121
10655208121
10665212121
10675216121
10685220121
10695224121
10705228121
10715232121
10725236121
10735240121
10745244121
10755248121
10765252121
10775256121
10785260121
10795264121
10805268121
10815272121
10825276121
10835280121
10845284121
10855288121
10865292121
10875296121
10885300121
10895304121
10905308121
10915312121
10925316121
10935320121
10945324121
10955328121
10965332121
10975336121
10985340121
10995344121
11005348121
11015352121
11025356121
11035360121
11045364121
11055368121
11065372121
11075376121
11085380121
11095384121
11105388121
11115392121
11125396121
11135400121
11145404121
11155408121
11165412121
11175416121
11185420121
11195424121
11205428121
11215432121
11225436121
11235440121
11245444121
11255448121
11265452121
11275456121
11285460121
11295464121
11305468121
11315472121
11325476121
11335480121
11345484121
11355488121
11365492121
11375496121
11385500121
11395504121
11405508121
11415512121
11425516121
11435520121
11445524121
11455528121
11465532121
11475536121
11485540121
11495544121
11505548121
11515552121
11525556121
11535560121
11545564121
11555568121
11565572121
11575576121
11585580121
11595584121
11605588121
11615592121
11625596121
11635600121
11645604121
11655608121
11665612121
11675616121
11685620121
11695624121
11705628121
11715632121
11725636121
11735640121
11745644121
11755648121
11765652121
11775656121
11785660121
11795664121
11805668121
11815672121
11825676121
11835680121
11845684121
11855688121
11865692121
11875696121
11885700121
11895704121
11905708121
11915712121
11925716121
11935720121
11945724121
11955728121
11965732121
11975736121
11985740121
11995744121
12005748121
12015752121
12025756121
12035760121
12045764121
12055768121
12065772121
12075776121
12085780121
12095784121
12105788121
12115792121
12125796121
12135800121
12145804121
12155808121
12165812121
12175816121
12185820121
12195824121
12205828121
12215832121
12225836121
12235840121
12245844121
12255848121
12265852121
12275856121
12285860121
12295864121
12305868121
12315872121
12325876121
12335880121
12345884121
12355888121
12365892121
12375896121
12385900121
12395904121
12405908121
12415912121
12425916121
12435920121
12445924121
12455928121
12465932121
12475936121
12485940121
12495944121
12505948121
12515952121
12525956121
12535960121
12545964121
12555968121
12565972121
12575976121
12585980121
12595984121
12605988121
12615992121
12625996121
12636000121
12646004121
12656008121
12666012121
12676016121
12686020121
12696024121
12706028121
12716032121
12726036121
12736040121
12746044121
12756048121
12766052121
12776056121
12786060121
12796064121
12806068121
12816072121
12826076121
12836080121
12846084121
12856088121
12866092121
12876096121
12886100121
12896104121
12906108121
12916112121
12926116121
12936120121
12946124121
12956128121
12966132121
12976136121
12986140121
12996144121
13006148121
13016152121
13026156121
13036160121
13046164121
13056168121
13066172121
13076176121
13086180121
13096184121
13106188121
13116192121
13126196121
13136200121
13146204121
13156208121
13166212121
13176216121
13186220121
13196224121
13206228121
13216232121
13226236121
13236240121
13246244121
13256248121
13266252121
13276256121
13286260121
13296264121
13306268121
13316272121
13326276121
13336280121
13346284121
13356288121
13366292121
13376296121
13386300121
13396304121
13406308121
13416312121
13426316121
13436320121
13446324121
13456328121
13466332121
13476336121
13486340121
13496344121
13506348121
13516352121
13526356121
13536360121
13546364121
13556368121
13566372121
13576376121
13586380121
13596384121
13606388121
13616392121
13626396121
13636400121
13646404121
13656408121
13666412121
13676416121
13686420121
13696424121
13706428121
13716432121
13726436121
13736440121
13746444121
13756448121
13766452121
13776456121
13786460121
13796464121
13806468121
13816472121
13826476121
13836480121
13846484121
13856488121
13866492121
13876496121
13886500121
13896504121
13906508121
13916512121
13926516121
13936520121
13946524121
13956528121
13966532121
13976536121
13986540121
13996544121
14006548121
14016552121
14026556121
14036560121
14046564121
14056568121
14066572121
14076576121
14086580121
14096584121
14106588121
14116592121
14126596121
14136600121
14146604121
14156608121
14166612121
14176616121
14186620121
14196624121
14206628121
14216632121
14226636121
14236640121
14246644121
14256648121
14266652121
14276656121
14286660121
14296664121
14306668121
14316672121
14326676121
14336680121
14346684121
14356688121
14366692121
14376696121
14386700121
14396704121
14406708121
14416712121
14426716121
14436720121
14446724121
14456728121
14466732121
14476736121
14486740121
14496744121
14506748121
14516752121
14526756121
14536760121
14546764121
14556768121
14566772121
14576776121
14586780121
14596784121
14606788121
14616792121
14626796121
14636800121
14646804121
14656808121
14666812121
14676816121
14686820121
14696824121
14706828121
14716832121
14726836121
14736840121
14746844121
14756848121
14766852121
14776856121
14786860121
14796864121
14806868121
14816872121
14826876121
14836880121
14846884121
14856888121
14866892121
14876896121
14886900121
14896904121
14906908121
14916912121
14926916121
14936920121
14946924121
14956928121
14966932121
14976936121
14986940121
14996944121
15006948121
15016952121
15026956121
15036960121
15046964121
15056968121
15066972121
15076976121
15086980121
15096984121
15106988121
15116992121
15126996121
15137000121
15147004121
15157008121
15167012121
15177016121
15187020121
15197024121
15207028121
15217032121
15227036121
15237040121
15247044121
15257048121
15267052121
15277056121
15287060121
15297064121
15307068121
15317072121
15327076121
15337080121
15347084121
15357088121
15367092121
15377096121
15387100121
15397104121
15407108121
15417112121
15427116121
15437120121
15447124121
15457128121
15467132121
15477136121
15487140121
15497144121
15507148121
15517152121
15527156121
15537160121
15547164121
15557168121
15567172121
15577176121
15587180121
15597184121
15607188121
15617192121
15627196121
15637200121
15647204121
15657208121
15667212121
15677216121
15687220121
15697224121
15707228121
15717232121
15727236121
15737240121
15747244121
15757248121
15767252121
15777256121
15787260121
15797264121
15807268121
15817272121
15827276121
15837280121
15847284121
15857288121
15867292121
15877296121
15887300121
15897304121
15907308121
15917312121
15927316121
15937320121
15947324121
15957328121
15967332121
15977336121
15987340121
15997344121
16007348121
16017352121
16027356121
16037360121
16047364121
16057368121
16067372121
16077376121
16087380121
16097384121
16107388121
16117392121
16127396121
16137400121
16147404121
16157408121
16167412121
16177416121
16187420121
16197424121
16207428121
16217432121
16227436121
16237440121
16247444121
16257448121
16267452121
16277456121
16287460121
16297464121
16307468121
16317472121
16327476121
16337480121
16347484121
16357488121
16367492121
16377496121
16387500121
16397504121
16407508121
16417512121
16427516121
16437520121
16447524121
16457528121
16467532121
16477536121
16487540121
16497544121
16507548121
16517552121
16527556121
16537560121
16547564121
16557568121
16567572121
16577576121
16587580121
16597584121
16607588121
16617592121
16627596121
16637600121
16647604121
16657608121
16667612121
16677616121
16687620121
16697624121
16707628121
16717632121
16727636121
16737640121
16747644121
16757648121
16767652121
16777656121
16787660121
16797664121
16807668121
16817672121
16827676121
16837680121
16847684121
16857688121
16867692121
16877696121
16887700121
16897704121
16907708121
16917712121
16927716121
16937720121
16947724121
16957728121
16967732121
16977736121
16987740121
16997744121
17007748121
17017752121
17027756121
17037760121
17047764121
17057768121
17067772121
17077776121
17087780121
17097784121
17107788121
17117792121
17127796121
17137800121
17147804121
17157808121
17167812121
17177816121
17187820121
17197824121
17207828121
17217832121
17227836121
17237840121
17247844121
17257848121
17267852121
17277856121
17287860121
17297864121
17307868121
17317872121
17327876121
17337880121
17347884121
17357888121
17367892121
17377896121
17387900121
17397904121
17407908121
17417912121
17427916121
17437920121
17447924121
17457928121
17467932121
17477936121
17487940121
17497944121
17507948121
17517952121
17527956121
17537960121
17547964121
17557968121
17567972121
17577976121
17587980121
17597984121
17607988121
17617992121
17627996121
17638000121
Stop Event
node limit
Counts
79 → 73
Calls
Call 1
Inputs
y
(+.f64 y (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(*.f64 (pow.f64 1 1/3) x)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (+.f64 1 (*.f64 -1 x))))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (+.f64 1 (*.f64 -1 x))))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (+.f64 1 (*.f64 -1 x))))
Outputs
y
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (neg.f64 (*.f64 y x)))
(-.f64 y (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (neg.f64 (*.f64 y x)))
(-.f64 y (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (neg.f64 (*.f64 y x)))
(-.f64 y (*.f64 y x))
(*.f64 (pow.f64 1 1/3) x)
(*.f64 x 1)
x
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(*.f64 y (-.f64 1 x))
(+.f64 y (neg.f64 (*.f64 y x)))
(-.f64 y (*.f64 y x))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(+.f64 y (neg.f64 (*.f64 y x)))
(-.f64 y (*.f64 y x))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (+.f64 1 (*.f64 -1 x))))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (+.f64 1 (*.f64 -1 x))))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (+.f64 1 (*.f64 -1 x))))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)

localize5.0ms (0%)

Compiler

Compiled 12 to 4 computations (66.7% saved)

eval30.0ms (0.3%)

Compiler

Compiled 1442 to 539 computations (62.6% saved)

prune19.0ms (0.2%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New1143117
Fresh112
Picked011
Done123
Total1167123
Error
0b
Counts
123 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
54.6b
(*.f64 x (neg.f64 y))
25.5b
(-.f64 y (*.f64 y x))
12.9b
(fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (-.f64 y (*.f64 x y)))
37.1b
x
33.1b
y
0.0b
(-.f64 (+.f64 x y) (*.f64 x y))
29.4b
(*.f64 (-.f64 1 y) x)
Compiler

Compiled 49 to 30 computations (38.8% saved)

localize15.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
28.9b
(cbrt.f64 (*.f64 x x))
0.6b
(cbrt.f64 x)
0.1b
(fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (-.f64 y (*.f64 x y)))
0.1b
(fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (-.f64 y (*.f64 x y)))
0.6b
(cbrt.f64 x)
28.9b
(cbrt.f64 (*.f64 x x))
Compiler

Compiled 33 to 8 computations (75.8% saved)

series5.0ms (0%)

Counts
2 → 18
Calls

9 calls:

TimeVariablePointExpression
1.0ms
y
@0
(fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (-.f64 y (*.f64 x y)))
1.0ms
x
@-inf
(fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (-.f64 y (*.f64 x y)))
1.0ms
x
@0
(cbrt.f64 (*.f64 x x))
0.0ms
x
@-inf
(cbrt.f64 (*.f64 x x))
0.0ms
x
@inf
(cbrt.f64 (*.f64 x x))

rewrite64.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
940×pow1_binary64
874×add-log-exp_binary64
874×log1p-expm1-u_binary64
874×expm1-log1p-u_binary64
851×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0916
119016
2245916
Stop Event
node limit
Counts
2 → 44
Calls
Call 1
Inputs
(cbrt.f64 (*.f64 x x))
(fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (-.f64 y (*.f64 x y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 x x))) (cbrt.f64 (*.f64 x (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 x x))) (*.f64 (cbrt.f64 (cbrt.f64 x)) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (cbrt.f64 x))) (cbrt.f64 (cbrt.f64 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/6) (*.f64 (pow.f64 x 1/6) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (pow.f64 x 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 (cbrt.f64 (*.f64 x x)))) (cbrt.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 x 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x x) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 x x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (-.f64 y (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 y (*.f64 x y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x y) (*.f64 y (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 x (-.f64 y (*.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x y) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (-.f64 y (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (-.f64 y (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 x (-.f64 y (*.f64 x y)))) (pow.f64 (cbrt.f64 (+.f64 x (-.f64 y (*.f64 x y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x (-.f64 y (*.f64 x y)))) 2) (cbrt.f64 (+.f64 x (-.f64 y (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x (-.f64 y (*.f64 x y)))) (sqrt.f64 (+.f64 x (-.f64 y (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (-.f64 y (*.f64 x y)) 3)) (+.f64 (*.f64 x x) (-.f64 (pow.f64 (-.f64 y (*.f64 x y)) 2) (*.f64 x (-.f64 y (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (-.f64 y (*.f64 x y)) 2)) (-.f64 x (-.f64 y (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (-.f64 y (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x (-.f64 y (*.f64 x y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 x (-.f64 y (*.f64 x y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 x (-.f64 y (*.f64 x y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 x (-.f64 y (*.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 x (-.f64 y (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 x (-.f64 y (*.f64 x y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 x (-.f64 y (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 x (-.f64 y (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 x (-.f64 y (*.f64 x y)))))))))

simplify4.7s (39.4%)

Algorithm
egg-herbie
Rules
1764×sqr-pow_binary64
1763×pow-base-1_binary64
239×fma-def_binary64
199×fma-neg_binary64
34×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
018161
151121
284121
3146121
4249121
5413121
6706121
7913121
8976121
9983121
10988121
11992121
12996121
131000121
141004121
151008121
161012121
171016121
181020121
191024121
201028121
211032121
221036121
231040121
241044121
251048121
261052121
271056121
281060121
291064121
301068121
311072121
321076121
331080121
341084121
351088121
361092121
371096121
381100121
391104121
401108121
411112121
421116121
431120121
441124121
451128121
461132121
471136121
481140121
491144121
501148121
511152121
521156121
531160121
541164121
551168121
561172121
571176121
581180121
591184121
601188121
611192121
621196121
631200121
641204121
651208121
661212121
671216121
681220121
691224121
701228121
711232121
721236121
731240121
741244121
751248121
761252121
771256121
781260121
791264121
801268121
811272121
821276121
831280121
841284121
851288121
861292121
871296121
881300121
891304121
901308121
911312121
921316121
931320121
941324121
951328121
961332121
971336121
981340121
991344121
1001348121
1011352121
1021356121
1031360121
1041364121
1051368121
1061372121
1071376121
1081380121
1091384121
1101388121
1111392121
1121396121
1131400121
1141404121
1151408121
1161412121
1171416121
1181420121
1191424121
1201428121
1211432121
1221436121
1231440121
1241444121
1251448121
1261452121
1271456121
1281460121
1291464121
1301468121
1311472121
1321476121
1331480121
1341484121
1351488121
1361492121
1371496121
1381500121
1391504121
1401508121
1411512121
1421516121
1431520121
1441524121
1451528121
1461532121
1471536121
1481540121
1491544121
1501548121
1511552121
1521556121
1531560121
1541564121
1551568121
1561572121
1571576121
1581580121
1591584121
1601588121
1611592121
1621596121
1631600121
1641604121
1651608121
1661612121
1671616121
1681620121
1691624121
1701628121
1711632121
1721636121
1731640121
1741644121
1751648121
1761652121
1771656121
1781660121
1791664121
1801668121
1811672121
1821676121
1831680121
1841684121
1851688121
1861692121
1871696121
1881700121
1891704121
1901708121
1911712121
1921716121
1931720121
1941724121
1951728121
1961732121
1971736121
1981740121
1991744121
2001748121
2011752121
2021756121
2031760121
2041764121
2051768121
2061772121
2071776121
2081780121
2091784121
2101788121
2111792121
2121796121
2131800121
2141804121
2151808121
2161812121
2171816121
2181820121
2191824121
2201828121
2211832121
2221836121
2231840121
2241844121
2251848121
2261852121
2271856121
2281860121
2291864121
2301868121
2311872121
2321876121
2331880121
2341884121
2351888121
2361892121
2371896121
2381900121
2391904121
2401908121
2411912121
2421916121
2431920121
2441924121
2451928121
2461932121
2471936121
2481940121
2491944121
2501948121
2511952121
2521956121
2531960121
2541964121
2551968121
2561972121
2571976121
2581980121
2591984121
2601988121
2611992121
2621996121
2632000121
2642004121
2652008121
2662012121
2672016121
2682020121
2692024121
2702028121
2712032121
2722036121
2732040121
2742044121
2752048121
2762052121
2772056121
2782060121
2792064121
2802068121
2812072121
2822076121
2832080121
2842084121
2852088121
2862092121
2872096121
2882100121
2892104121
2902108121
2912112121
2922116121
2932120121
2942124121
2952128121
2962132121
2972136121
2982140121
2992144121
3002148121
3012152121
3022156121
3032160121
3042164121
3052168121
3062172121
3072176121
3082180121
3092184121
3102188121
3112192121
3122196121
3132200121
3142204121
3152208121
3162212121
3172216121
3182220121
3192224121
3202228121
3212232121
3222236121
3232240121
3242244121
3252248121
3262252121
3272256121
3282260121
3292264121
3302268121
3312272121
3322276121
3332280121
3342284121
3352288121
3362292121
3372296121
3382300121
3392304121
3402308121
3412312121
3422316121
3432320121
3442324121
3452328121
3462332121
3472336121
3482340121
3492344121
3502348121
3512352121
3522356121
3532360121
3542364121
3552368121
3562372121
3572376121
3582380121
3592384121
3602388121
3612392121
3622396121
3632400121
3642404121
3652408121
3662412121
3672416121
3682420121
3692424121
3702428121
3712432121
3722436121
3732440121
3742444121
3752448121
3762452121
3772456121
3782460121
3792464121
3802468121
3812472121
3822476121
3832480121
3842484121
3852488121
3862492121
3872496121
3882500121
3892504121
3902508121
3912512121
3922516121
3932520121
3942524121
3952528121
3962532121
3972536121
3982540121
3992544121
4002548121
4012552121
4022556121
4032560121
4042564121
4052568121
4062572121
4072576121
4082580121
4092584121
4102588121
4112592121
4122596121
4132600121
4142604121
4152608121
4162612121
4172616121
4182620121
4192624121
4202628121
4212632121
4222636121
4232640121
4242644121
4252648121
4262652121
4272656121
4282660121
4292664121
4302668121
4312672121
4322676121
4332680121
4342684121
4352688121
4362692121
4372696121
4382700121
4392704121
4402708121
4412712121
4422716121
4432720121
4442724121
4452728121
4462732121
4472736121
4482740121
4492744121
4502748121
4512752121
4522756121
4532760121
4542764121
4552768121
4562772121
4572776121
4582780121
4592784121
4602788121
4612792121
4622796121
4632800121
4642804121
4652808121
4662812121
4672816121
4682820121
4692824121
4702828121
4712832121
4722836121
4732840121
4742844121
4752848121
4762852121
4772856121
4782860121
4792864121
4802868121
4812872121
4822876121
4832880121
4842884121
4852888121
4862892121
4872896121
4882900121
4892904121
4902908121
4912912121
4922916121
4932920121
4942924121
4952928121
4962932121
4972936121
4982940121
4992944121
5002948121
5012952121
5022956121
5032960121
5042964121
5052968121
5062972121
5072976121
5082980121
5092984121
5102988121
5112992121
5122996121
5133000121
5143004121
5153008121
5163012121
5173016121
5183020121
5193024121
5203028121
5213032121
5223036121
5233040121
5243044121
5253048121
5263052121
5273056121
5283060121
5293064121
5303068121
5313072121
5323076121
5333080121
5343084121
5353088121
5363092121
5373096121
5383100121
5393104121
5403108121
5413112121
5423116121
5433120121
5443124121
5453128121
5463132121
5473136121
5483140121
5493144121
5503148121
5513152121
5523156121
5533160121
5543164121
5553168121
5563172121
5573176121
5583180121
5593184121
5603188121
5613192121
5623196121
5633200121
5643204121
5653208121
5663212121
5673216121
5683220121
5693224121
5703228121
5713232121
5723236121
5733240121
5743244121
5753248121
5763252121
5773256121
5783260121
5793264121
5803268121
5813272121
5823276121
5833280121
5843284121
5853288121
5863292121
5873296121
5883300121
5893304121
5903308121
5913312121
5923316121
5933320121
5943324121
5953328121
5963332121
5973336121
5983340121
5993344121
6003348121
6013352121
6023356121
6033360121
6043364121
6053368121
6063372121
6073376121
6083380121
6093384121
6103388121
6113392121
6123396121
6133400121
6143404121
6153408121
6163412121
6173416121
6183420121
6193424121
6203428121
6213432121
6223436121
6233440121
6243444121
6253448121
6263452121
6273456121
6283460121
6293464121
6303468121
6313472121
6323476121
6333480121
6343484121
6353488121
6363492121
6373496121
6383500121
6393504121
6403508121
6413512121
6423516121
6433520121
6443524121
6453528121
6463532121
6473536121
6483540121
6493544121
6503548121
6513552121
6523556121
6533560121
6543564121
6553568121
6563572121
6573576121
6583580121
6593584121
6603588121
6613592121
6623596121
6633600121
6643604121
6653608121
6663612121
6673616121
6683620121
6693624121
6703628121
6713632121
6723636121
6733640121
6743644121
6753648121
6763652121
6773656121
6783660121
6793664121
6803668121
6813672121
6823676121
6833680121
6843684121
6853688121
6863692121
6873696121
6883700121
6893704121
6903708121
6913712121
6923716121
6933720121
6943724121
6953728121
6963732121
6973736121
6983740121
6993744121
7003748121
7013752121
7023756121
7033760121
7043764121
7053768121
7063772121
7073776121
7083780121
7093784121
7103788121
7113792121
7123796121
7133800121
7143804121
7153808121
7163812121
7173816121
7183820121
7193824121
7203828121
7213832121
7223836121
7233840121
7243844121
7253848121
7263852121
7273856121
7283860121
7293864121
7303868121
7313872121
7323876121
7333880121
7343884121
7353888121
7363892121
7373896121
7383900121
7393904121
7403908121
7413912121
7423916121
7433920121
7443924121
7453928121
7463932121
7473936121
7483940121
7493944121
7503948121
7513952121
7523956121
7533960121
7543964121
7553968121
7563972121
7573976121
7583980121
7593984121
7603988121
7613992121
7623996121
7634000121
7644004121
7654008121
7664012121
7674016121
7684020121
7694024121
7704028121
7714032121
7724036121
7734040121
7744044121
7754048121
7764052121
7774056121
7784060121
7794064121
7804068121
7814072121
7824076121
7834080121
7844084121
7854088121
7864092121
7874096121
7884100121
7894104121
7904108121
7914112121
7924116121
7934120121
7944124121
7954128121
7964132121
7974136121
7984140121
7994144121
8004148121
8014152121
8024156121
8034160121
8044164121
8054168121
8064172121
8074176121
8084180121
8094184121
8104188121
8114192121
8124196121
8134200121
8144204121
8154208121
8164212121
8174216121
8184220121
8194224121
8204228121
8214232121
8224236121
8234240121
8244244121
8254248121
8264252121
8274256121
8284260121
8294264121
8304268121
8314272121
8324276121
8334280121
8344284121
8354288121
8364292121
8374296121
8384300121
8394304121
8404308121
8414312121
8424316121
8434320121
8444324121
8454328121
8464332121
8474336121
8484340121
8494344121
8504348121
8514352121
8524356121
8534360121
8544364121
8554368121
8564372121
8574376121
8584380121
8594384121
8604388121
8614392121
8624396121
8634400121
8644404121
8654408121
8664412121
8674416121
8684420121
8694424121
8704428121
8714432121
8724436121
8734440121
8744444121
8754448121
8764452121
8774456121
8784460121
8794464121
8804468121
8814472121
8824476121
8834480121
8844484121
8854488121
8864492121
8874496121
8884500121
8894504121
8904508121
8914512121
8924516121
8934520121
8944524121
8954528121
8964532121
8974536121
8984540121
8994544121
9004548121
9014552121
9024556121
9034560121
9044564121
9054568121
9064572121
9074576121
9084580121
9094584121
9104588121
9114592121
9124596121
9134600121
9144604121
9154608121
9164612121
9174616121
9184620121
9194624121
9204628121
9214632121
9224636121
9234640121
9244644121
9254648121
9264652121
9274656121
9284660121
9294664121
9304668121
9314672121
9324676121
9334680121
9344684121
9354688121
9364692121
9374696121
9384700121
9394704121
9404708121
9414712121
9424716121
9434720121
9444724121
9454728121
9464732121
9474736121
9484740121
9494744121
9504748121
9514752121
9524756121
9534760121
9544764121
9554768121
9564772121
9574776121
9584780121
9594784121
9604788121
9614792121
9624796121
9634800121
9644804121
9654808121
9664812121
9674816121
9684820121
9694824121
9704828121
9714832121
9724836121
9734840121
9744844121
9754848121
9764852121
9774856121
9784860121
9794864121
9804868121
9814872121
9824876121
9834880121
9844884121
9854888121
9864892121
9874896121
9884900121
9894904121
9904908121
9914912121
9924916121
9934920121
9944924121
9954928121
9964932121
9974936121
9984940121
9994944121
10004948121
10014952121
10024956121
10034960121
10044964121
10054968121
10064972121
10074976121
10084980121
10094984121
10104988121
10114992121
10124996121
10135000121
10145004121
10155008121
10165012121
10175016121
10185020121
10195024121
10205028121
10215032121
10225036121
10235040121
10245044121
10255048121
10265052121
10275056121
10285060121
10295064121
10305068121
10315072121
10325076121
10335080121
10345084121
10355088121
10365092121
10375096121
10385100121
10395104121
10405108121
10415112121
10425116121
10435120121
10445124121
10455128121
10465132121
10475136121
10485140121
10495144121
10505148121
10515152121
10525156121
10535160121
10545164121
10555168121
10565172121
10575176121
10585180121
10595184121
10605188121
10615192121
10625196121
10635200121
10645204121
10655208121
10665212121
10675216121
10685220121
10695224121
10705228121
10715232121
10725236121
10735240121
10745244121
10755248121
10765252121
10775256121
10785260121
10795264121
10805268121
10815272121
10825276121
10835280121
10845284121
10855288121
10865292121
10875296121
10885300121
10895304121
10905308121
10915312121
10925316121
10935320121
10945324121
10955328121
10965332121
10975336121
10985340121
10995344121
11005348121
11015352121
11025356121
11035360121
11045364121
11055368121
11065372121
11075376121
11085380121
11095384121
11105388121
11115392121
11125396121
11135400121
11145404121
11155408121
11165412121
11175416121
11185420121
11195424121
11205428121
11215432121
11225436121
11235440121
11245444121
11255448121
11265452121
11275456121
11285460121
11295464121
11305468121
11315472121
11325476121
11335480121
11345484121
11355488121
11365492121
11375496121
11385500121
11395504121
11405508121
11415512121
11425516121
11435520121
11445524121
11455528121
11465532121
11475536121
11485540121
11495544121
11505548121
11515552121
11525556121
11535560121
11545564121
11555568121
11565572121
11575576121
11585580121
11595584121
11605588121
11615592121
11625596121
11635600121
11645604121
11655608121
11665612121
11675616121
11685620121
11695624121
11705628121
11715632121
11725636121
11735640121
11745644121
11755648121
11765652121
11775656121
11785660121
11795664121
11805668121
11815672121
11825676121
11835680121
11845684121
11855688121
11865692121
11875696121
11885700121
11895704121
11905708121
11915712121
11925716121
11935720121
11945724121
11955728121
11965732121
11975736121
11985740121
11995744121
12005748121
12015752121
12025756121
12035760121
12045764121
12055768121
12065772121
12075776121
12085780121
12095784121
12105788121
12115792121
12125796121
12135800121
12145804121
12155808121
12165812121
12175816121
12185820121
12195824121
12205828121
12215832121
12225836121
12235840121
12245844121
12255848121
12265852121
12275856121
12285860121
12295864121
12305868121
12315872121
12325876121
12335880121
12345884121
12355888121
12365892121
12375896121
12385900121
12395904121
12405908121
12415912121
12425916121
12435920121
12445924121
12455928121
12465932121
12475936121
12485940121
12495944121
12505948121
12515952121
12525956121
12535960121
12545964121
12555968121
12565972121
12575976121
12585980121
12595984121
12605988121
12615992121
12625996121
12636000121
12646004121
12656008121
12666012121
12676016121
12686020121
12696024121
12706028121
12716032121
12726036121
12736040121
12746044121
12756048121
12766052121
12776056121
12786060121
12796064121
12806068121
12816072121
12826076121
12836080121
12846084121
12856088121
12866092121
12876096121
12886100121
12896104121
12906108121
12916112121
12926116121
12936120121
12946124121
12956128121
12966132121
12976136121
12986140121
12996144121
13006148121
13016152121
13026156121
13036160121
13046164121
13056168121
13066172121
13076176121
13086180121
13096184121
13106188121
13116192121
13126196121
13136200121
13146204121
13156208121
13166212121
13176216121
13186220121
13196224121
13206228121
13216232121
13226236121
13236240121
13246244121
13256248121
13266252121
13276256121
13286260121
13296264121
13306268121
13316272121
13326276121
13336280121
13346284121
13356288121
13366292121
13376296121
13386300121
13396304121
13406308121
13416312121
13426316121
13436320121
13446324121
13456328121
13466332121
13476336121
13486340121
13496344121
13506348121
13516352121
13526356121
13536360121
13546364121
13556368121
13566372121
13576376121
13586380121
13596384121
13606388121
13616392121
13626396121
13636400121
13646404121
13656408121
13666412121
13676416121
13686420121
13696424121
13706428121
13716432121
13726436121
13736440121
13746444121
13756448121
13766452121
13776456121
13786460121
13796464121
13806468121
13816472121
13826476121
13836480121
13846484121
13856488121
13866492121
13876496121
13886500121
13896504121
13906508121
13916512121
13926516121
13936520121
13946524121
13956528121
13966532121
13976536121
13986540121
13996544121
14006548121
14016552121
14026556121
14036560121
14046564121
14056568121
14066572121
14076576121
14086580121
14096584121
14106588121
14116592121
14126596121
14136600121
14146604121
14156608121
14166612121
14176616121
14186620121
14196624121
14206628121
14216632121
14226636121
14236640121
14246644121
14256648121
14266652121
14276656121
14286660121
14296664121
14306668121
14316672121
14326676121
14336680121
14346684121
14356688121
14366692121
14376696121
14386700121
14396704121
14406708121
14416712121
14426716121
14436720121
14446724121
14456728121
14466732121
14476736121
14486740121
14496744121
14506748121
14516752121
14526756121
14536760121
14546764121
14556768121
14566772121
14576776121
14586780121
14596784121
14606788121
14616792121
14626796121
14636800121
14646804121
14656808121
14666812121
14676816121
14686820121
14696824121
14706828121
14716832121
14726836121
14736840121
14746844121
14756848121
14766852121
14776856121
14786860121
14796864121
14806868121
14816872121
14826876121
14836880121
14846884121
14856888121
14866892121
14876896121
14886900121
14896904121
14906908121
14916912121
14926916121
14936920121
14946924121
14956928121
14966932121
14976936121
14986940121
14996944121
15006948121
15016952121
15026956121
15036960121
15046964121
15056968121
15066972121
15076976121
15086980121
15096984121
15106988121
15116992121
15126996121
15137000121
15147004121
15157008121
15167012121
15177016121
15187020121
15197024121
15207028121
15217032121
15227036121
15237040121
15247044121
15257048121
15267052121
15277056121
15287060121
15297064121
15307068121
15317072121
15327076121
15337080121
15347084121
15357088121
15367092121
15377096121
15387100121
15397104121
15407108121
15417112121
15427116121
15437120121
15447124121
15457128121
15467132121
15477136121
15487140121
15497144121
15507148121
15517152121
15527156121
15537160121
15547164121
15557168121
15567172121
15577176121
15587180121
15597184121
15607188121
15617192121
15627196121
15637200121
15647204121
15657208121
15667212121
15677216121
15687220121
15697224121
15707228121
15717232121
15727236121
15737240121
15747244121
15757248121
15767252121
15777256121
15787260121
15797264121
15807268121
15817272121
15827276121
15837280121
15847284121
15857288121
15867292121
15877296121
15887300121
15897304121
15907308121
15917312121
15927316121
15937320121
15947324121
15957328121
15967332121
15977336121
15987340121
15997344121
16007348121
16017352121
16027356121
16037360121
16047364121
16057368121
16067372121
16077376121
16087380121
16097384121
16107388121
16117392121
16127396121
16137400121
16147404121
16157408121
16167412121
16177416121
16187420121
16197424121
16207428121
16217432121
16227436121
16237440121
16247444121
16257448121
16267452121
16277456121
16287460121
16297464121
16307468121
16317472121
16327476121
16337480121
16347484121
16357488121
16367492121
16377496121
16387500121
16397504121
16407508121
16417512121
16427516121
16437520121
16447524121
16457528121
16467532121
16477536121
16487540121
16497544121
16507548121
16517552121
16527556121
16537560121
16547564121
16557568121
16567572121
16577576121
16587580121
16597584121
16607588121
16617592121
16627596121
16637600121
16647604121
16657608121
16667612121
16677616121
16687620121
16697624121
16707628121
16717632121
16727636121
16737640121
16747644121
16757648121
16767652121
16777656121
16787660121
16797664121
16807668121
16817672121
16827676121
16837680121
16847684121
16857688121
16867692121
16877696121
16887700121
16897704121
16907708121
16917712121
16927716121
16937720121
16947724121
16957728121
16967732121
16977736121
16987740121
16997744121
17007748121
17017752121
17027756121
17037760121
17047764121
17057768121
17067772121
17077776121
17087780121
17097784121
17107788121
17117792121
17127796121
17137800121
17147804121
17157808121
17167812121
17177816121
17187820121
17197824121
17207828121
17217832121
17227836121
17237840121
17247844121
17257848121
17267852121
17277856121
17287860121
17297864121
17307868121
17317872121
17327876121
17337880121
17347884121
17357888121
17367892121
17377896121
17387900121
17397904121
17407908121
17417912121
17427916121
17437920121
17447924121
17457928121
17467932121
17477936121
17487940121
17497944121
17507948121
17517952121
17527956121
17537960121
17547964121
17557968121
17567972121
17577976121
17587980121
17597984121
17607988121
17617992121
17627996121
17638000121
Stop Event
node limit
Counts
62 → 56
Calls
Call 1
Inputs
y
(+.f64 y (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(*.f64 (pow.f64 1 1/3) x)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (+.f64 1 (*.f64 -1 x))))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (+.f64 1 (*.f64 -1 x))))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (+.f64 1 (*.f64 -1 x))))
Outputs
y
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (neg.f64 (*.f64 y x)))
(-.f64 y (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (neg.f64 (*.f64 y x)))
(-.f64 y (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (neg.f64 (*.f64 y x)))
(-.f64 y (*.f64 y x))
(*.f64 (pow.f64 1 1/3) x)
(*.f64 x 1)
x
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(*.f64 y (-.f64 1 x))
(+.f64 y (neg.f64 (*.f64 y x)))
(-.f64 y (*.f64 y x))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (-.f64 1 x)))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(+.f64 y (neg.f64 (*.f64 y x)))
(-.f64 y (*.f64 y x))
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (+.f64 1 (*.f64 -1 x))))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (+.f64 1 (*.f64 -1 x))))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)
(+.f64 (*.f64 (pow.f64 1 1/3) x) (*.f64 y (+.f64 1 (*.f64 -1 x))))
(fma.f64 1 x (*.f64 y (-.f64 1 x)))
(fma.f64 y (-.f64 1 x) x)
(fma.f64 x (-.f64 1 y) y)

localize5.0ms (0%)

Compiler

Compiled 10 to 4 computations (60% saved)

eval18.0ms (0.2%)

Compiler

Compiled 998 to 272 computations (72.7% saved)

prune16.0ms (0.1%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New77077
Fresh022
Picked011
Done044
Total77784
Error
0b
Counts
84 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
54.6b
(*.f64 x (neg.f64 y))
25.5b
(-.f64 y (*.f64 y x))
12.9b
(fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (-.f64 y (*.f64 x y)))
37.1b
x
33.1b
y
0.0b
(-.f64 (+.f64 x y) (*.f64 x y))
29.4b
(*.f64 (-.f64 1 y) x)
Compiler

Compiled 49 to 30 computations (38.8% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New000
Fresh022
Picked000
Done055
Total077
Error
0b
Counts
7 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
54.6b
(*.f64 x (neg.f64 y))
25.5b
(-.f64 y (*.f64 y x))
12.9b
(fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (-.f64 y (*.f64 x y)))
37.1b
x
33.1b
y
0.0b
(-.f64 (+.f64 x y) (*.f64 x y))
29.4b
(*.f64 (-.f64 1 y) x)
Compiler

Compiled 49 to 30 computations (38.8% saved)

regimes19.0ms (0.2%)

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

3 calls:

7.0ms
y
5.0ms
(-.f64 (+.f64 x y) (*.f64 x y))
5.0ms
x
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(-.f64 (+.f64 x y) (*.f64 x y))
Compiler

Compiled 52 to 26 computations (50% saved)

regimes35.0ms (0.3%)

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

2 calls:

25.0ms
y
9.0ms
x
Results
ErrorSegmentsBranch
5.0b2x
5.9b4y
Compiler

Compiled 24 to 13 computations (45.8% saved)

bsearch19.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
-6.505210601254557e-80
-3.042702686215911e-82
Compiler

Compiled 14 to 9 computations (35.7% saved)

regimes35.0ms (0.3%)

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

2 calls:

24.0ms
y
10.0ms
x
Results
ErrorSegmentsBranch
6.3b2x
10.1b6y
Compiler

Compiled 19 to 11 computations (42.1% saved)

bsearch22.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
-6.505210601254557e-80
-3.042702686215911e-82
Compiler

Compiled 14 to 9 computations (35.7% saved)

regimes46.0ms (0.4%)

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

2 calls:

25.0ms
y
20.0ms
x
Results
ErrorSegmentsBranch
11.9b4x
10.1b7y
Compiler

Compiled 14 to 8 computations (42.9% saved)

bsearch336.0ms (2.8%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
3.845303099816652e+51
4.111905806121563e+51
205.0ms
4.1938992463191097e+37
4.025056666745763e+38
39.0ms
5.342975730417039e-54
3.48704048570193e-52
16.0ms
2.0472359459496144e-150
1.1495676506369853e-148
16.0ms
4.0557193580418584e-193
1.1112865488692448e-192
43.0ms
-1.2717529438719227e+20
-2.5616662891761047e-20
Compiler

Compiled 14 to 9 computations (35.7% saved)

regimes42.0ms (0.4%)

Accuracy

Total -49.2b remaining (-380.7%)

Threshold costs -49.2b (-380.7%)

Counts
2 → 2
Calls
Call 1
Inputs
y
x
Outputs
x
y
Calls

2 calls:

25.0ms
x
16.0ms
y
Results
ErrorSegmentsBranch
12.9b2x
13.4b4y
Compiler

Compiled 10 to 6 computations (40% saved)

bsearch17.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
-6.574975083832875e-77
-3.932388537592732e-78
Compiler

Compiled 14 to 9 computations (35.7% saved)

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
sub-neg_binary64
cancel-sign-sub-inv_binary64
neg-sub0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
039106
159106
270106
375106
477106
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (+.f64 x y) (*.f64 x y))
(if (<=.f64 x -138950455102150032/2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576) (*.f64 (-.f64 1 y) x) (-.f64 y (*.f64 y x)))
(if (<=.f64 x -138950455102150032/2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576) (*.f64 (-.f64 1 y) x) y)
(if (<=.f64 y -8334560092959032393859072/65536) (*.f64 x (neg.f64 y)) (if (<=.f64 y 1041681396574253/2568425733177916751582514591250062824975751856847252861083144972201529372215371495172688738416791235950675277761805770367685269653410060480042878305982363696267199058168185838960773319279454451792623658074112) x (if (<=.f64 y 3772554460330971/1842755090244893238399196572748178169393027939656465052918069482541808673043041431682679065028153695088607604995490158642466105776330465152617887818082371115063181312) y (if (<=.f64 y 4609482903549555/862718293348820473429344482784628181556388621521298319395315527974912) x (if (<=.f64 y 41938992463191097094865050327167533056) y (if (<=.f64 y 3845303099816652258190188024332502253405991350566912) (*.f64 x (neg.f64 y)) y))))))
(if (<=.f64 x -8571814905133069/130370302485407109521180524058200202307293977194619920040712988758680403184853549195737432064) x y)
y
Outputs
(-.f64 (+.f64 x y) (*.f64 x y))
(if (<=.f64 x -138950455102150032/2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576) (*.f64 (-.f64 1 y) x) (-.f64 y (*.f64 y x)))
(if (<=.f64 x -8684403443884377/133499189745056880149688856635597007162669032647290798121690100488888732861290034376435130433536) (*.f64 x (-.f64 1 y)) (-.f64 y (*.f64 x y)))
(if (<=.f64 x -138950455102150032/2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576) (*.f64 (-.f64 1 y) x) y)
(if (<=.f64 x -8684403443884377/133499189745056880149688856635597007162669032647290798121690100488888732861290034376435130433536) (*.f64 x (-.f64 1 y)) y)
(if (<=.f64 y -8334560092959032393859072/65536) (*.f64 x (neg.f64 y)) (if (<=.f64 y 1041681396574253/2568425733177916751582514591250062824975751856847252861083144972201529372215371495172688738416791235950675277761805770367685269653410060480042878305982363696267199058168185838960773319279454451792623658074112) x (if (<=.f64 y 3772554460330971/1842755090244893238399196572748178169393027939656465052918069482541808673043041431682679065028153695088607604995490158642466105776330465152617887818082371115063181312) y (if (<=.f64 y 4609482903549555/862718293348820473429344482784628181556388621521298319395315527974912) x (if (<=.f64 y 41938992463191097094865050327167533056) y (if (<=.f64 y 3845303099816652258190188024332502253405991350566912) (*.f64 x (neg.f64 y)) y))))))
(if (<=.f64 y -127175294387192266752) (*.f64 x (neg.f64 y)) (if (<=.f64 y 1041681396574253/2568425733177916751582514591250062824975751856847252861083144972201529372215371495172688738416791235950675277761805770367685269653410060480042878305982363696267199058168185838960773319279454451792623658074112) x (if (<=.f64 y 3772554460330971/1842755090244893238399196572748178169393027939656465052918069482541808673043041431682679065028153695088607604995490158642466105776330465152617887818082371115063181312) y (if (<=.f64 y 4609482903549555/862718293348820473429344482784628181556388621521298319395315527974912) x (if (<=.f64 y 41938992463191097094865050327167533056) y (if (<=.f64 y 3845303099816652258190188024332502253405991350566912) (*.f64 x (neg.f64 y)) y))))))
(if (<=.f64 x -8571814905133069/130370302485407109521180524058200202307293977194619920040712988758680403184853549195737432064) x y)
y

end82.0ms (0.7%)

Stop Event
fuel
Remove

(sort x y)

Compiler

Compiled 182 to 103 computations (43.4% saved)

Profiling

Loading profile data...