Details

Time bar (total: 9.6s)

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.4s (24.9%)

Results
2.4s8256×body256valid

preprocess177.0ms (1.8%)

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

Useful iterations: 0 (0.0ms)

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

Compiled 11 to 8 computations (27.3% saved)

simplify66.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

eval1.0ms (0%)

Compiler

Compiled 19 to 12 computations (36.8% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 20 to 14 computations (30% saved)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 13 computations (53.6% saved)

series5.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite85.0ms (0.9%)

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

simplify168.0ms (1.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))

localize16.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
0.5b
(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)

series10.0ms (0.1%)

Counts
3 → 28
Calls

9 calls:

TimeVariablePointExpression
4.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)

rewrite58.0ms (0.6%)

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

simplify62.0ms (0.6%)

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

eval158.0ms (1.6%)

Compiler

Compiled 1731 to 1044 computations (39.7% saved)

prune225.0ms (2.3%)

Pruning

34 alts after pruning (32 fresh and 2 done)

PrunedKeptTotal
New10532137
Fresh000
Picked011
Done011
Total10534139
Error
0.5b
Counts
139 → 34
Alt Table
Click to see full alt table
StatusErrorProgram
2.1b
(*.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.2b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 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.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)))
3.2b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) 10) (pow.f64 (sqrt.f64 (exp.f64 x)) 10)) x))
4.5b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (*.f64 x 10)) (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 x 10))))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (exp.f64 x) 5) (pow.f64 (exp.f64 x) 5)) x))
4.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
3.6b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
2.2b
(*.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.6b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.0b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
3.2b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
3.2b
(*.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.3b
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
4.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x)))))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
57.8b
(*.f64 (cos.f64 x) 1)
3.1b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
3.6b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
3.2b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.5b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) 10))) x))
2.1b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (pow.f64 (exp.f64 x) 5) x)))
3.5b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))))
Compiler

Compiled 900 to 650 computations (27.8% saved)

localize22.0ms (0.2%)

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.5b
(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)

series127.0ms (1.3%)

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

rewrite60.0ms (0.6%)

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

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

localize109.0ms (1.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize22.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.2b
(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)))

rewrite202.0ms (2.1%)

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

simplify82.0ms (0.9%)

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

localize51.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

Compiled 39 to 29 computations (25.6% saved)

series19.0ms (0.2%)

Counts
4 → 48
Calls

12 calls:

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

rewrite107.0ms (1.1%)

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

Useful iterations: 1 (0.0ms)

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

simplify173.0ms (1.8%)

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

Useful iterations: 3 (0.0ms)

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

localize201.0ms (2.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))
0.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)))))
0.4b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))
3.2b
(pow.f64 (exp.f64 x) (*.f64 x 10))
Compiler

Compiled 56 to 32 computations (42.9% saved)

series7.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite247.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
854×pow1_binary64
795×add-log-exp_binary64
794×log1p-expm1-u_binary64
794×expm1-log1p-u_binary64
773×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify92.0ms (1%)

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

Useful iterations: 4 (0.0ms)

IterNodesCost
047548
1110536
2265530
3815528
42943512
54976512
67184512
Stop Event
node limit
Counts
130 → 98
Calls
Call 1
Inputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
1
(+.f64 (*.f64 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))
1
(+.f64 1 (*.f64 5 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 125/6 (pow.f64 x 6)) (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4)))))
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.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 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 500/3 (pow.f64 x 6) 1))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
1
(+.f64 (*.f64 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 (*.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 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 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.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 (exp.f64 x) (*.f64 10 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 (exp.f64 x) (*.f64 10 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 (exp.f64 x) (*.f64 10 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 (exp.f64 x) (*.f64 10 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 (exp.f64 x) (*.f64 10 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 (exp.f64 x) (*.f64 10 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 (exp.f64 x) (*.f64 10 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 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
1
(+.f64 1 (*.f64 5 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 5))
(fma.f64 (*.f64 x x) 5 1)
(fma.f64 x (*.f64 x 5) 1)
(+.f64 1 (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4))))
(+.f64 1 (fma.f64 5 (*.f64 x x) (*.f64 (pow.f64 x 4) 25/2)))
(+.f64 1 (fma.f64 (pow.f64 x 4) 25/2 (*.f64 (*.f64 x x) 5)))
(fma.f64 x (*.f64 x 5) (fma.f64 (pow.f64 x 4) 25/2 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 25/2) 5) 1)
(+.f64 1 (+.f64 (*.f64 125/6 (pow.f64 x 6)) (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4)))))
(+.f64 1 (fma.f64 125/6 (pow.f64 x 6) (fma.f64 5 (*.f64 x x) (*.f64 (pow.f64 x 4) 25/2))))
(+.f64 1 (fma.f64 (pow.f64 x 6) 125/6 (fma.f64 (pow.f64 x 4) 25/2 (*.f64 (*.f64 x x) 5))))
(fma.f64 (pow.f64 x 6) 125/6 (fma.f64 x (*.f64 x 5) (fma.f64 (pow.f64 x 4) 25/2 1)))
(fma.f64 x (*.f64 x 5) (fma.f64 (pow.f64 x 4) 25/2 (fma.f64 (pow.f64 x 6) 125/6 1)))
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(fabs.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5))
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(fabs.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5))
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(fabs.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5))
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(fabs.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5))
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(fabs.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5))
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(fabs.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5))
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(fabs.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5))
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(fabs.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5))
(pow.f64 (pow.f64 (exp.f64 x) x) 5)

eval352.0ms (3.7%)

Compiler

Compiled 7534 to 4760 computations (36.8% saved)

prune231.0ms (2.4%)

Pruning

52 alts after pruning (47 fresh and 5 done)

PrunedKeptTotal
New41333446
Fresh131427
Picked101
Done156
Total42852480
Error
0.2b
Counts
480 → 52
Alt Table
Click to see full alt table
StatusErrorProgram
3.5b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2) 1/3))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
3.5b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
3.6b
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 20)))))
2.6b
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (sqrt.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x))))) (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)))))))
4.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 1) (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) 3)) x))
3.5b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)))
3.0b
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (exp.f64 (*.f64 x (/.f64 x 1/5)))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
2.1b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (pow.f64 (exp.f64 x) 5) x)))
3.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 (pow.f64 (exp.f64 x) 10)) x)))
3.2b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
1.3b
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) 3)) x) (cos.f64 x))
3.2b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))
3.2b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2) (pow.f64 (cos.f64 x) 3)))
3.5b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) 3))
3.0b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
3.0b
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5))))))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 1/5)))
1.4b
(*.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))
2.5b
(*.f64 (cos.f64 x) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))) (sqrt.f64 (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))))) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
4.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
3.6b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))
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))
3.6b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.1b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x 20)) x)))
3.6b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
2.5b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
3.2b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
3.0b
(*.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x)) (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
3.2b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
3.2b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2)))
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))))
3.5b
(*.f64 (cos.f64 x) (sqrt.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)))))
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))
2.3b
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
4.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x)))))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
57.8b
(*.f64 (cos.f64 x) 1)
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) 2))
1.4b
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) (cbrt.f64 (pow.f64 (exp.f64 10) x))) x) (cos.f64 x))
3.1b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (pow.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 3) 1/3)))
3.6b
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.5b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
Compiler

Compiled 1457 to 1070 computations (26.6% saved)

localize35.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 (exp.f64 20) x)
0.2b
(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.5b
(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
2.0ms
x
@0
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
1.0ms
x
@-inf
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
0.0ms
x
@inf
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
0.0ms
x
@inf
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)
0.0ms
x
@-inf
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)

rewrite68.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify143.0ms (1.5%)

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)

localize17.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 17 computations (39.3% saved)

series2.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite63.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify184.0ms (1.9%)

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

Useful iterations: 3 (0.0ms)

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

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 1/5)))
0.3b
(/.f64 x 1/5)
0.5b
(pow.f64 (exp.f64 x) 2)
3.2b
(pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 1/5))
Compiler

Compiled 34 to 20 computations (41.2% saved)

series5.0ms (0.1%)

Counts
4 → 40
Calls

12 calls:

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

rewrite69.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01039
121339
2246839
Stop Event
node limit
Counts
4 → 74
Calls
Call 1
Inputs
(pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 1/5))
(pow.f64 (exp.f64 x) 2)
(/.f64 x 1/5)
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 1/5)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (*.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (*.f64 x 5))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 2/5)) (pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 2/5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 2 (*.f64 x 5))) (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (*.f64 2 (*.f64 x 5))) (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 2 (*.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 2 (*.f64 x 5))) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 2 (*.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) (*.f64 x 5)) (pow.f64 (exp.f64 x) (*.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x 5)) (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 4)) (*.f64 x 5)) (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (*.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (*.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 x 5) (+.f64 x x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 x) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 x) (exp.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (cbrt.f64 (pow.f64 (exp.f64 x) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (*.f64 (cbrt.f64 (exp.f64 x)) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 4)) (pow.f64 (cbrt.f64 (exp.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 x)) (*.f64 (sqrt.f64 (exp.f64 x)) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 x) (sqrt.f64 (exp.f64 x))) (sqrt.f64 (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 x) (pow.f64 (cbrt.f64 (exp.f64 x)) 2)) (cbrt.f64 (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (exp.f64 x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 x x))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x 5))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x 5)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 5) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x 5))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 5))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x 5)) (pow.f64 (cbrt.f64 (*.f64 x 5)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x 5)) 2) (cbrt.f64 (*.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) 5))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x 5)) (sqrt.f64 (*.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) -5)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 5 x)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 5) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x 5) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x 5)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x 5)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/5 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 x -1/5))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x 5) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x 5) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x 5)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)) (cos.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (cos.f64 x)) (pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 2/5))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (*.f64 x 5)) (pow.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)) (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)) 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 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 (*.f64 x 5) (+.f64 x x))))))))

simplify50.0ms (0.5%)

Algorithm
egg-herbie
Rules
874×fma-def_binary64
688×distribute-rgt-out_binary64
675×distribute-lft-out_binary64
634×associate-*l*_binary64
487×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
052483
1127365
2321357
31022355
44627355
Stop Event
node limit
Counts
114 → 98
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 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
1
(+.f64 (*.f64 2 x) 1)
(+.f64 (*.f64 2 (pow.f64 x 2)) (+.f64 (*.f64 2 x) 1))
(+.f64 (*.f64 4/3 (pow.f64 x 3)) (+.f64 (*.f64 2 (pow.f64 x 2)) (+.f64 (*.f64 2 x) 1)))
(*.f64 5 x)
(*.f64 5 x)
(*.f64 5 x)
(*.f64 5 x)
(*.f64 5 x)
(*.f64 5 x)
(*.f64 5 x)
(*.f64 5 x)
(*.f64 5 x)
(*.f64 5 x)
(*.f64 5 x)
(*.f64 5 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 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))))
(*.f64 (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))) (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 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2))))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2))))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2))))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2))))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2))))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2))))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2))))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x)))
(pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2))))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
1
(+.f64 (*.f64 2 x) 1)
(fma.f64 2 x 1)
(fma.f64 x 2 1)
(+.f64 (*.f64 2 (pow.f64 x 2)) (+.f64 (*.f64 2 x) 1))
(fma.f64 2 (*.f64 x x) (fma.f64 2 x 1))
(fma.f64 2 (*.f64 x x) (fma.f64 x 2 1))
(fma.f64 2 (fma.f64 x x x) 1)
(fma.f64 x (fma.f64 x 2 2) 1)
(+.f64 (*.f64 4/3 (pow.f64 x 3)) (+.f64 (*.f64 2 (pow.f64 x 2)) (+.f64 (*.f64 2 x) 1)))
(fma.f64 4/3 (pow.f64 x 3) (fma.f64 2 (*.f64 x x) (fma.f64 2 x 1)))
(fma.f64 4/3 (pow.f64 x 3) (fma.f64 2 (*.f64 x x) (fma.f64 x 2 1)))
(fma.f64 4/3 (pow.f64 x 3) (fma.f64 2 (fma.f64 x x x) 1))
(fma.f64 x 2 (fma.f64 (*.f64 x x) (fma.f64 x 4/3 2) 1))
(fma.f64 x (fma.f64 x 2 2) (fma.f64 4/3 (pow.f64 x 3) 1))
(*.f64 5 x)
(*.f64 x 5)
(*.f64 5 x)
(*.f64 x 5)
(*.f64 5 x)
(*.f64 x 5)
(*.f64 5 x)
(*.f64 x 5)
(*.f64 5 x)
(*.f64 x 5)
(*.f64 5 x)
(*.f64 x 5)
(*.f64 5 x)
(*.f64 x 5)
(*.f64 5 x)
(*.f64 x 5)
(*.f64 5 x)
(*.f64 x 5)
(*.f64 5 x)
(*.f64 x 5)
(*.f64 5 x)
(*.f64 x 5)
(*.f64 5 x)
(*.f64 x 5)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (*.f64 x x) 19/2))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2)))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2)))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2)))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2)))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2)))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2)))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2)))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 5 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 2)) x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 2)))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))

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.5b
(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)

series10.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite78.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01153
122953
2238653
Stop Event
node limit
Counts
4 → 83
Calls
Call 1
Inputs
(pow.f64 (exp.f64 10) (*.f64 x x))
(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))))))))

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

localize33.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))
0.4b
(pow.f64 (exp.f64 x) x)
1.0b
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
3.2b
(pow.f64 (exp.f64 x) (*.f64 x 10))
Compiler

Compiled 65 to 32 computations (50.8% saved)

series5.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite76.0ms (0.8%)

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

Useful iterations: 1 (0.0ms)

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

simplify69.0ms (0.7%)

Algorithm
egg-herbie
Rules
577×fma-def_binary64
469×distribute-rgt-out_binary64
426×associate-*l*_binary64
382×distribute-lft-out_binary64
349×associate-*r*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
045445
1109433
2272425
3808425
42930321
55053321
67296321
Stop Event
node limit
Counts
101 → 89
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 5 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 125/6 (pow.f64 x 6)) (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4)))))
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
1
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 1/6 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4)))))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
1
(+.f64 (*.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)))))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
Outputs
1
(+.f64 1 (*.f64 5 (pow.f64 x 2)))
(+.f64 1 (*.f64 5 (*.f64 x x)))
(fma.f64 5 (*.f64 x x) 1)
(+.f64 1 (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4))))
(+.f64 1 (fma.f64 5 (*.f64 x x) (*.f64 25/2 (pow.f64 x 4))))
(+.f64 (fma.f64 5 (*.f64 x x) 1) (*.f64 25/2 (pow.f64 x 4)))
(fma.f64 5 (*.f64 x x) (fma.f64 25/2 (pow.f64 x 4) 1))
(+.f64 1 (+.f64 (*.f64 125/6 (pow.f64 x 6)) (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4)))))
(+.f64 1 (fma.f64 125/6 (pow.f64 x 6) (fma.f64 5 (*.f64 x x) (*.f64 25/2 (pow.f64 x 4)))))
(fma.f64 125/6 (pow.f64 x 6) (fma.f64 5 (*.f64 x x) (fma.f64 25/2 (pow.f64 x 4) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 25/2) 5) (fma.f64 125/6 (pow.f64 x 6) 1))
(fma.f64 5 (*.f64 x x) (fma.f64 25/2 (pow.f64 x 4) (fma.f64 125/6 (pow.f64 x 6) 1)))
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (*.f64 x x)) 5)
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (*.f64 x x)) 5)
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (*.f64 x x)) 5)
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (*.f64 x x)) 5)
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (*.f64 x x)) 5)
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (*.f64 x x)) 5)
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (*.f64 x x)) 5)
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
(pow.f64 (exp.f64 (pow.f64 x 2)) 5)
(pow.f64 (exp.f64 (*.f64 x x)) 5)
(pow.f64 (pow.f64 (exp.f64 x) x) 5)
1
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (*.f64 x x))
(fma.f64 x x 1)
(+.f64 1 (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 x x) (*.f64 (pow.f64 x 4) 1/2)))
(+.f64 (fma.f64 x x 1) (*.f64 (pow.f64 x 4) 1/2))
(fma.f64 (pow.f64 x 4) 1/2 (fma.f64 x x 1))
(fma.f64 x x (fma.f64 (pow.f64 x 4) 1/2 1))
(+.f64 1 (+.f64 (*.f64 1/6 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4)))))
(+.f64 1 (fma.f64 1/6 (pow.f64 x 6) (+.f64 (*.f64 x x) (*.f64 (pow.f64 x 4) 1/2))))
(+.f64 1 (fma.f64 (pow.f64 x 6) 1/6 (fma.f64 x x (*.f64 (pow.f64 x 4) 1/2))))
(fma.f64 (pow.f64 x 6) 1/6 (fma.f64 (pow.f64 x 4) 1/2 (fma.f64 x x 1)))
(fma.f64 x x (fma.f64 (pow.f64 x 4) 1/2 (fma.f64 (pow.f64 x 6) 1/6 1)))
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
1
(+.f64 (*.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 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 (fma.f64 (pow.f64 x 6) 500/3 1)))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (pow.f64 x 2)))) (pow.f64 (exp.f64 (pow.f64 x 2)) 5))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 5) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)

eval266.0ms (2.8%)

Compiler

Compiled 7799 to 4821 computations (38.2% saved)

prune175.0ms (1.8%)

Pruning

40 alts after pruning (34 fresh and 6 done)

PrunedKeptTotal
New47321494
Fresh291342
Picked101
Done369
Total50640546
Error
0.1b
Counts
546 → 40
Alt Table
Click to see full alt table
StatusErrorProgram
3.6b
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 20)))))
3.5b
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) 1/3) (cos.f64 x))
3.6b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 4) (/.f64 x 2/5)) 1))
0.4b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
3.2b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
0.5b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
1.0b
(*.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) x)) (cos.f64 x))
3.0b
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (exp.f64 (*.f64 x (/.f64 x 1/5)))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
0.6b
(cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3) (pow.f64 (cos.f64 x) 3)))
0.7b
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
3.1b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
3.2b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
3.2b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2) (pow.f64 (cos.f64 x) 3)))
3.5b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) 3))
3.0b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
3.6b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.1b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x 20)) x)))
3.6b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))
1.2b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
3.6b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 4)) (/.f64 x 1/5)))
3.6b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
0.9b
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2)) x) (cos.f64 x))
3.2b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
3.8b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
2.1b
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
3.6b
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
2.6b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
57.8b
(*.f64 (cos.f64 x) 1)
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 2 x)) 5))
3.0b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (*.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))
3.8b
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
3.6b
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
0.7b
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)) (cos.f64 x))
3.5b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
3.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (+.f64 x x)) (/.f64 x 1/5)))
Compiler

Compiled 946 to 706 computations (25.4% saved)

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

series10.0ms (0.1%)

Counts
3 → 20
Calls

9 calls:

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

rewrite60.0ms (0.6%)

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

simplify66.0ms (0.7%)

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

Useful iterations: 3 (0.0ms)

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

localize18.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.3b
(expm1.f64 (*.f64 10 (*.f64 x x)))
Compiler

Compiled 39 to 21 computations (46.2% saved)

series4.0ms (0%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
0.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
@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)))

rewrite66.0ms (0.7%)

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

simplify58.0ms (0.6%)

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

localize24.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 x (*.f64 x 10))
0.3b
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
3.5b
(pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10)))
Compiler

Compiled 35 to 24 computations (31.4% saved)

series3.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite60.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
857×pow1_binary64
794×add-log-exp_binary64
791×log1p-expm1-u_binary64
791×expm1-log1p-u_binary64
780×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01030
119530
2220530
Stop Event
node limit
Counts
3 → 45
Calls
Call 1
Inputs
(pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10)))
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
(*.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 (pow.f64 (exp.f64 10) x) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (pow.f64 (exp.f64 10) x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x)) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x)) 2) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (/.f64 (*.f64 x x) 1/5)) (exp.f64 (/.f64 (*.f64 x x) 1/5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x (*.f64 x 10))) (pow.f64 (pow.f64 (exp.f64 10) x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 2)) (*.f64 x (*.f64 x 10))) (pow.f64 (cbrt.f64 (E.f64)) (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (E.f64)) (*.f64 x (*.f64 x 10))) (pow.f64 (sqrt.f64 (E.f64)) (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x)))))) (#(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 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (cos.f64 x)) (exp.f64 (/.f64 (*.f64 x x) 1/5))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x)) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) 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 (pow.f64 (exp.f64 10) x) x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 x (*.f64 x 10)) (log.f64 (cos.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (*.f64 x x) 1/5) (/.f64 (*.f64 x x) 1/5))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x))))))) (#(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 (pow.f64 (exp.f64 10) x) x))))) (#(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))))))))

simplify59.0ms (0.6%)

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
81 → 64
Calls
Call 1
Inputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
Outputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 500/3 (pow.f64 x 6) 1))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(fma.f64 (*.f64 x x) 19/2 (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (*.f64 x x))

localize22.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 52 to 27 computations (48.1% saved)

series5.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite63.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify76.0ms (0.8%)

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

Useful iterations: 3 (0.0ms)

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

localize47.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (pow.f64 (exp.f64 20) x) 3/2)
0.3b
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2)) x) (cos.f64 x))
0.5b
(pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2)) x)
0.7b
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2))
Compiler

Compiled 46 to 35 computations (23.9% saved)

series53.0ms (0.6%)

Counts
4 → 48
Calls

12 calls:

TimeVariablePointExpression
31.0ms
x
@inf
(pow.f64 (pow.f64 (exp.f64 20) x) 3/2)
17.0ms
x
@-inf
(pow.f64 (pow.f64 (exp.f64 20) x) 3/2)
1.0ms
x
@inf
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2)) x) (cos.f64 x))
1.0ms
x
@-inf
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2))
1.0ms
x
@inf
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2))

rewrite75.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
463×log-prod_binary64
440×pow-pow_binary64
359×exp-prod_binary64
309×pow-unpow_binary64
276×pow-prod-down_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify76.0ms (0.8%)

Algorithm
egg-herbie
Rules
976×fma-def_binary64
685×distribute-rgt-out_binary64
670×associate-*l*_binary64
597×distribute-lft-out_binary64
497×associate-*r*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
064516
1149506
2364496
31135482
44474434
57386434
Stop Event
node limit
Counts
227 → 212
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)))))
(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 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 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)))))
(exp.f64 (*.f64 30 x))
(exp.f64 (*.f64 30 x))
(exp.f64 (*.f64 30 x))
(exp.f64 (*.f64 30 x))
(exp.f64 (*.f64 30 x))
(exp.f64 (*.f64 30 x))
(exp.f64 (*.f64 30 x))
(exp.f64 (*.f64 30 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 (fma.f64 10 x 1) (*.f64 x (*.f64 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 50 (*.f64 x x)))))
(+.f64 (fma.f64 10 x (*.f64 x (*.f64 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 (exp.f64 (*.f64 x 20)))
(sqrt.f64 (pow.f64 (exp.f64 x) 20))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 x 20)))
(sqrt.f64 (pow.f64 (exp.f64 x) 20))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 x 20)))
(sqrt.f64 (pow.f64 (exp.f64 x) 20))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 x 20)))
(sqrt.f64 (pow.f64 (exp.f64 x) 20))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 x 20)))
(sqrt.f64 (pow.f64 (exp.f64 x) 20))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 x 20)))
(sqrt.f64 (pow.f64 (exp.f64 x) 20))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 x 20)))
(sqrt.f64 (pow.f64 (exp.f64 x) 20))
(sqrt.f64 (pow.f64 (exp.f64 20) x))
(pow.f64 (exp.f64 x) 10)
(sqrt.f64 (exp.f64 (*.f64 20 x)))
(sqrt.f64 (exp.f64 (*.f64 x 20)))
(sqrt.f64 (pow.f64 (exp.f64 x) 20))
(sqrt.f64 (pow.f64 (exp.f64 20) 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))
(+.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 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x))
(pow.f64 (sqrt.f64 (exp.f64 (*.f64 x 20))) x)
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) 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 (exp.f64 (*.f64 x 20))) x)
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) 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 (exp.f64 (*.f64 x 20))) x)
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) 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 (exp.f64 (*.f64 x 20))) x)
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) 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 (exp.f64 (*.f64 x 20))) x)
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) 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 (exp.f64 (*.f64 x 20))) x)
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) 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 (exp.f64 (*.f64 x 20))) x)
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) 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 (exp.f64 (*.f64 x 20))) x)
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) 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 (pow.f64 x 4) 1081/24 (*.f64 x (*.f64 x 19/2))))
(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 4) 1081/24 (fma.f64 x (*.f64 x 19/2) (*.f64 (pow.f64 x 6) 102299/720))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 (*.f64 x 20))) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) x) (cos.f64 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 (exp.f64 (*.f64 x 20))) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) x) (cos.f64 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 (exp.f64 (*.f64 x 20))) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) x) (cos.f64 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 (exp.f64 (*.f64 x 20))) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) x) (cos.f64 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 (exp.f64 (*.f64 x 20))) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) x) (cos.f64 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 (exp.f64 (*.f64 x 20))) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) x) (cos.f64 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 (exp.f64 (*.f64 x 20))) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) x) (cos.f64 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 (exp.f64 (*.f64 x 20))) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) x) (cos.f64 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 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))
(exp.f64 (*.f64 30 x))
(pow.f64 (exp.f64 30) x)
(exp.f64 (*.f64 30 x))
(pow.f64 (exp.f64 30) x)
(exp.f64 (*.f64 30 x))
(pow.f64 (exp.f64 30) x)
(exp.f64 (*.f64 30 x))
(pow.f64 (exp.f64 30) x)
(exp.f64 (*.f64 30 x))
(pow.f64 (exp.f64 30) x)
(exp.f64 (*.f64 30 x))
(pow.f64 (exp.f64 30) x)
(exp.f64 (*.f64 30 x))
(pow.f64 (exp.f64 30) x)
(exp.f64 (*.f64 30 x))
(pow.f64 (exp.f64 30) x)

eval195.0ms (2%)

Compiler

Compiled 9182 to 5907 computations (35.7% saved)

prune122.0ms (1.3%)

Pruning

53 alts after pruning (43 fresh and 10 done)

PrunedKeptTotal
New58729616
Fresh151429
Picked101
Done01010
Total60353656
Error
0.0b
Counts
656 → 53
Alt Table
Click to see full alt table
StatusErrorProgram
0.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
4.0b
(*.f64 (*.f64 (exp.f64 (/.f64 (*.f64 x x) 1/5)) (exp.f64 (/.f64 (*.f64 x x) 1/5))) (cos.f64 x))
3.1b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 20 x)) x)) (cos.f64 x))
3.0b
(*.f64 (pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2)) (cos.f64 x))
2.1b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30) (pow.f64 (cos.f64 x) 3)))
0.9b
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 30) x)) x) (cos.f64 x))
3.5b
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) 1/3) (cos.f64 x))
2.8b
(*.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 30 x))) x) (cos.f64 x))
3.8b
(*.f64 (cos.f64 x) (+.f64 1 (pow.f64 (pow.f64 (expm1.f64 (*.f64 10 (*.f64 x x))) 3) 1/3)))
0.4b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
3.1b
(*.f64 (pow.f64 (pow.f64 (exp.f64 60) (*.f64 1/3 (*.f64 x 1/2))) x) (cos.f64 x))
0.5b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
3.2b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
0.6b
(cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3) (pow.f64 (cos.f64 x) 3)))
0.7b
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
3.1b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.6b
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
3.2b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
3.0b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (*.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))
3.9b
(*.f64 (exp.f64 (*.f64 (*.f64 3/2 (*.f64 20 x)) (*.f64 1/3 x))) (cos.f64 x))
3.5b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) 3))
3.0b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3) (cos.f64 x)) 3))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
3.1b
(*.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)))
3.5b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
57.7b
(*.f64 (cos.f64 x) (+.f64 1 (*.f64 10 (*.f64 x x))))
4.5b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x)))) (cos.f64 x)) 3))
3.6b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))
3.6b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
1.2b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
3.6b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 4)) (/.f64 x 1/5)))
3.6b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
3.8b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))
2.1b
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (E.f64) (*.f64 10 (*.f64 x x))))
1.3b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x)) 3))
3.1b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x)) 3))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
57.8b
(*.f64 (cos.f64 x) 1)
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 2 x)) 5))
0.7b
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 60) x)) x)) (cos.f64 x))
3.6b
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
3.8b
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
4.1b
(*.f64 (exp.f64 (*.f64 (*.f64 20 (*.f64 x 3/2)) (*.f64 1/3 x))) (cos.f64 x))
3.6b
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
1.4b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))) 3)
0.5b
(*.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 40) x)) x)) (cos.f64 x))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
63.0b
1
3.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (+.f64 x x)) (/.f64 x 1/5)))
Compiler

Compiled 657 to 492 computations (25.1% saved)

regimes278.0ms (2.9%)

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

3 calls:

87.0ms
x
78.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
68.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 1530 to 897 computations (41.4% saved)

regimes132.0ms (1.4%)

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

43.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
35.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
34.0ms
x
Results
ErrorSegmentsBranch
1.3b1x
1.3b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
1.3b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 390 to 215 computations (44.9% saved)

regimes255.0ms (2.7%)

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

3 calls:

164.0ms
x
29.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
29.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Results
ErrorSegmentsBranch
2.1b1x
2.1b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
2.1b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 322 to 178 computations (44.7% saved)

regimes102.0ms (1.1%)

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

3 calls:

29.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
29.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
28.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 304 to 171 computations (43.8% saved)

regimes87.0ms (0.9%)

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

3 calls:

26.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
24.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
24.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 244 to 138 computations (43.4% saved)

regimes57.0ms (0.6%)

Counts
12 → 1
Calls
Call 1
Inputs
1
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (+.f64 1 (*.f64 10 (*.f64 x x))))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
(*.f64 (exp.f64 (*.f64 (*.f64 3/2 (*.f64 20 x)) (*.f64 1/3 x))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (*.f64 20 (*.f64 x 3/2)) (*.f64 1/3 x))) (cos.f64 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:

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

Compiled 133 to 82 computations (38.3% saved)

regimes52.0ms (0.5%)

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

3 calls:

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

Compiled 124 to 78 computations (37.1% saved)

regimes31.0ms (0.3%)

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

2 calls:

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

Compiled 77 to 47 computations (39% saved)

regimes13.0ms (0.1%)

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

1 calls:

10.0ms
x
Results
ErrorSegmentsBranch
3.6b1x
Compiler

Compiled 36 to 22 computations (38.9% 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)

regimes9.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
15×*-commutative_binary64
+-commutative_binary64
*-rgt-identity_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 112 to 81 computations (27.7% saved)

soundness112.0ms (1.2%)

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)

end181.0ms (1.9%)

Compiler

Compiled 101 to 55 computations (45.5% saved)

Profiling

Loading profile data...