Details

Time bar (total: 4.5s)

analyze54.0ms (1.2%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
37.5%37.5%62.4%0.1%0%0%0%6
53.3%50%43.7%0.1%6.2%0%0%7
63.3%59.3%34.3%0.1%6.2%0%0%8
74.1%67.1%23.4%0.1%9.4%0%0%9
80.2%72.6%18%0.1%9.4%0%0%10
86.4%76.9%12.1%0.1%10.9%0%0%11
89.7%79.8%9.2%0.1%10.9%0%0%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample824.0ms (18.2%)

Results
787.0ms8256×body256valid
15.0ms145×body256infinite
Bogosity

preprocess19.0ms (0.4%)

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)

simplify9.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

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

eval1.0ms (0%)

Compiler

Compiled 12 to 8 computations (33.3% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 14 to 10 computations (28.6% saved)

localize6.0ms (0.1%)

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

rewrite46.0ms (1%)

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

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

series2.0ms (0%)

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)

rewrite43.0ms (1%)

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

simplify11.0ms (0.2%)

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

eval5.0ms (0.1%)

Compiler

Compiled 182 to 133 computations (26.9% saved)

prune5.0ms (0.1%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New22224
Fresh000
Picked011
Done011
Total22426
Error
0.0b
Counts
26 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
1.2b
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)
0.5b
(*.f64 (*.f64 x 27) y)
0.3b
(*.f64 27 (*.f64 y x))
0.2b
(*.f64 x (*.f64 27 y))
Compiler

Compiled 31 to 23 computations (25.8% saved)

localize9.0ms (0.2%)

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

rewrite47.0ms (1%)

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

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

localize14.0ms (0.3%)

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)
7.1b
(cbrt.f64 (*.f64 x (*.f64 27 y)))
Compiler

Compiled 28 to 19 computations (32.1% saved)

series13.0ms (0.3%)

Counts
2 → 0
Calls

12 calls:

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

rewrite62.0ms (1.4%)

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

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

eval25.0ms (0.6%)

Compiler

Compiled 961 to 700 computations (27.2% saved)

prune19.0ms (0.4%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New81586
Fresh000
Picked101
Done033
Total82890
Error
0b
Counts
90 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.5b
(*.f64 (*.f64 x 27) y)
1.3b
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
15.4b
(*.f64 (*.f64 (*.f64 x 27) (sqrt.f64 y)) (sqrt.f64 y))
1.5b
(*.f64 (*.f64 (*.f64 x 27) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
0.3b
(*.f64 27 (*.f64 y x))
15.1b
(*.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))
0.2b
(*.f64 x (*.f64 27 y))
38.7b
(sqrt.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729))
Compiler

Compiled 135 to 99 computations (26.7% saved)

localize160.0ms (3.5%)

Local error

Found 3 expressions with local error:

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

Compiled 26 to 11 computations (57.7% saved)

series162.0ms (3.6%)

Counts
3 → 0
Calls

18 calls:

TimeVariablePointExpression
150.0ms
x
@inf
(*.f64 (cbrt.f64 (*.f64 y x)) 3)
2.0ms
y
@-inf
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
2.0ms
x
@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
@0
(cbrt.f64 (*.f64 y x))

rewrite80.0ms (1.8%)

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

Useful iterations: 1 (0.0ms)

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

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize164.0ms (3.6%)

Local error

Found 3 expressions with local error:

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

Compiled 29 to 16 computations (44.8% saved)

series9.0ms (0.2%)

Counts
3 → 72
Calls

18 calls:

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

rewrite214.0ms (4.7%)

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))
(pow.f64 (*.f64 y x) 2)
(*.f64 (pow.f64 (*.f64 y x) 2) 729)
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 (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))))))))
((#(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)))))))

simplify208.0ms (4.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
014720
133720
276720
3226720
41053720
51648720
61714720
71814720
81934720
92056720
102203720
113663720
123892720
134190720
144525720
154938720
165556720
176327720
186819720
197203720
207631720
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 (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)))
Outputs
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 y (*.f64 x -27))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 x (*.f64 x (*.f64 y y))) 729)
(*.f64 x (*.f64 y (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 y (*.f64 729 (*.f64 y (*.f64 x x))))

localize10.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 13 computations (48% saved)

series9.0ms (0.2%)

Counts
2 → 36
Calls

12 calls:

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

rewrite57.0ms (1.3%)

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

Useful iterations: 0 (0.0ms)

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

simplify144.0ms (3.2%)

Algorithm
egg-herbie
Rules
684×fma-def_binary64
654×fabs-mul_binary64
630×cube-prod_binary64
590×sqr-pow_binary64
450×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
016276
135276
283276
3162276
4383276
51269276
61635276
72008276
82609276
93063276
103406276
113782276
124168276
134638276
145126276
156449276
167382276
Stop Event
node limit
Counts
63 → 31
Calls
Call 1
Inputs
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
Outputs
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 (sqrt.f64 y) x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 x 27))
(*.f64 27 (*.f64 y x))
(*.f64 x (*.f64 27 y))
(*.f64 y (*.f64 27 x))

localize18.0ms (0.4%)

Local error

Found 3 expressions with local error:

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

Compiled 29 to 20 computations (31% saved)

series16.0ms (0.3%)

Counts
3 → 36
Calls

15 calls:

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

rewrite74.0ms (1.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify117.0ms (2.6%)

Algorithm
egg-herbie
Rules
575×fabs-mul_binary64
545×fma-neg_binary64
495×fma-def_binary64
411×cube-prod_binary64
393×distribute-lft-neg-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
019420
143300
2109300
3252300
4684300
51079300
61495300
72023300
82875300
93802300
104592300
115552300
126765300
Stop Event
node limit
Counts
85 → 54
Calls
Call 1
Inputs
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
Outputs
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (pow.f64 (sqrt.f64 -27) 2) x)))
(*.f64 (pow.f64 (sqrt.f64 27) 2) (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 27)) x)
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 27)) x)
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 27)) x)
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 27)) x)
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 27)) x)
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 27)) x)
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 27)) x)
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 27)) x)
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 27)) x)
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 27)) x)
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 27)) x)
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 27) x))
(*.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 27)) x)
(*.f64 x (*.f64 (sqrt.f64 27) (sqrt.f64 y)))
(*.f64 (sqrt.f64 27) (*.f64 x (sqrt.f64 y)))

localize18.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 34 to 20 computations (41.2% saved)

series19.0ms (0.4%)

Counts
4 → 36
Calls

18 calls:

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

rewrite71.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
862×pow1_binary64
798×add-log-exp_binary64
798×log1p-expm1-u_binary64
798×expm1-log1p-u_binary64
781×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify183.0ms (4%)

Algorithm
egg-herbie
Rules
995×sqr-pow_binary64
733×cube-prod_binary64
651×fabs-mul_binary64
450×unswap-sqr_binary64
379×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014312
135312
268312
3142312
4367312
51146312
61562312
72294312
82444312
92670312
102940312
113341312
123880312
134545312
145368312
155980312
166409312
176796312
187018312
197130312
207973312
Stop Event
node limit
Counts
98 → 66
Calls
Call 1
Inputs
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
Outputs
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) x))
(*.f64 27 (*.f64 (cbrt.f64 (*.f64 y y)) x))
(*.f64 (cbrt.f64 (*.f64 y y)) (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 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 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 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))

eval83.0ms (1.8%)

Compiler

Compiled 3778 to 2385 computations (36.9% saved)

prune45.0ms (1%)

Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New3113314
Fresh000
Picked011
Done347
Total3148322
Error
0b
Counts
322 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
1.3b
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
40.1b
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 y x) x) y) 729))
15.1b
(*.f64 (*.f64 27 (*.f64 (sqrt.f64 y) x)) (sqrt.f64 y))
0.2b
(*.f64 x (*.f64 27 y))
0.5b
(*.f64 (*.f64 x 27) y)
1.5b
(*.f64 (*.f64 (*.f64 x 27) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
0.3b
(*.f64 27 (*.f64 y x))
48.3b
(sqrt.f64 (*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729))
Compiler

Compiled 79 to 55 computations (30.4% saved)

localize14.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
19.2b
(sqrt.f64 (*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729))
19.7b
(*.f64 (*.f64 y y) (*.f64 x x))
Compiler

Compiled 37 to 11 computations (70.3% saved)

series5.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

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

rewrite82.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
817×pow1_binary64
759×add-log-exp_binary64
759×log1p-expm1-u_binary64
759×expm1-log1p-u_binary64
737×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0938
118824
2222324
Stop Event
node limit
Counts
3 → 51
Calls
Call 1
Inputs
(*.f64 (*.f64 y y) (*.f64 x x))
(sqrt.f64 (*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
Outputs
((#(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 (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 (cbrt.f64 (pow.f64 (*.f64 y x) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 x 4) (pow.f64 y 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 cbrt.f64 (*.f64 (pow.f64 (*.f64 y y) 3) (pow.f64 (*.f64 x x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x x) 3) (pow.f64 (*.f64 y y) 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 (*.f64 y x) 27)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (sqrt.f64 (*.f64 x (*.f64 x 729))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (pow.f64 (*.f64 x (*.f64 x 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 (*.f64 y x) 27)) (sqrt.f64 (*.f64 (*.f64 y x) 27)))))) (#(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 27 (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 (*.f64 (pow.f64 x 4) (pow.f64 y 4)) 531441))) (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 (cbrt.f64 (*.f64 (*.f64 (pow.f64 x 4) (pow.f64 y 4)) 531441)) 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 (pow.f64 (exp.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 (*.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 (*.f64 (pow.f64 x 4) (pow.f64 y 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 (cbrt.f64 (*.f64 (*.f64 y x) 27)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 (pow.f64 x 4) (pow.f64 y 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)))))))

simplify282.0ms (6.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
014720
133720
276720
3223720
41059720
51656720
61722720
71822720
81942720
92064720
102211720
113671720
123900720
134196720
144527720
154946720
165561720
176341720
186837720
197219720
207647720
Stop Event
node limit
Counts
123 → 58
Calls
Call 1
Inputs
(*.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 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)))
Outputs
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.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 (*.f64 y x) (*.f64 y x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.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 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 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 (*.f64 y x) -27)
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 (*.f64 y x) -27)
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 (*.f64 y x) -27)
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 (*.f64 y x) -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 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 y (*.f64 x 27))
(*.f64 x (*.f64 y 27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 (*.f64 y x) -27)
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 (*.f64 y x) -27)
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 (*.f64 y x) -27)
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 -27 y) x)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 (*.f64 y x) -27)
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 729 (*.f64 y y)) (*.f64 x x))
(*.f64 (*.f64 y y) (*.f64 (*.f64 x x) 729))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) 729)
(*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 729))

localize24.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 y x) x)
0.3b
(*.f64 (*.f64 (*.f64 (*.f64 y x) x) y) 729)
4.2b
(*.f64 (*.f64 (*.f64 y x) x) y)
19.2b
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 y x) x) y) 729))
Compiler

Compiled 39 to 11 computations (71.8% saved)

series14.0ms (0.3%)

Counts
4 → 96
Calls

24 calls:

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

rewrite103.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
817×pow1_binary64
757×add-log-exp_binary64
757×log1p-expm1-u_binary64
757×expm1-log1p-u_binary64
740×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify456.0ms (10.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
015888
135888
278888
3225888
41102888
51805888
61871888
71971888
82091888
92213888
102360888
112524888
122713888
132928888
143158888
153402888
163667888
173946888
184246888
194560888
204630888
216578888
226823888
237041888
247153888
257985888
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 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
(*.f64 y (pow.f64 x 2))
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 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.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 (*.f64 x x) (*.f64 y 729)))
(*.f64 x (*.f64 x (*.f64 y (*.f64 y 729))))
(*.f64 (*.f64 x x) (*.f64 y (*.f64 y 729)))
(*.f64 (*.f64 y x) (*.f64 y (*.f64 x 729)))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))
(*.f64 y (pow.f64 x 2))
(*.f64 y (*.f64 x x))

localize20.0ms (0.4%)

Local error

Found 3 expressions with local error:

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

Compiled 26 to 10 computations (61.5% saved)

series8.0ms (0.2%)

Counts
3 → 24
Calls

18 calls:

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

rewrite70.0ms (1.6%)

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

Useful iterations: 1 (0.0ms)

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

simplify127.0ms (2.8%)

Algorithm
egg-herbie
Rules
759×sqr-pow_binary64
656×fma-def_binary64
620×fabs-mul_binary64
597×cube-prod_binary64
420×pow-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
013168
128168
271168
3149168
4372168
51216168
61545168
71886168
82450168
92835168
103147168
113445168
123789168
134202168
144690168
156015168
166958168
Stop Event
node limit
Counts
61 → 40
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 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 27 (*.f64 y 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 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 -27 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y x)))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)

eval51.0ms (1.1%)

Compiler

Compiled 1745 to 1083 computations (37.9% saved)

prune26.0ms (0.6%)

Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New1710171
Fresh000
Picked011
Done077
Total1718179
Error
0b
Counts
179 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
1.3b
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
40.1b
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 y x) x) y) 729))
15.1b
(*.f64 (*.f64 27 (*.f64 (sqrt.f64 y) x)) (sqrt.f64 y))
0.2b
(*.f64 x (*.f64 27 y))
0.5b
(*.f64 (*.f64 x 27) y)
1.5b
(*.f64 (*.f64 (*.f64 x 27) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
0.3b
(*.f64 27 (*.f64 y x))
48.3b
(sqrt.f64 (*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729))
Compiler

Compiled 79 to 55 computations (30.4% saved)

regimes73.0ms (1.6%)

Accuracy

Total -53.4b remaining (-27328.7%)

Threshold costs -53.4b (-27328.7%)

Counts
12 → 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) x) y) 729))
(sqrt.f64 (*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729))
(pow.f64 (*.f64 (cbrt.f64 (*.f64 y x)) 3) 3)
(sqrt.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729))
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 27 y))) 3)
(*.f64 (*.f64 27 (*.f64 (sqrt.f64 y) x)) (sqrt.f64 y))
(*.f64 (*.f64 (*.f64 x 27) (sqrt.f64 y)) (sqrt.f64 y))
(*.f64 (*.f64 x (sqrt.f64 (*.f64 27 y))) (sqrt.f64 (*.f64 27 y)))
(*.f64 (*.f64 (*.f64 x 27) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
Outputs
(*.f64 x (*.f64 27 y))
Calls

5 calls:

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

Compiled 124 to 79 computations (36.3% 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)

soundness8.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
Compiler

Compiled 14 to 10 computations (28.6% saved)

end39.0ms (0.9%)

Compiler

Compiled 26 to 18 computations (30.8% saved)

Profiling

Loading profile data...