Details

Time bar (total: 4.7s)

analyze62.0ms (1.3%)

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)

sample1.0s (21.9%)

Results
1.0s8256×body256valid
13.0ms149×body256infinite
Bogosity

preprocess29.0ms (0.6%)

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)

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

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

Compiled 14 to 10 computations (28.6% saved)

localize14.0ms (0.3%)

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)

series7.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite71.0ms (1.5%)

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

simplify18.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
06168
110168
217168
319168
Stop Event
saturated
Counts
35 → 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))

localize12.0ms (0.3%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite70.0ms (1.5%)

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

simplify17.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
06168
110168
217168
319168
Stop Event
saturated
Counts
35 → 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))

eval7.0ms (0.2%)

Compiler

Compiled 182 to 133 computations (26.9% saved)

prune10.0ms (0.2%)

Pruning

5 alts after pruning (3 fresh and 2 done)

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

Compiled 41 to 31 computations (24.4% saved)

localize20.0ms (0.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 x (*.f64 27 y))
0.3b
(pow.f64 (*.f64 x (*.f64 27 y)) 3)
29.1b
(cbrt.f64 (pow.f64 (*.f64 x (*.f64 27 y)) 3))
Compiler

Compiled 29 to 20 computations (31% saved)

series25.0ms (0.5%)

Counts
2 → 48
Calls

12 calls:

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

rewrite75.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
720×pow1_binary64
675×add-log-exp_binary64
675×log1p-expm1-u_binary64
675×expm1-log1p-u_binary64
658×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify167.0ms (3.5%)

Algorithm
egg-herbie
Rules
1127×fma-def_binary64
1056×unswap-sqr_binary64
517×associate-*l*_binary64
393×*-commutative_binary64
387×sqr-pow_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
018544
147544
2138544
3451544
41697472
52231472
62355472
72489472
82922472
93780472
104337472
116026472
126284472
136561472
147924472
Stop Event
node limit
Counts
112 → 69
Calls
Call 1
Inputs
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
Outputs
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(neg.f64 (*.f64 y (*.f64 x (cbrt.f64 -19683))))
(*.f64 (*.f64 x (cbrt.f64 -19683)) (neg.f64 y))
(*.f64 (*.f64 y x) (neg.f64 (cbrt.f64 -19683)))
(*.f64 y (*.f64 x (neg.f64 (cbrt.f64 -19683))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(neg.f64 (*.f64 y (*.f64 x (cbrt.f64 -19683))))
(*.f64 (*.f64 x (cbrt.f64 -19683)) (neg.f64 y))
(*.f64 (*.f64 y x) (neg.f64 (cbrt.f64 -19683)))
(*.f64 y (*.f64 x (neg.f64 (cbrt.f64 -19683))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(neg.f64 (*.f64 y (*.f64 x (cbrt.f64 -19683))))
(*.f64 (*.f64 x (cbrt.f64 -19683)) (neg.f64 y))
(*.f64 (*.f64 y x) (neg.f64 (cbrt.f64 -19683)))
(*.f64 y (*.f64 x (neg.f64 (cbrt.f64 -19683))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(neg.f64 (*.f64 y (*.f64 x (cbrt.f64 -19683))))
(*.f64 (*.f64 x (cbrt.f64 -19683)) (neg.f64 y))
(*.f64 (*.f64 y x) (neg.f64 (cbrt.f64 -19683)))
(*.f64 y (*.f64 x (neg.f64 (cbrt.f64 -19683))))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 (cbrt.f64 19683) (*.f64 y x))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(neg.f64 (*.f64 y (*.f64 x (cbrt.f64 -19683))))
(*.f64 (*.f64 x (cbrt.f64 -19683)) (neg.f64 y))
(*.f64 (*.f64 y x) (neg.f64 (cbrt.f64 -19683)))
(*.f64 y (*.f64 x (neg.f64 (cbrt.f64 -19683))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(neg.f64 (*.f64 y (*.f64 x (cbrt.f64 -19683))))
(*.f64 (*.f64 x (cbrt.f64 -19683)) (neg.f64 y))
(*.f64 (*.f64 y x) (neg.f64 (cbrt.f64 -19683)))
(*.f64 y (*.f64 x (neg.f64 (cbrt.f64 -19683))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(neg.f64 (*.f64 y (*.f64 x (cbrt.f64 -19683))))
(*.f64 (*.f64 x (cbrt.f64 -19683)) (neg.f64 y))
(*.f64 (*.f64 y x) (neg.f64 (cbrt.f64 -19683)))
(*.f64 y (*.f64 x (neg.f64 (cbrt.f64 -19683))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -19683) x)))
(neg.f64 (*.f64 y (*.f64 x (cbrt.f64 -19683))))
(*.f64 (*.f64 x (cbrt.f64 -19683)) (neg.f64 y))
(*.f64 (*.f64 y x) (neg.f64 (cbrt.f64 -19683)))
(*.f64 y (*.f64 x (neg.f64 (cbrt.f64 -19683))))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))
(*.f64 19683 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))
(*.f64 (pow.f64 y 3) (*.f64 19683 (pow.f64 x 3)))
(*.f64 19683 (pow.f64 (*.f64 y x) 3))

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)

series3.0ms (0.1%)

Counts
1 → 0
Calls

6 calls:

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

rewrite78.0ms (1.7%)

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

simplify12.0ms (0.3%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize22.0ms (0.5%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 19 computations (32.1% saved)

series24.0ms (0.5%)

Counts
2 → 0
Calls

12 calls:

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

rewrite78.0ms (1.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify12.0ms (0.3%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

eval84.0ms (1.8%)

Compiler

Compiled 1780 to 1286 computations (27.8% saved)

prune52.0ms (1.1%)

Pruning

9 alts after pruning (4 fresh and 5 done)

PrunedKeptTotal
New1614165
Fresh000
Picked011
Done044
Total1619170
Error
0.0b
Counts
170 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (*.f64 x 27) y)
30.1b
(cbrt.f64 (pow.f64 (*.f64 x (*.f64 27 y)) 3))
0.2b
(*.f64 x (*.f64 27 y))
17.6b
(*.f64 (*.f64 (*.f64 x 27) (sqrt.f64 y)) (sqrt.f64 y))
0.7b
(*.f64 (cbrt.f64 19683) (*.f64 y x))
23.7b
(*.f64 (*.f64 x (cbrt.f64 (*.f64 729 (*.f64 y y)))) (*.f64 (cbrt.f64 y) 3))
37.6b
(sqrt.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 729))
26.5b
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 27 y))) 2)
0.3b
(*.f64 27 (*.f64 y x))
Compiler

Compiled 85 to 63 computations (25.9% saved)

localize23.0ms (0.5%)

Local error

Found 3 expressions with local error:

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

Compiled 29 to 16 computations (44.8% saved)

series164.0ms (3.5%)

Counts
3 → 72
Calls

18 calls:

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

rewrite239.0ms (5.1%)

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

simplify510.0ms (10.8%)

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

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cbrt.f64 19683) (*.f64 y x))
1.0b
(cbrt.f64 19683)
Compiler

Compiled 16 to 9 computations (43.8% saved)

series2.0ms (0%)

Counts
2 → 0
Calls

6 calls:

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

rewrite80.0ms (1.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0712
113912
2160112
Stop Event
node limit
Counts
2 → 26
Calls
Call 1
Inputs
(cbrt.f64 19683)
(*.f64 (cbrt.f64 19683) (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 19683)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 19683) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 19683))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 19683)) (cbrt.f64 (cbrt.f64 387420489)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 387420489)) (cbrt.f64 (cbrt.f64 19683)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 19683 1/6) (pow.f64 19683 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 19683 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 19683) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 19683)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 19683 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 387420489))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 19683)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 19683)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 19683)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 19683)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (cbrt.f64 19683) (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 19683) (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 19683 (pow.f64 (*.f64 y x) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 19683) (*.f64 y x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cbrt.f64 19683) (*.f64 y x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 19683) (*.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 x) y) (cbrt.f64 19683)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 19683 (pow.f64 (*.f64 y x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cbrt.f64 19683) (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cbrt.f64 19683) (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cbrt.f64 19683) (*.f64 y x))))))))

simplify15.0ms (0.3%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize36.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 x (cbrt.f64 (*.f64 729 (*.f64 y y)))) (*.f64 (cbrt.f64 y) 3))
0.4b
(*.f64 729 (*.f64 y y))
0.6b
(cbrt.f64 y)
28.2b
(cbrt.f64 (*.f64 729 (*.f64 y y)))
Compiler

Compiled 47 to 24 computations (48.9% saved)

series33.0ms (0.7%)

Counts
4 → 36
Calls

15 calls:

TimeVariablePointExpression
9.0ms
y
@0
(*.f64 (*.f64 x (cbrt.f64 (*.f64 729 (*.f64 y y)))) (*.f64 (cbrt.f64 y) 3))
7.0ms
x
@0
(*.f64 (*.f64 x (cbrt.f64 (*.f64 729 (*.f64 y y)))) (*.f64 (cbrt.f64 y) 3))
4.0ms
y
@-inf
(*.f64 (*.f64 x (cbrt.f64 (*.f64 729 (*.f64 y y)))) (*.f64 (cbrt.f64 y) 3))
2.0ms
x
@inf
(*.f64 (*.f64 x (cbrt.f64 (*.f64 729 (*.f64 y y)))) (*.f64 (cbrt.f64 y) 3))
2.0ms
y
@inf
(*.f64 (*.f64 x (cbrt.f64 (*.f64 729 (*.f64 y y)))) (*.f64 (cbrt.f64 y) 3))

rewrite137.0ms (2.9%)

Algorithm
batch-egg-rewrite
Rules
560×log-prod_binary64
504×prod-exp_binary64
401×exp-prod_binary64
394×pow-prod-down_binary64
325×pow-unpow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01239
124226
2281526
Stop Event
node limit
Counts
4 → 151
Calls
Call 1
Inputs
(cbrt.f64 (*.f64 729 (*.f64 y y)))
(cbrt.f64 y)
(*.f64 729 (*.f64 y y))
(*.f64 (*.f64 x (cbrt.f64 (*.f64 729 (*.f64 y y)))) (*.f64 (cbrt.f64 y) 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 9 (pow.f64 (cbrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 y) 2)) 9)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 y) 2)) 9))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 y) 2)) 9))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 y) 2)) 9))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 y) (*.f64 3 (*.f64 (cbrt.f64 y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (*.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 y) 3) (*.f64 (cbrt.f64 y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 9 (pow.f64 (cbrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 9 (pow.f64 (cbrt.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))) (pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 y) 3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 y) 3)) 4) (cbrt.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 y) 2) 9)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 y 27) 1/6) (sqrt.f64 (*.f64 y 27)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 729 y)) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y 27)) (pow.f64 (*.f64 y 27) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (cbrt.f64 y) 3) (cbrt.f64 y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (cbrt.f64 y) 3) 3) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 y) 3)) 5) (cbrt.f64 (*.f64 (cbrt.f64 y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 729 (*.f64 y y)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 y) 3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 531441 (pow.f64 y 4)) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y 27) 6) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 81 (*.f64 (cbrt.f64 y) y)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 y) 3)) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y 27) 1/6) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y 27) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1/3) (log.f64 (*.f64 729 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2)))) 2)) (cbrt.f64 (log.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))))) (sqrt.f64 (log.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 81 (*.f64 (cbrt.f64 y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 y) 2)) 9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 729 (*.f64 y y))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (cbrt.f64 y) 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 729 (*.f64 y y))) 1) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 729 (*.f64 y y))) 1/3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cbrt.f64 y) 3)) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cbrt.f64 y) 3)) 1) (log.f64 (*.f64 (cbrt.f64 y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 y) 3)) (*.f64 (log.f64 (*.f64 (cbrt.f64 y) 3)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cbrt.f64 y) 3)) 1) (*.f64 (log.f64 (*.f64 (cbrt.f64 y) 3)) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 y))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 y)))) (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 y)) (pow.f64 (cbrt.f64 (cbrt.f64 y)) 2))))) (#(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 (pow.f64 y 1/6) (pow.f64 y 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 y 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y y) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 y 3) 1/9)))) (#(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 (cbrt.f64 y) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 y) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 y 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1/3) (log.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 y))) 2)) (cbrt.f64 (log.f64 (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cbrt.f64 y)))) (sqrt.f64 (log.f64 (cbrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.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 exp.f64 (*.f64 (log.f64 y) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (cbrt.f64 y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/6 (log.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 y) 1) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 y) 1/3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 y)) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 729 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (*.f64 729 y))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (*.f64 729 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (*.f64 729 y)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (*.f64 729 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 729 (*.f64 y y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 729 (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 y) 3) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 531441 (pow.f64 y 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y 27) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))) 9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y 27) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 729 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 729 (*.f64 y y)))) 2)) (cbrt.f64 (log.f64 (*.f64 729 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 729 (*.f64 y y))))) (sqrt.f64 (log.f64 (*.f64 729 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 531441 (pow.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 y) (*.f64 729 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 729 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y 27) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 729 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 729 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 729 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 729 (*.f64 y y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 y 27) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 y 27)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 729 (*.f64 y y))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 729 (*.f64 y y))) 1/3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))) 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 y) 1) (log.f64 (*.f64 729 y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 729 (*.f64 y y))) 1/3) (log.f64 (*.f64 81 (*.f64 (cbrt.f64 y) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))) 1) (log.f64 (*.f64 81 (*.f64 (cbrt.f64 y) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 81 (*.f64 (cbrt.f64 y) y))) (*.f64 (log.f64 (*.f64 729 (*.f64 y y))) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 81 (*.f64 (cbrt.f64 y) y))) (*.f64 (log.f64 (*.f64 9 (pow.f64 (cbrt.f64 y) 2))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 729 y)) (*.f64 (log.f64 y) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 y 27)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 y 27))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 y 27)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 y 27)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 y 27)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (*.f64 y 27)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 y 27)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 y 27)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 y 27)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 y 27))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (*.f64 y 27))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 x (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 (cbrt.f64 y) 3) (cbrt.f64 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (*.f64 y 27)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (*.f64 y 27)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (*.f64 y 27))))) (sqrt.f64 (log.f64 (*.f64 x (*.f64 y 27)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (*.f64 y 27)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (*.f64 y 27)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 y 27)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (*.f64 y 27)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (*.f64 y 27))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (*.f64 y 27)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (*.f64 y 27)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (*.f64 y 27)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 x (*.f64 y 27))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 x) 1) (log.f64 (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (+.f64 (log.f64 (*.f64 x 9)) (*.f64 2/3 (log.f64 y))) 1) (log.f64 (*.f64 (cbrt.f64 y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (+.f64 (log.f64 (*.f64 x 9)) (*.f64 2/3 (log.f64 y))) (*.f64 (log.f64 (*.f64 (cbrt.f64 y) 3)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (+.f64 (log.f64 (*.f64 x 9)) (*.f64 2/3 (log.f64 y))) 1) (*.f64 (log.f64 (*.f64 (cbrt.f64 y) 3)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cbrt.f64 y) 3)) 1) (+.f64 (log.f64 (*.f64 x 9)) (*.f64 2/3 (log.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 y) 3)) (*.f64 (+.f64 (log.f64 (*.f64 x 9)) (*.f64 2/3 (log.f64 y))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cbrt.f64 y) 3)) 1) (*.f64 (+.f64 (log.f64 (*.f64 x 9)) (*.f64 2/3 (log.f64 y))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 y 27)) (*.f64 (log.f64 x) 1)))))))

simplify167.0ms (3.5%)

Algorithm
egg-herbie
Rules
862×fabs-mul_binary64
837×cube-prod_binary64
792×sqr-pow_binary64
684×unswap-sqr_binary64
424×pow-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
018392
140392
2109392
3315392
4895392
51022392
61115392
71306392
81667392
92624392
102840392
113176392
123615392
134184392
144928392
155794392
166848392
Stop Event
node limit
Counts
187 → 157
Calls
Call 1
Inputs
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (pow.f64 y 2))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 -3 (*.f64 y (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 729) x))))
(*.f64 -3 (*.f64 y (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 729) x))))
(*.f64 -3 (*.f64 y (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 729) x))))
(*.f64 -3 (*.f64 y (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 729) x))))
Outputs
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (*.f64 y y))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (*.f64 y y))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (*.f64 y y))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (*.f64 y y))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (*.f64 y y))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (*.f64 y y))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (*.f64 y y))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (*.f64 y y))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (*.f64 y y))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (*.f64 y y))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (*.f64 y y))
(*.f64 729 (pow.f64 y 2))
(*.f64 729 (*.f64 y y))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 3 y) (*.f64 (cbrt.f64 729) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) x) 3))
(*.f64 x (*.f64 y (*.f64 3 (cbrt.f64 729))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 y (*.f64 3 x)))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 -3 (*.f64 y (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 729) x))))
(*.f64 (*.f64 -3 y) (*.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 729)) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) (*.f64 x (cbrt.f64 -1))) -3))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 y (*.f64 -3 (cbrt.f64 -1))))
(*.f64 (cbrt.f64 729) (*.f64 (*.f64 y x) (*.f64 -3 (cbrt.f64 -1))))
(*.f64 (cbrt.f64 729) (*.f64 x (*.f64 y (*.f64 -3 (cbrt.f64 -1)))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 x (*.f64 -3 (cbrt.f64 -1)))))
(*.f64 (cbrt.f64 729) (*.f64 -3 (*.f64 y (*.f64 x (cbrt.f64 -1)))))
(*.f64 -3 (*.f64 y (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 729) x))))
(*.f64 (*.f64 -3 y) (*.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 729)) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) (*.f64 x (cbrt.f64 -1))) -3))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 y (*.f64 -3 (cbrt.f64 -1))))
(*.f64 (cbrt.f64 729) (*.f64 (*.f64 y x) (*.f64 -3 (cbrt.f64 -1))))
(*.f64 (cbrt.f64 729) (*.f64 x (*.f64 y (*.f64 -3 (cbrt.f64 -1)))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 x (*.f64 -3 (cbrt.f64 -1)))))
(*.f64 (cbrt.f64 729) (*.f64 -3 (*.f64 y (*.f64 x (cbrt.f64 -1)))))
(*.f64 -3 (*.f64 y (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 729) x))))
(*.f64 (*.f64 -3 y) (*.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 729)) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) (*.f64 x (cbrt.f64 -1))) -3))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 y (*.f64 -3 (cbrt.f64 -1))))
(*.f64 (cbrt.f64 729) (*.f64 (*.f64 y x) (*.f64 -3 (cbrt.f64 -1))))
(*.f64 (cbrt.f64 729) (*.f64 x (*.f64 y (*.f64 -3 (cbrt.f64 -1)))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 x (*.f64 -3 (cbrt.f64 -1)))))
(*.f64 (cbrt.f64 729) (*.f64 -3 (*.f64 y (*.f64 x (cbrt.f64 -1)))))
(*.f64 -3 (*.f64 y (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 729) x))))
(*.f64 (*.f64 -3 y) (*.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 729)) x))
(*.f64 y (*.f64 (*.f64 (cbrt.f64 729) (*.f64 x (cbrt.f64 -1))) -3))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 y (*.f64 -3 (cbrt.f64 -1))))
(*.f64 (cbrt.f64 729) (*.f64 (*.f64 y x) (*.f64 -3 (cbrt.f64 -1))))
(*.f64 (cbrt.f64 729) (*.f64 x (*.f64 y (*.f64 -3 (cbrt.f64 -1)))))
(*.f64 y (*.f64 (cbrt.f64 729) (*.f64 x (*.f64 -3 (cbrt.f64 -1)))))
(*.f64 (cbrt.f64 729) (*.f64 -3 (*.f64 y (*.f64 x (cbrt.f64 -1)))))

localize21.0ms (0.4%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 13 computations (48% saved)

series14.0ms (0.3%)

Counts
2 → 36
Calls

12 calls:

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

rewrite105.0ms (2.2%)

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

simplify174.0ms (3.7%)

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

eval141.0ms (3%)

Compiler

Compiled 3701 to 2387 computations (35.5% saved)

prune45.0ms (1%)

Pruning

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New2754279
Fresh000
Picked101
Done448
Total2808288
Error
0b
Counts
288 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 x (*.f64 27 y))
0.2b
(*.f64 (*.f64 x 27) y)
0.7b
(*.f64 (cbrt.f64 19683) (*.f64 y x))
1.0b
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
1.0b
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
39.6b
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 y x) y) x) 729))
0.8b
(*.f64 (sqrt.f64 (cbrt.f64 387420489)) (*.f64 y x))
0.3b
(*.f64 27 (*.f64 y x))
Compiler

Compiled 70 to 52 computations (25.7% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 y x) y)
0.2b
(*.f64 (*.f64 (*.f64 (*.f64 y x) y) x) 729)
3.4b
(*.f64 (*.f64 (*.f64 y x) y) x)
21.6b
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 y x) y) x) 729))
Compiler

Compiled 39 to 11 computations (71.8% saved)

series7.0ms (0.2%)

Counts
4 → 96
Calls

24 calls:

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

rewrite72.0ms (1.5%)

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

Useful iterations: 1 (0.0ms)

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

simplify274.0ms (5.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
015888
135888
278888
3223888
41117888
51809888
61875888
71975888
82095888
92217888
102364888
112528888
122717888
132932888
143162888
153406888
163671888
173950888
184250888
194564888
204634888
216582888
226827888
237051888
247172888
Stop Event
node limit
Counts
160 → 73
Calls
Call 1
Inputs
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -27 (*.f64 y x))
(*.f64 -27 (*.f64 y x))
(*.f64 -27 (*.f64 y x))
(*.f64 -27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 -27 (*.f64 y x))
(*.f64 -27 (*.f64 y x))
(*.f64 -27 (*.f64 y x))
(*.f64 -27 (*.f64 y x))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
Outputs
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
(*.f64 (*.f64 27 y) x)
(*.f64 y (*.f64 27 x))
(*.f64 x (*.f64 27 y))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 -27 (*.f64 y x))
(*.f64 (*.f64 y x) -27)
(*.f64 (*.f64 -27 x) y)
(*.f64 x (*.f64 y -27))
(*.f64 y (*.f64 x -27))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 y y) (*.f64 x x))
(*.f64 x (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 y x))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 729 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 y y) (*.f64 x x)) 729)
(*.f64 (*.f64 (*.f64 (*.f64 y y) 729) x) x)
(*.f64 x (*.f64 x (*.f64 (*.f64 y y) 729)))
(*.f64 y (*.f64 x (*.f64 y (*.f64 x 729))))
(*.f64 y (*.f64 y (*.f64 x (*.f64 x 729))))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))

localize13.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 y (*.f64 (cbrt.f64 729) x))
0.3b
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
1.0b
(cbrt.f64 729)
Compiler

Compiled 26 to 19 computations (26.9% saved)

series5.0ms (0.1%)

Counts
3 → 0
Calls

12 calls:

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

rewrite67.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
790×pow1_binary64
735×add-log-exp_binary64
735×log1p-expm1-u_binary64
735×expm1-log1p-u_binary64
719×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize10.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(*.f64 3 (*.f64 y x))
0.3b
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
1.0b
(cbrt.f64 729)
Compiler

Compiled 24 to 14 computations (41.7% saved)

series4.0ms (0.1%)

Counts
2 → 24
Calls

12 calls:

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

rewrite57.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
774×pow1_binary64
720×add-log-exp_binary64
720×log1p-expm1-u_binary64
720×expm1-log1p-u_binary64
705×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify14.0ms (0.3%)

Algorithm
egg-herbie
Rules
25×associate-*l*_binary64
20×associate-*r*_binary64
17×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09288
116288
238288
372288
483288
Stop Event
saturated
Counts
48 → 26
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
Outputs
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y (*.f64 (cbrt.f64 729) x)))
(*.f64 (*.f64 (cbrt.f64 729) x) (*.f64 3 y))
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))

localize10.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (sqrt.f64 (cbrt.f64 387420489)) (*.f64 y x))
1.0b
(cbrt.f64 387420489)
Compiler

Compiled 20 to 13 computations (35% saved)

series14.0ms (0.3%)

Counts
2 → 0
Calls

6 calls:

TimeVariablePointExpression
9.0ms
x
@inf
(*.f64 (sqrt.f64 (cbrt.f64 387420489)) (*.f64 y x))
2.0ms
y
@0
(*.f64 (sqrt.f64 (cbrt.f64 387420489)) (*.f64 y x))
2.0ms
x
@0
(*.f64 (sqrt.f64 (cbrt.f64 387420489)) (*.f64 y x))
1.0ms
x
@-inf
(*.f64 (sqrt.f64 (cbrt.f64 387420489)) (*.f64 y x))
0.0ms
y
@-inf
(*.f64 (sqrt.f64 (cbrt.f64 387420489)) (*.f64 y x))

rewrite57.0ms (1.2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0814
116013
2182313
Stop Event
node limit
Counts
2 → 33
Calls
Call 1
Inputs
(cbrt.f64 387420489)
(*.f64 (sqrt.f64 (cbrt.f64 387420489)) (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 387420489)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 387420489) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 387420489 1/6) (pow.f64 387420489 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 387420489))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 387420489)) (cbrt.f64 (cbrt.f64 150094635296999121)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 387420489)) (*.f64 (cbrt.f64 (pow.f64 387420489 1/6)) (pow.f64 387420489 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 150094635296999121)) (cbrt.f64 (cbrt.f64 387420489)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 387420489) 1/4) (*.f64 (pow.f64 (cbrt.f64 387420489) 1/4) (pow.f64 387420489 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 387420489 1/6) (pow.f64 (cbrt.f64 387420489) 1/4)) (pow.f64 (cbrt.f64 387420489) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 387420489 1/6) (cbrt.f64 (cbrt.f64 387420489))) (cbrt.f64 (pow.f64 387420489 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 387420489 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 387420489) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 387420489 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 150094635296999121) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 387420489)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 150094635296999121))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 387420489)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 387420489)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 387420489)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 387420489)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 387420489 1/6) (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 387420489 1/6) (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 387420489 1/6) (*.f64 y x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 387420489 1/6) (*.f64 y x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 387420489 1/6) (*.f64 y x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (cbrt.f64 387420489) (pow.f64 (*.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (pow.f64 387420489 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 387420489 1/6) (*.f64 y x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 387420489) 3/2) (pow.f64 (*.f64 y x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 (cbrt.f64 387420489) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 387420489 1/6) (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 387420489 1/6) (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 387420489 1/6) (*.f64 y x))))))))

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

eval40.0ms (0.8%)

Compiler

Compiled 1612 to 1077 computations (33.2% saved)

prune23.0ms (0.5%)

Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New1553158
Fresh000
Picked011
Done347
Total1588166
Error
0b
Counts
166 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(*.f64 27 (*.f64 y x))
0.4b
(*.f64 9 (*.f64 3 (*.f64 y x)))
0.2b
(*.f64 x (*.f64 27 y))
0.2b
(*.f64 (*.f64 x 27) y)
1.0b
(*.f64 (cbrt.f64 729) (*.f64 3 (*.f64 y x)))
0.8b
(*.f64 (sqrt.f64 (cbrt.f64 387420489)) (*.f64 y x))
25.0b
(-.f64 (+.f64 1 (*.f64 3 (*.f64 9 (*.f64 x y)))) 1)
0.3b
(*.f64 3 (*.f64 y (*.f64 9 x)))
Compiler

Compiled 71 to 55 computations (22.5% saved)

regimes50.0ms (1%)

Accuracy

Total -55.5b remaining (-23668%)

Threshold costs -55.5b (-23668%)

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

5 calls:

10.0ms
(*.f64 x 27)
9.0ms
y
9.0ms
(*.f64 x 27)
9.0ms
x
8.0ms
(*.f64 (*.f64 x 27) y)
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 150 to 100 computations (33.3% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
11214
Stop Event
fuel
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)

soundness7.0ms (0.1%)

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)

end18.0ms (0.4%)

Remove

(sort x y)

Compiler

Compiled 26 to 18 computations (30.8% saved)

Profiling

Loading profile data...