Details

Time bar (total: 9.2s)

analyze0.0ms (0%)

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

Compiled 17 to 12 computations (29.4% saved)

sample2.3s (25.3%)

Results
2.3s8256×body256valid

preprocess84.0ms (0.9%)

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)

simplify79.0ms (0.9%)

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
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x 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.2b
(exp.f64 (*.f64 10 (*.f64 x x)))
Compiler

Compiled 28 to 13 computations (53.6% saved)

series39.0ms (0.4%)

Counts
3 → 36
Calls

9 calls:

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

rewrite63.0ms (0.7%)

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

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

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

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

rewrite140.0ms (1.5%)

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

eval64.0ms (0.7%)

Compiler

Compiled 1731 to 1044 computations (39.7% saved)

prune135.0ms (1.5%)

Pruning

37 alts after pruning (35 fresh and 2 done)

PrunedKeptTotal
New10235137
Fresh000
Picked011
Done011
Total10237139
Error
0.5b
Counts
139 → 37
Alt Table
Click to see full alt table
StatusErrorProgram
3.2b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))
2.0b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (pow.f64 (exp.f64 x) 5) x)))
3.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)))
2.1b
(*.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.6b
(*.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.3b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
2.0b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (exp.f64 x) 5) (pow.f64 (exp.f64 x) 5)) 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)))))
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))
3.1b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
3.3b
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
3.0b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
2.2b
(*.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)))))
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.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
57.8b
(*.f64 (cos.f64 x) 1)
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
3.1b
(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))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
3.1b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.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.2b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
3.2b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) (pow.f64 (cos.f64 x) 3)))
2.0b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) 3)) x))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) 10) (pow.f64 (sqrt.f64 (exp.f64 x)) 10)) x))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
3.4b
(*.f64 (cos.f64 x) (pow.f64 (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) 10))) x))
Compiler

Compiled 974 to 708 computations (27.3% saved)

localize25.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)
1.0ms
x
@-inf
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
1.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)

rewrite64.0ms (0.7%)

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

simplify45.0ms (0.5%)

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

localize6.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize23.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 34 to 18 computations (47.1% saved)

series8.0ms (0.1%)

Counts
4 → 40
Calls

12 calls:

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

rewrite70.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
830×pow1_binary64
773×add-log-exp_binary64
773×log1p-expm1-u_binary64
773×expm1-log1p-u_binary64
752×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0942
118642
2217242
Stop Event
node limit
Counts
4 → 77
Calls
Call 1
Inputs
(pow.f64 (exp.f64 x) 20)
(pow.f64 (pow.f64 (exp.f64 x) 20) x)
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 x) 20)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) 20) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (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) 40)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)) (cbrt.f64 (pow.f64 (exp.f64 x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (*.f64 x 10)) (exp.f64 (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) 20) (pow.f64 (cbrt.f64 (exp.f64 x)) 20))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) 20) (pow.f64 (sqrt.f64 (exp.f64 x)) 20))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 x) 40))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x 20))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 x) (*.f64 x 20))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (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 (pow.f64 (exp.f64 x) 40) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))) (*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 40) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 1/4) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 1/4) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 1/4)) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x 20)) (pow.f64 (exp.f64 x) (*.f64 x 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (*.f64 x 20)) (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 x 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 x) (pow.f64 (exp.f64 x) (*.f64 x 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 (*.f64 x 10)) x) (pow.f64 (exp.f64 (*.f64 x 10)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))) (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 40) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x (*.f64 x 20)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) (pow.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))) 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 20)) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 x 20) (*.f64 x 1/2)) (log.f64 (cos.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))) (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 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 1/4) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 40) x))) (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x 1/2)) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)) (*.f64 x 1/2)) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 (*.f64 x 10)) (*.f64 x 1/2)) (pow.f64 (exp.f64 (*.f64 x 10)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 40) x)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) (*.f64 20 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) (*.f64 (*.f64 x 20) 1/2))))) (#(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 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 (*.f64 x 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 x 20) (*.f64 x 1/2)))))))

simplify74.0ms (0.8%)

Algorithm
egg-herbie
Rules
515×distribute-lft-out_binary64
482×associate-+l+_binary64
358×*-commutative_binary64
329×times-frac_binary64
324×distribute-rgt-out_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
062483
1155471
2377467
31202467
42276435
54940435
67130435
Stop Event
node limit
Counts
117 → 108
Calls
Call 1
Inputs
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)))))
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)))))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) 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 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) 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)))))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
Outputs
1
(+.f64 (*.f64 20 x) 1)
(fma.f64 20 x 1)
(+.f64 (*.f64 20 x) (+.f64 1 (*.f64 200 (pow.f64 x 2))))
(+.f64 (fma.f64 20 x 1) (*.f64 200 (*.f64 x x)))
(fma.f64 20 x (fma.f64 200 (*.f64 x x) 1))
(fma.f64 20 x (fma.f64 x (*.f64 x 200) 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 200 (*.f64 x x)))))
(fma.f64 20 x (fma.f64 4000/3 (pow.f64 x 3) (fma.f64 200 (*.f64 x x) 1)))
(fma.f64 20 x (fma.f64 x (*.f64 x 200) (fma.f64 4000/3 (pow.f64 x 3) 1)))
(+.f64 1 (*.f64 x (+.f64 20 (*.f64 x (+.f64 200 (*.f64 x 4000/3))))))
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 1 (fma.f64 20 (*.f64 x x) (*.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 1 (fma.f64 20 (*.f64 x x) (fma.f64 200 (pow.f64 x 4) (*.f64 4000/3 (pow.f64 x 6)))))
(+.f64 (fma.f64 200 (pow.f64 x 4) (*.f64 20 (*.f64 x x))) (fma.f64 4000/3 (pow.f64 x 6) 1))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(pow.f64 (pow.f64 (exp.f64 x) 20) x)
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(pow.f64 (pow.f64 (exp.f64 x) 20) x)
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(pow.f64 (pow.f64 (exp.f64 x) 20) x)
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(pow.f64 (pow.f64 (exp.f64 x) 20) x)
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(pow.f64 (pow.f64 (exp.f64 x) 20) x)
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(pow.f64 (pow.f64 (exp.f64 x) 20) x)
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(pow.f64 (pow.f64 (exp.f64 x) 20) x)
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))
(pow.f64 (pow.f64 (exp.f64 x) 20) x)
(pow.f64 (exp.f64 x) (*.f64 20 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))))
(+.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 (pow.f64 x 4) 1081/24 (+.f64 (*.f64 (*.f64 x x) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
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 (pow.f64 x 4) 50 (fma.f64 x (*.f64 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 (pow.f64 x 6) 500/3 (fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 (fma.f64 x (*.f64 x 10) 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 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x))
(sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x))
(sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x))
(sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x))
(sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x))
(sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x))
(sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x))
(sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(sqrt.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x))
(sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))

localize32.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
(cbrt.f64 (*.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)
3.0b
(pow.f64 (exp.f64 10) (*.f64 x x))
Compiler

Compiled 48 to 26 computations (45.8% saved)

series16.0ms (0.2%)

Counts
4 → 48
Calls

12 calls:

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

rewrite127.0ms (1.4%)

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))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.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 (*.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 (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 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))))))))

simplify85.0ms (0.9%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
051674
1129616
2296612
3852608
42989608
55042608
67234608
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 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 (*.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 (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 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))
(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 (pow.f64 x 6) 102299/720 (fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 1081/24 19/2) 1))
(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 (pow.f64 x 6) 102299/720 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 x (*.f64 x 19/2) 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 (*.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) (+.f64 (fma.f64 359/72 (pow.f64 x 4) 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 (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))
(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 (pow.f64 x 6) 102299/720 (fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 1081/24 19/2) 1))
(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 (pow.f64 x 6) 102299/720 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 x (*.f64 x 19/2) 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))

localize25.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (exp.f64 x) 5) (pow.f64 (exp.f64 x) 5)) x))
0.4b
(pow.f64 (*.f64 (pow.f64 (exp.f64 x) 5) (pow.f64 (exp.f64 x) 5)) x)
0.6b
(*.f64 (pow.f64 (exp.f64 x) 5) (pow.f64 (exp.f64 x) 5))
0.8b
(pow.f64 (exp.f64 x) 5)
Compiler

Compiled 45 to 24 computations (46.7% saved)

series5.0ms (0.1%)

Counts
4 → 40
Calls

12 calls:

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

rewrite66.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0935
119135
2222735
Stop Event
node limit
Counts
4 → 56
Calls
Call 1
Inputs
(pow.f64 (exp.f64 x) 5)
(*.f64 (pow.f64 (exp.f64 x) 5) (pow.f64 (exp.f64 x) 5))
(pow.f64 (*.f64 (pow.f64 (exp.f64 x) 5) (pow.f64 (exp.f64 x) 5)) x)
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (exp.f64 x) 5) (pow.f64 (exp.f64 x) 5)) x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 x) 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) 5) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) 5))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 5)) (cbrt.f64 (exp.f64 (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 (*.f64 x 10))) (cbrt.f64 (pow.f64 (exp.f64 x) 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) 5/2) (pow.f64 (exp.f64 x) 5/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20))) (sqrt.f64 (cbrt.f64 (exp.f64 (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 x x))) 5) (pow.f64 (cbrt.f64 (exp.f64 x)) 5))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) 5) (pow.f64 (sqrt.f64 (exp.f64 x)) 5))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (exp.f64 (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (exp.f64 x) 5))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) 5)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (exp.f64 x) 15))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) 5)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) 5)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x 5))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (exp.f64 (*.f64 x 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) 10)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) 5) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (*.f64 x 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (*.f64 x 10)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (+.f64 x x)) 5)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (exp.f64 (*.f64 x 10))) 3)))) (#(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 (exp.f64 (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (exp.f64 (*.f64 x 10)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (exp.f64 (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (exp.f64 (*.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 (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 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 (exp.f64 (*.f64 x 10))) 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 (*.f64 (sqrt.f64 (cos.f64 x)) (pow.f64 (exp.f64 x) (*.f64 x 5))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (cos.f64 x) 2) (pow.f64 (pow.f64 (exp.f64 x) 20) x)))))) (#(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))))))))

simplify46.0ms (0.5%)

Algorithm
egg-herbie
Rules
701×distribute-lft-out_binary64
698×distribute-rgt-out_binary64
670×associate-*l*_binary64
489×associate-*r*_binary64
481×unswap-sqr_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
060416
1150406
2368400
31152400
43793400
Stop Event
node limit
Counts
96 → 85
Calls
Call 1
Inputs
1
(+.f64 (*.f64 5 x) 1)
(+.f64 (*.f64 5 x) (+.f64 (*.f64 25/2 (pow.f64 x 2)) 1))
(+.f64 (*.f64 5 x) (+.f64 (*.f64 25/2 (pow.f64 x 2)) (+.f64 1 (*.f64 125/6 (pow.f64 x 3)))))
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)))))
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
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 (*.f64 5 x) 1)
(fma.f64 5 x 1)
(+.f64 (*.f64 5 x) (+.f64 (*.f64 25/2 (pow.f64 x 2)) 1))
(fma.f64 5 x (fma.f64 25/2 (*.f64 x x) 1))
(fma.f64 5 x (fma.f64 x (*.f64 x 25/2) 1))
(+.f64 (*.f64 5 x) (+.f64 (*.f64 25/2 (pow.f64 x 2)) (+.f64 1 (*.f64 125/6 (pow.f64 x 3)))))
(fma.f64 5 x (+.f64 (fma.f64 25/2 (*.f64 x x) 1) (*.f64 125/6 (pow.f64 x 3))))
(fma.f64 5 x (fma.f64 25/2 (*.f64 x x) (fma.f64 125/6 (pow.f64 x 3) 1)))
(fma.f64 5 x (fma.f64 x (*.f64 x 25/2) (fma.f64 125/6 (pow.f64 x 3) 1)))
1
(+.f64 1 (*.f64 10 x))
(+.f64 1 (*.f64 x 10))
(fma.f64 x 10 1)
(+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2))))
(+.f64 1 (fma.f64 10 x (*.f64 (*.f64 x x) 50)))
(+.f64 (fma.f64 x 10 1) (*.f64 (*.f64 50 x) x))
(fma.f64 x 10 (fma.f64 x (*.f64 x 50) 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 x 10 (*.f64 (*.f64 50 x) x)) (fma.f64 (pow.f64 x 3) 500/3 1))
(fma.f64 (pow.f64 x 3) 500/3 (fma.f64 x 10 (fma.f64 x (*.f64 x 50) 1)))
(+.f64 1 (*.f64 x (+.f64 10 (*.f64 x (+.f64 50 (*.f64 x 500/3))))))
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
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 50 (pow.f64 x 4))))
(fma.f64 (*.f64 x x) 10 (fma.f64 50 (pow.f64 x 4) 1))
(fma.f64 x (*.f64 x 10) (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 (*.f64 x x) 10 (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 x (*.f64 x 10) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 x (*.f64 x 10) (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 x 10))
(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 x 10))
(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 x 10))
(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 x 10))
(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 x 10))
(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 x 10))
(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 x 10))
(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 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 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 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))))
(+.f64 1 (fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 x (*.f64 x 19/2) (*.f64 (pow.f64 x 4) 1081/24))))
(+.f64 (fma.f64 x (*.f64 x 19/2) 1) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24)))
(*.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 x 10)) (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 x 10)) (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 x 10)) (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 x 10)) (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 x 10)) (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 x 10)) (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 x 10)) (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 x 10)) (cos.f64 x))

eval189.0ms (2.1%)

Compiler

Compiled 5758 to 3546 computations (38.4% saved)

prune110.0ms (1.2%)

Pruning

46 alts after pruning (40 fresh and 6 done)

PrunedKeptTotal
New35531386
Fresh21930
Picked101
Done066
Total37746423
Error
0.1b
Counts
423 → 46
Alt Table
Click to see full alt table
StatusErrorProgram
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
3.5b
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 20)))))
1.4b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 (+.f64 x x)) 5) x))
2.0b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (pow.f64 (exp.f64 x) 5) x)))
3.1b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
2.1b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) x) (pow.f64 (cbrt.f64 (exp.f64 (*.f64 x 10))) x)))
2.1b
(*.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)))
1.3b
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) 3)) x) (cos.f64 x))
2.2b
(*.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.3b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
3.2b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
3.1b
(*.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))))
3.5b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.0b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
3.2b
(pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 3) 3)
4.5b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
3.4b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
3.2b
(*.f64 (pow.f64 (exp.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.5b
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
3.1b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x 20)) x)))
2.4b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (exp.f64 x) 5) (exp.f64 (*.f64 x 5))) x))
1.4b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) x)) x)) (cos.f64 x))
1.1b
(*.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.8b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
1.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
57.8b
(*.f64 (cos.f64 x) 1)
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
3.1b
(*.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))
3.0b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))
3.1b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (exp.f64 (*.f64 x 10)) (*.f64 x 1/2)) (pow.f64 (exp.f64 (*.f64 x 10)) (*.f64 x 1/2))))
2.0b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) 3)) x)))
3.0b
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)) 3)
3.0b
(pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cbrt.f64 (cos.f64 x))) 3)
3.1b
(*.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)))
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.2b
(pow.f64 (*.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))))) 3)
3.1b
(*.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.2b
(*.f64 (cos.f64 x) (sqrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 40) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))
2.0b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)) (cbrt.f64 (pow.f64 (exp.f64 x) 20))) x)))
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 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
3.1b
(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))
Compiler

Compiled 1353 to 981 computations (27.5% saved)

localize28.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
@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))
1.0ms
x
@-inf
(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
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)

rewrite78.0ms (0.9%)

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

simplify73.0ms (0.8%)

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 x 10))
0.3b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
3.2b
(exp.f64 (*.f64 x (*.f64 x 10)))
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 x 10)))
0.0ms
x
@0
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
0.0ms
x
@-inf
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
0.0ms
x
@inf
(exp.f64 (*.f64 x (*.f64 x 10)))
0.0ms
x
@inf
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))

rewrite74.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0830
115730
2181730
Stop Event
node limit
Counts
3 → 54
Calls
Call 1
Inputs
(exp.f64 (*.f64 x (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 x (*.f64 x 10))
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 (*.f64 x x)) 10)))) (#(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 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 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 (*.f64 x (sqrt.f64 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))))))))

simplify77.0ms (0.8%)

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
90 → 73
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))

localize24.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

Compiled 33 to 18 computations (45.5% saved)

series3.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite69.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0936
118036
2208736
Stop Event
node limit
Counts
3 → 59
Calls
Call 1
Inputs
(pow.f64 (exp.f64 20) (*.f64 x x))
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 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 (*.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 (*.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 20 (*.f64 x 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 20 (*.f64 (*.f64 x 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 (*.f64 x 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 (exp.f64 40)) (*.f64 (*.f64 x x) 1/2)) (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 (*.f64 x x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 20)) (*.f64 (*.f64 x x) 1/2)) (pow.f64 (sqrt.f64 (exp.f64 20)) (*.f64 (*.f64 x 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 (*.f64 x x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 20) (*.f64 (*.f64 (*.f64 x 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 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 x 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 20 (*.f64 (*.f64 x x) 1/2)))))))

simplify73.0ms (0.8%)

Algorithm
egg-herbie
Rules
596×fma-def_binary64
450×distribute-rgt-out_binary64
423×associate-*l*_binary64
408×distribute-lft-out_binary64
347×associate-*r*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
048442
1112434
2265430
3801426
42913394
54946394
67139394
Stop Event
node limit
Counts
95 → 84
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)))))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (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) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (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)))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
Outputs
1
(+.f64 1 (*.f64 20 (pow.f64 x 2)))
(+.f64 1 (*.f64 20 (*.f64 x x)))
(fma.f64 20 (*.f64 x x) 1)
(fma.f64 x (*.f64 20 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 1 (fma.f64 20 (*.f64 x x) (*.f64 200 (pow.f64 x 4))))
(fma.f64 20 (*.f64 x x) (fma.f64 200 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 200) 20) 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 x (*.f64 20 x) 1) (fma.f64 4000/3 (pow.f64 x 6) (*.f64 200 (pow.f64 x 4))))
(fma.f64 20 (*.f64 x x) (fma.f64 200 (pow.f64 x 4) (fma.f64 4000/3 (pow.f64 x 6) 1)))
(fma.f64 4000/3 (pow.f64 x 6) (fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 200) 20) 1))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.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 (*.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 (*.f64 x x) (fma.f64 (*.f64 x 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 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
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 (pow.f64 x 6) 500/3 (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) (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 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)

localize37.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) 3)) x)
0.6b
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
0.6b
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) 3))
1.0b
(pow.f64 (exp.f64 10) x)
Compiler

Compiled 46 to 35 computations (23.9% saved)

series4.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite71.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
734×pow1_binary64
692×add-log-exp_binary64
692×log1p-expm1-u_binary64
692×expm1-log1p-u_binary64
672×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0924
119524
2196524
Stop Event
node limit
Counts
3 → 66
Calls
Call 1
Inputs
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) 3))
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) 3)) 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 10) x)) (pow.f64 (pow.f64 (exp.f64 20) x) 1/3))))) (#(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 *.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/3) (cbrt.f64 (pow.f64 (exp.f64 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (pow.f64 (exp.f64 10) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x 3/2)) 1/3) (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x 3/2)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 10) x)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 10) (*.f64 (*.f64 x 3) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 10) (+.f64 (*.f64 x 1/2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 10) (*.f64 2 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) (*.f64 x 3)) 1/3)))) (#(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 (cbrt.f64 (pow.f64 (exp.f64 10) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 10) (sqrt.f64 x)) (sqrt.f64 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 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 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) x) (pow.f64 (exp.f64 20) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) (*.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 10) (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 20) x) (pow.f64 (exp.f64 10) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 10) x)) (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) (*.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) (*.f64 x 3/2)) (pow.f64 (exp.f64 10) (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x 3)) (pow.f64 (exp.f64 10) (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x 3)) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x 3)) (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) 3) (pow.f64 (exp.f64 10) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) 3) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 20) x) 1) (pow.f64 (exp.f64 10) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 20) x) (cbrt.f64 (pow.f64 (exp.f64 20) x))) (cbrt.f64 (pow.f64 (exp.f64 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 20) x) (sqrt.f64 (pow.f64 (exp.f64 10) x))) (sqrt.f64 (pow.f64 (exp.f64 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 10) (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 10) (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 10) (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (*.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 (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 (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 (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 (pow.f64 (exp.f64 20) 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 x (*.f64 10 x)))))))

simplify79.0ms (0.9%)

Algorithm
egg-herbie
Rules
756×fma-def_binary64
579×associate-*l*_binary64
492×distribute-lft-out_binary64
461×associate-+l+_binary64
458×distribute-rgt-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
046328
1120320
2311312
3969276
43991276
57214276
Stop Event
node limit
Counts
102 → 89
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 1 (*.f64 30 x))
(+.f64 1 (+.f64 (*.f64 30 x) (*.f64 450 (pow.f64 x 2))))
(+.f64 (*.f64 4500 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 30 x) (*.f64 450 (pow.f64 x 2)))))
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 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)))))
(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))
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))
(fma.f64 x (fma.f64 x 50 10) (fma.f64 500/3 (pow.f64 x 3) 1))
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
1
(+.f64 1 (*.f64 30 x))
(+.f64 1 (*.f64 x 30))
(fma.f64 x 30 1)
(+.f64 1 (+.f64 (*.f64 30 x) (*.f64 450 (pow.f64 x 2))))
(+.f64 1 (fma.f64 30 x (*.f64 (*.f64 x x) 450)))
(+.f64 (fma.f64 x 30 1) (*.f64 x (*.f64 x 450)))
(fma.f64 x 30 (fma.f64 x (*.f64 x 450) 1))
(fma.f64 x (fma.f64 x 450 30) 1)
(+.f64 (*.f64 4500 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 30 x) (*.f64 450 (pow.f64 x 2)))))
(fma.f64 4500 (pow.f64 x 3) (+.f64 1 (fma.f64 30 x (*.f64 (*.f64 x x) 450))))
(+.f64 (fma.f64 x 30 (*.f64 x (*.f64 x 450))) (fma.f64 (pow.f64 x 3) 4500 1))
(fma.f64 (pow.f64 x 3) 4500 (fma.f64 x 30 (fma.f64 x (*.f64 x 450) 1)))
(fma.f64 x (fma.f64 x 450 30) (fma.f64 (pow.f64 x 3) 4500 1))
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
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 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)

localize83.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(cbrt.f64 (pow.f64 (exp.f64 x) 20))
0.5b
(cbrt.f64 (pow.f64 (exp.f64 x) 40))
2.1b
(pow.f64 (exp.f64 x) 20)
2.8b
(pow.f64 (exp.f64 x) 40)
Compiler

Compiled 81 to 49 computations (39.5% saved)

series19.0ms (0.2%)

Counts
3 → 28
Calls

9 calls:

TimeVariablePointExpression
3.0ms
x
@inf
(cbrt.f64 (pow.f64 (exp.f64 x) 40))
3.0ms
x
@inf
(cbrt.f64 (pow.f64 (exp.f64 x) 20))
3.0ms
x
@-inf
(cbrt.f64 (pow.f64 (exp.f64 x) 20))
3.0ms
x
@-inf
(cbrt.f64 (pow.f64 (exp.f64 x) 40))
2.0ms
x
@inf
(pow.f64 (exp.f64 x) 40)

rewrite100.0ms (1.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0922
118122
2191322
Stop Event
node limit
Counts
3 → 65
Calls
Call 1
Inputs
(pow.f64 (exp.f64 x) 40)
(cbrt.f64 (pow.f64 (exp.f64 x) 40))
(cbrt.f64 (pow.f64 (exp.f64 x) 20))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 x) 40)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) 40) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)) (cbrt.f64 (pow.f64 (exp.f64 x) 80)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) 20) (pow.f64 (exp.f64 x) 20))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) 40))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 80)) (cbrt.f64 (pow.f64 (exp.f64 x) 40)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) 10) (*.f64 (pow.f64 (exp.f64 x) 10) (pow.f64 (exp.f64 x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 x) 20) (pow.f64 (exp.f64 x) 10)) (pow.f64 (exp.f64 x) 10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 x x))) 40) (pow.f64 (cbrt.f64 (exp.f64 x)) 40))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) 40) (pow.f64 (sqrt.f64 (exp.f64 x)) 40))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 x) 20) (cbrt.f64 (pow.f64 (exp.f64 x) 40))) (cbrt.f64 (pow.f64 (exp.f64 x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 80)) 1) (cbrt.f64 (pow.f64 (exp.f64 x) 40)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 80)) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 80)))) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 80)) (cbrt.f64 (pow.f64 (exp.f64 x) 20))) (cbrt.f64 (pow.f64 (exp.f64 x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 x) 80))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) 40)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 40) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) 40)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) 40)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 x 40))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (pow.f64 (exp.f64 x) 40))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) (cbrt.f64 (pow.f64 (exp.f64 x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (pow.f64 (exp.f64 x) 40)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40))) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 80))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40))) (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20))) (cbrt.f64 (pow.f64 (exp.f64 x) 20))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 80))) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) 10) (cbrt.f64 (pow.f64 (exp.f64 x) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) (*.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 (pow.f64 1 1/3) (cbrt.f64 (pow.f64 (exp.f64 x) 40)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 80)) 1/3) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)))) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) 40/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) 20) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 80)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 1/3 (*.f64 x 40)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (pow.f64 (exp.f64 x) 20))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (pow.f64 (exp.f64 x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20))) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40))) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) (cbrt.f64 (pow.f64 (exp.f64 x) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 80)))) (sqrt.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (pow.f64 (exp.f64 x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) 1/3) (pow.f64 (pow.f64 (exp.f64 x) 10) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) 20/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) 40) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 1/3 (*.f64 x 20)))))))

simplify111.0ms (1.2%)

Algorithm
egg-herbie
Rules
544×fma-def_binary64
527×unswap-sqr_binary64
478×associate-/l/_binary64
414×associate-/r/_binary64
404×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
046253
1116247
2280239
3806221
42126221
52921221
63984221
74316221
85086221
97917221
Stop Event
node limit
Counts
93 → 86
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 40 x))
(+.f64 1 (+.f64 (*.f64 40 x) (*.f64 800 (pow.f64 x 2))))
(+.f64 (*.f64 32000/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 40 x) (*.f64 800 (pow.f64 x 2)))))
1
(+.f64 (*.f64 40/3 x) 1)
(+.f64 (*.f64 40/3 x) (+.f64 (*.f64 800/9 (pow.f64 x 2)) 1))
(+.f64 (*.f64 40/3 x) (+.f64 (*.f64 800/9 (pow.f64 x 2)) (+.f64 1 (*.f64 32000/81 (pow.f64 x 3)))))
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
1
(+.f64 1 (*.f64 20/3 x))
(+.f64 1 (+.f64 (*.f64 200/9 (pow.f64 x 2)) (*.f64 20/3 x)))
(+.f64 (*.f64 4000/81 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 200/9 (pow.f64 x 2)) (*.f64 20/3 x))))
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
Outputs
1
(+.f64 1 (*.f64 40 x))
(fma.f64 40 x 1)
(+.f64 1 (+.f64 (*.f64 40 x) (*.f64 800 (pow.f64 x 2))))
(+.f64 1 (fma.f64 40 x (*.f64 800 (*.f64 x x))))
(+.f64 (fma.f64 40 x 1) (*.f64 (*.f64 800 x) x))
(fma.f64 40 x (fma.f64 x (*.f64 x 800) 1))
(fma.f64 x (fma.f64 x 800 40) 1)
(+.f64 (*.f64 32000/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 40 x) (*.f64 800 (pow.f64 x 2)))))
(fma.f64 32000/3 (pow.f64 x 3) (+.f64 1 (fma.f64 40 x (*.f64 800 (*.f64 x x)))))
(+.f64 (fma.f64 40 x (*.f64 (*.f64 800 x) x)) (fma.f64 32000/3 (pow.f64 x 3) 1))
(fma.f64 32000/3 (pow.f64 x 3) (fma.f64 40 x (fma.f64 x (*.f64 x 800) 1)))
(fma.f64 x (fma.f64 x 800 40) (fma.f64 32000/3 (pow.f64 x 3) 1))
1
(+.f64 (*.f64 40/3 x) 1)
(fma.f64 40/3 x 1)
(fma.f64 x 40/3 1)
(+.f64 (*.f64 40/3 x) (+.f64 (*.f64 800/9 (pow.f64 x 2)) 1))
(fma.f64 40/3 x (fma.f64 800/9 (*.f64 x x) 1))
(fma.f64 x 40/3 (fma.f64 (*.f64 x x) 800/9 1))
(fma.f64 x (fma.f64 x 800/9 40/3) 1)
(+.f64 (*.f64 40/3 x) (+.f64 (*.f64 800/9 (pow.f64 x 2)) (+.f64 1 (*.f64 32000/81 (pow.f64 x 3)))))
(fma.f64 40/3 x (+.f64 (fma.f64 800/9 (*.f64 x x) 1) (*.f64 (pow.f64 x 3) 32000/81)))
(fma.f64 x 40/3 (fma.f64 (*.f64 x x) 800/9 (fma.f64 (pow.f64 x 3) 32000/81 1)))
(fma.f64 x 40/3 (fma.f64 x (*.f64 x 800/9) (fma.f64 (pow.f64 x 3) 32000/81 1)))
(fma.f64 x 40/3 (fma.f64 (*.f64 x x) (fma.f64 x 32000/81 800/9) 1))
(fma.f64 (pow.f64 x 3) 32000/81 (fma.f64 x (fma.f64 x 800/9 40/3) 1))
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 40))
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 40))
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 40))
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 40))
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 40))
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 40))
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 40))
(pow.f64 (pow.f64 (exp.f64 x) 40) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 40))
1
(+.f64 1 (*.f64 20/3 x))
(+.f64 1 (*.f64 x 20/3))
(fma.f64 x 20/3 1)
(+.f64 1 (+.f64 (*.f64 200/9 (pow.f64 x 2)) (*.f64 20/3 x)))
(+.f64 1 (fma.f64 200/9 (*.f64 x x) (*.f64 x 20/3)))
(+.f64 (fma.f64 x 20/3 1) (*.f64 x (*.f64 x 200/9)))
(fma.f64 x (*.f64 x 200/9) (fma.f64 x 20/3 1))
(fma.f64 x (fma.f64 x 200/9 20/3) 1)
(+.f64 (*.f64 4000/81 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 200/9 (pow.f64 x 2)) (*.f64 20/3 x))))
(fma.f64 4000/81 (pow.f64 x 3) (+.f64 1 (fma.f64 200/9 (*.f64 x x) (*.f64 x 20/3))))
(+.f64 (fma.f64 x 20/3 (*.f64 x (*.f64 x 200/9))) (fma.f64 (pow.f64 x 3) 4000/81 1))
(fma.f64 (pow.f64 x 3) 4000/81 (fma.f64 x (*.f64 x 200/9) (fma.f64 x 20/3 1)))
(fma.f64 x (fma.f64 x 200/9 20/3) (fma.f64 (pow.f64 x 3) 4000/81 1))
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 20))
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 20))
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 20))
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 20))
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 20))
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 20))
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 20))
(pow.f64 (pow.f64 (exp.f64 x) 20) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 x) 20))

eval330.0ms (3.6%)

Compiler

Compiled 7547 to 4917 computations (34.8% saved)

prune221.0ms (2.4%)

Pruning

38 alts after pruning (30 fresh and 8 done)

PrunedKeptTotal
New47111482
Fresh161935
Picked011
Done3710
Total49038528
Error
0.1b
Counts
528 → 38
Alt Table
Click to see full alt table
StatusErrorProgram
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
0.6b
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
3.3b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
1.4b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 (+.f64 x x)) 5) x))
3.1b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.0b
(*.f64 (pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/2)) (cos.f64 x))
1.3b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
2.2b
(*.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.2b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
3.1b
(*.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))))
3.5b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.4b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
3.2b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
0.5b
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
3.1b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x 20)) x)))
0.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
1.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
57.8b
(*.f64 (cos.f64 x) 1)
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
3.0b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))
0.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (/.f64 x 2)) (cos.f64 x))
3.1b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (exp.f64 (*.f64 x 10)) (*.f64 x 1/2)) (pow.f64 (exp.f64 (*.f64 x 10)) (*.f64 x 1/2))))
0.7b
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)) (cos.f64 x))
3.1b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.5b
(*.f64 (sqrt.f64 (exp.f64 (*.f64 20 (*.f64 x x)))) (cos.f64 x))
3.0b
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)) 3)
3.0b
(pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cbrt.f64 (cos.f64 x))) 3)
3.1b
(*.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)))
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.2b
(pow.f64 (*.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))))) 3)
3.1b
(*.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)))))
3.0b
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
0.7b
(cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3) (pow.f64 (cos.f64 x) 3)))
2.0b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)) (cbrt.f64 (pow.f64 (exp.f64 x) 20))) x)))
0.4b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
Compiler

Compiled 1019 to 743 computations (27.1% 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 (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
@-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))
1.0ms
x
@0
(pow.f64 (pow.f64 (exp.f64 20) x) 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)

rewrite136.0ms (1.5%)

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

simplify75.0ms (0.8%)

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

localize17.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x))))
0.2b
(*.f64 10 (*.f64 x x))
0.3b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.2b
(expm1.f64 (*.f64 10 (*.f64 x x)))
Compiler

Compiled 39 to 21 computations (46.2% saved)

series3.0ms (0%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(expm1.f64 (*.f64 10 (*.f64 x x)))
0.0ms
x
@inf
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
0.0ms
x
@-inf
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
0.0ms
x
@0
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
0.0ms
x
@inf
(expm1.f64 (*.f64 10 (*.f64 x x)))

rewrite77.0ms (0.8%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
01038
120732
2257132
Stop Event
node limit
Counts
3 → 85
Calls
Call 1
Inputs
(expm1.f64 (*.f64 10 (*.f64 x x)))
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
(+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))) (pow.f64 (cbrt.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))) 2) (cbrt.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))) (sqrt.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 3) 1) (+.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 2) (+.f64 1 (pow.f64 (exp.f64 (*.f64 x x)) 10))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 2) 1) (+.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (expm1.f64 (*.f64 10 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 x) (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 x) (*.f64 (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) (cos.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3)) (+.f64 (pow.f64 (cos.f64 x) 2) (-.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) (*.f64 (cos.f64 x) (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 x) 2) (*.f64 (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)))) (-.f64 (cos.f64 x) (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 3)) (cos.f64 x)) (-.f64 (+.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2)) (expm1.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2)) (cos.f64 x)) (-.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 x) (+.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 3))) (-.f64 (+.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2)) (expm1.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 x) (-.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2))) (-.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))))))) (#(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 fma.f64 (cos.f64 x) 1 (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 x) (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (cbrt.f64 (cos.f64 x)) (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 x)) (sqrt.f64 (cos.f64 x)) (*.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (-.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x))))) (/.f64 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2) (-.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 (*.f64 x x)) 10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 2) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 3)) (/.f64 1 (-.f64 (+.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2)) (expm1.f64 (*.f64 10 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2)) (/.f64 1 (-.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (+.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2)) (expm1.f64 (*.f64 10 (*.f64 x x)))) (+.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))) (-.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 3)) (-.f64 (+.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2)) (expm1.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 3)) (+.f64 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2) (-.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2)) (-.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 3))) (neg.f64 (-.f64 (+.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2)) (expm1.f64 (*.f64 10 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2))) (neg.f64 (-.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 2) 1) (-.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (*.f64 10 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 10) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (*.f64 x x)) 10)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 2)))) (#(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 (exp.f64 (*.f64 10 x)) x)))) (#(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 sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 10 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))) 2) (cbrt.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))) (sqrt.f64 (expm1.f64 (*.f64 10 (*.f64 x x)))) 1)))))

simplify74.0ms (0.8%)

Algorithm
egg-herbie
Rules
617×fma-def_binary64
614×distribute-lft-out_binary64
597×distribute-rgt-out_binary64
496×distribute-rgt-in_binary64
483×associate-*l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
045428
1115422
2266420
3780418
43153418
55965418
Stop Event
node limit
Counts
121 → 111
Calls
Call 1
Inputs
(*.f64 10 (pow.f64 x 2))
(+.f64 (*.f64 10 (pow.f64 x 2)) (*.f64 50 (pow.f64 x 4)))
(+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 (*.f64 10 (pow.f64 x 2)) (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 1250/3 (pow.f64 x 8)) (*.f64 50 (pow.f64 x 4)))))
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
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 (*.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)))
Outputs
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(+.f64 (*.f64 10 (pow.f64 x 2)) (*.f64 50 (pow.f64 x 4)))
(fma.f64 10 (*.f64 x x) (*.f64 50 (pow.f64 x 4)))
(fma.f64 50 (pow.f64 x 4) (*.f64 10 (*.f64 x x)))
(+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 (*.f64 10 (pow.f64 x 2)) (*.f64 50 (pow.f64 x 4))))
(fma.f64 500/3 (pow.f64 x 6) (fma.f64 10 (*.f64 x x) (*.f64 50 (pow.f64 x 4))))
(fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) (*.f64 10 (*.f64 x x))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (*.f64 500/3 (pow.f64 x 6)))
(+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 1250/3 (pow.f64 x 8)) (*.f64 50 (pow.f64 x 4)))))
(fma.f64 500/3 (pow.f64 x 6) (fma.f64 10 (*.f64 x x) (fma.f64 1250/3 (pow.f64 x 8) (*.f64 50 (pow.f64 x 4)))))
(fma.f64 500/3 (pow.f64 x 6) (fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (*.f64 1250/3 (pow.f64 x 8)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 1250/3 (pow.f64 x 8) (*.f64 50 (pow.f64 x 4)))))
(fma.f64 (pow.f64 x 4) (fma.f64 (pow.f64 x 4) 1250/3 50) (fma.f64 500/3 (pow.f64 x 6) (*.f64 10 (*.f64 x x))))
(fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) (fma.f64 10 (*.f64 x x) (*.f64 1250/3 (pow.f64 x 8)))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) (*.f64 1250/3 (pow.f64 x 8)))))
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(expm1.f64 (*.f64 10 (*.f64 x x)))
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(expm1.f64 (*.f64 10 (*.f64 x x)))
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(expm1.f64 (*.f64 10 (*.f64 x x)))
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(expm1.f64 (*.f64 10 (*.f64 x x)))
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(expm1.f64 (*.f64 10 (*.f64 x x)))
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(expm1.f64 (*.f64 10 (*.f64 x x)))
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(expm1.f64 (*.f64 10 (*.f64 x x)))
(-.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1)
(expm1.f64 (*.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 (*.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) (fma.f64 (*.f64 x x) 1081/24 19/2) 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 (pow.f64 x 4) 1081/24 (*.f64 (*.f64 x x) 19/2))))
(fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 1081/24 19/2) 1))
(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 (pow.f64 x 6) 102299/720 (fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 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 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 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 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 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 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 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 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
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))))
(+.f64 (fma.f64 10 (*.f64 x x) 1) (*.f64 50 (pow.f64 x 4)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(fma.f64 50 (pow.f64 x 4) (fma.f64 10 (*.f64 x x) 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 (*.f64 50 (pow.f64 x 4)) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) (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)))
(fma.f64 500/3 (pow.f64 x 6) (fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 50 10) 1))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))

localize21.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/2)) (cos.f64 x))
3.0b
(pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/2))
Compiler

Compiled 35 to 20 computations (42.9% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite84.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
901×pow1_binary64
836×add-log-exp_binary64
836×log1p-expm1-u_binary64
836×expm1-log1p-u_binary64
815×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01029
120423
2235723
Stop Event
node limit
Counts
2 → 28
Calls
Call 1
Inputs
(pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/2))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/2)) (cos.f64 x))
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)))) (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 (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 (*.f64 x 1/2))) (exp.f64 (*.f64 10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 40)) (*.f64 x (*.f64 x 1/2))) (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 20)) (*.f64 x (*.f64 x 1/2))) (pow.f64 (sqrt.f64 (exp.f64 20)) (*.f64 x (*.f64 x 1/2))))))) (#(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 (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 (+.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 (*.f64 (pow.f64 (cos.f64 x) 2) (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) (cos.f64 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))))))))

simplify60.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
035286
183280
2193278
3583276
42095276
53969276
65885276
Stop Event
node limit
Counts
52 → 45
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))
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))

localize98.0ms (1.1%)

Local error

Found 4 expressions with local error:

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

Compiled 51 to 26 computations (49% saved)

series6.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite88.0ms (1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01144
122644
2232644
Stop Event
node limit
Counts
3 → 68
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
(cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
Outputs
((#(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 (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 (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 (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 (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) (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 *.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 (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 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 (+.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 (*.f64 10 (*.f64 x x)) (log.f64 (cos.f64 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 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 (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 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))))))))

simplify70.0ms (0.8%)

Algorithm
egg-herbie
Rules
681×associate-/r*_binary64
652×distribute-lft-out_binary64
394×fma-def_binary64
371×*-commutative_binary64
335×associate-*l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
042552
1104498
2228494
3631490
42209490
54101490
66043490
Stop Event
node limit
Counts
104 → 76
Calls
Call 1
Inputs
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 (*.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 (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 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 19/2 (*.f64 x x)))
(fma.f64 19/2 (*.f64 x x) 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 19/2 (*.f64 x x))))
(+.f64 1 (fma.f64 19/2 (*.f64 x x) (*.f64 1081/24 (pow.f64 x 4))))
(fma.f64 19/2 (*.f64 x x) (fma.f64 1081/24 (pow.f64 x 4) 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 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 19/2 (*.f64 x x) (fma.f64 1081/24 (pow.f64 x 4) (*.f64 102299/720 (pow.f64 x 6)))))
(fma.f64 102299/720 (pow.f64 x 6) (fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 102299/720 (pow.f64 x 6) 1))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 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 (pow.f64 x 4) 359/72 (fma.f64 x (*.f64 x 19/6) 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) (+.f64 (fma.f64 359/72 (pow.f64 x 4) 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 (pow.f64 x 4) 359/72 (fma.f64 x (*.f64 x 19/6) (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 (exp.f64 (*.f64 (*.f64 10 x) 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 (exp.f64 (*.f64 (*.f64 10 x) 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 (exp.f64 (*.f64 (*.f64 10 x) 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 (exp.f64 (*.f64 (*.f64 10 x) 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 (exp.f64 (*.f64 (*.f64 10 x) 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 (exp.f64 (*.f64 (*.f64 10 x) 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 (exp.f64 (*.f64 (*.f64 10 x) 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 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 19/2 (*.f64 x x)))
(fma.f64 19/2 (*.f64 x x) 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 19/2 (*.f64 x x))))
(+.f64 1 (fma.f64 19/2 (*.f64 x x) (*.f64 1081/24 (pow.f64 x 4))))
(fma.f64 19/2 (*.f64 x x) (fma.f64 1081/24 (pow.f64 x 4) 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 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 19/2 (*.f64 x x) (fma.f64 1081/24 (pow.f64 x 4) (*.f64 102299/720 (pow.f64 x 6)))))
(fma.f64 102299/720 (pow.f64 x 6) (fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 102299/720 (pow.f64 x 6) 1))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 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)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 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)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 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)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 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)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 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)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 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)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 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)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))

localize49.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
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)
0.6b
(cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)))
0.6b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
Compiler

Compiled 59 to 40 computations (32.2% saved)

series72.0ms (0.8%)

Counts
2 → 24
Calls

6 calls:

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

rewrite96.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
481×log-prod_binary64
455×pow-pow_binary64
357×exp-prod_binary64
328×pow-unpow_binary64
317×pow-prod-down_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01234
125134
2262430
Stop Event
node limit
Counts
2 → 79
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
(cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)))
Outputs
((#(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 *.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 (cbrt.f64 (pow.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 (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 (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 (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 (*.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) (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 5/6))))) (#(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 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 5/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 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cbrt.f64 (pow.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 (pow.f64 (*.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) (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 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 2/3 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x)))) 3/2))))) (#(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 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x))) 1/3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 1/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 (*.f64 1/3 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x)))) 3/2) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 (*.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 (exp.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))) (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (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 (cos.f64 x)) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x 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 (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 (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 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 (*.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) (pow.f64 (cos.f64 x) 2)) 1/6)))) (#(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/9)))) (#(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) 1/2)))) (#(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 (cbrt.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/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 pow.f64 (exp.f64 1/3) (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 1) (*.f64 1/3 (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 (*.f64 1/3 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x))))) 2)) (cbrt.f64 (*.f64 1/3 (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 (*.f64 1/3 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x)))))) (sqrt.f64 (*.f64 1/3 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x))))))))) (#(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 log.f64 (+.f64 1 (expm1.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 1/3 (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/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)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.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 exp.f64 (*.f64 (*.f64 1/6 (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 2 (log.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))))) 3/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/3))))) (#(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/3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 1/3 (fma.f64 1/2 (*.f64 x (*.f64 20 x)) (log.f64 (cos.f64 x)))) 1) 1))))))

simplify72.0ms (0.8%)

Algorithm
egg-herbie
Rules
582×exp-prod_binary64
569×associate-*l*_binary64
566×distribute-rgt-out_binary64
487×associate-*r*_binary64
457×distribute-lft-out_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
052476
1134408
2301358
3912356
43694332
57252332
Stop Event
node limit
Counts
103 → 97
Calls
Call 1
Inputs
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 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)))
(*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)))
(*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)))
(*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)))
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)))))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
Outputs
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 19/2 (*.f64 x x)))
(fma.f64 19/2 (*.f64 x x) 1)
(fma.f64 x (*.f64 19/2 x) 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 19/2 (*.f64 x x))))
(+.f64 (fma.f64 19/2 (*.f64 x x) 1) (*.f64 1081/24 (pow.f64 x 4)))
(fma.f64 19/2 (*.f64 x x) (fma.f64 1081/24 (pow.f64 x 4) 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 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 19/2 (*.f64 x x) (fma.f64 1081/24 (pow.f64 x 4) (*.f64 102299/720 (pow.f64 x 6)))))
(fma.f64 1081/24 (pow.f64 x 4) (fma.f64 x (*.f64 19/2 x) (fma.f64 102299/720 (pow.f64 x 6) 1)))
(fma.f64 19/2 (*.f64 x x) (fma.f64 102299/720 (pow.f64 x 6) (fma.f64 1081/24 (pow.f64 x 4) 1)))
(*.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) 3) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (*.f64 x (*.f64 x 20)) 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (/.f64 x 1/10)) x) (cos.f64 x))
(*.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) 3) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (*.f64 x (*.f64 x 20)) 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (/.f64 x 1/10)) x) (cos.f64 x))
(*.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) 3) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (*.f64 x (*.f64 x 20)) 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (/.f64 x 1/10)) x) (cos.f64 x))
(*.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) 3) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (*.f64 x (*.f64 x 20)) 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (/.f64 x 1/10)) x) (cos.f64 x))
(*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) 3) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (*.f64 x (*.f64 x 20)) 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (/.f64 x 1/10)) x) (cos.f64 x))
(*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) 3) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (*.f64 x (*.f64 x 20)) 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (/.f64 x 1/10)) x) (cos.f64 x))
(*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) 3) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (*.f64 x (*.f64 x 20)) 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (/.f64 x 1/10)) x) (cos.f64 x))
(*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) 3) (cos.f64 x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) 3) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) 3) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (*.f64 x (*.f64 x 20)) 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (/.f64 x 1/10)) x) (cos.f64 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))
(+.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) (+.f64 (fma.f64 359/72 (pow.f64 x 4) 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 6) 33677/6480 (fma.f64 (pow.f64 x 4) 359/72 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)))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10/3)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10/3) x) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10/3)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10/3) x) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10/3)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10/3) x) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10/3)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10/3) x) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10/3)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10/3) x) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10/3)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10/3) x) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10/3)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10/3) x) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (exp.f64 (*.f64 1/6 (*.f64 (log.f64 (pow.f64 (exp.f64 20) x)) x))) (pow.f64 (*.f64 (cos.f64 x) 1) 1/3))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 x (*.f64 x (log.f64 (exp.f64 20))))) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 1/6) (*.f64 (*.f64 x x) 20)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 (*.f64 x 10/3)) x) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10/3)) (cbrt.f64 (cos.f64 x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10/3) x) x) (cbrt.f64 (cos.f64 x)))

eval431.0ms (4.7%)

Compiler

Compiled 8532 to 5403 computations (36.7% saved)

prune239.0ms (2.6%)

Pruning

43 alts after pruning (31 fresh and 12 done)

PrunedKeptTotal
New51916535
Fresh101525
Picked011
Done11112
Total53043573
Error
0.1b
Counts
573 → 43
Alt Table
Click to see full alt table
StatusErrorProgram
3.1b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))) 3)
0.6b
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
2.2b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))) 3)
3.5b
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
3.3b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
1.4b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 (+.f64 x x)) 5) x))
3.1b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.0b
(*.f64 (pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/2)) (cos.f64 x))
3.0b
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)) 3)
0.5b
(*.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 40) x)) x)) (cos.f64 x))
1.3b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
3.2b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
1.6b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))) 3)
3.5b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.4b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
3.8b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
3.2b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
0.5b
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
3.2b
(pow.f64 (*.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))))) 3)
3.1b
(*.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cbrt.f64 (pow.f64 (cos.f64 x) 2))) (cbrt.f64 (cos.f64 x)))
0.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
1.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
57.8b
(*.f64 (cos.f64 x) 1)
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
57.7b
(*.f64 (cos.f64 x) (+.f64 1 (*.f64 10 (*.f64 x x))))
0.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (/.f64 x 2)) (cos.f64 x))
3.0b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))
3.1b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (exp.f64 (*.f64 x 10)) (*.f64 x 1/2)) (pow.f64 (exp.f64 (*.f64 x 10)) (*.f64 x 1/2))))
0.7b
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)) (cos.f64 x))
3.1b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
63.0b
1
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
3.1b
(*.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))))
3.0b
(pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cbrt.f64 (cos.f64 x))) 3)
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (E.f64) (*.f64 10 (*.f64 x x))))
3.1b
(*.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)))
3.0b
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
0.7b
(cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3) (pow.f64 (cos.f64 x) 3)))
0.4b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
3.1b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 20 x)) x)) (cos.f64 x))
Compiler

Compiled 572 to 423 computations (26% saved)

regimes318.0ms (3.5%)

Counts
95 → 1
Calls
Call 1
Inputs
1
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (+.f64 1 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x 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 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (E.f64) (*.f64 10 (*.f64 x x))))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 20 (*.f64 x x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 20)))))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/2)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x 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 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x 20)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (/.f64 x 2)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 (+.f64 x x)) 5) x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
(*.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 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) x))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))) 3)
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 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) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2))
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (exp.f64 x) 5) (exp.f64 (*.f64 x 5))) x))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (exp.f64 (*.f64 x 10)) (*.f64 x 1/2)) (pow.f64 (exp.f64 (*.f64 x 10)) (*.f64 x 1/2))))
(*.f64 (sqrt.f64 (pow.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) 10))) x))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))) 3)
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))) 3)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) 3)) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) 3)) x))
(pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cbrt.f64 (cos.f64 x))) 3)
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (exp.f64 x) 5) (pow.f64 (exp.f64 x) 5)) x))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) (pow.f64 (cos.f64 x) 3)))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x 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 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) 3)) x)))
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)) 3)
(pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 3) 3)
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)) 3)
(*.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cbrt.f64 (pow.f64 (cos.f64 x) 2))) (cbrt.f64 (cos.f64 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 (*.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))))
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (sqrt.f64 (pow.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 (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 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) x) (pow.f64 (cbrt.f64 (exp.f64 (*.f64 x 10))) x)))
(*.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 (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 (cos.f64 x) (sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)) (cbrt.f64 (pow.f64 (exp.f64 x) 20))) 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 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) x) (pow.f64 (cbrt.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 (cos.f64 x) (sqrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 40) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))
(*.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))))
(*.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))))
(pow.f64 (*.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))))) 3)
(pow.f64 (*.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))))) 3)
(*.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)))
(*.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)))
(*.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 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
Calls

3 calls:

138.0ms
x
62.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
56.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Results
ErrorSegmentsBranch
0.4b1x
0.4b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
0.4b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 1340 to 789 computations (41.1% saved)

regimes374.0ms (4.1%)

Counts
32 → 1
Calls
Call 1
Inputs
1
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (+.f64 1 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x 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 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (E.f64) (*.f64 10 (*.f64 x x))))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 20 (*.f64 x x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 20)))))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/2)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x 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 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x 20)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (/.f64 x 2)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 (+.f64 x x)) 5) x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
Outputs
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (/.f64 x 2)) (cos.f64 x))
Calls

3 calls:

257.0ms
x
88.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
20.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Results
ErrorSegmentsBranch
0.4b1x
0.4b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
0.4b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 324 to 178 computations (45.1% saved)

regimes408.0ms (4.4%)

Counts
28 → 1
Calls
Call 1
Inputs
1
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (+.f64 1 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x 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 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (E.f64) (*.f64 10 (*.f64 x x))))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 20 (*.f64 x x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 20)))))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/2)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x 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 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x 20)) x)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
Outputs
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
Calls

3 calls:

215.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
148.0ms
x
36.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Results
ErrorSegmentsBranch
0.4b1x
0.4b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
0.4b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 279 to 152 computations (45.5% saved)

regimes52.0ms (0.6%)

Counts
27 → 1
Calls
Call 1
Inputs
1
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (+.f64 1 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x 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 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (E.f64) (*.f64 10 (*.f64 x x))))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 20 (*.f64 x x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 20)))))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/2)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x 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 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x 20)) x)))
Outputs
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
Calls

3 calls:

16.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
1.4b1x
1.4b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
1.4b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 268 to 145 computations (45.9% saved)

regimes40.0ms (0.4%)

Counts
20 → 1
Calls
Call 1
Inputs
1
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (+.f64 1 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x 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 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (E.f64) (*.f64 10 (*.f64 x x))))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 20 (*.f64 x x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 20)))))
(*.f64 (pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/2)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
Outputs
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
Calls

3 calls:

13.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
11.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
10.0ms
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 201 to 110 computations (45.3% saved)

regimes18.0ms (0.2%)

Counts
7 → 1
Calls
Call 1
Inputs
1
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (+.f64 1 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x 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))
Outputs
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
Calls

3 calls:

5.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
5.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
5.0ms
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 76 to 45 computations (40.8% saved)

regimes82.0ms (0.9%)

Counts
6 → 1
Calls
Call 1
Inputs
1
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (+.f64 1 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x 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:

75.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 57 to 34 computations (40.4% saved)

regimes9.0ms (0.1%)

Counts
4 → 1
Calls
Call 1
Inputs
1
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (+.f64 1 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
Outputs
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
Calls

1 calls:

8.0ms
x
Results
ErrorSegmentsBranch
3.5b1x
Compiler

Compiled 27 to 17 computations (37% saved)

regimes10.0ms (0.1%)

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

1 calls:

8.0ms
x
Results
ErrorSegmentsBranch
57.7b1x
Compiler

Compiled 18 to 12 computations (33.3% saved)

regimes13.0ms (0.1%)

Accuracy

Total -5.2b remaining (-9%)

Threshold costs -5.2b (-9%)

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

1 calls:

7.0ms
x
Results
ErrorSegmentsBranch
57.8b1x
Compiler

Compiled 8 to 6 computations (25% saved)

simplify16.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
040139
157139
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (/.f64 x 2)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.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 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (+.f64 1 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) 1)
1
Outputs
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (/.f64 x 2)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 20) x) (/.f64 x 2)))
(*.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 20) (*.f64 x 1/2)) 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 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.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 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (+.f64 1 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (+.f64 (*.f64 10 (*.f64 x x)) 1))
(*.f64 (cos.f64 x) 1)
(cos.f64 x)
1
Compiler

Compiled 101 to 73 computations (27.7% saved)

soundness138.0ms (1.5%)

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)

end199.0ms (2.2%)

Compiler

Compiled 91 to 51 computations (44% saved)

Profiling

Loading profile data...