Details

Time bar (total: 9.4s)

analyze1.0ms (0%)

Algorithm
search
Search
TrueOtherFalseIter
0%0%100%0
0%0%100%1
Compiler

Compiled 17 to 12 computations (29.4% saved)

sample3.3s (35.5%)

Results
3.3s8256×body256valid

preprocess77.0ms (0.8%)

Algorithm
egg-herbie
Rules
615×sqr-pow_binary64
565×fma-def_binary64
535×associate-/l/_binary64
415×pow-sqr_binary64
328×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
11414
22514
34814
410914
528214
684114
7149314
8380614
9411914
10465714
11581414
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Outputs
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify67.0ms (0.7%)

Algorithm
egg-herbie
Rules
615×sqr-pow_binary64
565×fma-def_binary64
535×associate-/l/_binary64
415×pow-sqr_binary64
328×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
11414
22514
34814
410914
528214
684114
7149314
8380614
9411914
10465714
11581414
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Outputs
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))

eval1.0ms (0%)

Compiler

Compiled 19 to 12 computations (36.8% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
1.8b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
Compiler

Compiled 20 to 14 computations (30% saved)

localize12.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 10 (*.f64 x x))
0.3b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.3b
(exp.f64 (*.f64 10 (*.f64 x x)))
Compiler

Compiled 28 to 13 computations (53.6% saved)

series6.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
2.0ms
x
@inf
(*.f64 10 (*.f64 x x))
1.0ms
x
@0
(*.f64 10 (*.f64 x x))
1.0ms
x
@0
(exp.f64 (*.f64 10 (*.f64 x x)))
1.0ms
x
@-inf
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
0.0ms
x
@inf
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))

rewrite54.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
703×pow1_binary64
648×add-log-exp_binary64
648×log1p-expm1-u_binary64
648×expm1-log1p-u_binary64
633×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0830
115830
2182230
Stop Event
node limit
Counts
3 → 51
Calls
Call 1
Inputs
(exp.f64 (*.f64 10 (*.f64 x x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 10 (*.f64 x x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 10) (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 10) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) x) 10)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (*.f64 10 x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) x) x)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) (cbrt.f64 (pow.f64 x 4))) (pow.f64 (cbrt.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 10 (*.f64 x x)) (log.f64 (cos.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 10 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 10 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 10 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 10 (*.f64 x x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 10 (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (sqrt.f64 10)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 100 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 10 (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 10 (*.f64 x x))))))))

simplify83.0ms (0.9%)

Algorithm
egg-herbie
Rules
682×associate-/r*_binary64
652×distribute-lft-out_binary64
458×associate-*l/_binary64
394×fma-def_binary64
361×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
035370
183364
2193362
3583360
42095360
53969360
65885360
Stop Event
node limit
Counts
87 → 69
Calls
Call 1
Inputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
Outputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 500/3 (pow.f64 x 6) 1))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(fma.f64 (*.f64 x x) 19/2 (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))

localize16.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
0.4b
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
1.6b
(pow.f64 (exp.f64 x) 10)
Compiler

Compiled 26 to 13 computations (50% saved)

series8.0ms (0.1%)

Counts
3 → 28
Calls

9 calls:

TimeVariablePointExpression
2.0ms
x
@inf
(pow.f64 (exp.f64 x) 10)
1.0ms
x
@-inf
(pow.f64 (exp.f64 x) 10)
1.0ms
x
@-inf
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
1.0ms
x
@0
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
1.0ms
x
@0
(pow.f64 (exp.f64 x) 10)

rewrite166.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
756×pow1_binary64
703×add-log-exp_binary64
703×log1p-expm1-u_binary64
703×expm1-log1p-u_binary64
685×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0829
116729
2196729
Stop Event
node limit
Counts
3 → 45
Calls
Call 1
Inputs
(pow.f64 (exp.f64 x) 10)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 x) 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) 10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) 10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) (cbrt.f64 (pow.f64 (exp.f64 x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) (cbrt.f64 (pow.f64 (exp.f64 x) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) 5) (pow.f64 (exp.f64 x) 5))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) 10) (pow.f64 (cbrt.f64 (exp.f64 x)) 10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) 10) (pow.f64 (sqrt.f64 (exp.f64 x)) 10))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 x) 20))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x 10))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 x) (*.f64 x 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x 10)) (pow.f64 (exp.f64 x) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (*.f64 x 10)) (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (pow.f64 (exp.f64 x) 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x (*.f64 x 10)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x) (pow.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 x (*.f64 x 10))))))))

simplify68.0ms (0.7%)

Algorithm
egg-herbie
Rules
829×fma-def_binary64
604×associate-*l*_binary64
592×distribute-lft-out_binary64
570×distribute-rgt-out_binary64
481×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
048329
1121321
2292315
3901307
44063307
57871307
Stop Event
node limit
Counts
73 → 68
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 10 x))
(+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2))))
(+.f64 (*.f64 500/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2)))))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
Outputs
1
(+.f64 1 (*.f64 10 x))
(fma.f64 10 x 1)
(+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2))))
(+.f64 1 (fma.f64 10 x (*.f64 50 (*.f64 x x))))
(+.f64 1 (fma.f64 50 (*.f64 x x) (*.f64 10 x)))
(fma.f64 10 x (fma.f64 50 (*.f64 x x) 1))
(fma.f64 x (fma.f64 x 50 10) 1)
(+.f64 (*.f64 500/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2)))))
(fma.f64 500/3 (pow.f64 x 3) (+.f64 1 (fma.f64 10 x (*.f64 50 (*.f64 x x)))))
(+.f64 (fma.f64 50 (*.f64 x x) (*.f64 10 x)) (fma.f64 500/3 (pow.f64 x 3) 1))
(fma.f64 500/3 (pow.f64 x 3) (fma.f64 10 x (fma.f64 50 (*.f64 x x) 1)))
(fma.f64 x (fma.f64 x 50 10) (fma.f64 500/3 (pow.f64 x 3) 1))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 x (*.f64 10 x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 10 x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (*.f64 x (*.f64 x 19/2))))
(fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1)
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 x (*.f64 x 19/2)))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (*.f64 (pow.f64 x 6) 102299/720))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))

eval49.0ms (0.5%)

Compiler

Compiled 1731 to 1044 computations (39.7% saved)

prune189.0ms (2%)

Pruning

33 alts after pruning (31 fresh and 2 done)

PrunedKeptTotal
New10631137
Fresh000
Picked011
Done011
Total10633139
Error
0.5b
Counts
139 → 33
Alt Table
Click to see full alt table
StatusErrorProgram
4.4b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (*.f64 x 10)) (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 x 10))))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) (cbrt.f64 (pow.f64 (exp.f64 x) 10))) x))
4.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x)))))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
57.8b
(*.f64 (cos.f64 x) 1)
2.3b
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.4b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
3.6b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
3.4b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
3.3b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)))
3.0b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) 10))) x))
3.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)))
2.0b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) 3)) x))
2.0b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) x)))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) x))
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
5.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) (cbrt.f64 (pow.f64 x 4))) (pow.f64 (cbrt.f64 x) 2)))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) 10) (pow.f64 (sqrt.f64 (exp.f64 x)) 10)) x))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
4.5b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
3.5b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.5b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))))
4.4b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) 10) (pow.f64 (cbrt.f64 (exp.f64 x)) 10)) x))
3.0b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
2.1b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (pow.f64 (exp.f64 x) 5) x)))
Compiler

Compiled 888 to 642 computations (27.7% saved)

localize24.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
0.4b
(pow.f64 (pow.f64 (exp.f64 10) x) x)
1.0b
(pow.f64 (exp.f64 10) x)
Compiler

Compiled 26 to 17 computations (34.6% saved)

series4.0ms (0%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(pow.f64 (pow.f64 (exp.f64 10) x) x)
1.0ms
x
@0
(pow.f64 (exp.f64 10) x)
0.0ms
x
@inf
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
0.0ms
x
@-inf
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
0.0ms
x
@inf
(pow.f64 (pow.f64 (exp.f64 10) x) x)

rewrite77.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0829
116429
2191929
Stop Event
node limit
Counts
3 → 46
Calls
Call 1
Inputs
(pow.f64 (exp.f64 10) x)
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 10) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 10) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 10) x)) (cbrt.f64 (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) (cbrt.f64 (pow.f64 (exp.f64 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) (sqrt.f64 (pow.f64 (exp.f64 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 x) (pow.f64 (exp.f64 10) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 20)) x) (pow.f64 (cbrt.f64 (exp.f64 10)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) (pow.f64 (sqrt.f64 (exp.f64 10)) x))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 20) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 10 x))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 10) (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 x) (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x x)) (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x)) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x)) (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 10 (*.f64 x x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) (pow.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 10 (*.f64 x x))))))))

simplify167.0ms (1.8%)

Algorithm
egg-herbie
Rules
837×fma-def_binary64
595×associate-*l*_binary64
585×distribute-lft-out_binary64
559×distribute-rgt-out_binary64
487×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
049377
1121369
2292363
3920355
44114355
Stop Event
node limit
Counts
82 → 70
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 10 x))
(+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2))))
(+.f64 (*.f64 500/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2)))))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
Outputs
1
(+.f64 1 (*.f64 10 x))
(fma.f64 10 x 1)
(+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2))))
(+.f64 1 (fma.f64 10 x (*.f64 50 (*.f64 x x))))
(+.f64 1 (fma.f64 50 (*.f64 x x) (*.f64 10 x)))
(fma.f64 10 x (fma.f64 x (*.f64 x 50) 1))
(fma.f64 x (fma.f64 x 50 10) 1)
(+.f64 (*.f64 500/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2)))))
(fma.f64 500/3 (pow.f64 x 3) (+.f64 1 (fma.f64 10 x (*.f64 50 (*.f64 x x)))))
(+.f64 (fma.f64 50 (*.f64 x x) (*.f64 10 x)) (fma.f64 500/3 (pow.f64 x 3) 1))
(fma.f64 500/3 (pow.f64 x 3) (fma.f64 10 x (fma.f64 x (*.f64 x 50) 1)))
(fma.f64 500/3 (pow.f64 x 3) (fma.f64 x (fma.f64 x 50 10) 1))
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) (fma.f64 50 (*.f64 x x) 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(fma.f64 50 (pow.f64 x 4) (fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) 1)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 10) (*.f64 x x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (*.f64 x (*.f64 x 19/2))))
(fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 x (*.f64 x 19/2) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1)
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 1081/24 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 x (*.f64 x 19/2)))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))

localize5.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize15.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
0.4b
(pow.f64 (exp.f64 x) x)
1.4b
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
Compiler

Compiled 26 to 10 computations (61.5% saved)

series6.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
1.0ms
x
@0
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
1.0ms
x
@-inf
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
1.0ms
x
@-inf
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
1.0ms
x
@inf
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))

rewrite59.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0829
116629
2193929
Stop Event
node limit
Counts
3 → 45
Calls
Call 1
Inputs
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 x) x)
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 x) (*.f64 x 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) (*.f64 x 5)) (pow.f64 (exp.f64 x) (*.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x 10)) (pow.f64 (exp.f64 x) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (*.f64 x 10)) (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) x)) 2) 10) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) x)) 10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) x)) 10) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) x)) 10))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x (*.f64 x 10)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 x) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) x)) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) x)) 2) (cbrt.f64 (pow.f64 (exp.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 x) x)) (sqrt.f64 (pow.f64 (exp.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 x) (pow.f64 (exp.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) x) (pow.f64 (cbrt.f64 (exp.f64 x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) (pow.f64 (sqrt.f64 (exp.f64 x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x x))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 5)) (sqrt.f64 (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20) (pow.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 x (*.f64 x 10))))))))

simplify95.0ms (1%)

Algorithm
egg-herbie
Rules
586×associate-/l/_binary64
571×fma-def_binary64
492×distribute-rgt-out_binary64
420×associate-*l*_binary64
382×distribute-lft-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
045381
1108369
2265363
3778361
42832361
54708361
66005361
76927361
Stop Event
node limit
Counts
81 → 70
Calls
Call 1
Inputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
1
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 1/6 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4)))))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
Outputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 x (*.f64 10 x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 10 (*.f64 x x) 1)))
(fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 x (*.f64 10 x) 1)))
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
1
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (*.f64 x x))
(fma.f64 x x 1)
(+.f64 1 (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 x x) (*.f64 (pow.f64 x 4) 1/2)))
(+.f64 (fma.f64 x x 1) (*.f64 (pow.f64 x 4) 1/2))
(fma.f64 x x (fma.f64 (pow.f64 x 4) 1/2 1))
(fma.f64 (pow.f64 x 4) 1/2 (fma.f64 x x 1))
(+.f64 1 (+.f64 (*.f64 1/6 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4)))))
(+.f64 1 (fma.f64 1/6 (pow.f64 x 6) (+.f64 (*.f64 x x) (*.f64 (pow.f64 x 4) 1/2))))
(+.f64 1 (fma.f64 (pow.f64 x 6) 1/6 (fma.f64 x x (*.f64 (pow.f64 x 4) 1/2))))
(fma.f64 (pow.f64 x 6) 1/6 (fma.f64 x x (fma.f64 (pow.f64 x 4) 1/2 1)))
(fma.f64 (pow.f64 x 4) 1/2 (fma.f64 (pow.f64 x 6) 1/6 (fma.f64 x x 1)))
(fma.f64 (pow.f64 x 6) 1/6 (fma.f64 (pow.f64 x 4) 1/2 (fma.f64 x x 1)))
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 (fma.f64 (*.f64 x x) 19/2 1) (*.f64 (pow.f64 x 4) 1081/24))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1)
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 1081/24 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 1081/24 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))

localize56.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
0.5b
(*.f64 x (sqrt.f64 10))
0.9b
(exp.f64 (*.f64 x (sqrt.f64 10)))
2.9b
(pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10)))
Compiler

Compiled 39 to 29 computations (25.6% saved)

series36.0ms (0.4%)

Counts
4 → 48
Calls

12 calls:

TimeVariablePointExpression
21.0ms
x
@inf
(pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10)))
7.0ms
x
@0
(pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10)))
1.0ms
x
@0
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
1.0ms
x
@0
(*.f64 x (sqrt.f64 10))
1.0ms
x
@-inf
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))

rewrite86.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
828×pow1_binary64
766×add-log-exp_binary64
766×log1p-expm1-u_binary64
766×expm1-log1p-u_binary64
746×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0951
118237
2211537
Stop Event
node limit
Counts
4 → 67
Calls
Call 1
Inputs
(pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10)))
(exp.f64 (*.f64 x (sqrt.f64 10)))
(*.f64 x (sqrt.f64 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (exp.f64 (*.f64 10 (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (exp.f64 (*.f64 10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) (pow.f64 (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) 2) (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) (sqrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x (sqrt.f64 10))) (exp.f64 (*.f64 10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) 2) (*.f64 x (sqrt.f64 10))) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (exp.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (exp.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (exp.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 10 (*.f64 x x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (expm1.f64 (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 x) (sqrt.f64 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) (sqrt.f64 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) 2) (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) (sqrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) (sqrt.f64 10))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 10)) x)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (*.f64 x (sqrt.f64 10)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (*.f64 x (sqrt.f64 10)))) (sqrt.f64 (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (cbrt.f64 (*.f64 10 (*.f64 x x)))) (cbrt.f64 (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (cbrt.f64 10)) (cbrt.f64 (sqrt.f64 10)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (pow.f64 10 1/4)) (pow.f64 10 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (sqrt.f64 10)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (sqrt.f64 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (sqrt.f64 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 10))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (sqrt.f64 10))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 10 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (*.f64 10 (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 10 (sqrt.f64 10)) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (sqrt.f64 10))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (exp.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 10 (*.f64 x x))))))))

simplify97.0ms (1%)

Algorithm
egg-herbie
Rules
651×unswap-sqr_binary64
425×fma-def_binary64
422×*-commutative_binary64
421×distribute-rgt-neg-in_binary64
418×distribute-lft-neg-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
071706
1206466
2722432
32599431
43906431
55987431
Stop Event
node limit
Counts
115 → 90
Calls
Call 1
Inputs
1
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) 1)
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) (+.f64 1 (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 10) 2)) (pow.f64 (sqrt.f64 10) 2)) (pow.f64 x 3))))))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) (+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 10) 2)) (pow.f64 (sqrt.f64 10) 2)) (pow.f64 x 3)))) (*.f64 (+.f64 (*.f64 1/6 (*.f64 (sqrt.f64 10) (+.f64 (pow.f64 (sqrt.f64 10) 3) (+.f64 (*.f64 2 (pow.f64 (sqrt.f64 10) 3)) (*.f64 -3 (pow.f64 (sqrt.f64 10) 3)))))) (*.f64 1/2 (pow.f64 (sqrt.f64 10) 4))) (pow.f64 x 4)))))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
1
(+.f64 (*.f64 (sqrt.f64 10) x) 1)
(+.f64 (*.f64 (sqrt.f64 10) x) (+.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))))
(+.f64 (*.f64 (sqrt.f64 10) x) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 10) 3) (pow.f64 x 3))) (+.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
1
(+.f64 1 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)) (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 -1 (pow.f64 (sqrt.f64 10) 2))) (pow.f64 x 3))))))
(+.f64 1 (+.f64 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 -1 (pow.f64 (sqrt.f64 10) 2))) (pow.f64 x 3)))) (*.f64 (+.f64 (*.f64 1/6 (*.f64 (sqrt.f64 10) (+.f64 (pow.f64 (sqrt.f64 10) 3) (+.f64 (*.f64 2 (pow.f64 (sqrt.f64 10) 3)) (*.f64 -3 (pow.f64 (sqrt.f64 10) 3)))))) (+.f64 1/24 (+.f64 (*.f64 -1/2 (pow.f64 (sqrt.f64 10) 2)) (*.f64 1/2 (pow.f64 (sqrt.f64 10) 4))))) (pow.f64 x 4)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
Outputs
1
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) 1)
(fma.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x) 1)
(fma.f64 10 (*.f64 x x) 1)
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) (+.f64 1 (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 10) 2)) (pow.f64 (sqrt.f64 10) 2)) (pow.f64 x 3))))))
(fma.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x) 1)
(fma.f64 10 (*.f64 x x) 1)
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) (+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 10) 2)) (pow.f64 (sqrt.f64 10) 2)) (pow.f64 x 3)))) (*.f64 (+.f64 (*.f64 1/6 (*.f64 (sqrt.f64 10) (+.f64 (pow.f64 (sqrt.f64 10) 3) (+.f64 (*.f64 2 (pow.f64 (sqrt.f64 10) 3)) (*.f64 -3 (pow.f64 (sqrt.f64 10) 3)))))) (*.f64 1/2 (pow.f64 (sqrt.f64 10) 4))) (pow.f64 x 4)))))
(+.f64 (fma.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x) 1) (fma.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (*.f64 0 (pow.f64 (sqrt.f64 10) 2)) (pow.f64 x 3))) (*.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 10) (+.f64 (pow.f64 (sqrt.f64 10) 3) (*.f64 (pow.f64 (sqrt.f64 10) 3) -1))) (*.f64 1/2 (pow.f64 (sqrt.f64 10) 4))) (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 1) (fma.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 0 (pow.f64 x 3))) (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 x (*.f64 10 x)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 x (*.f64 10 x)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 x (*.f64 10 x)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 x (*.f64 10 x)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 x (*.f64 10 x)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 x (*.f64 10 x)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 x (*.f64 10 x)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 x (*.f64 10 x)))
1
(+.f64 (*.f64 (sqrt.f64 10) x) 1)
(fma.f64 (sqrt.f64 10) x 1)
(+.f64 (*.f64 (sqrt.f64 10) x) (+.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))))
(+.f64 (fma.f64 (sqrt.f64 10) x 1) (*.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x)) 1/2))
(fma.f64 (sqrt.f64 10) x (fma.f64 5 (*.f64 x x) 1))
(fma.f64 (sqrt.f64 10) x (fma.f64 (*.f64 x x) 5 1))
(fma.f64 (sqrt.f64 10) x (fma.f64 (*.f64 x 5) x 1))
(+.f64 (*.f64 (sqrt.f64 10) x) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 10) 3) (pow.f64 x 3))) (+.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))))
(fma.f64 (sqrt.f64 10) x (fma.f64 1/6 (*.f64 (pow.f64 x 3) (pow.f64 (sqrt.f64 10) 3)) (+.f64 1 (*.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x)) 1/2))))
(fma.f64 (sqrt.f64 10) x (fma.f64 (*.f64 5/3 (sqrt.f64 10)) (pow.f64 x 3) (fma.f64 5 (*.f64 x x) 1)))
(fma.f64 (sqrt.f64 10) x (fma.f64 (*.f64 x x) 5 (fma.f64 (pow.f64 x 3) (*.f64 (sqrt.f64 10) 5/3) 1)))
(+.f64 (fma.f64 (*.f64 x x) 5 1) (*.f64 (sqrt.f64 10) (+.f64 x (*.f64 (pow.f64 x 3) 5/3))))
(+.f64 (fma.f64 (*.f64 x 5) x 1) (*.f64 (sqrt.f64 10) (+.f64 x (*.f64 (pow.f64 x 3) 5/3))))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(pow.f64 (exp.f64 (sqrt.f64 10)) x)
(pow.f64 (exp.f64 x) (sqrt.f64 10))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(pow.f64 (exp.f64 (sqrt.f64 10)) x)
(pow.f64 (exp.f64 x) (sqrt.f64 10))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(pow.f64 (exp.f64 (sqrt.f64 10)) x)
(pow.f64 (exp.f64 x) (sqrt.f64 10))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(pow.f64 (exp.f64 (sqrt.f64 10)) x)
(pow.f64 (exp.f64 x) (sqrt.f64 10))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(pow.f64 (exp.f64 (sqrt.f64 10)) x)
(pow.f64 (exp.f64 x) (sqrt.f64 10))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(pow.f64 (exp.f64 (sqrt.f64 10)) x)
(pow.f64 (exp.f64 x) (sqrt.f64 10))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(pow.f64 (exp.f64 (sqrt.f64 10)) x)
(pow.f64 (exp.f64 x) (sqrt.f64 10))
(exp.f64 (*.f64 (sqrt.f64 10) x))
(pow.f64 (exp.f64 (sqrt.f64 10)) x)
(pow.f64 (exp.f64 x) (sqrt.f64 10))
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
(*.f64 (sqrt.f64 10) x)
1
(+.f64 1 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) (+.f64 (pow.f64 (sqrt.f64 10) 2) -1/2)))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)) (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 -1 (pow.f64 (sqrt.f64 10) 2))) (pow.f64 x 3))))))
(+.f64 1 (*.f64 (*.f64 x x) (+.f64 (pow.f64 (sqrt.f64 10) 2) -1/2)))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 -1 (pow.f64 (sqrt.f64 10) 2))) (pow.f64 x 3)))) (*.f64 (+.f64 (*.f64 1/6 (*.f64 (sqrt.f64 10) (+.f64 (pow.f64 (sqrt.f64 10) 3) (+.f64 (*.f64 2 (pow.f64 (sqrt.f64 10) 3)) (*.f64 -3 (pow.f64 (sqrt.f64 10) 3)))))) (+.f64 1/24 (+.f64 (*.f64 -1/2 (pow.f64 (sqrt.f64 10) 2)) (*.f64 1/2 (pow.f64 (sqrt.f64 10) 4))))) (pow.f64 x 4)))))
(+.f64 1 (fma.f64 (+.f64 (pow.f64 (sqrt.f64 10) 2) -1/2) (*.f64 x x) (fma.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (*.f64 0 (pow.f64 (sqrt.f64 10) 2)) (pow.f64 x 3))) (*.f64 (pow.f64 x 4) (fma.f64 1/6 (*.f64 (sqrt.f64 10) (+.f64 (pow.f64 (sqrt.f64 10) 3) (*.f64 (pow.f64 (sqrt.f64 10) 3) -1))) (+.f64 1/24 (fma.f64 -1/2 (pow.f64 (sqrt.f64 10) 2) (*.f64 1/2 (pow.f64 (sqrt.f64 10) 4)))))))))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (fma.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 0 (pow.f64 x 3))) (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (pow.f64 (exp.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))

localize40.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (exp.f64 x))
0.3b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))))
0.5b
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)))
2.8b
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))
Compiler

Compiled 53 to 25 computations (52.8% saved)

series6.0ms (0.1%)

Counts
4 → 40
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@0
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))
1.0ms
x
@-inf
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)))
1.0ms
x
@inf
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)))
1.0ms
x
@0
(sqrt.f64 (exp.f64 x))
1.0ms
x
@-inf
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))))

rewrite82.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
958×pow1_binary64
891×add-log-exp_binary64
891×log1p-expm1-u_binary64
891×expm1-log1p-u_binary64
102×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01039
120937
2257237
Stop Event
node limit
Counts
4 → 82
Calls
Call 1
Inputs
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))))
(sqrt.f64 (exp.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) (/.f64 x 1/5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5))) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (/.f64 x 1/5)) (pow.f64 (sqrt.f64 (exp.f64 x)) (/.f64 x 1/5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))) (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x 10)) (pow.f64 (exp.f64 x) (/.f64 x 1/5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (/.f64 x 1/5)) (pow.f64 (exp.f64 x) (/.f64 x 1/5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (/.f64 x 1/5)) (pow.f64 (cbrt.f64 (exp.f64 x)) (/.f64 x 1/5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 x))) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 x) 1/4) (*.f64 x 10)) (pow.f64 (pow.f64 (exp.f64 x) 1/4) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x (/.f64 x 1/5)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) (*.f64 x 10))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) (*.f64 1/2 (*.f64 x 20)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) (*.f64 (/.f64 x 1/5) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) (+.f64 (/.f64 x 1/5) (/.f64 x 1/5)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) (/.f64 (*.f64 x 20) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) (*.f64 2 (/.f64 x 1/5)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 (*.f64 x 20) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) x) x)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 1/5))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) (pow.f64 (sqrt.f64 (exp.f64 x)) x)) 10)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) x) 10)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (pow.f64 (cbrt.f64 (*.f64 x 10)) 2)) (cbrt.f64 (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (sqrt.f64 (*.f64 x 10))) (sqrt.f64 (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x (*.f64 x 10)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) (sqrt.f64 (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 x (*.f64 x 10)) (log.f64 (cos.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (exp.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (exp.f64 x))) (cbrt.f64 (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 x)) (cbrt.f64 (sqrt.f64 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) 1/4) (pow.f64 (exp.f64 x) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2)) (sqrt.f64 (cbrt.f64 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) 1/2) (pow.f64 (cbrt.f64 (exp.f64 x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (exp.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (exp.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (exp.f64 x) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x 1/2))))))

simplify124.0ms (1.3%)

Algorithm
egg-herbie
Rules
589×associate-/r*_binary64
467×exp-prod_binary64
410×distribute-lft-out_binary64
372×*-commutative_binary64
354×unswap-sqr_binary64
Iterations

Useful iterations: 7 (0.0ms)

IterNodesCost
065641
1156631
2387481
31274481
42143481
53541449
64811449
77113433
Stop Event
node limit
Counts
122 → 113
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 5 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 125/6 (pow.f64 x 6)) (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4)))))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
1
(+.f64 (*.f64 1/2 x) 1)
(+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (*.f64 1/2 x) 1))
(+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (*.f64 1/2 x) (+.f64 1 (*.f64 1/48 (pow.f64 x 3)))))
Outputs
1
(+.f64 1 (*.f64 5 (pow.f64 x 2)))
(+.f64 1 (*.f64 5 (*.f64 x x)))
(fma.f64 5 (*.f64 x x) 1)
(+.f64 1 (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4))))
(+.f64 1 (fma.f64 5 (*.f64 x x) (*.f64 25/2 (pow.f64 x 4))))
(+.f64 (fma.f64 5 (*.f64 x x) 1) (*.f64 25/2 (pow.f64 x 4)))
(fma.f64 5 (*.f64 x x) (fma.f64 25/2 (pow.f64 x 4) 1))
(+.f64 1 (+.f64 (*.f64 125/6 (pow.f64 x 6)) (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4)))))
(+.f64 1 (fma.f64 125/6 (pow.f64 x 6) (fma.f64 5 (*.f64 x x) (*.f64 25/2 (pow.f64 x 4)))))
(fma.f64 125/6 (pow.f64 x 6) (fma.f64 5 (*.f64 x x) (fma.f64 25/2 (pow.f64 x 4) 1)))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))
(pow.f64 (exp.f64 x) (*.f64 5 x))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 10 1)
(fma.f64 x (*.f64 x 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 (pow.f64 x 4) 50)))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 (pow.f64 x 4) 50 (fma.f64 (*.f64 x x) 10 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 (pow.f64 x 4) 50))))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 (fma.f64 (pow.f64 x 6) 500/3 1)))
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20)
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20)
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20)
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20)
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20)
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20)
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20)
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20)
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 x x)) 10)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 (fma.f64 (*.f64 x x) 19/2 1) (*.f64 (pow.f64 x 4) 1081/24))
(fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 x (*.f64 x 19/2) 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 x (*.f64 x 19/2)))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 x (*.f64 x 19/2) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 x (*.f64 x 19/2))) (fma.f64 (pow.f64 x 4) 1081/24 1))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
1
(+.f64 (*.f64 1/2 x) 1)
(fma.f64 1/2 x 1)
(fma.f64 x 1/2 1)
(+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (*.f64 1/2 x) 1))
(fma.f64 1/8 (*.f64 x x) (fma.f64 1/2 x 1))
(fma.f64 (*.f64 x x) 1/8 (fma.f64 x 1/2 1))
(fma.f64 x 1/2 (fma.f64 x (*.f64 x 1/8) 1))
(+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (*.f64 1/2 x) (+.f64 1 (*.f64 1/48 (pow.f64 x 3)))))
(fma.f64 1/8 (*.f64 x x) (+.f64 (fma.f64 1/2 x 1) (*.f64 1/48 (pow.f64 x 3))))
(fma.f64 (*.f64 x x) 1/8 (fma.f64 x 1/2 (fma.f64 1/48 (pow.f64 x 3) 1)))
(fma.f64 x (*.f64 x 1/8) (fma.f64 x 1/2 (fma.f64 1/48 (pow.f64 x 3) 1)))
(fma.f64 x 1/2 (fma.f64 x (*.f64 x 1/8) (fma.f64 1/48 (pow.f64 x 3) 1)))

eval253.0ms (2.7%)

Compiler

Compiled 6779 to 4078 computations (39.8% saved)

prune189.0ms (2%)

Pruning

48 alts after pruning (43 fresh and 5 done)

PrunedKeptTotal
New38531416
Fresh141226
Picked101
Done156
Total40148449
Error
0.2b
Counts
449 → 48
Alt Table
Click to see full alt table
StatusErrorProgram
4.4b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (*.f64 x 10)) (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 x 10))))
3.6b
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
3.2b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
57.8b
(*.f64 (cos.f64 x) 1)
3.1b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
5.6b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) (pow.f64 (cbrt.f64 (*.f64 x 10)) 2)) (cbrt.f64 (*.f64 x 10))))
2.3b
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
3.5b
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3) (pow.f64 (cos.f64 x) 3)))
3.2b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) 3))))
1.3b
(*.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x)) (cos.f64 x))
3.5b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))
2.3b
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
4.2b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 1) (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
3.5b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
3.1b
(*.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x)) (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
0.5b
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
3.1b
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
3.0b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x)) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
4.9b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) 3) (*.f64 x (sqrt.f64 10))))
3.5b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)))
3.4b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
1.2b
(*.f64 (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) (pow.f64 (sqrt.f64 (exp.f64 10)) x)) x) (cos.f64 x))
3.3b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (exp.f64 x) (*.f64 5 x))))
3.5b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
3.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20))
3.4b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (exp.f64 (*.f64 x (/.f64 x 1/5)))))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (sqrt.f64 (*.f64 10 (*.f64 x x)))) (*.f64 x (sqrt.f64 10))))
3.0b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x)))))
3.5b
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) (sqrt.f64 (exp.f64 (*.f64 10 (*.f64 x x))))))
2.0b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 1/5)))
3.5b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) 2) (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x))))))
3.4b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) 3)) x))
2.1b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (pow.f64 (exp.f64 x) 5) x)))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) 1/3))
2.0b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) x)))
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.5b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) x))) 10))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
Compiler

Compiled 1347 to 978 computations (27.4% saved)

localize30.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 (exp.f64 20) x)
0.1b
(sqrt.f64 (pow.f64 (exp.f64 20) x))
0.3b
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
0.4b
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
Compiler

Compiled 33 to 23 computations (30.3% saved)

series6.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
1.0ms
x
@0
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
1.0ms
x
@-inf
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
0.0ms
x
@inf
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
0.0ms
x
@-inf
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)

rewrite69.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
820×pow1_binary64
760×add-log-exp_binary64
760×log1p-expm1-u_binary64
760×expm1-log1p-u_binary64
738×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0941
118341
2211941
Stop Event
node limit
Counts
4 → 74
Calls
Call 1
Inputs
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 20) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cbrt.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))) (sqrt.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x 1/2)) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 40) x)) (*.f64 x 1/2)) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) x) (pow.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) x))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x (*.f64 20 (*.f64 x 1/2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (cos.f64 x) 2) (pow.f64 (pow.f64 (exp.f64 20) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 x (*.f64 20 (*.f64 x 1/2)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sqrt.f64 (pow.f64 (exp.f64 20) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) (cbrt.f64 (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) (pow.f64 (pow.f64 (exp.f64 20) x) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 40) x))) (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x 1/2)) (sqrt.f64 (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 40)) (*.f64 x 1/2)) (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 20)) (*.f64 x 1/2)) (pow.f64 (sqrt.f64 (exp.f64 20)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 40) x)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 20) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 20) (*.f64 (*.f64 x 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 20) x) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 20 (*.f64 x 1/2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 20) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 20) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) (sqrt.f64 (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 20) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) (cbrt.f64 (pow.f64 (exp.f64 40) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) (*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) (sqrt.f64 (pow.f64 (exp.f64 20) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 40) x)) (cbrt.f64 (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) (*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) (sqrt.f64 (pow.f64 (exp.f64 20) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) (pow.f64 (pow.f64 (exp.f64 20) x) 1/4)) (pow.f64 (pow.f64 (exp.f64 20) x) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 x) (pow.f64 (exp.f64 20) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 40)) x) (pow.f64 (cbrt.f64 (exp.f64 20)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 20)) x) (pow.f64 (sqrt.f64 (exp.f64 20)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) (cbrt.f64 (pow.f64 (exp.f64 20) x))) (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 40) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 20 x))))))

simplify66.0ms (0.7%)

Algorithm
egg-herbie
Rules
996×fma-def_binary64
686×distribute-rgt-out_binary64
650×associate-*l*_binary64
601×distribute-lft-out_binary64
487×unswap-sqr_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
062514
1149502
2367496
31151482
44421434
57291434
Stop Event
node limit
Counts
122 → 106
Calls
Call 1
Inputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
1
(+.f64 1 (*.f64 10 x))
(+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2))))
(+.f64 (*.f64 500/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2)))))
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 20 x)))
1
(+.f64 (*.f64 20 x) 1)
(+.f64 (*.f64 20 x) (+.f64 1 (*.f64 200 (pow.f64 x 2))))
(+.f64 (*.f64 20 x) (+.f64 (*.f64 4000/3 (pow.f64 x 3)) (+.f64 1 (*.f64 200 (pow.f64 x 2)))))
(exp.f64 (*.f64 20 x))
(exp.f64 (*.f64 20 x))
(exp.f64 (*.f64 20 x))
(exp.f64 (*.f64 20 x))
(exp.f64 (*.f64 20 x))
(exp.f64 (*.f64 20 x))
(exp.f64 (*.f64 20 x))
(exp.f64 (*.f64 20 x))
Outputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 x (*.f64 10 x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 50 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 x (*.f64 x 19/2) (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
1
(+.f64 1 (*.f64 10 x))
(fma.f64 10 x 1)
(+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2))))
(+.f64 1 (fma.f64 10 x (*.f64 (*.f64 x x) 50)))
(fma.f64 10 x (fma.f64 x (*.f64 x 50) 1))
(fma.f64 x (fma.f64 x 50 10) 1)
(+.f64 (*.f64 500/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2)))))
(fma.f64 500/3 (pow.f64 x 3) (+.f64 1 (fma.f64 10 x (*.f64 (*.f64 x x) 50))))
(+.f64 (fma.f64 10 x (*.f64 (*.f64 x x) 50)) (fma.f64 500/3 (pow.f64 x 3) 1))
(fma.f64 500/3 (pow.f64 x 3) (fma.f64 10 x (fma.f64 x (*.f64 x 50) 1)))
(fma.f64 x (fma.f64 x 50 10) (fma.f64 500/3 (pow.f64 x 3) 1))
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
1
(+.f64 (*.f64 20 x) 1)
(fma.f64 20 x 1)
(fma.f64 x 20 1)
(+.f64 (*.f64 20 x) (+.f64 1 (*.f64 200 (pow.f64 x 2))))
(+.f64 (fma.f64 20 x 1) (*.f64 (*.f64 x x) 200))
(fma.f64 x 20 (fma.f64 (*.f64 x x) 200 1))
(fma.f64 x (*.f64 x 200) (fma.f64 x 20 1))
(fma.f64 x (fma.f64 x 200 20) 1)
(+.f64 (*.f64 20 x) (+.f64 (*.f64 4000/3 (pow.f64 x 3)) (+.f64 1 (*.f64 200 (pow.f64 x 2)))))
(fma.f64 20 x (fma.f64 4000/3 (pow.f64 x 3) (+.f64 1 (*.f64 (*.f64 x x) 200))))
(fma.f64 x 20 (fma.f64 (pow.f64 x 3) 4000/3 (fma.f64 (*.f64 x x) 200 1)))
(fma.f64 (pow.f64 x 3) 4000/3 (fma.f64 x (*.f64 x 200) (fma.f64 x 20 1)))
(fma.f64 x 20 (fma.f64 (*.f64 x x) (fma.f64 x 4000/3 200) 1))
(exp.f64 (*.f64 20 x))
(pow.f64 (exp.f64 20) x)
(exp.f64 (*.f64 20 x))
(pow.f64 (exp.f64 20) x)
(exp.f64 (*.f64 20 x))
(pow.f64 (exp.f64 20) x)
(exp.f64 (*.f64 20 x))
(pow.f64 (exp.f64 20) x)
(exp.f64 (*.f64 20 x))
(pow.f64 (exp.f64 20) x)
(exp.f64 (*.f64 20 x))
(pow.f64 (exp.f64 20) x)
(exp.f64 (*.f64 20 x))
(pow.f64 (exp.f64 20) x)
(exp.f64 (*.f64 20 x))
(pow.f64 (exp.f64 20) x)

localize14.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 x (*.f64 10 x))
0.3b
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
3.3b
(exp.f64 (*.f64 x (*.f64 10 x)))
Compiler

Compiled 28 to 17 computations (39.3% saved)

series2.0ms (0%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@0
(exp.f64 (*.f64 x (*.f64 10 x)))
0.0ms
x
@inf
(exp.f64 (*.f64 x (*.f64 10 x)))
0.0ms
x
@inf
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
0.0ms
x
@inf
(*.f64 x (*.f64 10 x))
0.0ms
x
@-inf
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))

rewrite152.0ms (1.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0830
115730
2180930
Stop Event
node limit
Counts
3 → 53
Calls
Call 1
Inputs
(exp.f64 (*.f64 x (*.f64 10 x)))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 x (*.f64 10 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 x) (*.f64 x 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) 2) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) (*.f64 x 10))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) 10) x)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 10))) 2)) (cbrt.f64 (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (*.f64 x (*.f64 x 10)))) (sqrt.f64 (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) x) 10)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (pow.f64 (cbrt.f64 (*.f64 x 10)) 2)) (cbrt.f64 (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (sqrt.f64 (*.f64 x 10))) (sqrt.f64 (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 x (*.f64 x 10)) (log.f64 (cos.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (*.f64 x 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 x 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 x 10)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 10))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (*.f64 x 10))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (*.f64 x 10)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (*.f64 x 10)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (*.f64 x 10) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x 10) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (*.f64 x 10))))))))

simplify62.0ms (0.7%)

Algorithm
egg-herbie
Rules
682×associate-/r*_binary64
652×distribute-lft-out_binary64
458×associate-*l/_binary64
394×fma-def_binary64
361×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
035370
183364
2193362
3583360
42095360
53969360
65885360
Stop Event
node limit
Counts
89 → 72
Calls
Call 1
Inputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
Outputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 500/3 (pow.f64 x 6) 1))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(fma.f64 (*.f64 x x) 19/2 (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))

localize22.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
0.4b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))
0.7b
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3)
3.3b
(exp.f64 (*.f64 10 (*.f64 x x)))
Compiler

Compiled 52 to 27 computations (48.1% saved)

series4.0ms (0%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3)
1.0ms
x
@-inf
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3)
1.0ms
x
@0
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3)
0.0ms
x
@inf
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
0.0ms
x
@-inf
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))

rewrite202.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
880×pow1_binary64
822×add-log-exp_binary64
822×log1p-expm1-u_binary64
822×expm1-log1p-u_binary64
800×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01145
122845
2238745
Stop Event
node limit
Counts
3 → 65
Calls
Call 1
Inputs
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3)
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 x) (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2) (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2) (*.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) (*.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3/2) (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2) 3) (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3) (pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2) (pow.f64 (exp.f64 10) (*.f64 x x))) (cos.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2) (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2) 1) (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2) (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2)) (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2) (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (+.f64 (*.f64 10 (*.f64 x x)) (log.f64 (cos.f64 x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) (pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2) (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (*.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (*.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 x)) (*.f64 (sqrt.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2) 1/3) (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3/2) 1/3) (pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (pow.f64 (cbrt.f64 (cos.f64 x)) 2)) (cbrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (sqrt.f64 (cos.f64 x))) (sqrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2)) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 10 (*.f64 x x)) (log.f64 (cos.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 10 (*.f64 x x)) (log.f64 (cos.f64 x))))))))

simplify124.0ms (1.3%)

Algorithm
egg-herbie
Rules
644×associate-*l*_binary64
532×associate-*r*_binary64
421×fma-def_binary64
403×distribute-rgt-out_binary64
325×distribute-lft-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
042540
1103534
2252528
3813498
43531498
54916498
67618498
Stop Event
node limit
Counts
101 → 72
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 57/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 3247/8 (pow.f64 x 4)) (*.f64 57/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 3247/8 (pow.f64 x 4)) (+.f64 (*.f64 924239/240 (pow.f64 x 6)) (*.f64 57/2 (pow.f64 x 2)))))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
Outputs
1
(+.f64 1 (*.f64 57/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 57/2 (*.f64 x x)))
(fma.f64 57/2 (*.f64 x x) 1)
(+.f64 1 (+.f64 (*.f64 3247/8 (pow.f64 x 4)) (*.f64 57/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 3247/8 (pow.f64 x 4) (*.f64 57/2 (*.f64 x x))))
(+.f64 1 (fma.f64 57/2 (*.f64 x x) (*.f64 3247/8 (pow.f64 x 4))))
(fma.f64 57/2 (*.f64 x x) (fma.f64 3247/8 (pow.f64 x 4) 1))
(+.f64 1 (+.f64 (*.f64 3247/8 (pow.f64 x 4)) (+.f64 (*.f64 924239/240 (pow.f64 x 6)) (*.f64 57/2 (pow.f64 x 2)))))
(+.f64 1 (fma.f64 3247/8 (pow.f64 x 4) (fma.f64 924239/240 (pow.f64 x 6) (*.f64 57/2 (*.f64 x x)))))
(+.f64 1 (fma.f64 3247/8 (pow.f64 x 4) (fma.f64 57/2 (*.f64 x x) (*.f64 924239/240 (pow.f64 x 6)))))
(fma.f64 57/2 (*.f64 x x) (fma.f64 924239/240 (pow.f64 x 6) (fma.f64 3247/8 (pow.f64 x 4) 1)))
(fma.f64 3247/8 (pow.f64 x 4) (fma.f64 924239/240 (pow.f64 x 6) (fma.f64 57/2 (*.f64 x x) 1)))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (exp.f64 (*.f64 (*.f64 x x) 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (exp.f64 (*.f64 (*.f64 x x) 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (exp.f64 (*.f64 (*.f64 x x) 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (exp.f64 (*.f64 (*.f64 x x) 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (exp.f64 (*.f64 (*.f64 x x) 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (exp.f64 (*.f64 (*.f64 x x) 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (exp.f64 (*.f64 (*.f64 x x) 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3))
(*.f64 (exp.f64 (*.f64 (*.f64 x x) 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) (pow.f64 (cos.f64 x) 3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30) (pow.f64 (cos.f64 x) 3))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (*.f64 (pow.f64 x 6) 102299/720))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (*.f64 (pow.f64 x 6) 102299/720))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))

localize29.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x)))))
0.5b
(*.f64 x (sqrt.f64 10))
0.9b
(exp.f64 (*.f64 x (sqrt.f64 10)))
2.9b
(pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 57 to 35 computations (38.6% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x)))))
0.0ms
x
@0
(pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x))))
0.0ms
x
@-inf
(pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x))))
0.0ms
x
@0
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x)))))
0.0ms
x
@inf
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x)))))

rewrite82.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
969×pow1_binary64
896×log1p-expm1-u_binary64
896×expm1-log1p-u_binary64
895×add-log-exp_binary64
117×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01243
124223
2282123
Stop Event
node limit
Counts
2 → 30
Calls
Call 1
Inputs
(pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x)))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x (sqrt.f64 10))) (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) 2) (*.f64 x (sqrt.f64 10))) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x (*.f64 x 10)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 x (*.f64 x 10)) (log.f64 (cos.f64 x))))))))

simplify199.0ms (2.1%)

Algorithm
egg-herbie
Rules
729×fma-def_binary64
430×times-frac_binary64
368×exp-prod_binary64
365×*-commutative_binary64
325×sqr-pow_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
064515
1181282
2626248
32231248
43982248
56649248
Stop Event
node limit
Counts
54 → 49
Calls
Call 1
Inputs
1
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) 1)
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) (+.f64 1 (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 10) 2)) (pow.f64 (sqrt.f64 10) 2)) (pow.f64 x 3))))))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) (+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 10) 2)) (pow.f64 (sqrt.f64 10) 2)) (pow.f64 x 3)))) (*.f64 (+.f64 (*.f64 1/6 (*.f64 (sqrt.f64 10) (+.f64 (pow.f64 (sqrt.f64 10) 3) (+.f64 (*.f64 2 (pow.f64 (sqrt.f64 10) 3)) (*.f64 -3 (pow.f64 (sqrt.f64 10) 3)))))) (*.f64 1/2 (pow.f64 (sqrt.f64 10) 4))) (pow.f64 x 4)))))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
1
(+.f64 1 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)) (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 -1 (pow.f64 (sqrt.f64 10) 2))) (pow.f64 x 3))))))
(+.f64 1 (+.f64 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 -1 (pow.f64 (sqrt.f64 10) 2))) (pow.f64 x 3)))) (*.f64 (+.f64 (*.f64 1/6 (*.f64 (sqrt.f64 10) (+.f64 (pow.f64 (sqrt.f64 10) 3) (+.f64 (*.f64 2 (pow.f64 (sqrt.f64 10) 3)) (*.f64 -3 (pow.f64 (sqrt.f64 10) 3)))))) (+.f64 1/24 (+.f64 (*.f64 -1/2 (pow.f64 (sqrt.f64 10) 2)) (*.f64 1/2 (pow.f64 (sqrt.f64 10) 4))))) (pow.f64 x 4)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))))
Outputs
1
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) 1)
(fma.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x) 1)
(fma.f64 10 (*.f64 x x) 1)
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) (+.f64 1 (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 10) 2)) (pow.f64 (sqrt.f64 10) 2)) (pow.f64 x 3))))))
(fma.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x) 1)
(fma.f64 10 (*.f64 x x) 1)
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) (+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 10) 2)) (pow.f64 (sqrt.f64 10) 2)) (pow.f64 x 3)))) (*.f64 (+.f64 (*.f64 1/6 (*.f64 (sqrt.f64 10) (+.f64 (pow.f64 (sqrt.f64 10) 3) (+.f64 (*.f64 2 (pow.f64 (sqrt.f64 10) 3)) (*.f64 -3 (pow.f64 (sqrt.f64 10) 3)))))) (*.f64 1/2 (pow.f64 (sqrt.f64 10) 4))) (pow.f64 x 4)))))
(+.f64 (fma.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x) 1) (fma.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (*.f64 0 (pow.f64 (sqrt.f64 10) 2)) (pow.f64 x 3))) (*.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 10) (+.f64 (pow.f64 (sqrt.f64 10) 3) (*.f64 (pow.f64 (sqrt.f64 10) 3) -1))) (*.f64 1/2 (pow.f64 (sqrt.f64 10) 4))) (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 1) (fma.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 0 (pow.f64 x 3))) (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))
(exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(exp.f64 (*.f64 (neg.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x)))
(exp.f64 (*.f64 (*.f64 x x) -10))
(pow.f64 (pow.f64 (exp.f64 x) x) -10)
(exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(exp.f64 (*.f64 (neg.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x)))
(exp.f64 (*.f64 (*.f64 x x) -10))
(pow.f64 (pow.f64 (exp.f64 x) x) -10)
(exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(exp.f64 (*.f64 (neg.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x)))
(exp.f64 (*.f64 (*.f64 x x) -10))
(pow.f64 (pow.f64 (exp.f64 x) x) -10)
(exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(exp.f64 (*.f64 (neg.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x)))
(exp.f64 (*.f64 (*.f64 x x) -10))
(pow.f64 (pow.f64 (exp.f64 x) x) -10)
1
(+.f64 1 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) (+.f64 (pow.f64 (sqrt.f64 10) 2) -1/2)))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)) (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 -1 (pow.f64 (sqrt.f64 10) 2))) (pow.f64 x 3))))))
(+.f64 1 (*.f64 (*.f64 x x) (+.f64 (pow.f64 (sqrt.f64 10) 2) -1/2)))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (+.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 -1 (pow.f64 (sqrt.f64 10) 2))) (pow.f64 x 3)))) (*.f64 (+.f64 (*.f64 1/6 (*.f64 (sqrt.f64 10) (+.f64 (pow.f64 (sqrt.f64 10) 3) (+.f64 (*.f64 2 (pow.f64 (sqrt.f64 10) 3)) (*.f64 -3 (pow.f64 (sqrt.f64 10) 3)))))) (+.f64 1/24 (+.f64 (*.f64 -1/2 (pow.f64 (sqrt.f64 10) 2)) (*.f64 1/2 (pow.f64 (sqrt.f64 10) 4))))) (pow.f64 x 4)))))
(+.f64 1 (fma.f64 (+.f64 (pow.f64 (sqrt.f64 10) 2) -1/2) (*.f64 x x) (fma.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 (*.f64 0 (pow.f64 (sqrt.f64 10) 2)) (pow.f64 x 3))) (*.f64 (pow.f64 x 4) (fma.f64 1/6 (*.f64 (sqrt.f64 10) (+.f64 (pow.f64 (sqrt.f64 10) 3) (*.f64 (pow.f64 (sqrt.f64 10) 3) -1))) (+.f64 1/24 (fma.f64 -1/2 (pow.f64 (sqrt.f64 10) 2) (*.f64 1/2 (pow.f64 (sqrt.f64 10) 4)))))))))
(+.f64 (fma.f64 (*.f64 x x) 19/2 1) (fma.f64 1/2 (*.f64 (sqrt.f64 10) (*.f64 0 (pow.f64 x 3))) (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))))
(*.f64 (exp.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))))
(*.f64 (exp.f64 (*.f64 (neg.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (*.f64 x x) -10)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) -10) (cos.f64 x))
(/.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) x))
(/.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))))
(*.f64 (exp.f64 (*.f64 (neg.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (*.f64 x x) -10)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) -10) (cos.f64 x))
(/.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) x))
(/.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))))
(*.f64 (exp.f64 (*.f64 (neg.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (*.f64 x x) -10)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) -10) (cos.f64 x))
(/.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) x))
(/.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)))))
(*.f64 (exp.f64 (*.f64 (neg.f64 (pow.f64 (sqrt.f64 10) 2)) (*.f64 x x))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (*.f64 x x) -10)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) -10) (cos.f64 x))
(/.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) x))
(/.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))

localize54.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.0b
(cbrt.f64 (exp.f64 10))
1.6b
(cbrt.f64 (exp.f64 20))
1.6b
(pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))
2.5b
(pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x))
Compiler

Compiled 66 to 42 computations (36.4% saved)

series4.0ms (0%)

Counts
4 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@0
(pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x))
1.0ms
x
@0
(pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))
0.0ms
x
@inf
(pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))
0.0ms
x
@inf
(pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x))
0.0ms
x
@-inf
(pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x))

rewrite65.0ms (0.7%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
01132
121924
2252224
Stop Event
node limit
Counts
4 → 81
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x))
(pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))
(cbrt.f64 (exp.f64 20))
(cbrt.f64 (exp.f64 10))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 20/3) (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 20/3) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 20/3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20/3) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 40/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20/3) (*.f64 x x))) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x))) (pow.f64 (exp.f64 10/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 40/3) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 20/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x))) (*.f64 (sqrt.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x))) (pow.f64 (exp.f64 10/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x)) (pow.f64 (exp.f64 10/3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x)) (sqrt.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x)))) (sqrt.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x x)) (pow.f64 (exp.f64 20/3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 40/3)) (*.f64 x x)) (pow.f64 (cbrt.f64 (exp.f64 20/3)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x)) (cbrt.f64 (pow.f64 (exp.f64 20/3) (*.f64 x x)))) (cbrt.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 40/3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 20/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20/3) (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 20/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 20/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 x x) 20/3))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 10/3) (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 10/3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 20/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20/3) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x))) (sqrt.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 40/3) (*.f64 x x)))) (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 20/3) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 (*.f64 x x) 1/2)) (pow.f64 (exp.f64 10/3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 40/3)) (*.f64 (*.f64 x x) 1/2)) (pow.f64 (cbrt.f64 (exp.f64 20/3)) (*.f64 (*.f64 x x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x x)) (pow.f64 (exp.f64 10/3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 10/3)) (*.f64 x x)) (pow.f64 (sqrt.f64 (exp.f64 10/3)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 20/3)) (*.f64 x x)) (pow.f64 (cbrt.f64 (exp.f64 10/3)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 20/3) (/.f64 (*.f64 (*.f64 x x) 1/2) 2)) (pow.f64 (exp.f64 20/3) (/.f64 (*.f64 (*.f64 x x) 1/2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 20/3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 x x) 10/3))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (exp.f64 20/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 20/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 10/3) (exp.f64 10/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (exp.f64 20/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 20/3)) (cbrt.f64 (exp.f64 40/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 20/3)) (*.f64 (cbrt.f64 (exp.f64 10/3)) (exp.f64 10/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 40/3)) (cbrt.f64 (exp.f64 20/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 10)) (sqrt.f64 (exp.f64 10/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 10/3)) (*.f64 (sqrt.f64 (exp.f64 10/3)) (exp.f64 10/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (exp.f64 20/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 40/3) 1/3) (cbrt.f64 (exp.f64 20/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 10/3) (cbrt.f64 (exp.f64 20/3))) (cbrt.f64 (exp.f64 10/3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 20) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 20/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 10) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 10/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (exp.f64 20/3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (exp.f64 40/3))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (exp.f64 20/3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (exp.f64 20/3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (exp.f64 20/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 20/3)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (exp.f64 10/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 10/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (exp.f64 10/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 10/3)) (cbrt.f64 (exp.f64 20/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 20/3)) (cbrt.f64 (exp.f64 10/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 10/3)) (sqrt.f64 (exp.f64 10/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (exp.f64 40/3))) (sqrt.f64 (cbrt.f64 (exp.f64 20/3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (exp.f64 10/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) 1/3) (pow.f64 (sqrt.f64 (exp.f64 10)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 20) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 20/3) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 10) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 10/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (exp.f64 10/3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (exp.f64 10/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (exp.f64 20/3))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (exp.f64 10/3))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (exp.f64 10/3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (exp.f64 10/3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (exp.f64 10/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 10/3)))))

simplify65.0ms (0.7%)

Algorithm
egg-herbie
Rules
948×fma-def_binary64
833×associate-/l*_binary64
498×unswap-sqr_binary64
432×*-commutative_binary64
430×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
046388
1132244
2426236
31318236
43032236
54539236
65805236
Stop Event
node limit
Counts
105 → 98
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) 2) (pow.f64 x 4))) (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) 3) (pow.f64 x 6))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) 2) (pow.f64 x 4))) (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
1
(+.f64 1 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)) (*.f64 1/2 (*.f64 (pow.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) 2) (pow.f64 x 4)))))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) 3) (pow.f64 x 6))) (+.f64 1 (+.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)) (*.f64 1/2 (*.f64 (pow.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) 2) (pow.f64 x 4))))))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
Outputs
1
(+.f64 1 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(+.f64 1 (*.f64 (log.f64 (cbrt.f64 (exp.f64 20))) (*.f64 x x)))
(fma.f64 20/3 (*.f64 x x) 1)
(+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) 2) (pow.f64 x 4))) (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2))))
(+.f64 1 (fma.f64 1/2 (*.f64 (pow.f64 (log.f64 (cbrt.f64 (exp.f64 20))) 2) (pow.f64 x 4)) (*.f64 (log.f64 (cbrt.f64 (exp.f64 20))) (*.f64 x x))))
(+.f64 1 (fma.f64 20/3 (*.f64 x x) (*.f64 (pow.f64 x 4) 200/9)))
(fma.f64 20/3 (*.f64 x x) (fma.f64 (pow.f64 x 4) 200/9 1))
(fma.f64 (pow.f64 x 4) 200/9 (fma.f64 20/3 (*.f64 x x) 1))
(+.f64 1 (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) 3) (pow.f64 x 6))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) 2) (pow.f64 x 4))) (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))))
(+.f64 1 (fma.f64 1/6 (*.f64 (pow.f64 (log.f64 (cbrt.f64 (exp.f64 20))) 3) (pow.f64 x 6)) (fma.f64 1/2 (*.f64 (pow.f64 (log.f64 (cbrt.f64 (exp.f64 20))) 2) (pow.f64 x 4)) (*.f64 (log.f64 (cbrt.f64 (exp.f64 20))) (*.f64 x x)))))
(+.f64 1 (fma.f64 4000/81 (pow.f64 x 6) (fma.f64 20/3 (*.f64 x x) (*.f64 (pow.f64 x 4) 200/9))))
(fma.f64 (pow.f64 x 6) 4000/81 (fma.f64 20/3 (*.f64 x x) (fma.f64 (pow.f64 x 4) 200/9 1)))
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 200/9 20/3) (fma.f64 (pow.f64 x 6) 4000/81 1))
(fma.f64 (pow.f64 x 4) 200/9 (fma.f64 20/3 (*.f64 x x) (fma.f64 (pow.f64 x 6) 4000/81 1)))
(fma.f64 20/3 (*.f64 x x) (fma.f64 (pow.f64 x 6) 4000/81 (fma.f64 (pow.f64 x 4) 200/9 1)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x))
(pow.f64 (exp.f64 20/3) (*.f64 x x))
(exp.f64 (*.f64 20/3 (*.f64 x x)))
(pow.f64 (exp.f64 x) (/.f64 x 3/20))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x))
(pow.f64 (exp.f64 20/3) (*.f64 x x))
(exp.f64 (*.f64 20/3 (*.f64 x x)))
(pow.f64 (exp.f64 x) (/.f64 x 3/20))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x))
(pow.f64 (exp.f64 20/3) (*.f64 x x))
(exp.f64 (*.f64 20/3 (*.f64 x x)))
(pow.f64 (exp.f64 x) (/.f64 x 3/20))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x))
(pow.f64 (exp.f64 20/3) (*.f64 x x))
(exp.f64 (*.f64 20/3 (*.f64 x x)))
(pow.f64 (exp.f64 x) (/.f64 x 3/20))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x))
(pow.f64 (exp.f64 20/3) (*.f64 x x))
(exp.f64 (*.f64 20/3 (*.f64 x x)))
(pow.f64 (exp.f64 x) (/.f64 x 3/20))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x))
(pow.f64 (exp.f64 20/3) (*.f64 x x))
(exp.f64 (*.f64 20/3 (*.f64 x x)))
(pow.f64 (exp.f64 x) (/.f64 x 3/20))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x))
(pow.f64 (exp.f64 20/3) (*.f64 x x))
(exp.f64 (*.f64 20/3 (*.f64 x x)))
(pow.f64 (exp.f64 x) (/.f64 x 3/20))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 20) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x))
(pow.f64 (exp.f64 20/3) (*.f64 x x))
(exp.f64 (*.f64 20/3 (*.f64 x x)))
(pow.f64 (exp.f64 x) (/.f64 x 3/20))
1
(+.f64 1 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) (log.f64 (cbrt.f64 (exp.f64 10)))))
(fma.f64 (*.f64 x x) 10/3 1)
(fma.f64 x (*.f64 x 10/3) 1)
(+.f64 1 (+.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)) (*.f64 1/2 (*.f64 (pow.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) 2) (pow.f64 x 4)))))
(+.f64 1 (fma.f64 (log.f64 (cbrt.f64 (exp.f64 10))) (*.f64 x x) (*.f64 1/2 (*.f64 (pow.f64 x 4) (pow.f64 (log.f64 (cbrt.f64 (exp.f64 10))) 2)))))
(+.f64 1 (fma.f64 (*.f64 x x) 10/3 (*.f64 (pow.f64 x 4) 50/9)))
(fma.f64 (*.f64 x x) 10/3 (fma.f64 (pow.f64 x 4) 50/9 1))
(fma.f64 x (*.f64 x 10/3) (fma.f64 (pow.f64 x 4) 50/9 1))
(fma.f64 (pow.f64 x 4) 50/9 (fma.f64 (*.f64 x x) 10/3 1))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) 3) (pow.f64 x 6))) (+.f64 1 (+.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)) (*.f64 1/2 (*.f64 (pow.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) 2) (pow.f64 x 4))))))
(fma.f64 1/6 (*.f64 (pow.f64 x 6) (pow.f64 (log.f64 (cbrt.f64 (exp.f64 10))) 3)) (+.f64 1 (fma.f64 (log.f64 (cbrt.f64 (exp.f64 10))) (*.f64 x x) (*.f64 1/2 (*.f64 (pow.f64 x 4) (pow.f64 (log.f64 (cbrt.f64 (exp.f64 10))) 2))))))
(+.f64 (fma.f64 (*.f64 x x) 10/3 (*.f64 (pow.f64 x 4) 50/9)) (fma.f64 500/81 (pow.f64 x 6) 1))
(fma.f64 (pow.f64 x 6) 500/81 (fma.f64 (*.f64 x x) 10/3 (fma.f64 (pow.f64 x 4) 50/9 1)))
(fma.f64 x (*.f64 x 10/3) (fma.f64 (pow.f64 x 6) 500/81 (fma.f64 (pow.f64 x 4) 50/9 1)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))
(pow.f64 (exp.f64 10/3) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 x 10/3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))
(pow.f64 (exp.f64 10/3) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 x 10/3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))
(pow.f64 (exp.f64 10/3) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 x 10/3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))
(pow.f64 (exp.f64 10/3) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 x 10/3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))
(pow.f64 (exp.f64 10/3) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 x 10/3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))
(pow.f64 (exp.f64 10/3) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 x 10/3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))
(pow.f64 (exp.f64 10/3) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 x 10/3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) 1/3)) (pow.f64 x 2)))
(pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))
(pow.f64 (exp.f64 10/3) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 x 10/3))

eval306.0ms (3.2%)

Compiler

Compiled 7975 to 5125 computations (35.7% saved)

prune110.0ms (1.2%)

Pruning

44 alts after pruning (37 fresh and 7 done)

PrunedKeptTotal
New45323476
Fresh241438
Picked101
Done279
Total48044524
Error
0.0b
Counts
524 → 44
Alt Table
Click to see full alt table
StatusErrorProgram
3.2b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.2b
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 (*.f64 20 x))) x) (cos.f64 x))
3.6b
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
3.2b
(*.f64 (*.f64 (exp.f64 (*.f64 (*.f64 x x) 20/3)) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
3.6b
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
57.8b
(*.f64 (cos.f64 x) 1)
3.1b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
0.7b
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)) (cos.f64 x))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
4.0b
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
1.3b
(*.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x)) (cos.f64 x))
0.4b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
3.5b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))
2.3b
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
0.5b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
1.0b
(*.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) x)) (cos.f64 x))
3.5b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)))
0.6b
(cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3) (pow.f64 (cos.f64 x) 3)))
3.1b
(*.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 40/3) (*.f64 x x))) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
0.7b
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
2.1b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x)) 3))
3.5b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)))
3.1b
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
3.5b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
3.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20))
3.0b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (*.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))
3.4b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 1) (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x)))))
1.2b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
0.6b
(*.f64 (pow.f64 (sqrt.f64 (sqrt.f64 (pow.f64 (exp.f64 40) x))) x) (cos.f64 x))
1.4b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x)) 3))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 1/5)))
63.0b
(cbrt.f64 1)
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.2b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x)) 3))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.5b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
1.0b
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
3.0b
(*.f64 (*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2)) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (sqrt.f64 (*.f64 10 (*.f64 x x)))) (*.f64 x (sqrt.f64 10))))
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 1068 to 791 computations (25.9% saved)

localize34.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 (exp.f64 20) x)
0.1b
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
0.3b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
0.4b
(pow.f64 (pow.f64 (exp.f64 20) x) x)
Compiler

Compiled 34 to 23 computations (32.4% saved)

series4.0ms (0%)

Counts
3 → 20
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(pow.f64 (pow.f64 (exp.f64 20) x) x)
1.0ms
x
@-inf
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
1.0ms
x
@inf
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
0.0ms
x
@inf
(pow.f64 (pow.f64 (exp.f64 20) x) x)
0.0ms
x
@-inf
(pow.f64 (pow.f64 (exp.f64 20) x) x)

rewrite65.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
824×pow1_binary64
764×add-log-exp_binary64
764×log1p-expm1-u_binary64
764×expm1-log1p-u_binary64
742×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0936
118336
2212336
Stop Event
node limit
Counts
3 → 63
Calls
Call 1
Inputs
(pow.f64 (pow.f64 (exp.f64 20) x) x)
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 20) (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 20) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 40) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 40) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/4) (*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/4) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/4)) (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 x) (pow.f64 (exp.f64 20) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x x)) (pow.f64 (exp.f64 20) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 40)) (*.f64 x x)) (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 20)) (*.f64 x x)) (pow.f64 (sqrt.f64 (exp.f64 20)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 40) x)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))) (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 40) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x (*.f64 20 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) (pow.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 3/2) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 (*.f64 20 x) (*.f64 x 1/2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))) (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/4) (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 40) (*.f64 x x)))) (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x 1/2)) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 40) x)) (*.f64 x 1/2)) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) (*.f64 x 1/2)) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 40) (*.f64 x x))) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 20) (*.f64 x (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 (*.f64 x 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 20 x) (*.f64 x 1/2)))))))

simplify68.0ms (0.7%)

Algorithm
egg-herbie
Rules
596×fma-def_binary64
536×associate-/l*_binary64
474×distribute-rgt-out_binary64
437×associate-*l*_binary64
408×distribute-lft-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
050282
1117274
2274270
3826266
42967266
54984266
66789266
Stop Event
node limit
Counts
83 → 83
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 20 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (*.f64 20 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (+.f64 (*.f64 20 (pow.f64 x 2)) (*.f64 4000/3 (pow.f64 x 6)))))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
Outputs
1
(+.f64 1 (*.f64 20 (pow.f64 x 2)))
(+.f64 1 (*.f64 20 (*.f64 x x)))
(fma.f64 20 (*.f64 x x) 1)
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (*.f64 20 (pow.f64 x 2))))
(+.f64 1 (fma.f64 200 (pow.f64 x 4) (*.f64 20 (*.f64 x x))))
(+.f64 (fma.f64 20 (*.f64 x x) 1) (*.f64 200 (pow.f64 x 4)))
(fma.f64 20 (*.f64 x x) (fma.f64 200 (pow.f64 x 4) 1))
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (+.f64 (*.f64 20 (pow.f64 x 2)) (*.f64 4000/3 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 200 (pow.f64 x 4) (fma.f64 20 (*.f64 x x) (*.f64 4000/3 (pow.f64 x 6)))))
(+.f64 (fma.f64 20 (*.f64 x x) (*.f64 200 (pow.f64 x 4))) (fma.f64 4000/3 (pow.f64 x 6) 1))
(fma.f64 20 (*.f64 x x) (fma.f64 4000/3 (pow.f64 x 6) (fma.f64 200 (pow.f64 x 4) 1)))
(fma.f64 20 (*.f64 x x) (fma.f64 200 (pow.f64 x 4) (fma.f64 4000/3 (pow.f64 x 6) 1)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 (fma.f64 (*.f64 x x) 19/2 1) (*.f64 (pow.f64 x 4) 1081/24))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 10 1)
(fma.f64 x (*.f64 x 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 (pow.f64 x 4) 50)))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 (pow.f64 x 4) 50))))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 (fma.f64 (pow.f64 x 6) 500/3 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 (pow.f64 x 6) 500/3 1))

localize3.0ms (0%)

Compiler

Compiled 4 to 4 computations (0% saved)

localize19.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (exp.f64 x))
0.3b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)))
3.5b
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
Compiler

Compiled 30 to 14 computations (53.3% saved)

series7.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
5.0ms
x
@-inf
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)))
1.0ms
x
@inf
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)))
1.0ms
x
@0
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
0.0ms
x
@inf
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
0.0ms
x
@-inf
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))

rewrite55.0ms (0.6%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0927
118323
2216423
Stop Event
node limit
Counts
2 → 30
Calls
Call 1
Inputs
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 x) (/.f64 x 1/10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) (/.f64 x 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10))) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))) (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (/.f64 x 1/10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (/.f64 x 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (/.f64 x 1/10)) (pow.f64 (exp.f64 x) (/.f64 x 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (/.f64 x 1/10)) (pow.f64 (cbrt.f64 (exp.f64 x)) (/.f64 x 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x 20)) (pow.f64 (exp.f64 x) (/.f64 x 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 x 20)) (pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 x))) (*.f64 x 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 x) 1/4) (*.f64 x 20)) (pow.f64 (pow.f64 (exp.f64 x) 1/4) (*.f64 x 20)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x (/.f64 x 1/10)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (cos.f64 x) 2) (pow.f64 (exp.f64 x) (*.f64 x 20))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 x (/.f64 x 1/10))))))))

simplify63.0ms (0.7%)

Algorithm
egg-herbie
Rules
724×associate-/l/_binary64
664×associate-/r/_binary64
652×distribute-lft-out_binary64
394×fma-def_binary64
393×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
041382
193376
2212310
3623308
42196308
54102308
65774308
Stop Event
node limit
Counts
54 → 47
Calls
Call 1
Inputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
Outputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
(exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))
(pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x)))))
(pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 (fma.f64 x (*.f64 x 19/2) 1) (fma.f64 (pow.f64 x 4) 1081/24 (*.f64 (pow.f64 x 6) 102299/720)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 20 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x))))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 x (log.f64 (sqrt.f64 (exp.f64 x))))) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (cos.f64 x))

localize31.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
0.6b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
0.6b
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
3.0b
(pow.f64 (exp.f64 10) (*.f64 x x))
Compiler

Compiled 48 to 26 computations (45.8% saved)

series9.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite75.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
895×pow1_binary64
838×add-log-exp_binary64
838×log1p-expm1-u_binary64
838×expm1-log1p-u_binary64
814×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01153
122953
2238653
Stop Event
node limit
Counts
4 → 83
Calls
Call 1
Inputs
(pow.f64 (exp.f64 10) (*.f64 x x))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 10) (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x x)) (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x)) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x)) (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 10 (*.f64 x x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 2) (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cbrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cos.f64 x)) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1/6) (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 1/3) (pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 10 (*.f64 x x))) 1/3))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2) (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (*.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (*.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1/6) (*.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1/6) (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 x)) (*.f64 (sqrt.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (*.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 2) 3) (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1/6) 3) (pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1/6) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (pow.f64 (cbrt.f64 (cos.f64 x)) 2)) (cbrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (sqrt.f64 (cos.f64 x))) (sqrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2) 1) (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) (cbrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2) (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1/6)) (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) (pow.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 10 (*.f64 x x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) (pow.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 10 (*.f64 x x))))))))

simplify102.0ms (1.1%)

Algorithm
egg-herbie
Rules
586×fma-def_binary64
450×distribute-rgt-out_binary64
442×associate-*l*_binary64
408×distribute-lft-out_binary64
355×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
051674
1129616
2296612
3849608
42995608
55048608
67241608
Stop Event
node limit
Counts
131 → 100
Calls
Call 1
Inputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
1
(+.f64 (*.f64 19/6 (pow.f64 x 2)) 1)
(+.f64 (*.f64 19/6 (pow.f64 x 2)) (+.f64 (*.f64 359/72 (pow.f64 x 4)) 1))
(+.f64 (*.f64 19/6 (pow.f64 x 2)) (+.f64 (*.f64 359/72 (pow.f64 x 4)) (+.f64 1 (*.f64 33677/6480 (pow.f64 x 6)))))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
Outputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 x (*.f64 10 x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 500/3 (pow.f64 x 6) 1))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
1
(+.f64 (*.f64 19/6 (pow.f64 x 2)) 1)
(fma.f64 19/6 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 19/6 1)
(fma.f64 x (*.f64 x 19/6) 1)
(+.f64 (*.f64 19/6 (pow.f64 x 2)) (+.f64 (*.f64 359/72 (pow.f64 x 4)) 1))
(fma.f64 19/6 (*.f64 x x) (fma.f64 359/72 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) 19/6 (fma.f64 (pow.f64 x 4) 359/72 1))
(fma.f64 x (*.f64 x 19/6) (fma.f64 (pow.f64 x 4) 359/72 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 359/72) 19/6) 1)
(+.f64 (*.f64 19/6 (pow.f64 x 2)) (+.f64 (*.f64 359/72 (pow.f64 x 4)) (+.f64 1 (*.f64 33677/6480 (pow.f64 x 6)))))
(fma.f64 19/6 (*.f64 x x) (fma.f64 359/72 (pow.f64 x 4) (+.f64 1 (*.f64 (pow.f64 x 6) 33677/6480))))
(fma.f64 (*.f64 x x) 19/6 (fma.f64 (pow.f64 x 4) 359/72 (fma.f64 (pow.f64 x 6) 33677/6480 1)))
(fma.f64 x (*.f64 x 19/6) (fma.f64 (pow.f64 x 4) 359/72 (fma.f64 (pow.f64 x 6) 33677/6480 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 359/72) 19/6) (fma.f64 (pow.f64 x 6) 33677/6480 1))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (*.f64 x x) 19/2))))
(+.f64 (fma.f64 x (*.f64 x 19/2) 1) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (*.f64 x x) 19/2))))
(+.f64 (fma.f64 x (*.f64 x 19/2) 1) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))

localize108.0ms (1.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)) (cos.f64 x))
0.4b
(pow.f64 (pow.f64 (exp.f64 20) x) x)
0.6b
(cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3))
0.7b
(pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)
Compiler

Compiled 57 to 42 computations (26.3% saved)

series5.0ms (0%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)
1.0ms
x
@inf
(pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)
1.0ms
x
@0
(pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)
0.0ms
x
@0
(cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3))
0.0ms
x
@inf
(cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3))

rewrite78.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
468×log-prod_binary64
461×prod-exp_binary64
384×pow-prod-up_binary64
357×exp-prod_binary64
327×pow-unpow_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01239
125239
2262534
Stop Event
node limit
Counts
3 → 193
Calls
Call 1
Inputs
(pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)
(cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3))
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)) (cos.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (pow.f64 (exp.f64 20) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 40) (*.f64 x x))) (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 5/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 5/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3/2) (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) 4) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 40) (*.f64 x x))) 3/2) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 5/4) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cbrt.f64 (pow.f64 (exp.f64 40) (*.f64 x x)))) (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 9))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 x (*.f64 20 x)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 20 (*.f64 (*.f64 x x) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 20 x) (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 20 x) (*.f64 (*.f64 x 1/2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 20 x) (+.f64 x (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 20 x) (fma.f64 x 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (*.f64 3/2 (*.f64 x (*.f64 20 x)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/4 (*.f64 x (*.f64 20 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 20 x) 1) (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 20 x) 1) (*.f64 (*.f64 x 1/2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 20 x) 1) (+.f64 x (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 20 x) 1) (fma.f64 x 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 20 (*.f64 x x)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 20 x) (*.f64 x 1/2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1/2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1/3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 x (*.f64 20 x)) 3/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 3/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 20 (*.f64 x x)) (*.f64 1/2 (*.f64 x (*.f64 20 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1) (*.f64 1/2 (*.f64 x (*.f64 20 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 x (*.f64 20 x)) (*.f64 (*.f64 20 x) (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 20 (*.f64 x x)) (*.f64 (*.f64 20 x) (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1) (*.f64 (*.f64 20 x) (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 x (*.f64 20 x)) (*.f64 (*.f64 x (*.f64 20 x)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 20 (*.f64 x x)) (*.f64 (*.f64 x (*.f64 20 x)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1) (*.f64 (*.f64 x (*.f64 20 x)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 x (*.f64 20 x)) (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 20 (*.f64 x x)) (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1) (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 x (*.f64 20 x)) (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 20 (*.f64 x x)) (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1) (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 20 x) (*.f64 x 1/2)) (*.f64 x (*.f64 20 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1/2) (*.f64 x (*.f64 20 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 1) (*.f64 x (*.f64 20 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1/3) (*.f64 x (*.f64 20 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) (*.f64 20 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 20 x) (*.f64 x 1/2)) (*.f64 20 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1/2) (*.f64 20 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 1) (*.f64 20 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1/3) (*.f64 20 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) (*.f64 (*.f64 x (*.f64 20 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 20 x) (*.f64 x 1/2)) (*.f64 (*.f64 x (*.f64 20 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1/2) (*.f64 (*.f64 x (*.f64 20 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 1) (*.f64 (*.f64 x (*.f64 20 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1/3) (*.f64 (*.f64 x (*.f64 20 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 3/2) (*.f64 3/4 (*.f64 x (*.f64 20 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 3/4 (*.f64 x (*.f64 20 x))) (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 3/2) (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 3/2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 40) (*.f64 x x)))) (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 40) x)) (*.f64 x 1/2)) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (pow.f64 (exp.f64 10) x) (exp.f64 (log1p.f64 x))) (pow.f64 (exp.f64 10) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 20) (*.f64 x (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 (*.f64 x 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 20) x) (+.f64 (/.f64 (*.f64 x 1/2) 2) (/.f64 (*.f64 x 1/2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 40) x) (/.f64 (*.f64 x 1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 40) (*.f64 x x)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 10) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) x) x)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1/3) (*.f64 3/2 (*.f64 x (*.f64 20 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 20 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1/2) (*.f64 x (*.f64 20 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (*.f64 1/2 (*.f64 x (*.f64 20 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 10) x) (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 10) x) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 10) x) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) (pow.f64 (cbrt.f64 x) 2)) (*.f64 (cbrt.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) (sqrt.f64 x)) (pow.f64 x 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) (pow.f64 x 3/2)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) (*.f64 (cbrt.f64 x) x)) (pow.f64 (cbrt.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) (pow.f64 (cbrt.f64 x) 5)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (pow.f64 (cbrt.f64 (*.f64 x 1/2)) 2)) (cbrt.f64 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (sqrt.f64 (*.f64 x 1/2))) (sqrt.f64 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x)))) 2)) (cbrt.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))))) (sqrt.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 20 x) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/2 (*.f64 20 x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 10 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 20 (*.f64 x (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 20 (*.f64 (*.f64 x x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 20 (/.f64 (*.f64 x x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 20 x) (*.f64 (*.f64 x 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/3 (*.f64 1/2 (*.f64 x (*.f64 20 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (*.f64 x (*.f64 20 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 20 (*.f64 x 1/2)) x))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 20 x) 1) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 20 x) 1) (*.f64 (*.f64 x 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 20 (*.f64 x x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 20 x) (*.f64 x 1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1/3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 x (*.f64 20 x)) 3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1) 1/3))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) (pow.f64 (cos.f64 x) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x)))) 2)) (cbrt.f64 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x))))) (sqrt.f64 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) (pow.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/3 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/2 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 20 x) (*.f64 x 1/2)) (log.f64 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1/2) (log.f64 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 1) (log.f64 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1/3) (log.f64 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) (*.f64 (log.f64 (cos.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 20 x) (*.f64 x 1/2)) (*.f64 (log.f64 (cos.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1/2) (*.f64 (log.f64 (cos.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 1) (*.f64 (log.f64 (cos.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1/3) (*.f64 (log.f64 (cos.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 x)) 1) (*.f64 1/2 (*.f64 x (*.f64 20 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 (*.f64 20 x) (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 x)) 1) (*.f64 (*.f64 20 x) (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 (*.f64 x (*.f64 20 x)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 x)) 1) (*.f64 (*.f64 x (*.f64 20 x)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 x)) 1) (*.f64 (*.f64 1/2 (*.f64 x (*.f64 20 x))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 x)) 1) (*.f64 (*.f64 3/2 (*.f64 x (*.f64 20 x))) 1/3)))))))

simplify57.0ms (0.6%)

Algorithm
egg-herbie
Rules
768×associate-*r/_binary64
596×fma-def_binary64
514×associate-*l*_binary64
450×distribute-rgt-out_binary64
410×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
054482
1127474
2302454
3900450
43308450
54869450
Stop Event
node limit
Counts
229 → 217
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 30 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (*.f64 30 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (+.f64 (*.f64 30 (pow.f64 x 2)) (*.f64 4500 (pow.f64 x 6)))))
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
Outputs
1
(+.f64 1 (*.f64 30 (pow.f64 x 2)))
(+.f64 1 (*.f64 30 (*.f64 x x)))
(fma.f64 30 (*.f64 x x) 1)
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (*.f64 30 (pow.f64 x 2))))
(+.f64 1 (fma.f64 450 (pow.f64 x 4) (*.f64 30 (*.f64 x x))))
(+.f64 (fma.f64 30 (*.f64 x x) 1) (*.f64 450 (pow.f64 x 4)))
(fma.f64 30 (*.f64 x x) (fma.f64 450 (pow.f64 x 4) 1))
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (+.f64 (*.f64 30 (pow.f64 x 2)) (*.f64 4500 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 450 (pow.f64 x 4) (fma.f64 30 (*.f64 x x) (*.f64 4500 (pow.f64 x 6)))))
(+.f64 (fma.f64 30 (*.f64 x x) (*.f64 450 (pow.f64 x 4))) (fma.f64 4500 (pow.f64 x 6) 1))
(fma.f64 30 (*.f64 x x) (fma.f64 450 (pow.f64 x 4) (fma.f64 4500 (pow.f64 x 6) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 450) 30) (fma.f64 4500 (pow.f64 x 6) 1))
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3/2)
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3/2)
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3/2)
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3/2)
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3/2)
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3/2)
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3/2)
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x) 3/2)
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 10 1)
(fma.f64 x (*.f64 x 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 1) (*.f64 (pow.f64 x 4) 50))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 (pow.f64 x 4) 50))))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 (pow.f64 x 6) 500/3 1))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 (fma.f64 (pow.f64 x 6) 500/3 1)))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (*.f64 (*.f64 19/2 x) x)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (*.f64 19/2 x) x))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (*.f64 (pow.f64 x 6) 102299/720))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))

eval174.0ms (1.8%)

Compiler

Compiled 8144 to 5196 computations (36.2% saved)

prune110.0ms (1.2%)

Pruning

47 alts after pruning (36 fresh and 11 done)

PrunedKeptTotal
New51019529
Fresh151732
Picked101
Done01111
Total52647573
Error
0.0b
Counts
573 → 47
Alt Table
Click to see full alt table
StatusErrorProgram
3.2b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.6b
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
3.6b
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
3.5b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
57.8b
(*.f64 (cos.f64 x) 1)
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
0.4b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
3.5b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))
3.9b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (/.f64 x 1/10))))
3.3b
(*.f64 (cbrt.f64 (exp.f64 (*.f64 (*.f64 20 x) (*.f64 x 3/2)))) (cos.f64 x))
0.5b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
3.6b
(*.f64 (cbrt.f64 (exp.f64 (*.f64 20 (*.f64 (*.f64 x x) 3/2)))) (cos.f64 x))
0.5b
(*.f64 (pow.f64 (pow.f64 (exp.f64 40) x) (/.f64 (*.f64 x 1/2) 2)) (cos.f64 x))
3.5b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 1/2)) (*.f64 x 20)))
0.6b
(cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3) (pow.f64 (cos.f64 x) 3)))
3.1b
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/4) 2) (cos.f64 x))
3.0b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
3.7b
(*.f64 (cbrt.f64 (exp.f64 (*.f64 (*.f64 x (*.f64 20 x)) 3/2))) (cos.f64 x))
3.5b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)))
0.7b
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
2.1b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x)) 3))
3.1b
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
3.0b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (*.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))
3.6b
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
3.4b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
3.8b
(*.f64 (pow.f64 (exp.f64 1/2) (*.f64 x (*.f64 20 x))) (cos.f64 x))
1.4b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x)) 3))
3.1b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 20 x)) x)) (cos.f64 x))
0.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
63.0b
(cbrt.f64 1)
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.3b
(*.f64 (cbrt.f64 (exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1/2) (*.f64 20 (*.f64 x x))))) (cos.f64 x))
0.7b
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3)) x)) (cos.f64 x))
3.1b
(*.f64 (pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2)) (cos.f64 x))
3.9b
(*.f64 (pow.f64 (exp.f64 1/3) (*.f64 3/2 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
0.6b
(*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x))) (cos.f64 x))
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.5b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
4.0b
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (sqrt.f64 (*.f64 10 (*.f64 x x)))) (*.f64 x (sqrt.f64 10))))
1.2b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
3.0b
(*.f64 (*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2)) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
Compiler

Compiled 599 to 444 computations (25.9% saved)

regimes814.0ms (8.6%)

Counts
106 → 1
Calls
Call 1
Inputs
(cbrt.f64 1)
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (/.f64 x 1/10))))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 1/2)) (*.f64 x 20)))
(*.f64 (pow.f64 (exp.f64 1/2) (*.f64 x (*.f64 20 x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
(*.f64 (cbrt.f64 (exp.f64 (*.f64 (*.f64 20 x) (*.f64 x 3/2)))) (cos.f64 x))
(*.f64 (cbrt.f64 (exp.f64 (*.f64 20 (*.f64 (*.f64 x x) 3/2)))) (cos.f64 x))
(*.f64 (cbrt.f64 (exp.f64 (*.f64 (*.f64 x (*.f64 20 x)) 3/2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 1/3) (*.f64 3/2 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
(*.f64 (cbrt.f64 (exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1/2) (*.f64 20 (*.f64 x x))))) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 20 x)) x)) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 (*.f64 20 x))) x) (cos.f64 x))
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 1/5)))
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)))
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
(*.f64 (pow.f64 (pow.f64 (exp.f64 40) x) (/.f64 (*.f64 x 1/2) 2)) (cos.f64 x))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) x))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x)) 3))
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/4) 2) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) 1/3))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3) (pow.f64 (cos.f64 x) 3)))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (sqrt.f64 (*.f64 10 (*.f64 x x)))) (*.f64 x (sqrt.f64 10))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x)))))
(*.f64 (*.f64 (exp.f64 (*.f64 (*.f64 x x) 20/3)) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (exp.f64 (*.f64 x (/.f64 x 1/5)))))
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) (sqrt.f64 (exp.f64 (*.f64 10 (*.f64 x x))))))
(*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 60) x) x))) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (sqrt.f64 (pow.f64 (exp.f64 40) x))) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) x))) 10))
(*.f64 (cos.f64 x) (pow.f64 (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) 10))) x))
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x)) 3))
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x)) 3))
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) 3)) x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 1) (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 1) (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x)))))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (exp.f64 x) (*.f64 5 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x)))))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) 2) (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x))))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3)) x)) (cos.f64 x))
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)) (cos.f64 x))
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (*.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (pow.f64 (exp.f64 x) 5) x)))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) (pow.f64 (cbrt.f64 (*.f64 x 10)) 2)) (cbrt.f64 (*.f64 x 10))))
(*.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 40/3) (*.f64 x x))) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
(*.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x)) (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x)) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))))
(cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3) (pow.f64 (cos.f64 x) 3)))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) (cbrt.f64 (pow.f64 x 4))) (pow.f64 (cbrt.f64 x) 2)))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10))) 3) (*.f64 x (sqrt.f64 10))))
(*.f64 (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) (pow.f64 (sqrt.f64 (exp.f64 10)) x)) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) (cbrt.f64 (pow.f64 (exp.f64 x) 10))) x))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) 10) (pow.f64 (sqrt.f64 (exp.f64 x)) 10)) x))
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
(*.f64 (*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2)) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) 3))))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (exp.f64 (*.f64 10 (*.f64 (log.f64 (sqrt.f64 (exp.f64 x))) x)))))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (*.f64 x 10)) (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 x 10))))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))))
(*.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x)) (cos.f64 x))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) 10) (pow.f64 (cbrt.f64 (exp.f64 x)) 10)) x))
(*.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) x)) (cos.f64 x))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))
Outputs
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
Calls

3 calls:

399.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
304.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
72.0ms
x
Results
ErrorSegmentsBranch
0.3b1x
0.3b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
0.3b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 1430 to 841 computations (41.2% saved)

regimes71.0ms (0.8%)

Counts
34 → 1
Calls
Call 1
Inputs
(cbrt.f64 1)
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (/.f64 x 1/10))))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 1/2)) (*.f64 x 20)))
(*.f64 (pow.f64 (exp.f64 1/2) (*.f64 x (*.f64 20 x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
(*.f64 (cbrt.f64 (exp.f64 (*.f64 (*.f64 20 x) (*.f64 x 3/2)))) (cos.f64 x))
(*.f64 (cbrt.f64 (exp.f64 (*.f64 20 (*.f64 (*.f64 x x) 3/2)))) (cos.f64 x))
(*.f64 (cbrt.f64 (exp.f64 (*.f64 (*.f64 x (*.f64 20 x)) 3/2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 1/3) (*.f64 3/2 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
(*.f64 (cbrt.f64 (exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1/2) (*.f64 20 (*.f64 x x))))) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 20 x)) x)) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 (*.f64 20 x))) x) (cos.f64 x))
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)))
Outputs
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
Calls

3 calls:

21.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
19.0ms
x
19.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Results
ErrorSegmentsBranch
1.3b1x
1.3b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
1.3b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 358 to 206 computations (42.5% saved)

regimes54.0ms (0.6%)

Counts
27 → 1
Calls
Call 1
Inputs
(cbrt.f64 1)
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (/.f64 x 1/10))))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 1/2)) (*.f64 x 20)))
(*.f64 (pow.f64 (exp.f64 1/2) (*.f64 x (*.f64 20 x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
(*.f64 (cbrt.f64 (exp.f64 (*.f64 (*.f64 20 x) (*.f64 x 3/2)))) (cos.f64 x))
(*.f64 (cbrt.f64 (exp.f64 (*.f64 20 (*.f64 (*.f64 x x) 3/2)))) (cos.f64 x))
(*.f64 (cbrt.f64 (exp.f64 (*.f64 (*.f64 x (*.f64 20 x)) 3/2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 1/3) (*.f64 3/2 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
(*.f64 (cbrt.f64 (exp.f64 (+.f64 (*.f64 (*.f64 x (*.f64 20 x)) 1/2) (*.f64 20 (*.f64 x x))))) (cos.f64 x))
Outputs
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
Calls

3 calls:

15.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
14.0ms
x
14.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Results
ErrorSegmentsBranch
3.0b1x
3.0b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.0b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 291 to 171 computations (41.2% saved)

regimes15.0ms (0.2%)

Counts
8 → 1
Calls
Call 1
Inputs
(cbrt.f64 1)
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (/.f64 x 1/10))))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
Outputs
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Calls

2 calls:

7.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
5.0ms
x
Results
ErrorSegmentsBranch
3.5b1x
3.5b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 77 to 47 computations (39% saved)

regimes6.0ms (0.1%)

Counts
5 → 1
Calls
Call 1
Inputs
(cbrt.f64 1)
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (/.f64 x 1/10))))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
Outputs
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
Calls

1 calls:

4.0ms
x
Results
ErrorSegmentsBranch
3.6b1x
Compiler

Compiled 36 to 22 computations (38.9% saved)

regimes8.0ms (0.1%)

Counts
3 → 1
Calls
Call 1
Inputs
(cbrt.f64 1)
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (/.f64 x 1/10))))
Outputs
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (/.f64 x 1/10))))
Calls

1 calls:

4.0ms
x
Results
ErrorSegmentsBranch
3.9b1x
Compiler

Compiled 18 to 12 computations (33.3% saved)

regimes4.0ms (0%)

Accuracy

Total -5.2b remaining (-9%)

Threshold costs -5.2b (-9%)

Counts
2 → 1
Calls
Call 1
Inputs
(cbrt.f64 1)
(*.f64 (cos.f64 x) 1)
Outputs
(*.f64 (cos.f64 x) 1)
Calls

1 calls:

3.0ms
x
Results
ErrorSegmentsBranch
57.8b1x
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Rules
12×*-commutative_binary64
*-rgt-identity_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03391
14791
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (/.f64 x 1/10))))
(*.f64 (cos.f64 x) 1)
(cbrt.f64 1)
Outputs
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (/.f64 x 1/10))))
(*.f64 (cos.f64 x) 1)
(cos.f64 x)
(cbrt.f64 1)
1
Compiler

Compiled 67 to 48 computations (28.4% saved)

soundness98.0ms (1%)

Algorithm
egg-herbie
Rules
682×associate-/r*_binary64
652×distribute-lft-out_binary64
458×associate-*l/_binary64
394×fma-def_binary64
361×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
035370
183364
2193362
3583360
42095360
53969360
65885360
Stop Event
node limit
Compiler

Compiled 50 to 36 computations (28% saved)

end55.0ms (0.6%)

Compiler

Compiled 60 to 34 computations (43.3% saved)

Profiling

Loading profile data...