Details

Time bar (total: 3.7s)

analyze127.0ms (3.5%)

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)

sample1.2s (32.5%)

Results
1.1s8256×body256valid
12.0ms152×body256invalid

preprocess19.0ms (0.5%)

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)

simplify7.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.4b
(*.f64 (*.f64 x 27) y)
0.2b
(*.f64 x (*.f64 27 y))
Compiler

Compiled 14 to 10 computations (28.6% saved)

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.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
y
@-inf
(*.f64 x (*.f64 27 y))

rewrite80.0ms (2.2%)

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 expm1.f64 (log1p.f64 (*.f64 x (*.f64 27 y))))))) (#(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))))))))

simplify13.0ms (0.3%)

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 → 12
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 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))

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite46.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 y) (*.f64 x 27)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (*.f64 27 y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 27 y))))))) (#(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))))))))

simplify52.0ms (1.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 → 12
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 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))

eval11.0ms (0.3%)

Compiler

Compiled 182 to 133 computations (26.9% saved)

prune5.0ms (0.1%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New21324
Fresh000
Picked011
Done011
Total21526
Error
0.0b
Counts
26 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.4b
(*.f64 (*.f64 x 27) y)
0.3b
(*.f64 27 (*.f64 y x))
0.2b
(*.f64 x (*.f64 27 y))
1.1b
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)
25.8b
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)
Compiler

Compiled 41 to 31 computations (24.4% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 6 computations (53.8% saved)

series2.0ms (0%)

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

rewrite49.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 expm1.f64 (log1p.f64 (*.f64 27 (*.f64 y x))))))) (#(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))))))))

simplify8.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

localize43.0ms (1.2%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 19 computations (32.1% saved)

series11.0ms (0.3%)

Counts
2 → 0
Calls

12 calls:

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

rewrite68.0ms (1.9%)

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)))) (pow.f64 (cbrt.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 (pow.f64 (cbrt.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 expm1.f64 (log1p.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 -.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 (pow.f64 (cbrt.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 (pow.f64 (cbrt.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) (pow.f64 (cbrt.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) (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 expm1.f64 (log1p.f64 (*.f64 x (*.f64 27 y))))))) (#(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))))))))

simplify34.0ms (0.9%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize20.0ms (0.5%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 19 computations (32.1% saved)

series14.0ms (0.4%)

Counts
2 → 0
Calls

12 calls:

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

rewrite112.0ms (3%)

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 expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 x (*.f64 27 y)))))))) (#(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 -.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 (cbrt.f64 (*.f64 729 (*.f64 y y))) (*.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 (cbrt.f64 (*.f64 729 (*.f64 y y)))) (*.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) (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 expm1.f64 (log1p.f64 (*.f64 x (*.f64 27 y))))))) (#(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))))))))

simplify8.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

eval53.0ms (1.4%)

Compiler

Compiled 1757 to 1275 computations (27.4% saved)

prune328.0ms (8.9%)

Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New1563159
Fresh000
Picked011
Done134
Total1577164
Error
0b
Counts
164 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
1.1b
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 27 y)))
0.3b
(*.f64 27 (*.f64 y x))
0.2b
(*.f64 x (*.f64 27 y))
35.5b
(sqrt.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729))
0.4b
(*.f64 (*.f64 x 27) y)
1.2b
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
25.8b
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)
Compiler

Compiled 64 to 48 computations (25% saved)

localize21.0ms (0.6%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (*.f64 y x) 2)
0.3b
(*.f64 (pow.f64 (*.f64 y x) 2) 729)
22.5b
(sqrt.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729))
Compiler

Compiled 29 to 16 computations (44.8% saved)

series18.0ms (0.5%)

Counts
3 → 72
Calls

18 calls:

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

rewrite85.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
758×pow1_binary64
704×add-log-exp_binary64
704×log1p-expm1-u_binary64
704×expm1-log1p-u_binary64
686×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0929
118824
2205524
Stop Event
node limit
Counts
3 → 58
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729))
(*.f64 (pow.f64 (*.f64 y x) 2) 729)
(pow.f64 (*.f64 y x) 2)
Outputs
((#(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 (*.f64 y x) (pow.f64 729 1/2))))) (#(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 (pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 2) (*.f64 (cbrt.f64 (*.f64 y x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) (pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 2))))) (#(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 27 (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 y x) 4) 531441))) (sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 729 1/2) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (*.f64 (*.f64 y x) 27))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 y x) 4) 531441)) 1/2) (pow.f64 (pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 y x) 27) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 y x) 27) 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 (*.f64 y x) 27)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 y x) 27))))) (#(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 expm1.f64 (log1p.f64 (*.f64 (*.f64 y x) 27)))))) (#(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 -.f64 (+.f64 1 (*.f64 (pow.f64 (*.f64 y x) 2) 729)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 y x) 27) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 y x) 4) 531441) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (*.f64 y x) 4) 531441))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 729) (pow.f64 (*.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 y x) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 x (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 y (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y x) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 y x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 y x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 y x) 4)) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (cbrt.f64 (pow.f64 (*.f64 y x) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (*.f64 (cbrt.f64 (*.f64 y x)) (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (sqrt.f64 (*.f64 y x)) (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y x) (sqrt.f64 (*.f64 y x))) (sqrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y x) y) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y x) x) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y x) (pow.f64 (cbrt.f64 (*.f64 y x)) 2)) (cbrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 y x) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (*.f64 y x))))))))

simplify209.0ms (5.7%)

Algorithm
egg-herbie
Rules
899×unswap-sqr_binary64
709×fabs-mul_binary64
700×sqr-pow_binary64
667×cube-prod_binary64
355×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014720
133720
276720
3223720
41056720
51656720
61722720
71822720
81942720
92064720
102211720
113671720
123900720
134198720
144529720
154948720
165566720
176340720
186835720
197213720
207641720
Stop Event
node limit
Counts
130 → 65
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))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
Outputs
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 x (*.f64 y -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 x (*.f64 y -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 x (*.f64 y -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 x (*.f64 y -27))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 x (*.f64 27 y))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 x (*.f64 y -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 x (*.f64 y -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 x (*.f64 y -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 x (*.f64 y -27))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 729 (*.f64 x (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 (*.f64 x (*.f64 y y)) 729))
(*.f64 y (*.f64 x (*.f64 x (*.f64 y 729))))
(*.f64 y (*.f64 y (*.f64 729 (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))

localize15.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 27 y)))
0.4b
(*.f64 (cbrt.f64 x) (*.f64 27 y))
0.5b
(pow.f64 (cbrt.f64 x) 2)
0.6b
(cbrt.f64 x)
Compiler

Compiled 32 to 18 computations (43.8% saved)

series19.0ms (0.5%)

Counts
4 → 36
Calls

18 calls:

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

rewrite75.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
866×pow1_binary64
802×add-log-exp_binary64
802×log1p-expm1-u_binary64
802×expm1-log1p-u_binary64
785×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
120525
2227025
Stop Event
node limit
Counts
4 → 63
Calls
Call 1
Inputs
(cbrt.f64 x)
(pow.f64 (cbrt.f64 x) 2)
(*.f64 (cbrt.f64 x) (*.f64 27 y))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 27 y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) (cbrt.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/6) (pow.f64 x 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 x (cbrt.f64 x)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 x) 1/3) (pow.f64 (sqrt.f64 x) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 x 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (cbrt.f64 x) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) (cbrt.f64 (*.f64 x (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2) (*.f64 (cbrt.f64 (cbrt.f64 x)) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (cbrt.f64 x))) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (pow.f64 x 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/6) (*.f64 (pow.f64 x 1/6) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 (cbrt.f64 x)) 2)) (cbrt.f64 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (cbrt.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (cbrt.f64 x) (*.f64 27 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 x) (*.f64 27 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cbrt.f64 x) (*.f64 27 y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 x) (*.f64 27 y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cbrt.f64 x) (*.f64 27 y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 x) (*.f64 27 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cbrt.f64 x)) (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cbrt.f64 x) (*.f64 27 y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 x (pow.f64 (*.f64 27 y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 27 y) 3) x))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cbrt.f64 x) (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cbrt.f64 x) (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cbrt.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 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 cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (*.f64 27 y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 x x) (pow.f64 (*.f64 (cbrt.f64 x) (*.f64 27 y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (cbrt.f64 x) (*.f64 27 y)) 3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 27 y))))))) (#(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))))))))

simplify163.0ms (4.4%)

Algorithm
egg-herbie
Rules
818×unswap-sqr_binary64
753×cube-prod_binary64
629×sqr-pow_binary64
498×unpow3_binary64
492×cube-mult_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
012276
132276
266276
3118276
4282276
5903276
61144276
71470276
82755276
92859276
103021276
113233276
123539276
133970276
144540276
155222276
166081276
176746276
187303276
197867276
Stop Event
node limit
Counts
99 → 67
Calls
Call 1
Inputs
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.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 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (cbrt.f64 x) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (cbrt.f64 x) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (cbrt.f64 x) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (cbrt.f64 x) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (cbrt.f64 x) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (cbrt.f64 x) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (cbrt.f64 x) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (cbrt.f64 x) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (cbrt.f64 x) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (cbrt.f64 x) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (cbrt.f64 x) y))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 x) 1/3) y))
(*.f64 27 (*.f64 (cbrt.f64 x) y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 (*.f64 27 x) y)
(*.f64 27 (*.f64 x y))
(*.f64 y (*.f64 27 x))

localize19.0ms (0.5%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cbrt.f64 (*.f64 y x)) 3)
0.6b
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
11.1b
(cbrt.f64 (*.f64 y x))
Compiler

Compiled 26 to 11 computations (57.7% saved)

series16.0ms (0.4%)

Counts
3 → 0
Calls

18 calls:

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

rewrite89.0ms (2.4%)

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 expm1.f64 (log1p.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 -.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 (cbrt.f64 (sqrt.f64 (*.f64 (*.f64 y x) 27))) (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 (*.f64 y x) 27))) (*.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 (cbrt.f64 (sqrt.f64 (*.f64 (*.f64 y x) 27))) 3) (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (*.f64 y x) 27))) 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) (cbrt.f64 (sqrt.f64 (*.f64 (*.f64 y x) 27)))) (cbrt.f64 (sqrt.f64 (*.f64 (*.f64 y x) 27))))))) (#(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 expm1.f64 (log1p.f64 (*.f64 (*.f64 y x) 27)))))) (#(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 -.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 (cbrt.f64 (sqrt.f64 (*.f64 (*.f64 y x) 27))) 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 expm1.f64 (log1p.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3)))))) (#(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)))))))

simplify13.0ms (0.4%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

eval96.0ms (2.6%)

Compiler

Compiled 2501 to 1475 computations (41% saved)

prune40.0ms (1.1%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New2071208
Fresh000
Picked011
Done156
Total2087215
Error
0b
Counts
215 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
1.1b
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 27 y)))
0.3b
(*.f64 27 (*.f64 y x))
37.5b
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 y x) y) x) 729))
1.2b
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
0.4b
(*.f64 (*.f64 x 27) y)
0.2b
(*.f64 x (*.f64 27 y))
25.8b
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)
Compiler

Compiled 66 to 48 computations (27.3% saved)

localize12.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 y x) y)
0.3b
(*.f64 (*.f64 (*.f64 (*.f64 y x) y) x) 729)
3.6b
(*.f64 (*.f64 (*.f64 y x) y) x)
22.5b
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 y x) y) x) 729))
Compiler

Compiled 39 to 11 computations (71.8% saved)

series8.0ms (0.2%)

Counts
4 → 96
Calls

24 calls:

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

rewrite75.0ms (2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0945
118531
2215731
Stop Event
node limit
Counts
4 → 64
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 y x) y) x) 729))
(*.f64 (*.f64 (*.f64 y x) y) x)
(*.f64 (*.f64 (*.f64 (*.f64 y x) y) x) 729)
(*.f64 (*.f64 y x) y)
Outputs
((#(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 (*.f64 y x) (pow.f64 729 1/2))))) (#(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 (pow.f64 (cbrt.f64 (*.f64 (*.f64 y x) 27)) 2) (cbrt.f64 (*.f64 (*.f64 y x) 27)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (*.f64 y x) 27)) (pow.f64 (cbrt.f64 (*.f64 (*.f64 y x) 27)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y (*.f64 y x))) (sqrt.f64 (*.f64 x 729)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y (*.f64 y x))) (pow.f64 (*.f64 x 729) 1/2))))) (#(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 27 (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 y x) 27)) 2) 2)) (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 y x) 27)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 729 1/2) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (*.f64 (*.f64 y x) 27))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 y x) 27)) 2) 2) 1/2) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 y x) 27)) 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 y x) 27) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 y x) 27) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 y x) 27)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 y x) 27)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 y x) 27))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (*.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 expm1.f64 (log1p.f64 (*.f64 (*.f64 y x) 27)))))) (#(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 -.f64 (+.f64 1 (pow.f64 (*.f64 y x) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 y x) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (*.f64 y x) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 y x) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (*.f64 y (*.f64 y x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 y (*.f64 y x)) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 y x) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (*.f64 y x) 2) 729)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 y x) 27) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 y x) 2) 2) 531441) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 y x) 27)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 y x) 2) 2) 531441))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 729) (pow.f64 (*.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 y (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 y x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (*.f64 y x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (*.f64 y x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (*.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 y) (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 y x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 y 3) (pow.f64 (*.f64 y x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 y x))))))))

simplify266.0ms (7.2%)

Algorithm
egg-herbie
Rules
1251×unswap-sqr_binary64
927×sqr-pow_binary64
479×fabs-mul_binary64
440×cube-prod_binary64
368×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
015888
135888
278888
3223888
41117888
51809888
61875888
71975888
82095888
92217888
102364888
112528888
122717888
132932888
143162888
153406888
163671888
173950888
184250888
194564888
204634888
216582888
226827888
237051888
247172888
Stop Event
node limit
Counts
160 → 73
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))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) 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 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.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 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))

eval18.0ms (0.5%)

Compiler

Compiled 768 to 485 computations (36.8% saved)

prune14.0ms (0.4%)

Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New73073
Fresh000
Picked011
Done066
Total73780
Error
0b
Counts
80 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
1.1b
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 27 y)))
0.3b
(*.f64 27 (*.f64 y x))
37.5b
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 y x) y) x) 729))
1.2b
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
0.4b
(*.f64 (*.f64 x 27) y)
0.2b
(*.f64 x (*.f64 27 y))
25.8b
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)
Compiler

Compiled 66 to 48 computations (27.3% saved)

regimes27.0ms (0.7%)

Accuracy

Total -38.6b remaining (-19017%)

Threshold costs -38.6b (-19017%)

Counts
9 → 1
Calls
Call 1
Inputs
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 (*.f64 x 27) y)
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 y x) y) x) 729))
(sqrt.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729))
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 27 y)))
Outputs
(*.f64 x (*.f64 27 y))
Calls

4 calls:

7.0ms
(*.f64 x 27)
6.0ms
y
6.0ms
x
5.0ms
(*.f64 (*.f64 x 27) y)
Results
ErrorSegmentsBranch
0.2b1x
0.2b1y
0.2b1(*.f64 (*.f64 x 27) y)
0.2b1(*.f64 x 27)
Compiler

Compiled 88 to 58 computations (34.1% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 14 to 10 computations (28.6% saved)

soundness14.0ms (0.4%)

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
Compiler

Compiled 14 to 10 computations (28.6% saved)

end37.0ms (1%)

Remove

(sort x y)

Compiler

Compiled 26 to 18 computations (30.8% saved)

Profiling

Loading profile data...