Details

Time bar (total: 6.7s)

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

Results
1.4s8256×body256valid

preprocess58.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
11414
22514
34814
410814
528114
682214
7147914
8378614
9410314
10464314
11580114
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) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify49.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
11414
22514
34814
410814
528114
682214
7147914
8378614
9410314
10464314
11580114
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) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))

eval1.0ms (0%)

Compiler

Compiled 19 to 12 computations (36.8% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 20 to 14 computations (30% saved)

localize13.0ms (0.2%)

Local error

Found 8 expressions with local error:

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

Compiled 28 to 13 computations (53.6% saved)

series6.0ms (0.1%)

Counts
4 → 40
Calls

12 calls:

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

rewrite69.0ms (1%)

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
0833
115833
2182133
Stop Event
node limit
Counts
4 → 67
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))
(cos.f64 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 (*.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 (exp.f64 1) (*.f64 10 (*.f64 x x)))))) (#(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))) (cbrt.f64 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 2 (*.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 log1p.f64 (expm1.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.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 log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x 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 log1p.f64 (expm1.f64 (*.f64 10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 10 (*.f64 x x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cos.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (cbrt.f64 (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (cbrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 x)) (sqrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cos.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cos.f64 x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cos.f64 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (cos.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cos.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (cos.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cos.f64 x)))))))

simplify61.0ms (0.9%)

Algorithm
egg-herbie
Rules
608×fma-def_binary64
605×associate-/r*_binary64
474×distribute-rgt-out_binary64
424×associate-*l*_binary64
408×distribute-lft-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
047422
1110414
2264410
3818406
42789406
54806406
66975406
Stop Event
node limit
Counts
107 → 91
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))
1
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/24 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) (*.f64 -1/720 (pow.f64 x 6)))))
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 (*.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)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 500/3 (pow.f64 x 6) 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))
(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 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 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 (pow.f64 x 6) 102299/720 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 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 (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))
1
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) -1/2))
(fma.f64 (*.f64 x x) -1/2 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/24 (pow.f64 x 4))))
(+.f64 1 (fma.f64 -1/2 (*.f64 x x) (*.f64 (pow.f64 x 4) 1/24)))
(+.f64 1 (fma.f64 (*.f64 x x) -1/2 (*.f64 (pow.f64 x 4) 1/24)))
(fma.f64 (*.f64 x x) -1/2 (fma.f64 (pow.f64 x 4) 1/24 1))
(fma.f64 x (*.f64 x -1/2) (fma.f64 (pow.f64 x 4) 1/24 1))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) (*.f64 -1/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 -1/2 (*.f64 x x) (fma.f64 1/24 (pow.f64 x 4) (*.f64 (pow.f64 x 6) -1/720))))
(+.f64 (fma.f64 (*.f64 x x) -1/2 1) (fma.f64 (pow.f64 x 4) 1/24 (*.f64 (pow.f64 x 6) -1/720)))
(+.f64 (fma.f64 (*.f64 x x) -1/2 1) (fma.f64 (pow.f64 x 6) -1/720 (*.f64 (pow.f64 x 4) 1/24)))
(fma.f64 x (*.f64 x -1/2) (fma.f64 (pow.f64 x 6) -1/720 (fma.f64 (pow.f64 x 4) 1/24 1)))
(fma.f64 (pow.f64 x 4) 1/24 (fma.f64 x (*.f64 x -1/2) (fma.f64 (pow.f64 x 6) -1/720 1)))

localize36.0ms (0.5%)

Local error

Found 8 expressions with local error:

NewErrorProgram
2.6b
(exp.f64 (*.f64 x 10))
0.4b
(pow.f64 (exp.f64 (*.f64 x 10)) x)
0.4b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
0.0b
(cos.f64 x)
0.0b
(cos.f64 x)
0.4b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
0.4b
(pow.f64 (exp.f64 (*.f64 x 10)) x)
2.6b
(exp.f64 (*.f64 x 10))
Compiler

Compiled 27 to 17 computations (37% saved)

series4.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite193.0ms (2.9%)

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

Useful iterations: 0 (0.0ms)

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

simplify49.0ms (0.7%)

Algorithm
egg-herbie
Rules
798×fma-def_binary64
612×distribute-rgt-out_binary64
551×associate-*l*_binary64
548×distribute-lft-out_binary64
471×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
045377
1111369
2277363
3854355
43409355
56181355
Stop Event
node limit
Counts
85 → 73
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 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
Outputs
1
(+.f64 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))))
(fma.f64 10 x (fma.f64 x (*.f64 x 50) 1))
(fma.f64 x (fma.f64 x 50 10) 1)
(+.f64 (*.f64 500/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2)))))
(fma.f64 500/3 (pow.f64 x 3) (+.f64 1 (fma.f64 10 x (*.f64 50 (*.f64 x x)))))
(+.f64 (fma.f64 10 x (*.f64 50 (*.f64 x 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 x (fma.f64 x 50 10) (fma.f64 500/3 (pow.f64 x 3) 1))
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(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)
(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 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) 1)
(fma.f64 50 (pow.f64 x 4) (fma.f64 x (*.f64 10 x) 1))
(fma.f64 50 (pow.f64 x 4) (fma.f64 10 (*.f64 x x) 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 500/3 (pow.f64 x 6) (fma.f64 x (*.f64 10 x) 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 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 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 (fma.f64 (*.f64 x x) 19/2 (*.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))
(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))

eval163.0ms (2.4%)

Compiler

Compiled 2381 to 1444 computations (39.4% saved)

prune86.0ms (1.3%)

Pruning

41 alts after pruning (39 fresh and 2 done)

PrunedKeptTotal
New14739186
Fresh000
Picked011
Done011
Total14741188
Error
0.5b
Counts
188 → 41
Alt Table
Click to see full alt table
StatusErrorProgram
2.1b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3) (pow.f64 (cos.f64 x) 3)))
2.1b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) x))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (+.f64 1 (expm1.f64 (*.f64 x 10))) x))
2.1b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x)) 3))
3.5b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (exp.f64 (*.f64 10 (*.f64 x x))))
2.1b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (pow.f64 (exp.f64 x) 5) x)))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 1) (*.f64 x 10)) x))
3.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)))
3.3b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 3) (pow.f64 (exp.f64 (*.f64 x 10)) x))
2.1b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) x)))
4.4b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 (*.f64 x 10))) (sqrt.f64 (*.f64 x 10))) x))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2) x))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.0b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 2 (*.f64 x x)))))
3.2b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (exp.f64 (*.f64 x 10)) x))
2.4b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) 3) x))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
3.2b
(*.f64 (log.f64 (exp.f64 (cos.f64 x))) (pow.f64 (exp.f64 (*.f64 x 10)) x))
2.1b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))) 3)
2.1b
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x)) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x))))
3.5b
(*.f64 (log.f64 (exp.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.5b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.6b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 3) (exp.f64 (*.f64 10 (*.f64 x 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.2b
(*.f64 (expm1.f64 (log1p.f64 (cos.f64 x))) (pow.f64 (exp.f64 (*.f64 x 10)) x))
3.6b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (pow.f64 (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) 10))) x))
2.2b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) (cbrt.f64 (pow.f64 (exp.f64 x) 20))) x))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.5b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
2.1b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3)))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) 3)) x))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
57.8b
(*.f64 (cos.f64 x) 1)
4.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
2.2b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
Compiler

Compiled 1030 to 768 computations (25.4% saved)

localize113.0ms (1.7%)

Local error

Found 8 expressions with local error:

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

Compiled 26 to 17 computations (34.6% saved)

series5.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite53.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 log1p.f64 (expm1.f64 (pow.f64 (exp.f64 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x 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 log1p.f64 (expm1.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x 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 log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 10 (*.f64 x x)) (log.f64 (cos.f64 x))))))))

simplify184.0ms (2.7%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
049377
1121369
2292363
3913355
43825355
57838355
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 10 x (*.f64 x (*.f64 x 50))))
(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 10 x (*.f64 x (*.f64 x 50))) (fma.f64 500/3 (pow.f64 x 3) 1))
(fma.f64 500/3 (pow.f64 x 3) (fma.f64 10 x (fma.f64 50 (*.f64 x x) 1)))
(fma.f64 x (fma.f64 x 50 10) (fma.f64 500/3 (pow.f64 x 3) 1))
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
1
(+.f64 (*.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))))
(+.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))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 500/3 (pow.f64 x 6) 1))
(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 (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 (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 (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 (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 (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 (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 (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 (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 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 (pow.f64 x 6) 102299/720 (*.f64 x (*.f64 x 19/2)))))
(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) (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 (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 (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 (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 (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 (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 (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 (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 (exp.f64 10) (*.f64 x x)) (cos.f64 x))

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(cos.f64 x)
0.0b
(cos.f64 x)
Compiler

Compiled 9 to 5 computations (44.4% saved)

rewrite0.0ms (0%)

Counts
0 → 0

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize18.0ms (0.3%)

Local error

Found 8 expressions with local error:

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

Compiled 26 to 13 computations (50% saved)

series7.0ms (0.1%)

Counts
3 → 28
Calls

9 calls:

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

rewrite175.0ms (2.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0829
116729
2196429
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 log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.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 log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(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 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 log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))))) (#(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 exp.f64 (+.f64 (*.f64 x (*.f64 x 10)) (log.f64 (cos.f64 x))))))))

simplify89.0ms (1.3%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
048329
1121321
2292315
3906307
43845307
57648307
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 (fma.f64 10 x 1) (*.f64 x (*.f64 x 50)))
(fma.f64 10 x (fma.f64 x (*.f64 x 50) 1))
(fma.f64 x (fma.f64 x 50 10) 1)
(+.f64 (*.f64 500/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2)))))
(fma.f64 500/3 (pow.f64 x 3) (+.f64 1 (fma.f64 10 x (*.f64 50 (*.f64 x x)))))
(+.f64 (fma.f64 10 x (*.f64 x (*.f64 x 50))) (fma.f64 500/3 (pow.f64 x 3) 1))
(fma.f64 500/3 (pow.f64 x 3) (fma.f64 10 x (fma.f64 x (*.f64 x 50) 1)))
(fma.f64 500/3 (pow.f64 x 3) (fma.f64 x (fma.f64 x 50 10) 1))
(fma.f64 x (fma.f64 x 50 10) (fma.f64 500/3 (pow.f64 x 3) 1))
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))))
(+.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))
(+.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 (*.f64 19/2 x) x)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (*.f64 19/2 x) x))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 x (*.f64 x 19/2) (*.f64 (pow.f64 x 6) 102299/720))))
(fma.f64 (*.f64 x x) 19/2 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (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))

localize149.0ms (2.2%)

Local error

Found 8 expressions with local error:

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

Compiled 37 to 22 computations (40.5% saved)

series6.0ms (0.1%)

Counts
4 → 40
Calls

12 calls:

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

rewrite69.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
908×pow1_binary64
846×add-log-exp_binary64
846×log1p-expm1-u_binary64
846×expm1-log1p-u_binary64
823×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify68.0ms (1%)

Algorithm
egg-herbie
Rules
697×associate-*r*_binary64
640×distribute-rgt-in_binary64
608×unswap-sqr_binary64
550×distribute-lft-out_binary64
254×log-prod_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
062416
1157406
2389400
31245400
43462400
55912400
Stop Event
node limit
Counts
105 → 96
Calls
Call 1
Inputs
1
(+.f64 (*.f64 5 x) 1)
(+.f64 (*.f64 5 x) (+.f64 (*.f64 25/2 (pow.f64 x 2)) 1))
(+.f64 (*.f64 5 x) (+.f64 (*.f64 25/2 (pow.f64 x 2)) (+.f64 1 (*.f64 125/6 (pow.f64 x 3)))))
1
(+.f64 1 (*.f64 10 x))
(+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2))))
(+.f64 (*.f64 500/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2)))))
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 x) 10)
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (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))
(fma.f64 25/2 (*.f64 x x) (fma.f64 5 x 1))
(+.f64 (*.f64 5 x) (+.f64 (*.f64 25/2 (pow.f64 x 2)) (+.f64 1 (*.f64 125/6 (pow.f64 x 3)))))
(fma.f64 5 x (+.f64 (fma.f64 25/2 (*.f64 x x) 1) (*.f64 125/6 (pow.f64 x 3))))
(fma.f64 5 x (fma.f64 25/2 (*.f64 x x) (fma.f64 125/6 (pow.f64 x 3) 1)))
(fma.f64 5 x (fma.f64 x (*.f64 x 25/2) (fma.f64 125/6 (pow.f64 x 3) 1)))
1
(+.f64 1 (*.f64 10 x))
(+.f64 1 (*.f64 x 10))
(fma.f64 x 10 1)
(+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2))))
(+.f64 1 (fma.f64 10 x (*.f64 (*.f64 x x) 50)))
(+.f64 (fma.f64 x 10 1) (*.f64 x (*.f64 x 50)))
(fma.f64 x 10 (fma.f64 x (*.f64 x 50) 1))
(fma.f64 x 10 (fma.f64 (*.f64 x x) 50 1))
(+.f64 (*.f64 500/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2)))))
(fma.f64 500/3 (pow.f64 x 3) (+.f64 1 (fma.f64 10 x (*.f64 (*.f64 x x) 50))))
(fma.f64 (pow.f64 x 3) 500/3 (+.f64 (fma.f64 x 10 1) (*.f64 x (*.f64 x 50))))
(fma.f64 (pow.f64 x 3) 500/3 (fma.f64 x 10 (fma.f64 x (*.f64 x 50) 1)))
(+.f64 1 (*.f64 x (+.f64 (*.f64 x (+.f64 50 (*.f64 x 500/3))) 10)))
(fma.f64 (pow.f64 x 3) 500/3 (fma.f64 x 10 (fma.f64 (*.f64 x x) 50 1)))
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 10) x)
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 10) 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 50 (pow.f64 x 4))))
(fma.f64 (*.f64 x x) 10 (fma.f64 50 (pow.f64 x 4) 1))
(fma.f64 x (*.f64 x 10) (fma.f64 50 (pow.f64 x 4) 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 (*.f64 x x) 10 (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 x (*.f64 x 10) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(fma.f64 x (*.f64 x 10) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 x (*.f64 x 19/2)))))
(+.f64 (fma.f64 x (*.f64 x 19/2) 1) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24)))
(+.f64 1 (fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 (pow.f64 x 4) 1081/24 (*.f64 x (*.f64 x 19/2)))))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2)) x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))

localize37.0ms (0.5%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.5b
(cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3))
0.4b
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
0.4b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3)))
0.0b
(cos.f64 x)
0.4b
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
0.5b
(cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3))
0.8b
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3)
1.6b
(pow.f64 (exp.f64 x) 10)
Compiler

Compiled 47 to 28 computations (40.4% saved)

series4.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

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

rewrite142.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
749×pow1_binary64
710×add-log-exp_binary64
710×log1p-expm1-u_binary64
710×expm1-log1p-u_binary64
690×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify42.0ms (0.6%)

Algorithm
egg-herbie
Rules
720×distribute-rgt-out_binary64
538×unswap-sqr_binary64
424×fma-def_binary64
400×*-commutative_binary64
372×distribute-rgt-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
039270
1100264
2229262
3665236
42431236
55950236
Stop Event
node limit
Counts
79 → 71
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 30 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (*.f64 30 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (+.f64 (*.f64 30 (pow.f64 x 2)) (*.f64 4500 (pow.f64 x 6)))))
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 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))
Outputs
1
(+.f64 1 (*.f64 30 (pow.f64 x 2)))
(+.f64 1 (*.f64 30 (*.f64 x x)))
(fma.f64 30 (*.f64 x x) 1)
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (*.f64 30 (pow.f64 x 2))))
(+.f64 1 (fma.f64 450 (pow.f64 x 4) (*.f64 30 (*.f64 x x))))
(+.f64 1 (fma.f64 30 (*.f64 x x) (*.f64 450 (pow.f64 x 4))))
(fma.f64 30 (*.f64 x x) (fma.f64 450 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 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 4500 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 30 (*.f64 x x) (fma.f64 4500 (pow.f64 x 6) (*.f64 450 (pow.f64 x 4)))))
(fma.f64 450 (pow.f64 x 4) (fma.f64 4500 (pow.f64 x 6) (fma.f64 30 (*.f64 x x) 1)))
(fma.f64 30 (*.f64 x x) (fma.f64 450 (pow.f64 x 4) (fma.f64 4500 (pow.f64 x 6) 1)))
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3)
(pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3)
(pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3)
(pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3)
(pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3)
(pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3)
(pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3)
(pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x)) 3)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 3)
(pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 10 1)
(fma.f64 x (*.f64 x 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 1) (*.f64 (pow.f64 x 4) 50))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 (*.f64 x x) (fma.f64 (*.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 (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 (*.f64 x 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)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 10)) x))
(pow.f64 (pow.f64 (exp.f64 x) 10) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))

eval141.0ms (2.1%)

Compiler

Compiled 5816 to 3553 computations (38.9% saved)

prune154.0ms (2.3%)

Pruning

60 alts after pruning (54 fresh and 6 done)

PrunedKeptTotal
New38335418
Fresh151934
Picked101
Done066
Total39960459
Error
0.1b
Counts
459 → 60
Alt Table
Click to see full alt table
StatusErrorProgram
2.2b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5/2) (*.f64 x 2)) (pow.f64 (pow.f64 (exp.f64 x) 5/2) (*.f64 x 2))))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cbrt.f64 (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.4b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) (*.f64 x 2)) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 5)) (*.f64 x 2))))
3.3b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (+.f64 1 (expm1.f64 (*.f64 x 10))) x))
2.1b
(*.f64 (log.f64 (exp.f64 (cos.f64 x))) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
2.1b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x)) 3))
3.5b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (exp.f64 (*.f64 10 (*.f64 x x))))
1.2b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (cbrt.f64 (cos.f64 x))))
3.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 30)))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 1) (*.f64 x 10)) x))
57.8b
(*.f64 (fma.f64 (*.f64 x x) -1/2 1) 1)
2.1b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (cbrt.f64 (cos.f64 x))) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
2.1b
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 x) 3)) (pow.f64 (pow.f64 (exp.f64 x) 10) 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))
3.3b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 3) (pow.f64 (exp.f64 (*.f64 x 10)) x))
3.6b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) 2) x))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.0b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 2 (*.f64 x x)))))
2.3b
(*.f64 (cos.f64 x) (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (*.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (pow.f64 (pow.f64 (exp.f64 x) 20) x)))))
3.2b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (exp.f64 (*.f64 x 10)) x))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
3.2b
(*.f64 (log.f64 (exp.f64 (cos.f64 x))) (pow.f64 (exp.f64 (*.f64 x 10)) x))
2.1b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))) 3)
2.1b
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x)) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x))))
3.5b
(*.f64 (log.f64 (exp.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.5b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.2b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x 10)) x) 3)))
3.8b
(*.f64 (cos.f64 x) (cbrt.f64 (exp.f64 (*.f64 3 (*.f64 x (*.f64 x 10))))))
2.3b
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x))))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (pow.f64 (cbrt.f64 (cos.f64 x)) 3))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) 3))
3.6b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 3) (exp.f64 (*.f64 10 (*.f64 x x))))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (-.f64 (+.f64 1 (cos.f64 x)) 1))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
3.0b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
3.2b
(*.f64 (expm1.f64 (log1p.f64 (cos.f64 x))) (pow.f64 (exp.f64 (*.f64 x 10)) x))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 20)) x))
2.1b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 3) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.0b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) (cos.f64 x))
2.1b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
3.3b
(*.f64 (cos.f64 x) (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 (*.f64 x 3))) 1)))
0.6b
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 10 (*.f64 x 3))) 1/3))
3.1b
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x) 1/3)))
1.2b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (log.f64 (exp.f64 (cos.f64 x))))
2.2b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) 10) (pow.f64 (sqrt.f64 (exp.f64 x)) 10)) x))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) 3)) x))
1.4b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) x)) x)) (cos.f64 x))
57.8b
(*.f64 (cos.f64 x) 1)
3.5b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
Compiler

Compiled 1583 to 1163 computations (26.5% saved)

localize151.0ms (2.3%)

Local error

Found 8 expressions with local error:

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

Compiled 33 to 23 computations (30.3% saved)

series8.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite54.0ms (0.8%)

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
2211741
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 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (sqrt.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 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)) (sqrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x 1/2)) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 x) (pow.f64 (sqrt.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 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 20 x) (*.f64 x 1/2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (sqrt.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 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 (sqrt.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)) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.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 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (sqrt.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 (*.f64 20 x) (*.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 log1p.f64 (expm1.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))))))) (#(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 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 log1p.f64 (expm1.f64 (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 20) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 20 x))))))

simplify56.0ms (0.8%)

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

Useful iterations: 4 (0.0ms)

IterNodesCost
062514
1149502
2367496
31149482
44170434
57021434
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))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 500/3 (pow.f64 x 6) 1))
(exp.f64 (*.f64 (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)
(+.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 x (*.f64 x 1081/24) 19/2) 1)
(fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 (fma.f64 (*.f64 x x) 19/2 1) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x))) x)))
(*.f64 (pow.f64 (sqrt.f64 (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 x 20 (fma.f64 x (*.f64 x 200) (fma.f64 (pow.f64 x 3) 4000/3 1)))
(fma.f64 (pow.f64 x 3) 4000/3 (fma.f64 x (fma.f64 x 200 20) 1))
(fma.f64 x (*.f64 x (fma.f64 x 4000/3 200)) (fma.f64 x 20 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)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.5b
(fma.f64 (*.f64 x x) -1/2 1)
0.5b
(fma.f64 (*.f64 x x) -1/2 1)
Compiler

Compiled 21 to 12 computations (42.9% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(fma.f64 (*.f64 x x) -1/2 1)
0.0ms
x
@0
(fma.f64 (*.f64 x x) -1/2 1)
0.0ms
x
@-inf
(fma.f64 (*.f64 x x) -1/2 1)

rewrite53.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
455×pow1_binary64
443×add-sqr-sqrt_binary64
434×*-un-lft-identity_binary64
422×add-log-exp_binary64
421×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068
11148
211828
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(fma.f64 (*.f64 x x) -1/2 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (*.f64 x x) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x x) -1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (*.f64 x x) -1/2) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 (*.f64 x x) -1/2 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (*.f64 x x) -1/2 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (*.f64 x x) -1/2 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (*.f64 x x) -1/2 1)) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 x x) -1/2 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 x x) -1/2 1)) 2) (cbrt.f64 (fma.f64 (*.f64 x x) -1/2 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (*.f64 x x) -1/2 1)) (sqrt.f64 (fma.f64 (*.f64 x x) -1/2 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (*.f64 x x) -1/2) 3) 1) (+.f64 (*.f64 (*.f64 (*.f64 x x) -1/2) (*.f64 (*.f64 x x) -1/2)) (-.f64 1 (*.f64 (*.f64 (*.f64 x x) -1/2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (*.f64 x x) -1/2) (*.f64 (*.f64 x x) -1/2)) 1) (-.f64 (*.f64 (*.f64 x x) -1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (*.f64 x x) -1/2 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (*.f64 x x) -1/2 1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (*.f64 x x) -1/2 1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (*.f64 x x) -1/2 1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (*.f64 x x) -1/2 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (*.f64 x x) -1/2 1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (*.f64 x x) -1/2 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (*.f64 x x) -1/2 1)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (*.f64 x x) -1/2 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (*.f64 (*.f64 x x) -1/2)))))))

simplify138.0ms (2.1%)

Algorithm
egg-herbie
Rules
1106×sqr-pow_binary64
618×cube-prod_binary64
554×fabs-mul_binary64
536×pow-sqr_binary64
446×associate-*l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
08105
11687
22787
35187
411487
534587
6125487
7215387
8231787
9250187
10270987
11300487
12339787
13387787
14443887
15512087
16595387
17634787
18663587
19691387
20698787
21702387
22796487
Stop Event
node limit
Counts
33 → 26
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 -1/2 (pow.f64 x 2))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 -1/2 (pow.f64 x 2))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
Outputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 x x)))
(fma.f64 -1/2 (*.f64 x x) 1)
(fma.f64 x (*.f64 -1/2 x) 1)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 x x)))
(fma.f64 -1/2 (*.f64 x x) 1)
(fma.f64 x (*.f64 -1/2 x) 1)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 x x)))
(fma.f64 -1/2 (*.f64 x x) 1)
(fma.f64 x (*.f64 -1/2 x) 1)
(*.f64 -1/2 (pow.f64 x 2))
(*.f64 -1/2 (*.f64 x x))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 x x)))
(fma.f64 -1/2 (*.f64 x x) 1)
(fma.f64 x (*.f64 -1/2 x) 1)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 x x)))
(fma.f64 -1/2 (*.f64 x x) 1)
(fma.f64 x (*.f64 -1/2 x) 1)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 x x)))
(fma.f64 -1/2 (*.f64 x x) 1)
(fma.f64 x (*.f64 -1/2 x) 1)
(*.f64 -1/2 (pow.f64 x 2))
(*.f64 -1/2 (*.f64 x x))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 x x)))
(fma.f64 -1/2 (*.f64 x x) 1)
(fma.f64 x (*.f64 -1/2 x) 1)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 x x)))
(fma.f64 -1/2 (*.f64 x x) 1)
(fma.f64 x (*.f64 -1/2 x) 1)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 x x)))
(fma.f64 -1/2 (*.f64 x x) 1)
(fma.f64 x (*.f64 -1/2 x) 1)

localize102.0ms (1.5%)

Local error

Found 8 expressions with local error:

NewErrorProgram
2.2b
(pow.f64 (exp.f64 x) 20)
0.4b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
0.2b
(pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2))
0.0b
(cos.f64 x)
0.0b
(cos.f64 x)
0.2b
(pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2))
0.4b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
2.2b
(pow.f64 (exp.f64 x) 20)
Compiler

Compiled 34 to 20 computations (41.2% saved)

series6.0ms (0.1%)

Counts
3 → 28
Calls

9 calls:

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

rewrite65.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
938×pow1_binary64
873×add-log-exp_binary64
873×log1p-expm1-u_binary64
873×expm1-log1p-u_binary64
850×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify39.0ms (0.6%)

Algorithm
egg-herbie
Rules
961×fma-def_binary64
770×distribute-rgt-out_binary64
760×distribute-lft-out_binary64
618×associate-*l*_binary64
551×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
054439
1133317
2329315
31072307
44360307
Stop Event
node limit
Counts
73 → 68
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 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 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.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)))))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.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))
(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 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)))
(fma.f64 x (fma.f64 x 200 20) (fma.f64 4000/3 (pow.f64 x 3) 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 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 19/2 x) x)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 1081/24 (pow.f64 x 4) 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 (*.f64 x x) 19/2 (*.f64 102299/720 (pow.f64 x 6)))))
(fma.f64 1081/24 (pow.f64 x 4) (+.f64 1 (fma.f64 x (*.f64 x 19/2) (*.f64 102299/720 (pow.f64 x 6)))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 102299/720 (pow.f64 x 6) 1)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 x)) x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 x)) x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 x)) x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 x)) x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 x)) x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 x)) x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 x)) x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 10 x)) 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 (pow.f64 x 4) 50 (fma.f64 (*.f64 x x) 10 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)))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(pow.f64 (exp.f64 (*.f64 10 x)) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(pow.f64 (exp.f64 (*.f64 10 x)) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(pow.f64 (exp.f64 (*.f64 10 x)) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(pow.f64 (exp.f64 (*.f64 10 x)) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(pow.f64 (exp.f64 (*.f64 10 x)) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(pow.f64 (exp.f64 (*.f64 10 x)) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(pow.f64 (exp.f64 (*.f64 10 x)) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(pow.f64 (exp.f64 (*.f64 10 x)) x)
(pow.f64 (exp.f64 x) (*.f64 x 10))

localize31.0ms (0.5%)

Local error

Found 8 expressions with local error:

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

series9.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite64.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 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) 3))
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 (exp.f64 (*.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 (exp.f64 (*.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 (exp.f64 (*.f64 x x)) 20))) (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 20))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5) (pow.f64 (exp.f64 (*.f64 x x)) 5))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5)) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5)) (cbrt.f64 (pow.f64 (exp.f64 (*.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 (exp.f64 (*.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 (*.f64 x x)) 5)) 3) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.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 (exp.f64 (*.f64 x x)) 20)) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.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 (exp.f64 (*.f64 x x)) 20)) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5))) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 (*.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 log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(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 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 (exp.f64 (*.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 (exp.f64 (*.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 (exp.f64 (*.f64 x x)) 20))) (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 20))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5) (pow.f64 (exp.f64 (*.f64 x x)) 5))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5)) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5)) (cbrt.f64 (pow.f64 (exp.f64 (*.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 (exp.f64 (*.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 (*.f64 x x)) 5)) 3) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.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 (exp.f64 (*.f64 x x)) 20)) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.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 (exp.f64 (*.f64 x x)) 20)) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5))) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 (*.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 log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))))) (#(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 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 (exp.f64 (*.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 (exp.f64 (*.f64 x x)) 20)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.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 (*.f64 x x)) 5)) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.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 (*.f64 x x)) 5) 1/3) (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 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 (*.f64 x x)) 5)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (*.f64 x x)) 10/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.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 log1p.f64 (expm1.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 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 (*.f64 x x)) 5) (sqrt.f64 (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (exp.f64 (*.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 log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))))) (#(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 exp.f64 (+.f64 (*.f64 10 (*.f64 x x)) (log.f64 (cos.f64 x))))))))

simplify70.0ms (1%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
050546
1125532
2290530
3857528
42854528
54900528
67073528
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)
(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 (*.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 (*.f64 x x) (fma.f64 (*.f64 x x) 50 10) (fma.f64 500/3 (pow.f64 x 6) 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 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))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(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 (*.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 (*.f64 x x) (fma.f64 (*.f64 x x) 50 10) (fma.f64 500/3 (pow.f64 x 6) 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 500/3 (pow.f64 x 6) (fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 50 10) 1))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (pow.f64 1 1/3))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 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 (*.f64 x x) (fma.f64 x (*.f64 x 50/9) 10/3) 1)
(fma.f64 x (*.f64 x 10/3) (fma.f64 (pow.f64 x 4) 50/9 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 (*.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 (fma.f64 (pow.f64 x 6) 500/81 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50/9) 10/3) (fma.f64 (pow.f64 x 6) 500/81 1))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(cbrt.f64 (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 (*.f64 (pow.f64 x 4) 1081/24) (fma.f64 (*.f64 x x) 19/2 1))
(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 (fma.f64 x (*.f64 x 19/2) (*.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 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))

localize105.0ms (1.6%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.5b
(cbrt.f64 (pow.f64 (cos.f64 x) 3))
0.4b
(pow.f64 (pow.f64 (exp.f64 10) x) x)
0.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cbrt.f64 (pow.f64 (cos.f64 x) 3)))
0.0b
(cos.f64 x)
0.4b
(pow.f64 (pow.f64 (exp.f64 10) x) x)
0.5b
(cbrt.f64 (pow.f64 (cos.f64 x) 3))
0.5b
(pow.f64 (cos.f64 x) 3)
1.0b
(pow.f64 (exp.f64 10) x)
Compiler

Compiled 39 to 26 computations (33.3% saved)

series3.0ms (0%)

Counts
2 → 16
Calls

6 calls:

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

rewrite56.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
442×pow1_binary64
434×add-sqr-sqrt_binary64
419×*-un-lft-identity_binary64
418×add-log-exp_binary64
418×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify124.0ms (1.9%)

Algorithm
egg-herbie
Rules
874×*-commutative_binary64
652×distribute-lft-out_binary64
519×sqr-pow_binary64
453×associate-+l+_binary64
432×distribute-rgt-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
033128
175124
2179118
3557116
41883116
53476116
64320116
74778116
85557116
96442116
106971116
117605116
Stop Event
node limit
Counts
55 → 52
Calls
Call 1
Inputs
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 -1/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/24 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) (*.f64 -1/720 (pow.f64 x 6)))))
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
Outputs
1
(+.f64 1 (*.f64 -3/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -3/2 (*.f64 x x)))
(fma.f64 -3/2 (*.f64 x x) 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 7/8 (pow.f64 x 4))))
(fma.f64 -3/2 (*.f64 x x) (fma.f64 7/8 (pow.f64 x 4) 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 7/8 (pow.f64 x 4)))))
(fma.f64 -61/240 (pow.f64 x 6) (fma.f64 -3/2 (*.f64 x x) (fma.f64 7/8 (pow.f64 x 4) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 7/8) -3/2) (fma.f64 -61/240 (pow.f64 x 6) 1))
(fma.f64 -3/2 (*.f64 x x) (fma.f64 -61/240 (pow.f64 x 6) (fma.f64 7/8 (pow.f64 x 4) 1)))
1
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) -1/2))
(fma.f64 (*.f64 x x) -1/2 1)
(fma.f64 x (*.f64 x -1/2) 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/24 (pow.f64 x 4))))
(+.f64 1 (fma.f64 -1/2 (*.f64 x x) (*.f64 (pow.f64 x 4) 1/24)))
(+.f64 1 (fma.f64 (*.f64 x x) -1/2 (*.f64 (pow.f64 x 4) 1/24)))
(fma.f64 (*.f64 x x) -1/2 (fma.f64 (pow.f64 x 4) 1/24 1))
(fma.f64 x (*.f64 x -1/2) (fma.f64 (pow.f64 x 4) 1/24 1))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) (*.f64 -1/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 -1/2 (*.f64 x x) (fma.f64 1/24 (pow.f64 x 4) (*.f64 (pow.f64 x 6) -1/720))))
(+.f64 1 (fma.f64 (*.f64 x x) -1/2 (fma.f64 (pow.f64 x 4) 1/24 (*.f64 (pow.f64 x 6) -1/720))))
(+.f64 (fma.f64 (pow.f64 x 6) -1/720 (*.f64 x (*.f64 x -1/2))) (fma.f64 (pow.f64 x 4) 1/24 1))
(fma.f64 (pow.f64 x 6) -1/720 (fma.f64 (*.f64 x x) -1/2 (fma.f64 (pow.f64 x 4) 1/24 1)))
(fma.f64 x (*.f64 x -1/2) (fma.f64 (pow.f64 x 4) 1/24 (fma.f64 (pow.f64 x 6) -1/720 1)))
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)

eval288.0ms (4.3%)

Compiler

Compiled 6031 to 3946 computations (34.6% saved)

prune116.0ms (1.7%)

Pruning

59 alts after pruning (52 fresh and 7 done)

PrunedKeptTotal
New37827405
Fresh242549
Picked011
Done4610
Total40659465
Error
0.0b
Counts
465 → 59
Alt Table
Click to see full alt table
StatusErrorProgram
0.8b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x)) 3))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cbrt.f64 (pow.f64 (cos.f64 x) 3)))
0.7b
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cbrt.f64 (pow.f64 (cos.f64 x) 3)))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (+.f64 1 (expm1.f64 (*.f64 x 10))) x))
2.1b
(*.f64 (log.f64 (exp.f64 (cos.f64 x))) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 (*.f64 x 10) 1/3)) 3))
2.1b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x)) 3))
3.5b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (exp.f64 (*.f64 10 (*.f64 x x))))
3.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 30)))
1.2b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (cbrt.f64 (cos.f64 x))))
1.0b
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
2.1b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (cbrt.f64 (cos.f64 x))) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
2.1b
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 x) 3)) (pow.f64 (pow.f64 (exp.f64 x) 10) 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))
63.0b
(*.f64 1 1)
3.3b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 3) (pow.f64 (exp.f64 (*.f64 x 10)) x))
1.1b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) 3) (cos.f64 x))))
3.6b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 10 x))))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.1b
(*.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x)) (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x))) (cbrt.f64 (pow.f64 (cos.f64 x) 3)))
3.2b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (exp.f64 (*.f64 x 10)) x))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
0.7b
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) 3)) (cos.f64 x))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 20)) (*.f64 x 1/2)))
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)) (cbrt.f64 (pow.f64 (cos.f64 x) 3)))
3.5b
(*.f64 (log.f64 (exp.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.5b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.9b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 10 (*.f64 x x)) 1/3)) 3))
1.3b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))) 3)
3.8b
(*.f64 (cos.f64 x) (cbrt.f64 (exp.f64 (*.f64 3 (*.f64 x (*.f64 x 10))))))
1.2b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (log.f64 (exp.f64 (cos.f64 x))))
0.4b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
57.8b
(*.f64 (*.f64 -1/2 (*.f64 x x)) 1)
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.6b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 3) (exp.f64 (*.f64 10 (*.f64 x x))))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (-.f64 (+.f64 1 (cos.f64 x)) 1))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
2.1b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 3) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
3.0b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
3.2b
(*.f64 (expm1.f64 (log1p.f64 (cos.f64 x))) (pow.f64 (exp.f64 (*.f64 x 10)) x))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (pow.f64 (cbrt.f64 (cos.f64 x)) 3))
2.1b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cbrt.f64 (log.f64 (exp.f64 (pow.f64 (cos.f64 x) 3)))))
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) (cbrt.f64 (-.f64 (+.f64 1 (pow.f64 (cos.f64 x) 3)) 1)))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
3.4b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10/3) 3))
0.9b
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2)) x) (cos.f64 x))
3.5b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
0.6b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
2.2b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
3.0b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) (cbrt.f64 (pow.f64 (cos.f64 x) 3)))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 40)) (*.f64 x 1/2)))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
0.7b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) 3) (pow.f64 (cos.f64 x) 3)))
Compiler

Compiled 1480 to 1117 computations (24.5% saved)

localize32.0ms (0.5%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
0.1b
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
0.0b
(pow.f64 (exp.f64 20) x)
0.0b
(cos.f64 x)
0.0b
(pow.f64 (exp.f64 20) x)
0.1b
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x))
0.4b
(*.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.1%)

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

rewrite56.0ms (0.8%)

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
2212236
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 log1p.f64 (expm1.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(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 exp.f64 (*.f64 20 (*.f64 x x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) (pow.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 3/2) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x 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 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 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 log1p.f64 (expm1.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))))))) (#(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 exp.f64 (*.f64 (*.f64 20 x) (*.f64 x 1/2)))))))

simplify56.0ms (0.8%)

Algorithm
egg-herbie
Rules
596×fma-def_binary64
558×associate-/l*_binary64
474×distribute-rgt-out_binary64
434×associate-*l*_binary64
421×associate-/r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
050282
1117274
2274270
3826266
42845266
54848266
66646266
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)
(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 (*.f64 200 (pow.f64 x 4)) (fma.f64 20 (*.f64 x x) 1))
(fma.f64 20 (*.f64 x x) (fma.f64 200 (pow.f64 x 4) 1))
(fma.f64 200 (pow.f64 x 4) (fma.f64 x (*.f64 20 x) 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 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)))
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 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 x (*.f64 x 19/2)))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (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))))
(+.f64 (fma.f64 10 (*.f64 x x) 1) (*.f64 (pow.f64 x 4) 50))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 (pow.f64 x 4) 50))))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 (fma.f64 (pow.f64 x 6) 500/3 1)))
(fma.f64 (pow.f64 x 4) 50 (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (*.f64 x x) 10 1)))

localize2.0ms (0%)

Compiler

Compiled 5 to 5 computations (0% saved)

localize26.0ms (0.4%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (exp.f64 (*.f64 x 10)) x)
0.4b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (exp.f64 (*.f64 x 10)) x))
0.3b
(+.f64 1 (cos.f64 x))
0.0b
(cos.f64 x)
0.4b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (exp.f64 (*.f64 x 10)) x))
0.4b
(pow.f64 (exp.f64 (*.f64 x 10)) x)
0.5b
(-.f64 (+.f64 1 (cos.f64 x)) 1)
2.6b
(exp.f64 (*.f64 x 10))
Compiler

Compiled 42 to 28 computations (33.3% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite62.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
478×log-prod_binary64
323×fma-def_binary64
314×pow-prod-down_binary64
274×pow2_binary64
270×pow-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01129
123717
2303617
Stop Event
node limit
Counts
2 → 115
Calls
Call 1
Inputs
(-.f64 (+.f64 1 (cos.f64 x)) 1)
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (exp.f64 (*.f64 x 10)) x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 (cos.f64 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (+.f64 (cos.f64 x) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (cos.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cos.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 1 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (cos.f64 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 x))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 x))) (sin.f64 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 x))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 x)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cos.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (cbrt.f64 (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (cbrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 x)) (sqrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (expm1.f64 (*.f64 3 (log1p.f64 (cos.f64 x)))) (/.f64 1 (+.f64 (pow.f64 (+.f64 1 (cos.f64 x)) 2) (+.f64 (cos.f64 x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (expm1.f64 (*.f64 2 (log1p.f64 (cos.f64 x)))) (/.f64 1 (+.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (+.f64 1 (cos.f64 x))) 1) (expm1.f64 (*.f64 1/2 (log1p.f64 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (+.f64 1 (cos.f64 x)) 2) (+.f64 (cos.f64 x) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (cos.f64 x) 2) (expm1.f64 (*.f64 2 (log1p.f64 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (expm1.f64 (*.f64 3 (log1p.f64 (cos.f64 x)))) (+.f64 (pow.f64 (+.f64 1 (cos.f64 x)) 2) (+.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (expm1.f64 (*.f64 3 (log1p.f64 (cos.f64 x)))) (+.f64 (pow.f64 (+.f64 1 (cos.f64 x)) 2) (-.f64 1 (*.f64 (+.f64 1 (cos.f64 x)) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (expm1.f64 (*.f64 2 (log1p.f64 (cos.f64 x)))) (+.f64 (cos.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (expm1.f64 (*.f64 3 (log1p.f64 (cos.f64 x))))) (neg.f64 (+.f64 (pow.f64 (+.f64 1 (cos.f64 x)) 2) (+.f64 (cos.f64 x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (expm1.f64 (*.f64 2 (log1p.f64 (cos.f64 x))))) (neg.f64 (+.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (+.f64 (cos.f64 x) -1) 3)) (+.f64 1 (-.f64 (pow.f64 (+.f64 (cos.f64 x) -1) 2) (+.f64 (cos.f64 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (+.f64 (cos.f64 x) -1) 2)) (-.f64 1 (+.f64 (cos.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cos.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cos.f64 x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cos.f64 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (cos.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cos.f64 x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (+.f64 1 (cos.f64 x)) 2) (+.f64 (cos.f64 x) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (cos.f64 x))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (cos.f64 x) 2) (expm1.f64 (*.f64 2 (log1p.f64 (cos.f64 x))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cos.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (cos.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cos.f64 x)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (cos.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (cos.f64 x)) (sqrt.f64 (*.f64 (cos.f64 x) (+.f64 (cos.f64 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 1 (cos.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (cos.f64 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 x) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (cos.f64 x)) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 1 (cos.f64 x))) (pow.f64 (cbrt.f64 (+.f64 1 (cos.f64 x))) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 (cos.f64 x))) 2) (cbrt.f64 (+.f64 1 (cos.f64 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 (cos.f64 x))) 2) (*.f64 (cbrt.f64 (+.f64 1 (cos.f64 x))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (cbrt.f64 (cos.f64 x)) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (cbrt.f64 (cos.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 1 (cos.f64 x))) (sqrt.f64 (+.f64 1 (cos.f64 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 1 (cos.f64 x))) (*.f64 (sqrt.f64 (+.f64 1 (cos.f64 x))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 x)) (sqrt.f64 (cos.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (expm1.f64 (*.f64 3 (log1p.f64 (cos.f64 x)))) (/.f64 1 (+.f64 (pow.f64 (+.f64 1 (cos.f64 x)) 2) (+.f64 (cos.f64 x) 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (cos.f64 x) 3)) (/.f64 1 (fma.f64 (cos.f64 x) (+.f64 (cos.f64 x) -1) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (expm1.f64 (*.f64 2 (log1p.f64 (cos.f64 x)))) (/.f64 1 (+.f64 (cos.f64 x) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (sin.f64 x) 2) (/.f64 1 (-.f64 1 (cos.f64 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 x) -1)) 2) (cbrt.f64 (+.f64 (cos.f64 x) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (cos.f64 x) -1)) (sqrt.f64 (+.f64 (cos.f64 x) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (+.f64 1 (cos.f64 x))) 1) (expm1.f64 (*.f64 1/2 (log1p.f64 (cos.f64 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (cos.f64 x)) 1) (-.f64 (sqrt.f64 (cos.f64 x)) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cos.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (cos.f64 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (cos.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (cos.f64 x))) 1/3))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (*.f64 (+.f64 (cos.f64 x) -1) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (+.f64 (cos.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 (cos.f64 x)) (pow.f64 (pow.f64 (exp.f64 x) 10) x)) (*.f64 -1 (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (+.f64 1 (cos.f64 x))) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (pow.f64 (exp.f64 x) 10) x))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (cos.f64 x)))) (pow.f64 (pow.f64 (exp.f64 x) 10) x)) (+.f64 (pow.f64 (+.f64 1 (cos.f64 x)) 2) (+.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (cos.f64 x)))) (pow.f64 (pow.f64 (exp.f64 x) 10) x)) (+.f64 (cos.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (expm1.f64 (*.f64 3 (log1p.f64 (cos.f64 x))))) (+.f64 (pow.f64 (+.f64 1 (cos.f64 x)) 2) (+.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (expm1.f64 (*.f64 2 (log1p.f64 (cos.f64 x))))) (+.f64 (cos.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 20 x)) (pow.f64 (cos.f64 x) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 30) x) (pow.f64 (cos.f64 x) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 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 (pow.f64 (exp.f64 x) 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 30) x) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (*.f64 (+.f64 (cos.f64 x) -1) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (+.f64 (cos.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (cos.f64 x)) (pow.f64 (pow.f64 (exp.f64 x) 10) x) (*.f64 -1 (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 1 (*.f64 (+.f64 (cos.f64 x) -1) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) 1 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (+.f64 (cos.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (+.f64 1 (cos.f64 x)) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))) (*.f64 (+.f64 (cos.f64 x) -1) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (+.f64 (cos.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x)) (*.f64 (+.f64 (cos.f64 x) -1) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x)) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (+.f64 (cos.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x)) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x)) (*.f64 (+.f64 (cos.f64 x) -1) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x)) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x)) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (+.f64 (cos.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x) (*.f64 (+.f64 (cos.f64 x) -1) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (+.f64 (cos.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 x 20))) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) x) (*.f64 (+.f64 (cos.f64 x) -1) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 x 20))) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (+.f64 (cos.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (exp.f64 x) (*.f64 5 x)) (pow.f64 (exp.f64 x) (*.f64 5 x)) (*.f64 (+.f64 (cos.f64 x) -1) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (exp.f64 x) (*.f64 5 x)) (pow.f64 (exp.f64 x) (*.f64 5 x)) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (+.f64 (cos.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 x (*.f64 x 10) (log.f64 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 x (*.f64 x 10) (log.f64 (cos.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (fma.f64 x (*.f64 x 10) (log.f64 (cos.f64 x)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/3 (fma.f64 x (*.f64 x 10) (log.f64 (cos.f64 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/2 (fma.f64 x (*.f64 x 10) (log.f64 (cos.f64 x)))) 2))))))

simplify55.0ms (0.8%)

Algorithm
egg-herbie
Rules
676×associate-/r*_binary64
652×distribute-lft-out_binary64
456×associate-*l/_binary64
416×fma-def_binary64
361×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
038240
185236
2196232
3606228
42068228
53924228
65840228
Stop Event
node limit
Counts
139 → 130
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/24 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) (*.f64 -1/720 (pow.f64 x 6)))))
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
Outputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 x x)))
(fma.f64 -1/2 (*.f64 x x) 1)
(fma.f64 x (*.f64 -1/2 x) 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/24 (pow.f64 x 4))))
(+.f64 1 (fma.f64 -1/2 (*.f64 x x) (*.f64 1/24 (pow.f64 x 4))))
(fma.f64 -1/2 (*.f64 x x) (fma.f64 1/24 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1/24) -1/2) 1)
(fma.f64 1/24 (pow.f64 x 4) (fma.f64 x (*.f64 -1/2 x) 1))
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 1/24 -1/2) 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) (*.f64 -1/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 -1/2 (*.f64 x x) (fma.f64 1/24 (pow.f64 x 4) (*.f64 -1/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 -1/2 (*.f64 x x) (fma.f64 -1/720 (pow.f64 x 6) (*.f64 1/24 (pow.f64 x 4)))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1/24) -1/2) (fma.f64 -1/720 (pow.f64 x 6) 1))
(fma.f64 -1/2 (*.f64 x x) (fma.f64 1/24 (pow.f64 x 4) (fma.f64 -1/720 (pow.f64 x 6) 1)))
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
(cos.f64 x)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(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 (fma.f64 x (*.f64 x 19/2) (*.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))
(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 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))

localize26.0ms (0.4%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 40)) (*.f64 x 1/2)))
0.2b
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 40)) (*.f64 x 1/2))
0.1b
(sqrt.f64 (pow.f64 (exp.f64 x) 40))
0.0b
(cos.f64 x)
0.1b
(sqrt.f64 (pow.f64 (exp.f64 x) 40))
0.2b
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 40)) (*.f64 x 1/2))
0.4b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 40)) (*.f64 x 1/2)))
2.8b
(pow.f64 (exp.f64 x) 40)
Compiler

Compiled 41 to 25 computations (39% saved)

series5.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
@inf
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 40)) (*.f64 x 1/2)))
0.0ms
x
@-inf
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) 40)) (*.f64 x 1/2)))

rewrite63.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
493×log-prod_binary64
440×pow-pow_binary64
363×exp-prod_binary64
307×pow-unpow_binary64
294×pow-prod-down_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify43.0ms (0.6%)

Algorithm
egg-herbie
Rules
813×distribute-rgt-out_binary64
685×associate-*l*_binary64
551×unswap-sqr_binary64
497×associate-+l+_binary64
481×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
064530
1155406
2396400
31306400
43883400
Stop Event
node limit
Counts
191 → 180
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 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 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.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)))))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 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)))))
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)
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 x (*.f64 x 800)))
(fma.f64 40 x (fma.f64 x (*.f64 x 800) 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)))))
(fma.f64 32000/3 (pow.f64 x 3) (+.f64 (fma.f64 40 x 1) (*.f64 x (*.f64 x 800))))
(fma.f64 32000/3 (pow.f64 x 3) (fma.f64 40 x (fma.f64 x (*.f64 x 800) 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 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 1081/24 (pow.f64 x 4))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 1081/24 (pow.f64 x 4) 1))
(fma.f64 1081/24 (pow.f64 x 4) (fma.f64 x (*.f64 x 19/2) 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 (*.f64 x x) 19/2 (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 x (*.f64 x 19/2) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 1081/24 (pow.f64 x 4) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 10 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 10 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 10 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 10 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 10 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 10 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 10 x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 10 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))
(+.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 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 1)))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(exp.f64 (*.f64 x (*.f64 10 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(exp.f64 (*.f64 x (*.f64 10 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(exp.f64 (*.f64 x (*.f64 10 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(exp.f64 (*.f64 x (*.f64 10 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(exp.f64 (*.f64 x (*.f64 10 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(exp.f64 (*.f64 x (*.f64 10 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(exp.f64 (*.f64 x (*.f64 10 x)))
(pow.f64 (exp.f64 x) (*.f64 x 10))
(exp.f64 (*.f64 1/2 (*.f64 (log.f64 (pow.f64 (exp.f64 x) 20)) x)))
(pow.f64 (exp.f64 1/2) (*.f64 x (log.f64 (pow.f64 (exp.f64 x) 20))))
(exp.f64 (*.f64 x (*.f64 10 x)))
(pow.f64 (exp.f64 x) (*.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 20 (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 (*.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 x 20 (fma.f64 x (*.f64 x 200) (fma.f64 (pow.f64 x 3) 4000/3 1)))
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)
(pow.f64 (exp.f64 x) 20)

localize44.0ms (0.7%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
0.0b
(pow.f64 (exp.f64 20) x)
0.0b
(pow.f64 (pow.f64 (exp.f64 20) x) 1/4)
0.0b
(cos.f64 x)
0.0b
(pow.f64 (exp.f64 20) x)
0.4b
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
0.4b
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x)
0.6b
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)
Compiler

Compiled 50 to 39 computations (22% saved)

series56.0ms (0.8%)

Counts
3 → 36
Calls

9 calls:

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

rewrite57.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
503×log-prod_binary64
387×exp-prod_binary64
383×pow-prod-up_binary64
357×pow-unpow_binary64
313×pow-prod-down_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify42.0ms (0.6%)

Algorithm
egg-herbie
Rules
840×fma-def_binary64
706×associate-*l*_binary64
636×distribute-rgt-out_binary64
605×distribute-lft-out_binary64
488×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
056497
1141441
2342395
31069355
44538355
Stop Event
node limit
Counts
147 → 136
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)))))
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 5 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 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) 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 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
Outputs
1
(+.f64 1 (*.f64 10 x))
(fma.f64 10 x 1)
(+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2))))
(+.f64 1 (fma.f64 10 x (*.f64 50 (*.f64 x x))))
(+.f64 (fma.f64 10 x 1) (*.f64 (*.f64 50 x) 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)))))
(fma.f64 500/3 (pow.f64 x 3) (+.f64 (fma.f64 10 x 1) (*.f64 (*.f64 50 x) x)))
(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))
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 x 5)) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) 2)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 x 5)) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) 2)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 x 5)) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) 2)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 x 5)) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) 2)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 x 5)) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) 2)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 x 5)) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) 2)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 x 5)) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) 2)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 x) 10)
(pow.f64 (exp.f64 (*.f64 5 x)) 2)
(pow.f64 (exp.f64 (*.f64 x 5)) 2)
(pow.f64 (pow.f64 (exp.f64 x) 5) 2)
(exp.f64 (*.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)
(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 50 (pow.f64 x 4) (fma.f64 x (*.f64 10 x) 1))
(fma.f64 50 (pow.f64 x 4) (fma.f64 10 (*.f64 x x) 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 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) (fma.f64 x (*.f64 10 x) 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 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) 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 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) 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 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) 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 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) 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 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) 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 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) 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 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) 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 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) 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))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (*.f64 (pow.f64 x 6) 102299/720))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/2) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (cos.f64 x))

eval241.0ms (3.6%)

Compiler

Compiled 9752 to 6381 computations (34.6% saved)

prune129.0ms (1.9%)

Pruning

62 alts after pruning (54 fresh and 8 done)

PrunedKeptTotal
New61023633
Fresh163147
Picked101
Done3811
Total63062692
Error
0.0b
Counts
692 → 62
Alt Table
Click to see full alt table
StatusErrorProgram
3.0b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
0.8b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x)) 3))
3.7b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (exp.f64 (*.f64 x (*.f64 x 10))))
0.7b
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cbrt.f64 (pow.f64 (cos.f64 x) 3)))
3.6b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 10 x))))
3.0b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (exp.f64 10) (*.f64 x x)))
2.1b
(*.f64 (log.f64 (exp.f64 (cos.f64 x))) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 20 x)) (*.f64 x 1/2)))
3.3b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 3) (pow.f64 (exp.f64 (*.f64 x 10)) x))
3.5b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (exp.f64 (*.f64 10 (*.f64 x x))))
3.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 30)))
1.2b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (cbrt.f64 (cos.f64 x))))
3.5b
(*.f64 (sqrt.f64 (exp.f64 (*.f64 20 (*.f64 x x)))) (cos.f64 x))
2.1b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (cbrt.f64 (cos.f64 x))) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
2.1b
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 x) 3)) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
63.0b
(*.f64 1 1)
2.4b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) 3) x))
0.5b
(*.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 40) x)) x)) (cos.f64 x))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
0.6b
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 60) x)) x)) (cos.f64 x))
3.1b
(*.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x)) (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 x x))) (cbrt.f64 (pow.f64 (cos.f64 x) 3)))
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))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
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)) (cbrt.f64 (pow.f64 (cos.f64 x) 3)))
3.8b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (pow.f64 (exp.f64 1) (*.f64 x 10)) x))
3.9b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
3.5b
(*.f64 (log.f64 (exp.f64 (cos.f64 x))) (exp.f64 (*.f64 10 (*.f64 x x))))
3.5b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
1.0b
(*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 60) x))) x) (cos.f64 x))
3.8b
(*.f64 (cos.f64 x) (cbrt.f64 (exp.f64 (*.f64 3 (*.f64 x (*.f64 x 10))))))
3.9b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 10 (*.f64 x x)) 1/3)) 3))
1.3b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))) 3)
1.2b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (log.f64 (exp.f64 (cos.f64 x))))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 (*.f64 x 60)) 1/3) (*.f64 x 1/2)))
4.1b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (*.f64 3 (*.f64 x (*.f64 10 x))) 1/3)))
3.2b
(*.f64 (+.f64 (+.f64 (cos.f64 x) -1) 1) (pow.f64 (exp.f64 (*.f64 x 10)) x))
3.0b
(*.f64 (pow.f64 (exp.f64 20) (*.f64 x (*.f64 x 1/2))) (cos.f64 x))
0.4b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
2.1b
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.5b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 (*.f64 3 x)) 20/3) (*.f64 x 1/2)))
57.8b
(*.f64 (*.f64 -1/2 (*.f64 x x)) 1)
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.6b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 3) (exp.f64 (*.f64 10 (*.f64 x x))))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (pow.f64 (cbrt.f64 (cos.f64 x)) 3))
2.1b
(+.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) x) (*.f64 (+.f64 (cos.f64 x) -1) (pow.f64 (pow.f64 (exp.f64 x) 10) x)))
3.2b
(*.f64 (expm1.f64 (log1p.f64 (cos.f64 x))) (pow.f64 (exp.f64 (*.f64 x 10)) x))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (*.f64 x 10)))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cbrt.f64 (-.f64 (+.f64 1 (pow.f64 (cos.f64 x) 3)) 1)))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
0.6b
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10/3) 3))
3.5b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
0.6b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
1.5b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))) 3)
2.2b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
0.7b
(*.f64 (sqrt.f64 (pow.f64 (*.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)))) x)) (cos.f64 x))
0.7b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) 3) (pow.f64 (cos.f64 x) 3)))
3.0b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) (cbrt.f64 (pow.f64 (cos.f64 x) 3)))
Compiler

Compiled 824 to 623 computations (24.4% saved)

regimes116.0ms (1.7%)

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

3 calls:

32.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
31.0ms
x
31.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 785 to 483 computations (38.5% saved)

regimes52.0ms (0.8%)

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

3 calls:

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

Compiled 313 to 186 computations (40.6% saved)

regimes46.0ms (0.7%)

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

3 calls:

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

Compiled 269 to 162 computations (39.8% saved)

regimes39.0ms (0.6%)

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

3 calls:

11.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
11.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
11.0ms
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 231 to 142 computations (38.5% saved)

regimes38.0ms (0.6%)

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

3 calls:

11.0ms
x
11.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
10.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 222 to 138 computations (37.8% saved)

regimes35.0ms (0.5%)

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

3 calls:

10.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
10.0ms
x
9.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 209 to 130 computations (37.8% saved)

regimes23.0ms (0.3%)

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

3 calls:

7.0ms
x
6.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))))
Results
ErrorSegmentsBranch
3.2b1x
3.2b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.2b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 119 to 76 computations (36.1% saved)

regimes21.0ms (0.3%)

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

3 calls:

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

Compiled 110 to 71 computations (35.5% saved)

regimes14.0ms (0.2%)

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

2 calls:

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

Compiled 91 to 59 computations (35.2% saved)

regimes4.0ms (0.1%)

Accuracy

Total -5.2b remaining (-9.1%)

Threshold costs -5.2b (-9.1%)

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

1 calls:

3.0ms
x
Results
ErrorSegmentsBranch
57.8b1x
Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
042146
162146
263146
Stop Event
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 20) (*.f64 x 1/2)) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (exp.f64 10) (*.f64 x 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 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (*.f64 -1/2 (*.f64 x x)) 1)
(*.f64 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 20) (*.f64 x 1/2)) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (-.f64 (+.f64 1 (cos.f64 x)) 1) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (+.f64 (+.f64 (cos.f64 x) 1) -1) (pow.f64 (exp.f64 10) (*.f64 x 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 (exp.f64 x) (*.f64 x 10)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (*.f64 -1/2 (*.f64 x x)) 1)
(*.f64 (*.f64 x x) -1/2)
(*.f64 1 1)
1

end83.0ms (1.2%)

Stop Event
fuel
Compiler

Compiled 202 to 132 computations (34.7% saved)

Profiling

Loading profile data...