Details

Time bar (total: 3.2s)

analyze59.0ms (1.8%)

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%43.7%6.3%7
59.3%34.3%6.3%8
67.1%23.4%9.5%9
72.6%18%9.5%10
76.9%12.1%11%11
79.8%9.2%11%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample935.0ms (29.2%)

Results
909.0ms8256×body256valid
14.0ms155×body256invalid

preprocess21.0ms (0.7%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-*l*_binary64
associate-*r*_binary64
swap-x-y
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
11414
22014
32014
022
122
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(*.f64 (*.f64 x 27) y)
(*.f64 (*.f64 y 27) x)
Outputs
(*.f64 (*.f64 x 27) y)
(*.f64 x (*.f64 27 y))
(*.f64 (*.f64 y 27) x)
(*.f64 x (*.f64 27 y))
Symmetry

(sort x y)

Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-*r*_binary64
associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
1107
2177
3197
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 x 27) y)
Outputs
(*.f64 (*.f64 x 27) y)
(*.f64 x (*.f64 27 y))

eval1.0ms (0%)

Compiler

Compiled 12 to 8 computations (33.3% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.5b
(*.f64 (*.f64 x 27) y)
0.5b
(*.f64 x (*.f64 27 y))
Compiler

Compiled 14 to 10 computations (28.6% saved)

localize9.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.5b
(*.f64 x (*.f64 27 y))
0.5b
(*.f64 x (*.f64 27 y))
Compiler

Compiled 13 to 8 computations (38.5% saved)

series4.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite43.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
555×pow1_binary64
512×add-log-exp_binary64
512×log1p-expm1-u_binary64
512×expm1-log1p-u_binary64
502×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify16.0ms (0.5%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-*r*_binary64
associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06168
110168
217168
319168
Stop Event
saturated
Counts
35 → 13
Calls
Call 1
Inputs
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
Outputs
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (*.f64 x 27) y)
0.5b
(*.f64 (*.f64 x 27) y)
Compiler

Compiled 13 to 8 computations (38.5% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite42.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
554×pow1_binary64
511×add-log-exp_binary64
511×log1p-expm1-u_binary64
511×expm1-log1p-u_binary64
501×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify13.0ms (0.4%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-*r*_binary64
associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06168
110168
217168
319168
Stop Event
saturated
Counts
35 → 13
Calls
Call 1
Inputs
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
Outputs
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))

eval7.0ms (0.2%)

Compiler

Compiled 192 to 138 computations (28.1% saved)

prune6.0ms (0.2%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New23326
Fresh000
Picked011
Done011
Total23528
Error
0.0b
Counts
28 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
30.0b
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)
1.3b
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)
0.3b
(*.f64 27 (*.f64 y x))
0.5b
(*.f64 (*.f64 x 27) y)
0.5b
(*.f64 x (*.f64 27 y))
Compiler

Compiled 41 to 31 computations (24.4% saved)

localize5.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(*.f64 27 (*.f64 y x))
0.3b
(*.f64 27 (*.f64 y x))
Compiler

Compiled 13 to 6 computations (53.8% saved)

series2.0ms (0.1%)

Counts
1 → 0
Calls

6 calls:

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

rewrite41.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
555×pow1_binary64
512×add-log-exp_binary64
512×log1p-expm1-u_binary64
512×expm1-log1p-u_binary64
502×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify6.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
11 → 11
Calls
Call 1
Inputs
Outputs

localize17.0ms (0.5%)

Local error

Found 6 expressions with local error:

NewErrorProgram
10.1b
(cbrt.f64 (*.f64 x (*.f64 27 y)))
0.6b
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)
0.5b
(*.f64 x (*.f64 27 y))
0.5b
(*.f64 x (*.f64 27 y))
0.6b
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)
10.1b
(cbrt.f64 (*.f64 x (*.f64 27 y)))
Compiler

Compiled 28 to 19 computations (32.1% saved)

series16.0ms (0.5%)

Counts
2 → 0
Calls

12 calls:

TimeVariablePointExpression
4.0ms
x
@0
(cbrt.f64 (*.f64 x (*.f64 27 y)))
2.0ms
y
@inf
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)
2.0ms
x
@-inf
(cbrt.f64 (*.f64 x (*.f64 27 y)))
2.0ms
x
@-inf
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)
1.0ms
x
@0
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)

rewrite55.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
710×pow1_binary64
665×add-log-exp_binary64
665×log1p-expm1-u_binary64
665×expm1-log1p-u_binary64
650×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
63 → 63
Calls
Call 1
Inputs
Outputs

localize14.0ms (0.4%)

Local error

Found 6 expressions with local error:

NewErrorProgram
9.2b
(sqrt.f64 (*.f64 x (*.f64 27 y)))
0.5b
(*.f64 x (*.f64 27 y))
0.2b
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)
0.2b
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)
0.5b
(*.f64 x (*.f64 27 y))
9.2b
(sqrt.f64 (*.f64 x (*.f64 27 y)))
Compiler

Compiled 28 to 19 computations (32.1% saved)

series16.0ms (0.5%)

Counts
2 → 0
Calls

12 calls:

TimeVariablePointExpression
2.0ms
y
@0
(sqrt.f64 (*.f64 x (*.f64 27 y)))
2.0ms
x
@-inf
(sqrt.f64 (*.f64 x (*.f64 27 y)))
2.0ms
x
@0
(sqrt.f64 (*.f64 x (*.f64 27 y)))
2.0ms
x
@0
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)
1.0ms
x
@-inf
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)

rewrite63.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
708×pow1_binary64
657×add-log-exp_binary64
657×log1p-expm1-u_binary64
657×expm1-log1p-u_binary64
643×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0916
118716
2184216
Stop Event
node limit
Counts
2 → 61
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 x (*.f64 27 y)))
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sqrt.f64 (*.f64 x (*.f64 27 y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 x (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) (cbrt.f64 (sqrt.f64 (*.f64 x (*.f64 27 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 x (*.f64 27 y)))) (cbrt.f64 (*.f64 x (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 27 y)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x (*.f64 27 y)) 1/4) (pow.f64 (*.f64 x (*.f64 27 y)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x 27)) (sqrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 2)) (sqrt.f64 (cbrt.f64 (*.f64 x (*.f64 27 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 x (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x 27) 1/2) (sqrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 27 y)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 27 y)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 x (*.f64 27 y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 27 y)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 x (*.f64 27 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (*.f64 27 y)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 x (*.f64 27 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 x (*.f64 27 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 x (*.f64 27 y)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (*.f64 27 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 27 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 27 (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 x 27))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 27 y) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 27 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) (sqrt.f64 (*.f64 x (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (cbrt.f64 y) 3) 2) (*.f64 (*.f64 (cbrt.f64 y) 3) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) (pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 x (*.f64 27 y)))) (sqrt.f64 (*.f64 x (*.f64 27 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 2) (cbrt.f64 (*.f64 x (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 27 y)) (*.f64 (sqrt.f64 (*.f64 27 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 (*.f64 27 y)) (sqrt.f64 (*.f64 x (*.f64 27 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x (*.f64 27 y)) 1/4) (*.f64 (pow.f64 (*.f64 x (*.f64 27 y)) 1/4) (sqrt.f64 (*.f64 x (*.f64 27 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 27) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) (pow.f64 (*.f64 x (*.f64 27 y)) 1/4)) (pow.f64 (*.f64 x (*.f64 27 y)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x y) 27)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (pow.f64 (*.f64 (cbrt.f64 y) 3) 2)) (*.f64 (cbrt.f64 y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 27 y) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 27 y) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) (cbrt.f64 (*.f64 x (*.f64 27 y)))) (cbrt.f64 (sqrt.f64 (*.f64 x (*.f64 27 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) (sqrt.f64 x)) (sqrt.f64 (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x 27) 1) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x 27) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x 27) (sqrt.f64 y)) (sqrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (*.f64 27 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (*.f64 27 y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (*.f64 27 y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 27 y) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 27 y))))))))

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
61 → 61
Calls
Call 1
Inputs
Outputs

eval70.0ms (2.2%)

Compiler

Compiled 1773 to 1289 computations (27.3% saved)

prune138.0ms (4.3%)

Pruning

10 alts after pruning (5 fresh and 5 done)

PrunedKeptTotal
New1565161
Fresh000
Picked011
Done044
Total15610166
Error
0.0b
Counts
166 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
48.4b
(*.f64 (*.f64 (*.f64 27 y) (sqrt.f64 x)) (sqrt.f64 x))
1.3b
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)
14.9b
(*.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))
0.5b
(*.f64 (*.f64 x 27) y)
1.3b
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
14.9b
(*.f64 (*.f64 (*.f64 x 27) (sqrt.f64 y)) (sqrt.f64 y))
30.0b
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)
0.3b
(*.f64 27 (*.f64 y x))
0.5b
(*.f64 x (*.f64 27 y))
24.3b
(*.f64 (*.f64 (*.f64 x 27) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y))
Compiler

Compiled 157 to 113 computations (28% saved)

localize11.0ms (0.4%)

Local error

Found 6 expressions with local error:

NewErrorProgram
10.2b
(cbrt.f64 (*.f64 y x))
0.6b
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
0.2b
(*.f64 (cbrt.f64 (*.f64 y x)) 3)
0.2b
(*.f64 (cbrt.f64 (*.f64 y x)) 3)
0.6b
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
10.2b
(cbrt.f64 (*.f64 y x))
Compiler

Compiled 26 to 11 computations (57.7% saved)

series13.0ms (0.4%)

Counts
3 → 0
Calls

18 calls:

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

rewrite57.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
708×pow1_binary64
660×add-log-exp_binary64
660×log1p-expm1-u_binary64
660×expm1-log1p-u_binary64
642×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0827
116922
2187122
Stop Event
node limit
Counts
3 → 56
Calls
Call 1
Inputs
(cbrt.f64 (*.f64 y x))
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
(*.f64 (cbrt.f64 (*.f64 y x)) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 y x))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 y x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 y x))) 2) (cbrt.f64 (cbrt.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 y) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 y x) 1/6) (pow.f64 (*.f64 y x) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 y x)) 1/3) (pow.f64 (sqrt.f64 (*.f64 y x)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y x) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 y x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y x) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 y x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (*.f64 y x) 27)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y x) 27)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y x)) (*.f64 3 (*.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (*.f64 (cbrt.f64 (*.f64 y x)) (*.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) (*.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 9))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y x) 27) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (*.f64 y x) 27))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 27 (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 9) (*.f64 (cbrt.f64 (*.f64 y x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)) 2) (*.f64 (cbrt.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)) (*.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)) (*.f64 (sqrt.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)) (*.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (*.f64 y x) 27)) (sqrt.f64 (*.f64 (*.f64 y x) 27)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)) 2) 3) (*.f64 (cbrt.f64 (*.f64 y x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)) 3) (pow.f64 (sqrt.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 9) (cbrt.f64 (*.f64 y x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 9) 3) (cbrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 9) 1) (*.f64 (cbrt.f64 (*.f64 y x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 9) (pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)) 2)) (cbrt.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 9) (sqrt.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3))) (sqrt.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 y) x) 27))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 y x) 27) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 y x) 27)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 y x) 27)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 y x) 27)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (cbrt.f64 (*.f64 y x)) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 y x) 27) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cbrt.f64 (*.f64 y x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 y x) 27))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)))))))

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
56 → 56
Calls
Call 1
Inputs
Outputs

localize42.0ms (1.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (*.f64 x 27) (sqrt.f64 y))
0.2b
(*.f64 (*.f64 (*.f64 x 27) (sqrt.f64 y)) (sqrt.f64 y))
0.2b
(*.f64 (*.f64 (*.f64 x 27) (sqrt.f64 y)) (sqrt.f64 y))
0.5b
(*.f64 (*.f64 x 27) (sqrt.f64 y))
Compiler

Compiled 25 to 13 computations (48% saved)

series11.0ms (0.3%)

Counts
2 → 36
Calls

12 calls:

TimeVariablePointExpression
3.0ms
y
@-inf
(*.f64 (*.f64 (*.f64 x 27) (sqrt.f64 y)) (sqrt.f64 y))
2.0ms
y
@-inf
(*.f64 (*.f64 x 27) (sqrt.f64 y))
1.0ms
x
@0
(*.f64 (*.f64 x 27) (sqrt.f64 y))
1.0ms
y
@0
(*.f64 (*.f64 x 27) (sqrt.f64 y))
1.0ms
x
@inf
(*.f64 (*.f64 x 27) (sqrt.f64 y))

rewrite78.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
736×pow1_binary64
680×add-log-exp_binary64
680×log1p-expm1-u_binary64
680×expm1-log1p-u_binary64
665×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0816
116216
2189316
Stop Event
node limit
Counts
2 → 27
Calls
Call 1
Inputs
(*.f64 (*.f64 x 27) (sqrt.f64 y))
(*.f64 (*.f64 (*.f64 x 27) (sqrt.f64 y)) (sqrt.f64 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (*.f64 (sqrt.f64 y) x) 27)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 y (*.f64 (*.f64 x x) 729)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 y)) (*.f64 x 27)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x 27) 3) (pow.f64 y 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 y 3/2) (pow.f64 (*.f64 x 27) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 27 (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 27 (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 27 (*.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 27 (*.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 27 (*.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 27 (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 x) 27) y))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 27 (*.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x 27) 3) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 y 3/2) (pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3) (pow.f64 y 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 27 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 27 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 27 (*.f64 x y))))))))

simplify107.0ms (3.4%)

Algorithm
egg-herbie
Rules
684×fma-def_binary64
678×fabs-mul_binary64
632×cube-prod_binary64
617×sqr-pow_binary64
489×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
016276
135276
284276
3163276
4393276
51334276
61692276
72065276
82666276
93119276
103471276
113827276
124207276
134676276
145165276
156476276
167400276
Stop Event
node limit
Counts
63 → 32
Calls
Call 1
Inputs
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
Outputs
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 (sqrt.f64 y) (*.f64 27 x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 (sqrt.f64 y) (*.f64 27 x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 (sqrt.f64 y) (*.f64 27 x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 (sqrt.f64 y) (*.f64 27 x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 (sqrt.f64 y) (*.f64 27 x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 (sqrt.f64 y) (*.f64 27 x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 (sqrt.f64 y) (*.f64 27 x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 (sqrt.f64 y) (*.f64 27 x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 (sqrt.f64 y) (*.f64 27 x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 (sqrt.f64 y) (*.f64 27 x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 (sqrt.f64 y) (*.f64 27 x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 (sqrt.f64 y) (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))

localize11.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 (*.f64 27 y) (sqrt.f64 x)) (sqrt.f64 x))
0.1b
(*.f64 (*.f64 27 y) (sqrt.f64 x))
0.1b
(*.f64 (*.f64 27 y) (sqrt.f64 x))
0.1b
(*.f64 (*.f64 (*.f64 27 y) (sqrt.f64 x)) (sqrt.f64 x))
Compiler

Compiled 25 to 13 computations (48% saved)

series7.0ms (0.2%)

Counts
2 → 36
Calls

12 calls:

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

rewrite73.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
739×pow1_binary64
683×add-log-exp_binary64
683×log1p-expm1-u_binary64
683×expm1-log1p-u_binary64
667×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify102.0ms (3.2%)

Algorithm
egg-herbie
Rules
764×fma-def_binary64
607×*-commutative_binary64
606×sqr-pow_binary64
527×fabs-mul_binary64
498×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
016276
134276
283276
3165276
4406276
51427276
61857276
72212276
83344276
93812276
104167276
114540276
124938276
135336276
145818276
157262276
Stop Event
node limit
Counts
63 → 32
Calls
Call 1
Inputs
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
Outputs
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))

localize17.0ms (0.5%)

Local error

Found 8 expressions with local error:

NewErrorProgram
30.7b
(cbrt.f64 (*.f64 y y))
0.6b
(cbrt.f64 y)
0.5b
(*.f64 (*.f64 x 27) (cbrt.f64 (*.f64 y y)))
0.3b
(*.f64 (*.f64 (*.f64 x 27) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y))
0.3b
(*.f64 (*.f64 (*.f64 x 27) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y))
0.5b
(*.f64 (*.f64 x 27) (cbrt.f64 (*.f64 y y)))
0.6b
(cbrt.f64 y)
30.7b
(cbrt.f64 (*.f64 y y))
Compiler

Compiled 36 to 15 computations (58.3% saved)

series43.0ms (1.3%)

Counts
4 → 36
Calls

18 calls:

TimeVariablePointExpression
29.0ms
x
@0
(*.f64 (*.f64 (*.f64 x 27) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y))
3.0ms
x
@0
(*.f64 (*.f64 x 27) (cbrt.f64 (*.f64 y y)))
2.0ms
y
@-inf
(*.f64 (*.f64 (*.f64 x 27) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y))
2.0ms
y
@0
(*.f64 (*.f64 (*.f64 x 27) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y))
1.0ms
x
@inf
(*.f64 (*.f64 x 27) (cbrt.f64 (*.f64 y y)))

rewrite57.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
852×pow1_binary64
788×add-log-exp_binary64
788×log1p-expm1-u_binary64
788×expm1-log1p-u_binary64
768×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01028
119928
2224628
Stop Event
node limit
Counts
4 → 69
Calls
Call 1
Inputs
(cbrt.f64 (*.f64 y y))
(cbrt.f64 y)
(*.f64 (*.f64 x 27) (cbrt.f64 (*.f64 y y)))
(*.f64 (*.f64 (*.f64 x 27) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 y) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 y y))) (cbrt.f64 (*.f64 y (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 y y))) (*.f64 (cbrt.f64 (cbrt.f64 y)) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y (cbrt.f64 y))) (cbrt.f64 (cbrt.f64 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y 1/6) (*.f64 (pow.f64 y 1/6) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (pow.f64 y 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 y (cbrt.f64 y)) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 (cbrt.f64 (*.f64 y y)))) (cbrt.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 y 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y y) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 y y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 y (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 y y))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 y)) (cbrt.f64 (cbrt.f64 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 y y))) (cbrt.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y 1/6) (pow.f64 y 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 y (cbrt.f64 y)))) (sqrt.f64 (cbrt.f64 (cbrt.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 y) 1/3) (pow.f64 (sqrt.f64 y) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 y 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y y) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y y)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 y 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 y)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 x 27))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 x 27)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 x 27)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 x 27))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 y) (sqrt.f64 (*.f64 x 27))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 (*.f64 x x) 729) (*.f64 y (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (*.f64 (cbrt.f64 (*.f64 y y)) 27)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 x 27)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 y y) (pow.f64 (*.f64 x 27) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x 27) 3) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 x 27))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 x 27))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 x 27))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 y (*.f64 x 27))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 x 27)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 x 27)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (*.f64 x 27))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (*.f64 x 27))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (*.f64 x 27)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 x) 27) y))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 x 27)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 y (pow.f64 (*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 x 27)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x 27) 3) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (*.f64 x 27))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 x 27))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (*.f64 x 27))))))))

simplify104.0ms (3.3%)

Algorithm
egg-herbie
Rules
1011×cube-prod_binary64
958×fabs-mul_binary64
662×sqr-pow_binary64
492×unswap-sqr_binary64
440×cube-mult_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020332
148332
2101332
3222332
4602332
5746332
6909332
71245332
81896332
92056332
102284332
112587332
123021332
133643332
144450332
155466332
166352332
177215332
Stop Event
node limit
Counts
105 → 75
Calls
Call 1
Inputs
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -27 (*.f64 y (*.f64 (cbrt.f64 -1) x)))
(*.f64 -27 (*.f64 y (*.f64 (cbrt.f64 -1) x)))
(*.f64 -27 (*.f64 y (*.f64 (cbrt.f64 -1) x)))
(*.f64 -27 (*.f64 y (*.f64 (cbrt.f64 -1) x)))
Outputs
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 -27 (*.f64 y (*.f64 (cbrt.f64 -1) x)))
(*.f64 -27 (*.f64 y (*.f64 x (cbrt.f64 -1))))
(*.f64 y (*.f64 (*.f64 x (cbrt.f64 -1)) -27))
(*.f64 y (*.f64 x (*.f64 (cbrt.f64 -1) -27)))
(*.f64 y (*.f64 (cbrt.f64 -1) (*.f64 x -27)))
(*.f64 y (*.f64 x (*.f64 -27 (cbrt.f64 -1))))
(*.f64 x (*.f64 -27 (*.f64 y (cbrt.f64 -1))))
(*.f64 -27 (*.f64 y (*.f64 (cbrt.f64 -1) x)))
(*.f64 -27 (*.f64 y (*.f64 x (cbrt.f64 -1))))
(*.f64 y (*.f64 (*.f64 x (cbrt.f64 -1)) -27))
(*.f64 y (*.f64 x (*.f64 (cbrt.f64 -1) -27)))
(*.f64 y (*.f64 (cbrt.f64 -1) (*.f64 x -27)))
(*.f64 y (*.f64 x (*.f64 -27 (cbrt.f64 -1))))
(*.f64 x (*.f64 -27 (*.f64 y (cbrt.f64 -1))))
(*.f64 -27 (*.f64 y (*.f64 (cbrt.f64 -1) x)))
(*.f64 -27 (*.f64 y (*.f64 x (cbrt.f64 -1))))
(*.f64 y (*.f64 (*.f64 x (cbrt.f64 -1)) -27))
(*.f64 y (*.f64 x (*.f64 (cbrt.f64 -1) -27)))
(*.f64 y (*.f64 (cbrt.f64 -1) (*.f64 x -27)))
(*.f64 y (*.f64 x (*.f64 -27 (cbrt.f64 -1))))
(*.f64 x (*.f64 -27 (*.f64 y (cbrt.f64 -1))))
(*.f64 -27 (*.f64 y (*.f64 (cbrt.f64 -1) x)))
(*.f64 -27 (*.f64 y (*.f64 x (cbrt.f64 -1))))
(*.f64 y (*.f64 (*.f64 x (cbrt.f64 -1)) -27))
(*.f64 y (*.f64 x (*.f64 (cbrt.f64 -1) -27)))
(*.f64 y (*.f64 (cbrt.f64 -1) (*.f64 x -27)))
(*.f64 y (*.f64 x (*.f64 -27 (cbrt.f64 -1))))
(*.f64 x (*.f64 -27 (*.f64 y (cbrt.f64 -1))))

localize13.0ms (0.4%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.3b
(sqrt.f64 (*.f64 27 y))
0.2b
(*.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))
0.2b
(*.f64 x (sqrt.f64 (*.f64 27 y)))
0.2b
(*.f64 x (sqrt.f64 (*.f64 27 y)))
0.2b
(*.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))
0.3b
(sqrt.f64 (*.f64 27 y))
Compiler

Compiled 29 to 20 computations (31% saved)

series14.0ms (0.4%)

Counts
3 → 36
Calls

15 calls:

TimeVariablePointExpression
3.0ms
x
@inf
(*.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))
1.0ms
x
@0
(*.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))
1.0ms
y
@-inf
(*.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))
1.0ms
y
@0
(*.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))
1.0ms
x
@0
(*.f64 x (sqrt.f64 (*.f64 27 y)))

rewrite52.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
725×pow1_binary64
670×add-log-exp_binary64
670×log1p-expm1-u_binary64
670×expm1-log1p-u_binary64
655×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0822
116122
2186722
Stop Event
node limit
Counts
3 → 49
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 27 y))
(*.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))
(*.f64 x (sqrt.f64 (*.f64 27 y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sqrt.f64 (*.f64 27 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 27 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 27 y))) (cbrt.f64 (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 27 y)) (cbrt.f64 (sqrt.f64 (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 27 y) 1/4) (pow.f64 (*.f64 27 y) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 27) (sqrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (sqrt.f64 27))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 27 y)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 27 y)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 27 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 27 y) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 27 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 27 y) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 27 y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 27 y) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 27 y) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 27 y))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (*.f64 27 y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 27 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 27 y) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 27 y) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 27 y) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (*.f64 27 y) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 27 y) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 27 y) 3/2) (pow.f64 (*.f64 (sqrt.f64 (*.f64 27 y)) x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (*.f64 27 y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (sqrt.f64 (*.f64 27 y)) x) 3) (pow.f64 (*.f64 27 y) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 27 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 27 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 27 y) x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 (*.f64 27 y)) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (*.f64 27 y)) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (*.f64 27 y)) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 27 y)) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (*.f64 27 y)) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x (*.f64 (*.f64 27 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 (*.f64 27 y))) x))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (*.f64 27 y)) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 27 y) 3/2) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (*.f64 27 y) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (*.f64 27 y)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (*.f64 27 y)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (*.f64 27 y)) x)))))))

simplify90.0ms (2.8%)

Algorithm
egg-herbie
Rules
581×fabs-mul_binary64
545×fma-neg_binary64
500×distribute-rgt-neg-in_binary64
495×fma-def_binary64
414×cube-prod_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
019420
143300
2109300
3255300
4691300
51097300
61513300
72041300
82889300
93810300
104594300
115531300
126639300
Stop Event
node limit
Counts
85 → 54
Calls
Call 1
Inputs
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
Outputs
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))

eval82.0ms (2.6%)

Compiler

Compiled 3257 to 1978 computations (39.3% saved)

prune49.0ms (1.5%)

Pruning

9 alts after pruning (2 fresh and 7 done)

PrunedKeptTotal
New2692271
Fresh000
Picked011
Done369
Total2729281
Error
0.0b
Counts
281 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
14.9b
(*.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))
0.5b
(*.f64 (*.f64 x 27) y)
1.3b
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
37.8b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3)) (sqrt.f64 y))
30.0b
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)
1.3b
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)
0.3b
(*.f64 27 (*.f64 y x))
48.4b
(*.f64 (*.f64 y (*.f64 27 (sqrt.f64 x))) (sqrt.f64 x))
0.5b
(*.f64 x (*.f64 27 y))
Compiler

Compiled 89 to 66 computations (25.8% saved)

localize11.0ms (0.4%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 y (*.f64 27 (sqrt.f64 x))) (sqrt.f64 x))
0.0b
(*.f64 y (*.f64 27 (sqrt.f64 x)))
0.0b
(*.f64 27 (sqrt.f64 x))
0.0b
(*.f64 27 (sqrt.f64 x))
0.0b
(*.f64 y (*.f64 27 (sqrt.f64 x)))
0.1b
(*.f64 (*.f64 y (*.f64 27 (sqrt.f64 x))) (sqrt.f64 x))
Compiler

Compiled 26 to 13 computations (50% saved)

series6.0ms (0.2%)

Counts
3 → 36
Calls

15 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 y (*.f64 27 (sqrt.f64 x)))
1.0ms
x
@-inf
(*.f64 27 (sqrt.f64 x))
1.0ms
x
@0
(*.f64 27 (sqrt.f64 x))
0.0ms
x
@inf
(*.f64 27 (sqrt.f64 x))
0.0ms
x
@-inf
(*.f64 y (*.f64 27 (sqrt.f64 x)))

rewrite61.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
750×pow1_binary64
693×add-log-exp_binary64
693×log1p-expm1-u_binary64
693×expm1-log1p-u_binary64
677×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0829
116322
2192622
Stop Event
node limit
Counts
3 → 37
Calls
Call 1
Inputs
(*.f64 (*.f64 y (*.f64 27 (sqrt.f64 x))) (sqrt.f64 x))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (sqrt.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 y (*.f64 27 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 27 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 27 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (*.f64 27 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (*.f64 27 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (*.f64 27 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 y) (*.f64 27 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 27 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3/2) (pow.f64 (*.f64 y (*.f64 27 (sqrt.f64 x))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 y (*.f64 27 (sqrt.f64 x))) 3) (pow.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (*.f64 27 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 27 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (*.f64 27 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 y (*.f64 27 (sqrt.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 27 (sqrt.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 27 (sqrt.f64 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (*.f64 27 (sqrt.f64 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (*.f64 27 (sqrt.f64 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 y y) (*.f64 x 729)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 y) (*.f64 27 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 27 (sqrt.f64 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 y 3) (pow.f64 (*.f64 27 (sqrt.f64 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 27 (sqrt.f64 x)) 3) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (*.f64 27 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 27 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (*.f64 27 (sqrt.f64 x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 27 (sqrt.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 27 (sqrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 27 (sqrt.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 (sqrt.f64 x)) 3) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 27 (sqrt.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x 729))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 27))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 27 (sqrt.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 27 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 27 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 27 (sqrt.f64 x))))))))

simplify103.0ms (3.2%)

Algorithm
egg-herbie
Rules
764×fma-def_binary64
607×*-commutative_binary64
606×sqr-pow_binary64
527×fabs-mul_binary64
498×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
016276
134276
283276
3165276
4406276
51427276
61857276
72212276
83344276
93812276
104167276
114540276
124938276
135336276
145818276
157262276
Stop Event
node limit
Counts
73 → 42
Calls
Call 1
Inputs
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
Outputs
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))
(*.f64 27 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 27 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 27 y))
(*.f64 y (*.f64 27 (sqrt.f64 x)))

localize20.0ms (0.6%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3)) (sqrt.f64 y))
0.2b
(pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3)
0.2b
(*.f64 (*.f64 (sqrt.f64 y) x) 27)
0.2b
(*.f64 (sqrt.f64 y) x)
0.2b
(*.f64 (*.f64 (sqrt.f64 y) x) 27)
0.2b
(pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3)
0.2b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3)) (sqrt.f64 y))
27.3b
(cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3))
Compiler

Compiled 47 to 23 computations (51.1% saved)

series35.0ms (1.1%)

Counts
4 → 60
Calls

24 calls:

TimeVariablePointExpression
9.0ms
y
@-inf
(cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3))
4.0ms
y
@-inf
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3)) (sqrt.f64 y))
2.0ms
y
@0
(*.f64 (*.f64 (sqrt.f64 y) x) 27)
2.0ms
y
@-inf
(pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3)
2.0ms
x
@0
(cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3))

rewrite67.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
891×pow1_binary64
832×add-log-exp_binary64
832×log1p-expm1-u_binary64
832×expm1-log1p-u_binary64
811×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01144
122937
2237437
Stop Event
node limit
Counts
4 → 84
Calls
Call 1
Inputs
(cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3)) (sqrt.f64 y))
(pow.f64 (*.f64 (*.f64 (sqrt.f64 y) x) 27) 3)
(*.f64 (*.f64 (sqrt.f64 y) x) 27)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 y) (*.f64 x 27))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (*.f64 x 27))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (sqrt.f64 y) 27))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 y) x) 27)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 y) x) (pow.f64 19683 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 27 (*.f64 (sqrt.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (sqrt.f64 y) (*.f64 x 27)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y (*.f64 x x))) (*.f64 (cbrt.f64 (*.f64 (sqrt.f64 y) x)) 27))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 (sqrt.f64 y)) (*.f64 x 27)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (cbrt.f64 (*.f64 (sqrt.f64 y) x))) (cbrt.f64 (*.f64 (*.f64 y (*.f64 x x)) 729)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (cbrt.f64 (*.f64 (sqrt.f64 y) x))) (pow.f64 (*.f64 (*.f64 y (*.f64 x x)) 729) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (*.f64 y (*.f64 x x)) 729)) (*.f64 3 (cbrt.f64 (*.f64 (sqrt.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (sqrt.f64 y) x)) (*.f64 (sqrt.f64 (*.f64 (sqrt.f64 y) x)) 27))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y 1/4) (*.f64 (pow.f64 y 1/4) (*.f64 x 27)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))) (sqrt.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 27) (sqrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (*.f64 y (*.f64 x x)) 729) 1/3) (*.f64 3 (cbrt.f64 (*.f64 (sqrt.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (*.f64 (sqrt.f64 y) (*.f64 x 27)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27)) 3/2) 1/3) (pow.f64 (pow.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27)) 3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 27 (sqrt.f64 y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 27 (cbrt.f64 (*.f64 y (*.f64 x x)))) (cbrt.f64 (*.f64 (sqrt.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 27 (sqrt.f64 (*.f64 (sqrt.f64 y) x))) (sqrt.f64 (*.f64 (sqrt.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 19683 (pow.f64 (*.f64 (sqrt.f64 y) x) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (cbrt.f64 (*.f64 (sqrt.f64 y) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 y (*.f64 x x)) 729))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 y)) x) 27))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 y (*.f64 x 27))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 x 27)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 x 27)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (*.f64 x 27))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (*.f64 x 27))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (*.f64 x 27)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 y (*.f64 x 27))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 x 27)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 y 3/2) (*.f64 19683 (pow.f64 (*.f64 (sqrt.f64 y) x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 19683 (pow.f64 (*.f64 (sqrt.f64 y) x) 3)) (pow.f64 y 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (*.f64 x 27))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 x 27))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (*.f64 x 27))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 19683 (pow.f64 (*.f64 (sqrt.f64 y) x) 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (*.f64 (*.f64 x 27) (*.f64 (*.f64 y (*.f64 x x)) 729)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 y) x) (*.f64 27 (*.f64 (*.f64 y (*.f64 x x)) 729)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 27 (*.f64 (*.f64 (sqrt.f64 y) x) (*.f64 (*.f64 y (*.f64 x x)) 729)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27)) (*.f64 (*.f64 y (*.f64 x x)) 729))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 19683 (pow.f64 (*.f64 (sqrt.f64 y) x) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 19683 (pow.f64 (*.f64 (sqrt.f64 y) x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 19683 (pow.f64 (*.f64 (sqrt.f64 y) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y 3/2) (pow.f64 (*.f64 x 27) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (*.f64 x x)) 729) (*.f64 (sqrt.f64 y) (*.f64 x 27)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (*.f64 y (*.f64 x x)) 729)) (*.f64 (*.f64 3 (cbrt.f64 (*.f64 (sqrt.f64 y) x))) (*.f64 (*.f64 y (*.f64 x x)) 729)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))) (*.f64 (sqrt.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))) (*.f64 (*.f64 y (*.f64 x x)) 729)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (sqrt.f64 y) x) 3) 19683)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27)) 3/2) (pow.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 y (*.f64 x x)) 729)) 3) (*.f64 (sqrt.f64 y) (*.f64 x 27)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))) 3) (pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 y (*.f64 x x)) 729) (sqrt.f64 y)) (*.f64 x 27))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 y (*.f64 x x)) 729) (*.f64 (sqrt.f64 y) x)) 27)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 y (*.f64 x x)) 729) 27) (*.f64 (sqrt.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 y (*.f64 x x)) 729) 1) (*.f64 (sqrt.f64 y) (*.f64 x 27)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 y (*.f64 x x)) 729) (cbrt.f64 (*.f64 (*.f64 y (*.f64 x x)) 729))) (*.f64 3 (cbrt.f64 (*.f64 (sqrt.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 y (*.f64 x x)) 729) (sqrt.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27)))) (sqrt.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 y) x) 3)) 19683))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 19683 (pow.f64 (*.f64 (sqrt.f64 y) x) 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 19683 (pow.f64 (*.f64 (sqrt.f64 y) x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (log.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 19683 (pow.f64 (*.f64 (sqrt.f64 y) x) 3))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 y) (*.f64 x 27))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 19683 (pow.f64 (*.f64 (sqrt.f64 y) x) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (cbrt.f64 (*.f64 (sqrt.f64 y) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 y (*.f64 x x)) 729))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 y)) x) 27))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 19683 (pow.f64 (*.f64 (sqrt.f64 y) x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 y) (*.f64 x 27))))))))

simplify92.0ms (2.9%)

Algorithm
egg-herbie
Rules
1097×fma-def_binary64
471×associate-*l*_binary64
460×unsub-neg_binary64
369×cube-prod_binary64
360×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
033652
191652
2262628
3611628
41820628
53492628
66106628
77265628
87891628
Stop Event
node limit
Counts
144 → 85
Calls
Call 1
Inputs
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 -1 (*.f64 (sqrt.f64 y) (*.f64 (cbrt.f64 -19683) x)))
(*.f64 -1 (*.f64 (sqrt.f64 y) (*.f64 (cbrt.f64 -19683) x)))
(*.f64 -1 (*.f64 (sqrt.f64 y) (*.f64 (cbrt.f64 -19683) x)))
(*.f64 -1 (*.f64 (sqrt.f64 y) (*.f64 (cbrt.f64 -19683) x)))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 -1 (*.f64 (cbrt.f64 19683) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x))))
(*.f64 -1 (*.f64 (cbrt.f64 19683) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x))))
(*.f64 -1 (*.f64 (cbrt.f64 19683) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x))))
(*.f64 -1 (*.f64 (cbrt.f64 19683) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x))))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 -1 (*.f64 (cbrt.f64 -19683) (*.f64 y x)))
(*.f64 -1 (*.f64 (cbrt.f64 -19683) (*.f64 y x)))
(*.f64 -1 (*.f64 (cbrt.f64 -19683) (*.f64 y x)))
(*.f64 -1 (*.f64 (cbrt.f64 -19683) (*.f64 y x)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
Outputs
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (cbrt.f64 19683) (*.f64 x (sqrt.f64 y)))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (cbrt.f64 19683) (*.f64 x (sqrt.f64 y)))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (cbrt.f64 19683) (*.f64 x (sqrt.f64 y)))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (cbrt.f64 19683) (*.f64 x (sqrt.f64 y)))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (cbrt.f64 19683) (*.f64 x (sqrt.f64 y)))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (cbrt.f64 19683) (*.f64 x (sqrt.f64 y)))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (cbrt.f64 19683) (*.f64 x (sqrt.f64 y)))
(*.f64 (*.f64 (cbrt.f64 19683) x) (sqrt.f64 y))
(*.f64 (cbrt.f64 19683) (*.f64 x (sqrt.f64 y)))
(*.f64 -1 (*.f64 (sqrt.f64 y) (*.f64 (cbrt.f64 -19683) x)))
(neg.f64 (*.f64 (sqrt.f64 y) (*.f64 x (cbrt.f64 -19683))))
(*.f64 (sqrt.f64 y) (neg.f64 (*.f64 x (cbrt.f64 -19683))))
(*.f64 (sqrt.f64 y) (*.f64 x (neg.f64 (cbrt.f64 -19683))))
(*.f64 x (*.f64 (cbrt.f64 -19683) (neg.f64 (sqrt.f64 y))))
(*.f64 (*.f64 x (cbrt.f64 -19683)) (neg.f64 (sqrt.f64 y)))
(*.f64 -1 (*.f64 (sqrt.f64 y) (*.f64 (cbrt.f64 -19683) x)))
(neg.f64 (*.f64 (sqrt.f64 y) (*.f64 x (cbrt.f64 -19683))))
(*.f64 (sqrt.f64 y) (neg.f64 (*.f64 x (cbrt.f64 -19683))))
(*.f64 (sqrt.f64 y) (*.f64 x (neg.f64 (cbrt.f64 -19683))))
(*.f64 x (*.f64 (cbrt.f64 -19683) (neg.f64 (sqrt.f64 y))))
(*.f64 (*.f64 x (cbrt.f64 -19683)) (neg.f64 (sqrt.f64 y)))
(*.f64 -1 (*.f64 (sqrt.f64 y) (*.f64 (cbrt.f64 -19683) x)))
(neg.f64 (*.f64 (sqrt.f64 y) (*.f64 x (cbrt.f64 -19683))))
(*.f64 (sqrt.f64 y) (neg.f64 (*.f64 x (cbrt.f64 -19683))))
(*.f64 (sqrt.f64 y) (*.f64 x (neg.f64 (cbrt.f64 -19683))))
(*.f64 x (*.f64 (cbrt.f64 -19683) (neg.f64 (sqrt.f64 y))))
(*.f64 (*.f64 x (cbrt.f64 -19683)) (neg.f64 (sqrt.f64 y)))
(*.f64 -1 (*.f64 (sqrt.f64 y) (*.f64 (cbrt.f64 -19683) x)))
(neg.f64 (*.f64 (sqrt.f64 y) (*.f64 x (cbrt.f64 -19683))))
(*.f64 (sqrt.f64 y) (neg.f64 (*.f64 x (cbrt.f64 -19683))))
(*.f64 (sqrt.f64 y) (*.f64 x (neg.f64 (cbrt.f64 -19683))))
(*.f64 x (*.f64 (cbrt.f64 -19683) (neg.f64 (sqrt.f64 y))))
(*.f64 (*.f64 x (cbrt.f64 -19683)) (neg.f64 (sqrt.f64 y)))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 -1 (*.f64 (cbrt.f64 19683) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x))))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 -1 (*.f64 (cbrt.f64 19683) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x))))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 -1 (*.f64 (cbrt.f64 19683) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x))))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 -1 (*.f64 (cbrt.f64 19683) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x))))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 x y))
(*.f64 x (*.f64 (cbrt.f64 19683) y))
(*.f64 -1 (*.f64 (cbrt.f64 -19683) (*.f64 y x)))
(neg.f64 (*.f64 (cbrt.f64 -19683) (*.f64 x y)))
(*.f64 (cbrt.f64 -19683) (neg.f64 (*.f64 x y)))
(*.f64 x (*.f64 y (neg.f64 (cbrt.f64 -19683))))
(*.f64 x (*.f64 (cbrt.f64 -19683) (neg.f64 y)))
(*.f64 -1 (*.f64 (cbrt.f64 -19683) (*.f64 y x)))
(neg.f64 (*.f64 (cbrt.f64 -19683) (*.f64 x y)))
(*.f64 (cbrt.f64 -19683) (neg.f64 (*.f64 x y)))
(*.f64 x (*.f64 y (neg.f64 (cbrt.f64 -19683))))
(*.f64 x (*.f64 (cbrt.f64 -19683) (neg.f64 y)))
(*.f64 -1 (*.f64 (cbrt.f64 -19683) (*.f64 y x)))
(neg.f64 (*.f64 (cbrt.f64 -19683) (*.f64 x y)))
(*.f64 (cbrt.f64 -19683) (neg.f64 (*.f64 x y)))
(*.f64 x (*.f64 y (neg.f64 (cbrt.f64 -19683))))
(*.f64 x (*.f64 (cbrt.f64 -19683) (neg.f64 y)))
(*.f64 -1 (*.f64 (cbrt.f64 -19683) (*.f64 y x)))
(neg.f64 (*.f64 (cbrt.f64 -19683) (*.f64 x y)))
(*.f64 (cbrt.f64 -19683) (neg.f64 (*.f64 x y)))
(*.f64 x (*.f64 y (neg.f64 (cbrt.f64 -19683))))
(*.f64 x (*.f64 (cbrt.f64 -19683) (neg.f64 y)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 (*.f64 19683 (sqrt.f64 (pow.f64 y 3))) (pow.f64 x 3))
(*.f64 (pow.f64 x 3) (*.f64 19683 (sqrt.f64 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3) (*.f64 19683 (pow.f64 y 3/2)))
(*.f64 (pow.f64 y 3/2) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3/2) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 (*.f64 19683 (sqrt.f64 (pow.f64 y 3))) (pow.f64 x 3))
(*.f64 (pow.f64 x 3) (*.f64 19683 (sqrt.f64 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3) (*.f64 19683 (pow.f64 y 3/2)))
(*.f64 (pow.f64 y 3/2) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3/2) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 (*.f64 19683 (sqrt.f64 (pow.f64 y 3))) (pow.f64 x 3))
(*.f64 (pow.f64 x 3) (*.f64 19683 (sqrt.f64 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3) (*.f64 19683 (pow.f64 y 3/2)))
(*.f64 (pow.f64 y 3/2) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3/2) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 (*.f64 19683 (sqrt.f64 (pow.f64 y 3))) (pow.f64 x 3))
(*.f64 (pow.f64 x 3) (*.f64 19683 (sqrt.f64 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3) (*.f64 19683 (pow.f64 y 3/2)))
(*.f64 (pow.f64 y 3/2) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3/2) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 (*.f64 19683 (sqrt.f64 (pow.f64 y 3))) (pow.f64 x 3))
(*.f64 (pow.f64 x 3) (*.f64 19683 (sqrt.f64 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3) (*.f64 19683 (pow.f64 y 3/2)))
(*.f64 (pow.f64 y 3/2) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3/2) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 (*.f64 19683 (sqrt.f64 (pow.f64 y 3))) (pow.f64 x 3))
(*.f64 (pow.f64 x 3) (*.f64 19683 (sqrt.f64 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3) (*.f64 19683 (pow.f64 y 3/2)))
(*.f64 (pow.f64 y 3/2) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3/2) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 (*.f64 19683 (sqrt.f64 (pow.f64 y 3))) (pow.f64 x 3))
(*.f64 (pow.f64 x 3) (*.f64 19683 (sqrt.f64 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3) (*.f64 19683 (pow.f64 y 3/2)))
(*.f64 (pow.f64 y 3/2) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3/2) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 (*.f64 19683 (sqrt.f64 (pow.f64 y 3))) (pow.f64 x 3))
(*.f64 (pow.f64 x 3) (*.f64 19683 (sqrt.f64 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3) (*.f64 19683 (pow.f64 y 3/2)))
(*.f64 (pow.f64 y 3/2) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3/2) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 (*.f64 19683 (sqrt.f64 (pow.f64 y 3))) (pow.f64 x 3))
(*.f64 (pow.f64 x 3) (*.f64 19683 (sqrt.f64 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3) (*.f64 19683 (pow.f64 y 3/2)))
(*.f64 (pow.f64 y 3/2) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3/2) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 (*.f64 19683 (sqrt.f64 (pow.f64 y 3))) (pow.f64 x 3))
(*.f64 (pow.f64 x 3) (*.f64 19683 (sqrt.f64 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3) (*.f64 19683 (pow.f64 y 3/2)))
(*.f64 (pow.f64 y 3/2) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3/2) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 (*.f64 19683 (sqrt.f64 (pow.f64 y 3))) (pow.f64 x 3))
(*.f64 (pow.f64 x 3) (*.f64 19683 (sqrt.f64 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3) (*.f64 19683 (pow.f64 y 3/2)))
(*.f64 (pow.f64 y 3/2) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3/2) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (sqrt.f64 (pow.f64 y 3)) (pow.f64 x 3)))
(*.f64 (*.f64 19683 (sqrt.f64 (pow.f64 y 3))) (pow.f64 x 3))
(*.f64 (pow.f64 x 3) (*.f64 19683 (sqrt.f64 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3) (*.f64 19683 (pow.f64 y 3/2)))
(*.f64 (pow.f64 y 3/2) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3/2) (pow.f64 x 3)))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 x 27))
(*.f64 x (*.f64 (sqrt.f64 y) 27))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 x 27))
(*.f64 x (*.f64 (sqrt.f64 y) 27))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 x 27))
(*.f64 x (*.f64 (sqrt.f64 y) 27))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 x 27))
(*.f64 x (*.f64 (sqrt.f64 y) 27))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 x 27))
(*.f64 x (*.f64 (sqrt.f64 y) 27))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 x 27))
(*.f64 x (*.f64 (sqrt.f64 y) 27))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 x 27))
(*.f64 x (*.f64 (sqrt.f64 y) 27))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 x 27))
(*.f64 x (*.f64 (sqrt.f64 y) 27))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 x 27))
(*.f64 x (*.f64 (sqrt.f64 y) 27))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 x 27))
(*.f64 x (*.f64 (sqrt.f64 y) 27))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 x 27))
(*.f64 x (*.f64 (sqrt.f64 y) 27))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 x 27))
(*.f64 x (*.f64 (sqrt.f64 y) 27))

eval44.0ms (1.4%)

Compiler

Compiled 1608 to 889 computations (44.7% saved)

prune32.0ms (1%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New1261127
Fresh000
Picked101
Done178
Total1288136
Error
0.0b
Counts
136 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
14.9b
(*.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))
0.5b
(*.f64 (*.f64 x 27) y)
48.4b
(*.f64 (*.f64 y (*.f64 27 (sqrt.f64 x))) (sqrt.f64 x))
0.8b
(*.f64 (cbrt.f64 19683) (*.f64 y x))
1.3b
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
1.3b
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)
0.3b
(*.f64 27 (*.f64 y x))
0.5b
(*.f64 x (*.f64 27 y))
Compiler

Compiled 73 to 54 computations (26% saved)

regimes34.0ms (1.1%)

Accuracy

Total -48.3b remaining (-15128.9%)

Threshold costs -48.3b (-15128.9%)

Counts
8 → 1
Calls
Call 1
Inputs
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 x 27) y)
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
(*.f64 (*.f64 y (*.f64 27 (sqrt.f64 x))) (sqrt.f64 x))
(*.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))
Outputs
(*.f64 27 (*.f64 y x))
Calls

4 calls:

11.0ms
(*.f64 x 27)
6.0ms
x
6.0ms
(*.f64 (*.f64 x 27) y)
6.0ms
y
Results
ErrorSegmentsBranch
0.3b1x
0.3b1y
0.3b1(*.f64 (*.f64 x 27) y)
0.3b1(*.f64 x 27)
Compiler

Compiled 77 to 51 computations (33.8% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
11214
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
Outputs
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))

end20.0ms (0.6%)

Stop Event
fuel
Remove

(sort x y)

Compiler

Compiled 40 to 28 computations (30% saved)

Profiling

Loading profile data...