Details

Time bar (total: 8.8s)

analyze0.0ms (0%)

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

Compiled 17 to 12 computations (29.4% saved)

sample1.8s (20%)

Results
1.8s8256×body256valid

preprocess94.0ms (1.1%)

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)

simplify73.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

eval1.0ms (0%)

Compiler

Compiled 19 to 12 computations (36.8% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 20 to 14 computations (30% saved)

localize14.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 13 computations (53.6% saved)

series4.0ms (0.1%)

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

rewrite74.0ms (0.8%)

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

simplify69.0ms (0.8%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
035370
183364
2193362
3583360
42095360
53969360
65885360
Stop Event
node limit
Counts
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))

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

series8.0ms (0.1%)

Counts
3 → 28
Calls

9 calls:

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

rewrite85.0ms (1%)

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

simplify78.0ms (0.9%)

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

eval78.0ms (0.9%)

Compiler

Compiled 1731 to 1044 computations (39.7% saved)

prune179.0ms (2%)

Pruning

38 alts after pruning (36 fresh and 2 done)

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

Compiled 1038 to 752 computations (27.6% saved)

localize25.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

series4.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite71.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

simplify124.0ms (1.4%)

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

Useful iterations: 3 (0.0ms)

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

localize5.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize23.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(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.5b
(pow.f64 (pow.f64 (exp.f64 x) 20) x)
2.1b
(pow.f64 (exp.f64 x) 20)
Compiler

Compiled 34 to 18 computations (47.1% saved)

series8.0ms (0.1%)

Counts
4 → 40
Calls

12 calls:

TimeVariablePointExpression
2.0ms
x
@-inf
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
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)

rewrite73.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

simplify72.0ms (0.8%)

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

Useful iterations: 4 (0.0ms)

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

localize28.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 39 to 29 computations (25.6% saved)

series9.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite64.0ms (0.7%)

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

simplify66.0ms (0.7%)

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

localize45.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

Compiled 46 to 24 computations (47.8% saved)

series7.0ms (0.1%)

Counts
4 → 40
Calls

12 calls:

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

rewrite119.0ms (1.3%)

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

Useful iterations: 1 (0.0ms)

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

simplify61.0ms (0.7%)

Algorithm
egg-herbie
Rules
581×associate-+l+_binary64
494×distribute-lft-out_binary64
388×associate-+r+_binary64
381×*-commutative_binary64
369×distribute-rgt-out_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
062497
1159487
2388433
31261433
42473433
55640433
Stop Event
node limit
Counts
108 → 99
Calls
Call 1
Inputs
1
(+.f64 (*.f64 5 x) 1)
(+.f64 (*.f64 5 x) (+.f64 (*.f64 25/2 (pow.f64 x 2)) 1))
(+.f64 (*.f64 5 x) (+.f64 (*.f64 25/2 (pow.f64 x 2)) (+.f64 1 (*.f64 125/6 (pow.f64 x 3)))))
1
(+.f64 1 (*.f64 5 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 125/6 (pow.f64 x 6)) (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4)))))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) 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 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
Outputs
1
(+.f64 (*.f64 5 x) 1)
(fma.f64 5 x 1)
(+.f64 (*.f64 5 x) (+.f64 (*.f64 25/2 (pow.f64 x 2)) 1))
(fma.f64 5 x (fma.f64 25/2 (*.f64 x x) 1))
(fma.f64 5 x (fma.f64 x (*.f64 x 25/2) 1))
(+.f64 (*.f64 5 x) (+.f64 (*.f64 25/2 (pow.f64 x 2)) (+.f64 1 (*.f64 125/6 (pow.f64 x 3)))))
(fma.f64 5 x (+.f64 (fma.f64 25/2 (*.f64 x x) 1) (*.f64 125/6 (pow.f64 x 3))))
(fma.f64 5 x (fma.f64 25/2 (*.f64 x x) (fma.f64 125/6 (pow.f64 x 3) 1)))
(fma.f64 5 x (fma.f64 x (*.f64 x 25/2) (fma.f64 125/6 (pow.f64 x 3) 1)))
(+.f64 1 (*.f64 x (+.f64 5 (*.f64 x (+.f64 25/2 (*.f64 x 125/6))))))
1
(+.f64 1 (*.f64 5 (pow.f64 x 2)))
(+.f64 1 (*.f64 5 (*.f64 x x)))
(fma.f64 5 (*.f64 x x) 1)
(fma.f64 x (*.f64 5 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))))
(fma.f64 5 (*.f64 x x) (fma.f64 25/2 (pow.f64 x 4) 1))
(+.f64 1 (+.f64 (*.f64 125/6 (pow.f64 x 6)) (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4)))))
(+.f64 1 (fma.f64 125/6 (pow.f64 x 6) (fma.f64 5 (*.f64 x x) (*.f64 25/2 (pow.f64 x 4)))))
(fma.f64 125/6 (pow.f64 x 6) (fma.f64 5 (*.f64 x x) (fma.f64 25/2 (pow.f64 x 4) 1)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(pow.f64 (pow.f64 (exp.f64 x) 5) x)
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(pow.f64 (pow.f64 (exp.f64 x) 5) x)
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(pow.f64 (pow.f64 (exp.f64 x) 5) x)
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(pow.f64 (pow.f64 (exp.f64 x) 5) x)
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(pow.f64 (pow.f64 (exp.f64 x) 5) x)
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(pow.f64 (pow.f64 (exp.f64 x) 5) x)
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(pow.f64 (pow.f64 (exp.f64 x) 5) x)
(pow.f64 (exp.f64 x) (*.f64 5 x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x))
(pow.f64 (pow.f64 (exp.f64 x) 5) x)
(pow.f64 (exp.f64 x) (*.f64 5 x))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 10 1)
(fma.f64 x (*.f64 x 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 (pow.f64 x 4) 50)))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 1))
(+.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 4) 50 (fma.f64 (pow.f64 x 6) 500/3 1)))
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x))
(exp.f64 (*.f64 x (*.f64 x 10)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x))
(exp.f64 (*.f64 x (*.f64 x 10)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x))
(exp.f64 (*.f64 x (*.f64 x 10)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x))
(exp.f64 (*.f64 x (*.f64 x 10)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x))
(exp.f64 (*.f64 x (*.f64 x 10)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x))
(exp.f64 (*.f64 x (*.f64 x 10)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x))
(exp.f64 (*.f64 x (*.f64 x 10)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x))
(exp.f64 (*.f64 x (*.f64 x 10)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 x (*.f64 x 19/2)))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 (fma.f64 (*.f64 x x) 19/2 1) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24)))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 x 10))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 x 10))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 x 10))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 x 10))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 x 10))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 x 10))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 x 10))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 5)) x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) 2) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) (*.f64 2 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 x (*.f64 x 10))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))

eval307.0ms (3.5%)

Compiler

Compiled 6919 to 4350 computations (37.1% saved)

prune256.0ms (2.9%)

Pruning

62 alts after pruning (57 fresh and 5 done)

PrunedKeptTotal
New38449433
Fresh23831
Picked011
Done246
Total40962471
Error
0.1b
Counts
471 → 62
Alt Table
Click to see full alt table
StatusErrorProgram
3.3b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 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)))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 5) (+.f64 x x)))
2.3b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 5)) 4))) (sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x))))))
3.1b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
0.6b
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
57.8b
(*.f64 (cos.f64 x) 1)
3.2b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x 20)) x)))
3.3b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
1.1b
(*.f64 (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) (pow.f64 (sqrt.f64 (exp.f64 10)) x)) x) (cos.f64 x))
3.5b
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
2.6b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (exp.f64 x) (*.f64 5 x))))
3.1b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
3.3b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2)))
2.1b
(*.f64 (cos.f64 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))))
1.3b
(*.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x)) (cos.f64 x))
3.4b
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3) (pow.f64 (cos.f64 x) 3)))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
2.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3)))
1.5b
(*.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.4b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))
2.2b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
2.3b
(*.f64 (cos.f64 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))))))
3.3b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))) 3)
2.0b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (pow.f64 (exp.f64 x) 5) x)))
1.5b
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) (cbrt.f64 (pow.f64 (exp.f64 10) x))) x) (cos.f64 x))
4.2b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 1) (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
3.5b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)))
4.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) (sqrt.f64 x)) (sqrt.f64 x)))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)))) 3))
2.7b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (exp.f64 (*.f64 x (*.f64 x 5)))))
3.3b
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))) (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))
2.0b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 40)) x)))
3.0b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x)) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
2.1b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 5)) x))))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.3b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))
2.0b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3) (pow.f64 (cos.f64 x) 3)))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2) 1/3))
2.0b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 3)) x)))
3.5b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
2.0b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x)) 3))
3.5b
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 20)))))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 2) (*.f64 x 5)))
2.9b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (*.f64 x 5))))))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x)))))
3.2b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
2.4b
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
3.5b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) 2) (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x))))))
2.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))) 3)
3.5b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 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)))))
3.4b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 5)) 2))
3.0b
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)) (cos.f64 x))
1.4b
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) 3)) x) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.9b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
Compiler

Compiled 1776 to 1300 computations (26.8% saved)

localize36.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

rewrite75.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

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

simplify80.0ms (0.9%)

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)

localize20.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.2b
(exp.f64 (*.f64 x (*.f64 10 x)))
Compiler

Compiled 28 to 17 computations (39.3% saved)

series2.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite70.0ms (0.8%)

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

simplify76.0ms (0.9%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
035370
183364
2193362
3583360
42095360
53969360
65885360
Stop Event
node limit
Counts
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))

localize165.0ms (1.9%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 5)) 2))
0.4b
(pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 5)) 2)
2.7b
(pow.f64 (exp.f64 x) (*.f64 x 5))
Compiler

Compiled 36 to 21 computations (41.7% saved)

series5.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite87.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
909×pow1_binary64
843×add-log-exp_binary64
842×log1p-expm1-u_binary64
842×expm1-log1p-u_binary64
822×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify64.0ms (0.7%)

Algorithm
egg-herbie
Rules
644×fma-def_binary64
608×distribute-rgt-out_binary64
490×associate-*l*_binary64
460×distribute-lft-out_binary64
423×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
047458
1113450
2278396
3879394
43335394
56032394
Stop Event
node limit
Counts
85 → 74
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 5 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 125/6 (pow.f64 x 6)) (+.f64 (*.f64 5 (pow.f64 x 2)) (*.f64 25/2 (pow.f64 x 4)))))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(exp.f64 (*.f64 5 (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)))))
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
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 5 (*.f64 x x) (fma.f64 25/2 (pow.f64 x 4) (fma.f64 125/6 (pow.f64 x 6) 1)))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(pow.f64 (exp.f64 5) (*.f64 x x))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(pow.f64 (exp.f64 5) (*.f64 x x))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(pow.f64 (exp.f64 5) (*.f64 x x))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(pow.f64 (exp.f64 5) (*.f64 x x))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(pow.f64 (exp.f64 5) (*.f64 x x))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(pow.f64 (exp.f64 5) (*.f64 x x))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(pow.f64 (exp.f64 5) (*.f64 x x))
(exp.f64 (*.f64 5 (pow.f64 x 2)))
(pow.f64 (exp.f64 5) (*.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 x (*.f64 x 10) (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 (pow.f64 x 6) 500/3 1))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 (fma.f64 (pow.f64 x 6) 500/3 1)))
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2)
(pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2)
(pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2)
(pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2)
(pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2)
(pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2)
(pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2)
(pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2)
(pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2)
(pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 x) (*.f64 x 10))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 (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))
(+.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 6) 102299/720 (fma.f64 (pow.f64 x 4) 1081/24 1)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 1081/24 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 5 (pow.f64 x 2))) 2))
(*.f64 (pow.f64 (pow.f64 (exp.f64 5) (*.f64 x x)) 2) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 5) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))

localize47.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

Compiled 42 to 24 computations (42.9% saved)

series6.0ms (0.1%)

Counts
4 → 40
Calls

12 calls:

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

rewrite78.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
889×pow1_binary64
827×add-log-exp_binary64
827×log1p-expm1-u_binary64
827×expm1-log1p-u_binary64
802×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify73.0ms (0.8%)

Algorithm
egg-herbie
Rules
748×distribute-lft-out_binary64
714×distribute-rgt-out_binary64
708×associate-*l*_binary64
550×associate-*r*_binary64
481×unswap-sqr_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
064485
1152475
2376467
31166467
43983435
57906435
Stop Event
node limit
Counts
121 → 112
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 40 x))
(+.f64 1 (+.f64 (*.f64 40 x) (*.f64 800 (pow.f64 x 2))))
(+.f64 (*.f64 32000/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 40 x) (*.f64 800 (pow.f64 x 2)))))
1
(+.f64 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 1 (*.f64 40 x))
(fma.f64 40 x 1)
(+.f64 1 (+.f64 (*.f64 40 x) (*.f64 800 (pow.f64 x 2))))
(+.f64 1 (fma.f64 40 x (*.f64 800 (*.f64 x x))))
(+.f64 (fma.f64 40 x 1) (*.f64 (*.f64 800 x) x))
(fma.f64 40 x (fma.f64 800 (*.f64 x x) 1))
(+.f64 (*.f64 32000/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 40 x) (*.f64 800 (pow.f64 x 2)))))
(fma.f64 32000/3 (pow.f64 x 3) (+.f64 1 (fma.f64 40 x (*.f64 800 (*.f64 x x)))))
(+.f64 (fma.f64 40 x (*.f64 (*.f64 800 x) x)) (fma.f64 32000/3 (pow.f64 x 3) 1))
(fma.f64 32000/3 (pow.f64 x 3) (fma.f64 40 x (fma.f64 800 (*.f64 x x) 1)))
(+.f64 1 (*.f64 x (+.f64 (*.f64 x (+.f64 800 (*.f64 x 32000/3))) 40)))
(+.f64 1 (*.f64 x (+.f64 40 (*.f64 x (+.f64 800 (*.f64 x 32000/3))))))
1
(+.f64 1 (*.f64 20 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 20))
(fma.f64 (*.f64 x x) 20 1)
(fma.f64 x (*.f64 x 20) 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 (*.f64 x x) 20)))
(+.f64 1 (fma.f64 (*.f64 x x) 20 (*.f64 200 (pow.f64 x 4))))
(fma.f64 x (*.f64 x 20) (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 200 (pow.f64 x 4) (fma.f64 (*.f64 x x) 20 (*.f64 4000/3 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 x (*.f64 x 20) (fma.f64 200 (pow.f64 x 4) (*.f64 4000/3 (pow.f64 x 6)))))
(fma.f64 200 (pow.f64 x 4) (+.f64 (*.f64 x (*.f64 x 20)) (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 x 20))
(pow.f64 (exp.f64 20) (*.f64 x 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 x 20))
(pow.f64 (exp.f64 20) (*.f64 x 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 x 20))
(pow.f64 (exp.f64 20) (*.f64 x 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 x 20))
(pow.f64 (exp.f64 20) (*.f64 x 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 x 20))
(pow.f64 (exp.f64 20) (*.f64 x 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 x 20))
(pow.f64 (exp.f64 20) (*.f64 x 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 x 20))
(pow.f64 (exp.f64 20) (*.f64 x 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 x 20))
(pow.f64 (exp.f64 20) (*.f64 x x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 x (*.f64 x 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 (*.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 (pow.f64 x 4) 1081/24 (+.f64 (*.f64 (*.f64 x x) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1)))
(+.f64 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 x (*.f64 x 19/2))) (fma.f64 (pow.f64 x 4) 1081/24 1))
(*.f64 (cos.f64 x) (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 x 20))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) 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 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) 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 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) 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 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) 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 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) 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 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) 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 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) 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 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) 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 (pow.f64 x 4) 50 (fma.f64 (*.f64 x x) 10 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 (pow.f64 x 4) 50))))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 (fma.f64 (pow.f64 x 6) 500/3 1)))
(fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 (fma.f64 (*.f64 x x) 10 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 x 20)))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(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 x 20)))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(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 x 20)))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(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 x 20)))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(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 x 20)))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(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 x 20)))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(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 x 20)))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(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 x 20)))
(pow.f64 (pow.f64 (exp.f64 10) x) x)

localize48.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

Compiled 66 to 42 computations (36.4% saved)

series4.0ms (0%)

Counts
4 → 24
Calls

6 calls:

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

rewrite79.0ms (0.9%)

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

Useful iterations: 1 (0.0ms)

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

simplify72.0ms (0.8%)

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

Useful iterations: 2 (0.0ms)

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

eval515.0ms (5.8%)

Compiler

Compiled 7342 to 4643 computations (36.8% saved)

prune126.0ms (1.4%)

Pruning

50 alts after pruning (44 fresh and 6 done)

PrunedKeptTotal
New43923462
Fresh312152
Picked101
Done369
Total47450524
Error
0.0b
Counts
524 → 50
Alt Table
Click to see full alt table
StatusErrorProgram
3.3b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))) 3)
3.3b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 5) (+.f64 x x)))
3.8b
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
0.6b
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)) (cos.f64 x))
3.1b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
57.8b
(*.f64 (cos.f64 x) 1)
0.6b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
3.3b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
3.2b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x 20)) x)))
3.3b
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))) (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))
3.5b
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
2.6b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (exp.f64 x) (*.f64 5 x))))
3.1b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
0.4b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
3.3b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2)))
3.3b
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) 3) (cos.f64 x))
3.5b
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 20)))))
2.9b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 2/5)) (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 2/5)) (pow.f64 (exp.f64 x) (*.f64 x 5)))))
2.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3)))
0.6b
(cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3) (pow.f64 (cos.f64 x) 3)))
3.4b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
0.6b
(*.f64 (pow.f64 (sqrt.f64 (sqrt.f64 (pow.f64 (exp.f64 40) x))) x) (cos.f64 x))
0.7b
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
1.0b
(*.f64 (*.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))) (cos.f64 x))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 40) (/.f64 (*.f64 x 1/2) 2)))
1.0b
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2)) x) (cos.f64 x))
4.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) (sqrt.f64 x)) (sqrt.f64 x)))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
2.0b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3) (pow.f64 (cos.f64 x) 3)))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
2.9b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (*.f64 x 5))))))
3.5b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (*.f64 x 5))) 2))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x)))))
3.2b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.0b
(*.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 40/3) (*.f64 x x))) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (*.f64 x 5)))) 2))
3.4b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 5)) 2))
2.2b
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
3.5b
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.9b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
3.3b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))
2.0b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) 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)
2.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))) 3)
Compiler

Compiled 1261 to 933 computations (26% saved)

localize34.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 (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.5b
(pow.f64 (pow.f64 (exp.f64 20) x) x)
Compiler

Compiled 34 to 23 computations (32.4% saved)

series4.0ms (0%)

Counts
3 → 20
Calls

9 calls:

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

rewrite94.0ms (1.1%)

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

simplify113.0ms (1.3%)

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

localize28.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 39 to 21 computations (46.2% saved)

series3.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite68.0ms (0.8%)

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

Useful iterations: 1 (0.0ms)

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

simplify61.0ms (0.7%)

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

localize22.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x)))
0.3b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
4.2b
(pow.f64 (exp.f64 x) (*.f64 20 x))
Compiler

Compiled 33 to 18 computations (45.5% saved)

series4.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite71.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
826×pow1_binary64
767×add-log-exp_binary64
767×log1p-expm1-u_binary64
767×expm1-log1p-u_binary64
747×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify76.0ms (0.9%)

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

Useful iterations: 4 (0.0ms)

IterNodesCost
048442
1112434
2265430
3801426
42913394
54946394
67139394
Stop Event
node limit
Counts
95 → 84
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 20 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (*.f64 20 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (+.f64 (*.f64 20 (pow.f64 x 2)) (*.f64 4000/3 (pow.f64 x 6)))))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
Outputs
1
(+.f64 1 (*.f64 20 (pow.f64 x 2)))
(+.f64 1 (*.f64 20 (*.f64 x x)))
(fma.f64 20 (*.f64 x x) 1)
(fma.f64 x (*.f64 20 x) 1)
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (*.f64 20 (pow.f64 x 2))))
(+.f64 1 (fma.f64 200 (pow.f64 x 4) (*.f64 20 (*.f64 x x))))
(+.f64 1 (fma.f64 20 (*.f64 x x) (*.f64 200 (pow.f64 x 4))))
(fma.f64 20 (*.f64 x x) (fma.f64 200 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 200) 20) 1)
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (+.f64 (*.f64 20 (pow.f64 x 2)) (*.f64 4000/3 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 200 (pow.f64 x 4) (fma.f64 20 (*.f64 x x) (*.f64 4000/3 (pow.f64 x 6)))))
(+.f64 (fma.f64 x (*.f64 20 x) 1) (fma.f64 4000/3 (pow.f64 x 6) (*.f64 200 (pow.f64 x 4))))
(fma.f64 20 (*.f64 x x) (fma.f64 200 (pow.f64 x 4) (fma.f64 4000/3 (pow.f64 x 6) 1)))
(fma.f64 4000/3 (pow.f64 x 6) (fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 200) 20) 1))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (*.f64 (pow.f64 x 6) 102299/720))))
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 1081/24 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 10 1)
(fma.f64 x (*.f64 x 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 (pow.f64 x 4) 50)))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 (pow.f64 x 4) 50))))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 (pow.f64 x 6) 500/3 (fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 (pow.f64 x 6) 500/3 1))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 (fma.f64 (pow.f64 x 6) 500/3 1)))
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))))
(sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)

localize32.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 45 to 27 computations (40% saved)

series14.0ms (0.2%)

Counts
4 → 48
Calls

12 calls:

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

rewrite84.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
925×pow1_binary64
869×add-log-exp_binary64
868×log1p-expm1-u_binary64
868×expm1-log1p-u_binary64
847×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01143
123043
2242943
Stop Event
node limit
Counts
4 → 78
Calls
Call 1
Inputs
(pow.f64 (exp.f64 x) (*.f64 x 10))
(pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) 3)
(cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) 3) (cos.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 x) (*.f64 x 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))) (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (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 (exp.f64 x) (/.f64 x 1/5))) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))))))) (#(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 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))) 3) (cbrt.f64 (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) (/.f64 x 1/5))) 3) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) 1) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)))) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)))) (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 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 10 (*.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 *.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))) (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (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 (exp.f64 x) (/.f64 x 1/5))) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))))))) (#(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 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))) 3) (cbrt.f64 (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) (/.f64 x 1/5))) 3) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) 1) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)))) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)))) (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 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 10 (*.f64 x x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))) (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5))) (cbrt.f64 (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/3) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) 1/3) (pow.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) (*.f64 (*.f64 x 10) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.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) 10/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 10 (*.f64 x x)) 1/3))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 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 (pow.f64 (exp.f64 x) (*.f64 x 10))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 10 (*.f64 x x)) (log.f64 (cos.f64 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
358×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
050546
1125532
2290530
3856528
42996528
55047528
67244528
Stop Event
node limit
Counts
126 → 82
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)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
1
(+.f64 (*.f64 10/3 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10/3 (pow.f64 x 2)) (+.f64 1 (*.f64 50/9 (pow.f64 x 4))))
(+.f64 (*.f64 10/3 (pow.f64 x 2)) (+.f64 (*.f64 500/81 (pow.f64 x 6)) (+.f64 1 (*.f64 50/9 (pow.f64 x 4)))))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 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)
(+.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 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 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 10 (*.f64 x x) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (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))
(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))
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 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 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 10 (*.f64 x x) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
1
(+.f64 (*.f64 10/3 (pow.f64 x 2)) 1)
(fma.f64 10/3 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 10/3 1)
(fma.f64 x (*.f64 x 10/3) 1)
(+.f64 (*.f64 10/3 (pow.f64 x 2)) (+.f64 1 (*.f64 50/9 (pow.f64 x 4))))
(+.f64 (fma.f64 10/3 (*.f64 x x) 1) (*.f64 (pow.f64 x 4) 50/9))
(fma.f64 (*.f64 x x) 10/3 (fma.f64 (pow.f64 x 4) 50/9 1))
(fma.f64 x (*.f64 x 10/3) (fma.f64 (pow.f64 x 4) 50/9 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50/9) 10/3) 1)
(+.f64 (*.f64 10/3 (pow.f64 x 2)) (+.f64 (*.f64 500/81 (pow.f64 x 6)) (+.f64 1 (*.f64 50/9 (pow.f64 x 4)))))
(fma.f64 10/3 (*.f64 x x) (fma.f64 500/81 (pow.f64 x 6) (+.f64 1 (*.f64 (pow.f64 x 4) 50/9))))
(fma.f64 (*.f64 x x) 10/3 (fma.f64 (pow.f64 x 6) 500/81 (fma.f64 (pow.f64 x 4) 50/9 1)))
(fma.f64 (pow.f64 x 6) 500/81 (fma.f64 x (*.f64 x 10/3) (fma.f64 (pow.f64 x 4) 50/9 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50/9) 10/3) (fma.f64 (pow.f64 x 6) 500/81 1))
(fma.f64 x (*.f64 x 10/3) (fma.f64 (pow.f64 x 6) 500/81 (fma.f64 (pow.f64 x 4) 50/9 1)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (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 (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))
(+.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 (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))

localize36.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 56 to 34 computations (39.3% saved)

series6.0ms (0.1%)

Counts
4 → 40
Calls

12 calls:

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

rewrite74.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
519×log-prod_binary64
394×pow-unpow_binary64
377×pow-prod-down_binary64
364×pow-pow_binary64
288×pow-prod-up_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify66.0ms (0.7%)

Algorithm
egg-herbie
Rules
829×fma-def_binary64
771×distribute-rgt-out_binary64
603×distribute-lft-out_binary64
582×associate-*l*_binary64
478×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
060486
1145476
2350468
31102440
44068440
57158440
Stop Event
node limit
Counts
164 → 154
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 30 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (*.f64 30 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (+.f64 (*.f64 30 (pow.f64 x 2)) (*.f64 4500 (pow.f64 x 6)))))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
1
(+.f64 1 (*.f64 -3/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 -3/2 (pow.f64 x 2)) (*.f64 7/8 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 -61/240 (pow.f64 x 6)) (+.f64 (*.f64 -3/2 (pow.f64 x 2)) (*.f64 7/8 (pow.f64 x 4)))))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
Outputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 50 10) (fma.f64 500/3 (pow.f64 x 6) 1))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
1
(+.f64 1 (*.f64 30 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 30))
(fma.f64 (*.f64 x x) 30 1)
(fma.f64 x (*.f64 x 30) 1)
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (*.f64 30 (pow.f64 x 2))))
(+.f64 1 (fma.f64 450 (pow.f64 x 4) (*.f64 (*.f64 x x) 30)))
(+.f64 (fma.f64 (*.f64 x x) 30 1) (*.f64 (pow.f64 x 4) 450))
(fma.f64 x (*.f64 x 30) (fma.f64 (pow.f64 x 4) 450 1))
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 450 30) 1)
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (+.f64 (*.f64 30 (pow.f64 x 2)) (*.f64 4500 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 450 (pow.f64 x 4) (fma.f64 30 (*.f64 x x) (*.f64 (pow.f64 x 6) 4500))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 450 (fma.f64 (*.f64 x x) 30 (*.f64 (pow.f64 x 6) 4500))))
(+.f64 1 (fma.f64 x (*.f64 x 30) (fma.f64 (pow.f64 x 6) 4500 (*.f64 (pow.f64 x 4) 450))))
(fma.f64 x (*.f64 x 30) (fma.f64 (pow.f64 x 4) 450 (fma.f64 (pow.f64 x 6) 4500 1)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 x (*.f64 x 30)))
(pow.f64 (exp.f64 x) (*.f64 x 30))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 x (*.f64 x 30)))
(pow.f64 (exp.f64 x) (*.f64 x 30))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 x (*.f64 x 30)))
(pow.f64 (exp.f64 x) (*.f64 x 30))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 x (*.f64 x 30)))
(pow.f64 (exp.f64 x) (*.f64 x 30))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 x (*.f64 x 30)))
(pow.f64 (exp.f64 x) (*.f64 x 30))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 x (*.f64 x 30)))
(pow.f64 (exp.f64 x) (*.f64 x 30))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 x (*.f64 x 30)))
(pow.f64 (exp.f64 x) (*.f64 x 30))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (*.f64 x x))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 x (*.f64 x 30)))
(pow.f64 (exp.f64 x) (*.f64 x 30))
1
(+.f64 1 (*.f64 -3/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) -3/2))
(fma.f64 (*.f64 x x) -3/2 1)
(fma.f64 x (*.f64 x -3/2) 1)
(+.f64 1 (+.f64 (*.f64 -3/2 (pow.f64 x 2)) (*.f64 7/8 (pow.f64 x 4))))
(+.f64 1 (fma.f64 -3/2 (*.f64 x x) (*.f64 (pow.f64 x 4) 7/8)))
(+.f64 1 (fma.f64 (pow.f64 x 4) 7/8 (*.f64 x (*.f64 x -3/2))))
(fma.f64 x (*.f64 x -3/2) (fma.f64 (pow.f64 x 4) 7/8 1))
(+.f64 1 (+.f64 (*.f64 -61/240 (pow.f64 x 6)) (+.f64 (*.f64 -3/2 (pow.f64 x 2)) (*.f64 7/8 (pow.f64 x 4)))))
(+.f64 1 (fma.f64 -61/240 (pow.f64 x 6) (fma.f64 -3/2 (*.f64 x x) (*.f64 (pow.f64 x 4) 7/8))))
(+.f64 1 (fma.f64 (pow.f64 x 6) -61/240 (fma.f64 (pow.f64 x 4) 7/8 (*.f64 x (*.f64 x -3/2)))))
(fma.f64 (pow.f64 x 6) -61/240 (fma.f64 x (*.f64 x -3/2) (fma.f64 (pow.f64 x 4) 7/8 1)))
(fma.f64 x (*.f64 x -3/2) (fma.f64 (pow.f64 x 4) 7/8 (fma.f64 (pow.f64 x 6) -61/240 1)))
(fma.f64 x (*.f64 x -3/2) (fma.f64 (pow.f64 x 6) -61/240 (fma.f64 (pow.f64 x 4) 7/8 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))
(+.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 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 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))

eval244.0ms (2.8%)

Compiler

Compiled 8780 to 5522 computations (37.1% saved)

prune211.0ms (2.4%)

Pruning

50 alts after pruning (41 fresh and 9 done)

PrunedKeptTotal
New53422556
Fresh201939
Picked011
Done2810
Total55650606
Error
0.0b
Counts
606 → 50
Alt Table
Click to see full alt table
StatusErrorProgram
3.5b
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10/3) 3) (cos.f64 x))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
3.8b
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
3.4b
(cbrt.f64 (*.f64 (exp.f64 (*.f64 (*.f64 x 10) (*.f64 x 3))) (pow.f64 (cos.f64 x) 3)))
3.3b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
3.5b
(*.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) 3) (cos.f64 x))
3.9b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (/.f64 x 1/10))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 5) (+.f64 x x)))
3.1b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
3.7b
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5))) 2) 3) (cos.f64 x))
57.7b
(*.f64 (cos.f64 x) (+.f64 1 (*.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)
0.6b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
3.3b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
3.3b
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))) 3) 3) (cos.f64 x))
3.5b
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
2.6b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (exp.f64 x) (*.f64 5 x))))
3.1b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
3.1b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
3.4b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x)) 3))
3.6b
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 (*.f64 x 10) 1/3)) 3) (cos.f64 x))
3.9b
(*.f64 (cos.f64 x) (pow.f64 (E.f64) (*.f64 10 (*.f64 x x))))
0.7b
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (/.f64 x 2)))
3.5b
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 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
0.5b
(*.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 40) x)) x)) (cos.f64 x))
3.2b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 20 x)) x)) (cos.f64 x))
0.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
2.0b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x)) 3))
3.9b
(*.f64 (pow.f64 (exp.f64 (*.f64 (*.f64 10 (*.f64 x x)) 1/3)) 3) (cos.f64 x))
2.9b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (*.f64 x 5))))))
3.5b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (*.f64 x 5))) 2))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.0b
(cbrt.f64 (*.f64 (+.f64 0 (pow.f64 (exp.f64 30) (*.f64 x x))) (pow.f64 (cos.f64 x) 3)))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (sqrt.f64 (*.f64 10 (*.f64 x x)))))
3.2b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.0b
(*.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)))
3.0b
(*.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 40/3) (*.f64 x x))) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (*.f64 x 5)))) 2))
3.4b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 5)) 2))
2.2b
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
3.5b
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.3b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))
3.0b
(*.f64 (pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2)) (cos.f64 x))
2.8b
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) (pow.f64 (cos.f64 x) 3)))
Compiler

Compiled 617 to 458 computations (25.8% saved)

regimes905.0ms (10.2%)

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

3 calls:

333.0ms
x
223.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
71.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 1770 to 1038 computations (41.4% saved)

regimes282.0ms (3.2%)

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

3 calls:

159.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
72.0ms
x
32.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Results
ErrorSegmentsBranch
1.3b1x
1.3b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
1.3b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 352 to 194 computations (44.9% saved)

regimes55.0ms (0.6%)

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

3 calls:

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

Compiled 274 to 154 computations (43.8% saved)

regimes120.0ms (1.4%)

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

3 calls:

84.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
15.0ms
x
13.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 265 to 150 computations (43.4% saved)

regimes71.0ms (0.8%)

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

3 calls:

41.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
13.0ms
x
11.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 208 to 116 computations (44.2% saved)

regimes25.0ms (0.3%)

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

3 calls:

10.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
6.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
6.0ms
x
Results
ErrorSegmentsBranch
3.4b1x
3.4b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.4b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 96 to 58 computations (39.6% saved)

regimes16.0ms (0.2%)

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 (cos.f64 x) (exp.f64 (*.f64 x (/.f64 x 1/10))))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
Outputs
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Calls

2 calls:

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

Compiled 75 to 45 computations (40% saved)

regimes7.0ms (0.1%)

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

1 calls:

5.0ms
x
Results
ErrorSegmentsBranch
3.5b1x
Compiler

Compiled 45 to 27 computations (40% saved)

regimes8.0ms (0.1%)

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

1 calls:

6.0ms
x
Results
ErrorSegmentsBranch
3.9b1x
Compiler

Compiled 27 to 17 computations (37% saved)

regimes5.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:

4.0ms
x
Results
ErrorSegmentsBranch
57.7b1x
Compiler

Compiled 18 to 12 computations (33.3% saved)

regimes4.0ms (0%)

Accuracy

Total -5.2b remaining (-9%)

Threshold costs -5.2b (-9%)

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

1 calls:

3.0ms
x
Results
ErrorSegmentsBranch
57.8b1x
Compiler

Compiled 8 to 6 computations (25% saved)

simplify9.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
045154
165154
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 (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) (exp.f64 (*.f64 x (/.f64 x 1/10))))
(*.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 (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) (exp.f64 (*.f64 x (/.f64 x 1/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)

soundness115.0ms (1.3%)

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)

end149.0ms (1.7%)

Compiler

Compiled 101 to 56 computations (44.6% saved)

Profiling

Loading profile data...