Details

Time bar (total: 8.4s)

analyze1.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0%100%0%0%0%0
100%0%0%100%0%0%0%1
Compiler

Compiled 17 to 12 computations (29.4% saved)

sample2.2s (26.5%)

Results
2.1s8256×body256valid
Bogosity

preprocess86.0ms (1%)

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

Useful iterations: 0 (0.0ms)

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

Compiled 11 to 8 computations (27.3% saved)

simplify70.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

eval1.0ms (0%)

Compiler

Compiled 19 to 12 computations (36.8% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 20 to 14 computations (30% saved)

localize13.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 13 computations (53.6% saved)

series6.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite65.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

simplify70.0ms (0.8%)

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

Useful iterations: 3 (0.0ms)

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

localize18.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

series9.0ms (0.1%)

Counts
3 → 28
Calls

9 calls:

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

rewrite70.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

simplify62.0ms (0.7%)

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

Useful iterations: 3 (0.0ms)

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

eval40.0ms (0.5%)

Compiler

Compiled 1731 to 1044 computations (39.7% saved)

prune63.0ms (0.7%)

Pruning

35 alts after pruning (33 fresh and 2 done)

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

Compiled 942 to 680 computations (27.8% saved)

localize29.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

Compiled 26 to 17 computations (34.6% saved)

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)

rewrite67.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

simplify56.0ms (0.7%)

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

Useful iterations: 3 (0.0ms)

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

localize5.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize28.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 34 to 18 computations (47.1% saved)

series7.0ms (0.1%)

Counts
4 → 40
Calls

12 calls:

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

rewrite67.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

simplify71.0ms (0.8%)

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

Useful iterations: 4 (0.0ms)

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

localize26.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 39 to 29 computations (25.6% saved)

series9.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite100.0ms (1.2%)

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

Useful iterations: 1 (0.0ms)

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

simplify70.0ms (0.8%)

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

Useful iterations: 3 (0.0ms)

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

localize28.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 53 to 25 computations (52.8% saved)

series7.0ms (0.1%)

Counts
4 → 40
Calls

12 calls:

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

rewrite191.0ms (2.3%)

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

Useful iterations: 1 (0.0ms)

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

simplify176.0ms (2.1%)

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

Useful iterations: 7 (0.0ms)

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

eval171.0ms (2%)

Compiler

Compiled 7441 to 4551 computations (38.8% saved)

prune135.0ms (1.6%)

Pruning

49 alts after pruning (44 fresh and 5 done)

PrunedKeptTotal
New42034454
Fresh181028
Picked101
Done156
Total44049489
Error
0.2b
Counts
489 → 49
Alt Table
Click to see full alt table
StatusErrorProgram
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 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
3.4b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x 20)) x)))
1.3b
(*.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x)) (cos.f64 x))
1.2b
(*.f64 (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) (pow.f64 (sqrt.f64 (exp.f64 10)) x)) x) (cos.f64 x))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
3.0b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
1.4b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) x)) x)) (cos.f64 x))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) (sqrt.f64 (exp.f64 (*.f64 10 (*.f64 x x))))))
3.5b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
3.5b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)))
2.0b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) 3)) x)))
3.1b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x)) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
3.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)))
2.5b
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 40) x))) (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))
3.2b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) 20) (pow.f64 (sqrt.f64 (exp.f64 x)) 20)) x)))
3.9b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 3) 1/3)) (*.f64 x (sqrt.f64 10))))
4.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) (sqrt.f64 (*.f64 x 10))) (sqrt.f64 (*.f64 x 10))))
2.0b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) 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))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2) 1/3))
2.5b
(*.f64 (cos.f64 x) (sqrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 40) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))
2.0b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)) (cbrt.f64 (pow.f64 (exp.f64 x) 20))) x)))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) (pow.f64 (sqrt.f64 (exp.f64 x)) x)) 10))
3.5b
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 20)))))
3.4b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
3.4b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.4b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20))
3.7b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 1/4) (*.f64 x 10)) (pow.f64 (pow.f64 (exp.f64 x) 1/4) (*.f64 x 10)))))
4.4b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (*.f64 x 10)) (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 x 10))))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (exp.f64 x) 5) (pow.f64 (exp.f64 x) 5)) x))
57.8b
(*.f64 (cos.f64 x) 1)
3.4b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 1/5)))
3.5b
(*.f64 (cos.f64 x) (sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3))))
4.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x)))))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2))
4.1b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (*.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 x))) (*.f64 x 10)))))
1.3b
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) 3)) x) (cos.f64 x))
2.9b
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
3.0b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
3.5b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2)))
3.5b
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
Compiler

Compiled 1368 to 989 computations (27.7% saved)

localize30.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 33 to 23 computations (30.3% saved)

series6.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

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

simplify65.0ms (0.8%)

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

Useful iterations: 4 (0.0ms)

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

localize15.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 17 computations (39.3% saved)

series3.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite57.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify63.0ms (0.7%)

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

Useful iterations: 3 (0.0ms)

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

localize18.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 30 to 14 computations (53.3% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite53.0ms (0.6%)

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

Useful iterations: 1 (0.0ms)

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

simplify73.0ms (0.9%)

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

Useful iterations: 3 (0.0ms)

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

localize39.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2) 1/3))
0.4b
(pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2)
3.9b
(pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2) 1/3)
4.4b
(pow.f64 (exp.f64 x) (*.f64 x 20))
Compiler

Compiled 49 to 31 computations (36.7% saved)

series98.0ms (1.2%)

Counts
4 → 48
Calls

12 calls:

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

rewrite75.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
519×log-prod_binary64
478×pow-pow_binary64
368×pow-unpow_binary64
307×pow-prod-down_binary64
297×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify73.0ms (0.9%)

Algorithm
egg-herbie
Rules
798×fma-def_binary64
600×distribute-rgt-out_binary64
551×associate-*l*_binary64
544×distribute-lft-out_binary64
444×associate-*r*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
063566
1150556
2354550
31072544
43855528
56385528
Stop Event
node limit
Counts
166 → 151
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 20 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (*.f64 20 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (+.f64 (*.f64 20 (pow.f64 x 2)) (*.f64 4000/3 (pow.f64 x 6)))))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
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)))))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
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 (fma.f64 20 (*.f64 x x) 1) (*.f64 200 (pow.f64 x 4)))
(fma.f64 20 (*.f64 x x) (fma.f64 200 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 200) 20) 1)
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (+.f64 (*.f64 20 (pow.f64 x 2)) (*.f64 4000/3 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 200 (pow.f64 x 4) (fma.f64 20 (*.f64 x x) (*.f64 4000/3 (pow.f64 x 6)))))
(+.f64 (fma.f64 x (*.f64 20 x) 1) (fma.f64 4000/3 (pow.f64 x 6) (*.f64 200 (pow.f64 x 4))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 200) 20) (fma.f64 4000/3 (pow.f64 x 6) 1))
(fma.f64 200 (pow.f64 x 4) (fma.f64 4000/3 (pow.f64 x 6) (fma.f64 20 (*.f64 x x) 1)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 20 x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 20 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 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 (fma.f64 (pow.f64 x 6) 500/3 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 (pow.f64 x 6) 500/3 1))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 30))
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 30))
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 30))
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 30))
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 30))
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 30))
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 30))
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 30))
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30))
1
(+.f64 1 (*.f64 30 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 30))
(fma.f64 (*.f64 x x) 30 1)
(fma.f64 x (*.f64 x 30) 1)
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (*.f64 30 (pow.f64 x 2))))
(+.f64 1 (fma.f64 450 (pow.f64 x 4) (*.f64 (*.f64 x x) 30)))
(+.f64 (fma.f64 (*.f64 x x) 30 1) (*.f64 (pow.f64 x 4) 450))
(fma.f64 x (*.f64 x 30) (fma.f64 (pow.f64 x 4) 450 1))
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (+.f64 (*.f64 30 (pow.f64 x 2)) (*.f64 4500 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 450 (pow.f64 x 4) (fma.f64 30 (*.f64 x x) (*.f64 (pow.f64 x 6) 4500))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 450 (fma.f64 (*.f64 x x) 30 (*.f64 (pow.f64 x 6) 4500))))
(+.f64 1 (fma.f64 x (*.f64 x 30) (fma.f64 (pow.f64 x 4) 450 (*.f64 (pow.f64 x 6) 4500))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 450) 30) (fma.f64 (pow.f64 x 6) 4500 1))
(fma.f64 x (*.f64 x 30) (fma.f64 (pow.f64 x 4) 450 (fma.f64 (pow.f64 x 6) 4500 1)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(pow.f64 (exp.f64 (*.f64 x x)) 30)
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 (fma.f64 (*.f64 x x) 19/2 1) (*.f64 (pow.f64 x 4) 1081/24))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 x (*.f64 x 19/2) (*.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))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 20 (pow.f64 x 2)))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 20 x))))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))

localize50.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
0.5b
(cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
2.9b
(pow.f64 (exp.f64 10) (*.f64 x x))
3.8b
(pow.f64 (exp.f64 20) (*.f64 x x))
Compiler

Compiled 72 to 42 computations (41.7% saved)

series7.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite108.0ms (1.3%)

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

Useful iterations: 0 (0.0ms)

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

simplify68.0ms (0.8%)

Algorithm
egg-herbie
Rules
788×fma-def_binary64
652×distribute-rgt-out_binary64
556×associate-*l*_binary64
546×distribute-lft-out_binary64
453×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
058524
1145512
2352506
31054504
43886504
56543504
Stop Event
node limit
Counts
136 → 121
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 20 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (*.f64 20 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (+.f64 (*.f64 20 (pow.f64 x 2)) (*.f64 4000/3 (pow.f64 x 6)))))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
1
(+.f64 (*.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 20/3 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 200/9 (pow.f64 x 4)) (*.f64 20/3 (pow.f64 x 2))))
(+.f64 (*.f64 4000/81 (pow.f64 x 6)) (+.f64 1 (+.f64 (*.f64 200/9 (pow.f64 x 4)) (*.f64 20/3 (pow.f64 x 2)))))
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 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)
Outputs
1
(+.f64 1 (*.f64 20 (pow.f64 x 2)))
(+.f64 1 (*.f64 20 (*.f64 x x)))
(fma.f64 20 (*.f64 x x) 1)
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (*.f64 20 (pow.f64 x 2))))
(+.f64 1 (fma.f64 200 (pow.f64 x 4) (*.f64 20 (*.f64 x x))))
(+.f64 (fma.f64 20 (*.f64 x x) 1) (*.f64 200 (pow.f64 x 4)))
(fma.f64 20 (*.f64 x x) (fma.f64 200 (pow.f64 x 4) 1))
(+.f64 1 (+.f64 (*.f64 200 (pow.f64 x 4)) (+.f64 (*.f64 20 (pow.f64 x 2)) (*.f64 4000/3 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 200 (pow.f64 x 4) (fma.f64 20 (*.f64 x x) (*.f64 4000/3 (pow.f64 x 6)))))
(+.f64 (fma.f64 20 (*.f64 x x) (*.f64 200 (pow.f64 x 4))) (fma.f64 4000/3 (pow.f64 x 6) 1))
(fma.f64 20 (*.f64 x x) (fma.f64 200 (pow.f64 x 4) (fma.f64 4000/3 (pow.f64 x 6) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 200) 20) (fma.f64 4000/3 (pow.f64 x 6) 1))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
(exp.f64 (*.f64 20 (pow.f64 x 2)))
(pow.f64 (exp.f64 20) (*.f64 x x))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 10 1)
(fma.f64 x (*.f64 x 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 1) (*.f64 (pow.f64 x 4) 50))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 (pow.f64 x 4) 50))))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 1)))
(fma.f64 x (*.f64 x 10) (fma.f64 (pow.f64 x 4) 50 (fma.f64 (pow.f64 x 6) 500/3 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 (pow.f64 x 6) 500/3 1))
(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 20/3 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 20/3))
(fma.f64 (*.f64 x x) 20/3 1)
(fma.f64 x (*.f64 x 20/3) 1)
(+.f64 1 (+.f64 (*.f64 200/9 (pow.f64 x 4)) (*.f64 20/3 (pow.f64 x 2))))
(+.f64 1 (fma.f64 200/9 (pow.f64 x 4) (*.f64 (*.f64 x x) 20/3)))
(+.f64 (fma.f64 (*.f64 x x) 20/3 1) (*.f64 (pow.f64 x 4) 200/9))
(fma.f64 x (*.f64 x 20/3) (fma.f64 (pow.f64 x 4) 200/9 1))
(+.f64 (*.f64 4000/81 (pow.f64 x 6)) (+.f64 1 (+.f64 (*.f64 200/9 (pow.f64 x 4)) (*.f64 20/3 (pow.f64 x 2)))))
(fma.f64 4000/81 (pow.f64 x 6) (+.f64 1 (fma.f64 200/9 (pow.f64 x 4) (*.f64 (*.f64 x x) 20/3))))
(+.f64 (fma.f64 (*.f64 x x) 20/3 (*.f64 (pow.f64 x 4) 200/9)) (fma.f64 (pow.f64 x 6) 4000/81 1))
(fma.f64 (pow.f64 x 6) 4000/81 (fma.f64 x (*.f64 x 20/3) (fma.f64 (pow.f64 x 4) 200/9 1)))
(fma.f64 x (*.f64 x 20/3) (fma.f64 (pow.f64 x 4) 200/9 (fma.f64 (pow.f64 x 6) 4000/81 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 200/9) 20/3) (fma.f64 (pow.f64 x 6) 4000/81 1))
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 20 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))
1
(+.f64 (*.f64 10/3 (pow.f64 x 2)) 1)
(fma.f64 10/3 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 10/3 1)
(fma.f64 x (*.f64 x 10/3) 1)
(+.f64 (*.f64 10/3 (pow.f64 x 2)) (+.f64 1 (*.f64 50/9 (pow.f64 x 4))))
(+.f64 (fma.f64 10/3 (*.f64 x x) 1) (*.f64 (pow.f64 x 4) 50/9))
(fma.f64 (*.f64 x x) 10/3 (fma.f64 (pow.f64 x 4) 50/9 1))
(fma.f64 x (*.f64 x 10/3) (fma.f64 (pow.f64 x 4) 50/9 1))
(+.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 x (*.f64 x 10/3) (fma.f64 (pow.f64 x 6) 500/81 (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)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))

eval196.0ms (2.3%)

Compiler

Compiled 8536 to 5405 computations (36.7% saved)

prune129.0ms (1.5%)

Pruning

51 alts after pruning (45 fresh and 6 done)

PrunedKeptTotal
New49529524
Fresh231639
Picked101
Done369
Total52251573
Error
0.1b
Counts
573 → 51
Alt Table
Click to see full alt table
StatusErrorProgram
0.6b
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (+.f64 0 (pow.f64 (exp.f64 x) (*.f64 x 30))) 1/3))
3.4b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x 20)) x)))
1.0b
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) (sqrt.f64 (exp.f64 (*.f64 10 (*.f64 x x))))))
3.0b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (exp.f64 (*.f64 1/3 (*.f64 (*.f64 x x) 10)))) (cos.f64 x))
2.0b
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
3.5b
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
3.5b
(*.f64 (*.f64 (pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/3)) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 1/2)) (*.f64 x 20)))
3.7b
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
3.9b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (*.f64 (*.f64 x 30) (+.f64 x x)) 1/6)))
0.5b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
3.9b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 3) 1/3)) (*.f64 x (sqrt.f64 10))))
3.8b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) 3)))
0.6b
(cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3) (pow.f64 (cos.f64 x) 3)))
3.1b
(*.f64 (*.f64 (cbrt.f64 (exp.f64 (*.f64 20 (*.f64 x x)))) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) (cos.f64 x))
3.5b
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
4.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 (/.f64 x 1/10) x) 3)) 1/3))
0.7b
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
0.7b
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)) (cos.f64 x))
3.4b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
3.4b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.5b
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 20)))))
0.4b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
3.4b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.9b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (/.f64 x 1/10) x)))
2.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30)))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 x 30) x)) 1/3))
3.5b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
0.7b
(*.f64 (pow.f64 (sqrt.f64 (sqrt.f64 (pow.f64 (exp.f64 40) x))) x) (cos.f64 x))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 (*.f64 x (*.f64 x 20))) 3/2) 1/3))
1.3b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
57.8b
(*.f64 (cos.f64 x) 1)
3.4b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 1/5)))
3.5b
(*.f64 (cos.f64 x) (sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3))))
4.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x)))))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
0.9b
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2)) x) (cos.f64 x))
2.9b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)) (cos.f64 x))
2.9b
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
3.0b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
3.0b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/6)) (cos.f64 x))
3.0b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 x x) 30)) 1/3))
2.9b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))))
Compiler

Compiled 1272 to 950 computations (25.3% saved)

localize33.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 34 to 23 computations (32.4% saved)

series4.0ms (0%)

Counts
3 → 20
Calls

9 calls:

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

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

simplify69.0ms (0.8%)

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

Useful iterations: 3 (0.0ms)

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

localize17.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 28 to 17 computations (39.3% saved)

series4.0ms (0%)

Counts
4 → 48
Calls

12 calls:

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

rewrite66.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

simplify63.0ms (0.7%)

Algorithm
egg-herbie
Rules
671×associate-/r*_binary64
652×distribute-lft-out_binary64
453×associate-*l/_binary64
394×fma-def_binary64
355×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
036418
185412
2193410
3569408
42065408
53937408
65844408
Stop Event
node limit
Counts
129 → 100
Calls
Call 1
Inputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 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 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
(*.f64 10 (pow.f64 x 2))
Outputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 500/3 (pow.f64 x 6) 1))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(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))
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 x)
(*.f64 10 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 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 (*.f64 x x) 19/2 (fma.f64 (pow.f64 x 4) 1081/24 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 1 (fma.f64 (*.f64 x x) 19/2 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(fma.f64 (*.f64 x x) 19/2 (fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 (pow.f64 x 4) 1081/24 1)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (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 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))

localize25.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 x 30) x)
0.3b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 x 30) x)) 1/3))
3.9b
(pow.f64 (exp.f64 (*.f64 (*.f64 x 30) x)) 1/3)
4.3b
(exp.f64 (*.f64 (*.f64 x 30) x))
Compiler

Compiled 39 to 26 computations (33.3% saved)

series7.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

TimeVariablePointExpression
2.0ms
x
@inf
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 x 30) x)) 1/3))
1.0ms
x
@inf
(pow.f64 (exp.f64 (*.f64 (*.f64 x 30) x)) 1/3)
1.0ms
x
@0
(exp.f64 (*.f64 (*.f64 x 30) x))
1.0ms
x
@-inf
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 x 30) x)) 1/3))
0.0ms
x
@inf
(*.f64 (*.f64 x 30) x)

rewrite70.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
875×pow1_binary64
813×add-log-exp_binary64
813×log1p-expm1-u_binary64
813×expm1-log1p-u_binary64
795×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01043
120543
2225043
Stop Event
node limit
Counts
4 → 70
Calls
Call 1
Inputs
(exp.f64 (*.f64 (*.f64 x 30) x))
(pow.f64 (exp.f64 (*.f64 (*.f64 x 30) x)) 1/3)
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 x 30) x)) 1/3))
(*.f64 (*.f64 x 30) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (expm1.f64 (*.f64 x (*.f64 x 30))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 x) (*.f64 x 30))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 x) (*.f64 x 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 2)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 2)) 1) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 2)) (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 2)))) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 2)) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 1/6)) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) (*.f64 x 30))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) 30) x)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 30)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 30))) 2)) (cbrt.f64 (*.f64 x (*.f64 x 30))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (*.f64 x (*.f64 x 30)))) (sqrt.f64 (*.f64 x (*.f64 x 30))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 x) 30) (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) 30) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)))) (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 2))) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 1/6) (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 2)) 1/3) (cbrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 x 30) (*.f64 x 1/3)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (exp.f64 x) (*.f64 x 30))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cos.f64 x)) (*.f64 (*.f64 x 30) (*.f64 x 1/3))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x 30)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) 2))) (*.f64 (*.f64 x 30) (*.f64 x 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (*.f64 x 30))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 x 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 x 30)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 30))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (*.f64 x 30))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (*.f64 x 30)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (*.f64 x 30)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (*.f64 x 30) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x 30) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 x 30))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 x 30))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (*.f64 x 30))))))))

simplify75.0ms (0.9%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
052526
1122518
2285514
3846510
43030510
55085510
67276510
Stop Event
node limit
Counts
118 → 98
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)))))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(pow.f64 (exp.f64 (*.f64 30 (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 (cos.f64 x) (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3) (cos.f64 x))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3) (cos.f64 x))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3) (cos.f64 x))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3) (cos.f64 x))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (pow.f64 x 2))
Outputs
1
(+.f64 1 (*.f64 30 (pow.f64 x 2)))
(+.f64 1 (*.f64 30 (*.f64 x x)))
(fma.f64 30 (*.f64 x x) 1)
(fma.f64 x (*.f64 30 x) 1)
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (*.f64 30 (pow.f64 x 2))))
(+.f64 1 (fma.f64 450 (pow.f64 x 4) (*.f64 30 (*.f64 x x))))
(+.f64 (fma.f64 30 (*.f64 x x) 1) (*.f64 450 (pow.f64 x 4)))
(fma.f64 30 (*.f64 x x) (fma.f64 450 (pow.f64 x 4) 1))
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (+.f64 (*.f64 30 (pow.f64 x 2)) (*.f64 4500 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 450 (pow.f64 x 4) (fma.f64 30 (*.f64 x x) (*.f64 4500 (pow.f64 x 6)))))
(+.f64 (fma.f64 x (*.f64 30 x) 1) (fma.f64 4500 (pow.f64 x 6) (*.f64 450 (pow.f64 x 4))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 450) 30) (fma.f64 4500 (pow.f64 x 6) 1))
(fma.f64 30 (*.f64 x x) (fma.f64 450 (pow.f64 x 4) (fma.f64 4500 (pow.f64 x 6) 1)))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
(exp.f64 (*.f64 30 (pow.f64 x 2)))
(pow.f64 (exp.f64 30) (*.f64 x x))
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 10 1)
(fma.f64 x (*.f64 x 10) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.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 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 (pow.f64 x 6) 500/3 1))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))
(pow.f64 (exp.f64 (*.f64 30 (pow.f64 x 2))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 30) (*.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 (*.f64 x x) 19/2)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (*.f64 x x) 19/2))))
(fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3) (cos.f64 x))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3) (cos.f64 x))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3) (cos.f64 x))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 (*.f64 30 (pow.f64 x 2)))) 1/3) (cos.f64 x))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (*.f64 x x))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (*.f64 x x))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (*.f64 x x))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (*.f64 x x))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (*.f64 x x))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (*.f64 x x))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (*.f64 x x))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (*.f64 x x))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (*.f64 x x))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (*.f64 x x))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (*.f64 x x))
(*.f64 30 (pow.f64 x 2))
(*.f64 30 (*.f64 x x))

localize24.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 51 to 26 computations (49% saved)

series7.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite66.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

simplify67.0ms (0.8%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
042552
1104498
2228494
3631490
42209490
54101490
66043490
Stop Event
node limit
Counts
104 → 76
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
1
(+.f64 (*.f64 19/6 (pow.f64 x 2)) 1)
(+.f64 (*.f64 19/6 (pow.f64 x 2)) (+.f64 (*.f64 359/72 (pow.f64 x 4)) 1))
(+.f64 (*.f64 19/6 (pow.f64 x 2)) (+.f64 (*.f64 359/72 (pow.f64 x 4)) (+.f64 1 (*.f64 33677/6480 (pow.f64 x 6)))))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
Outputs
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 19/2 (*.f64 x x)))
(fma.f64 19/2 (*.f64 x x) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 19/2 (*.f64 x x))))
(+.f64 1 (fma.f64 19/2 (*.f64 x x) (*.f64 1081/24 (pow.f64 x 4))))
(fma.f64 19/2 (*.f64 x x) (fma.f64 1081/24 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 19/2 (*.f64 x x) (fma.f64 1081/24 (pow.f64 x 4) (*.f64 102299/720 (pow.f64 x 6)))))
(fma.f64 102299/720 (pow.f64 x 6) (fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 102299/720 (pow.f64 x 6) 1))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
1
(+.f64 (*.f64 19/6 (pow.f64 x 2)) 1)
(fma.f64 19/6 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 19/6 1)
(fma.f64 x (*.f64 x 19/6) 1)
(+.f64 (*.f64 19/6 (pow.f64 x 2)) (+.f64 (*.f64 359/72 (pow.f64 x 4)) 1))
(fma.f64 19/6 (*.f64 x x) (fma.f64 359/72 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) 19/6 (fma.f64 (pow.f64 x 4) 359/72 1))
(fma.f64 (pow.f64 x 4) 359/72 (fma.f64 x (*.f64 x 19/6) 1))
(fma.f64 x (*.f64 x 19/6) (fma.f64 (pow.f64 x 4) 359/72 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 359/72) 19/6) 1)
(+.f64 (*.f64 19/6 (pow.f64 x 2)) (+.f64 (*.f64 359/72 (pow.f64 x 4)) (+.f64 1 (*.f64 33677/6480 (pow.f64 x 6)))))
(fma.f64 19/6 (*.f64 x x) (+.f64 (fma.f64 359/72 (pow.f64 x 4) 1) (*.f64 (pow.f64 x 6) 33677/6480)))
(fma.f64 (*.f64 x x) 19/6 (fma.f64 (pow.f64 x 4) 359/72 (fma.f64 (pow.f64 x 6) 33677/6480 1)))
(fma.f64 (pow.f64 x 4) 359/72 (fma.f64 x (*.f64 x 19/6) (fma.f64 (pow.f64 x 6) 33677/6480 1)))
(fma.f64 x (*.f64 x 19/6) (fma.f64 (pow.f64 x 4) 359/72 (fma.f64 (pow.f64 x 6) 33677/6480 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 359/72) 19/6) (fma.f64 (pow.f64 x 6) 33677/6480 1))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 19/2 (*.f64 x x)))
(fma.f64 19/2 (*.f64 x x) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 19/2 (*.f64 x x))))
(+.f64 1 (fma.f64 19/2 (*.f64 x x) (*.f64 1081/24 (pow.f64 x 4))))
(fma.f64 19/2 (*.f64 x x) (fma.f64 1081/24 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 19/2 (*.f64 x x) (fma.f64 1081/24 (pow.f64 x 4) (*.f64 102299/720 (pow.f64 x 6)))))
(fma.f64 102299/720 (pow.f64 x 6) (fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 102299/720 (pow.f64 x 6) 1))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (*.f64 (cos.f64 x) 1))
(*.f64 (exp.f64 (*.f64 (*.f64 10 x) x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))

localize34.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 56 to 34 computations (39.3% saved)

series5.0ms (0.1%)

Counts
3 → 28
Calls

9 calls:

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

rewrite64.0ms (0.8%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
01232
125932
2281529
Stop Event
node limit
Counts
3 → 90
Calls
Call 1
Inputs
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(pow.f64 (cos.f64 x) 3)
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (exp.f64 30) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (pow.f64 (exp.f64 20) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 30) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 30) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (pow.f64 (exp.f64 20) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 5/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x))) (sqrt.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 5) 3) (*.f64 x x)) (pow.f64 (pow.f64 (exp.f64 5) 3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (*.f64 x x)) (pow.f64 (exp.f64 30) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 5/2) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1) (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x)))) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) 3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (exp.f64 30) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 9))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 30) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (*.f64 10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 10 (*.f64 x (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (*.f64 10 (*.f64 x x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 10 (*.f64 (*.f64 x (*.f64 x 3)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (*.f64 3 (*.f64 10 (*.f64 x x)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 x x) 20) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 x 10) (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 x 3/2) (*.f64 x 10)) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (cos.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (cos.f64 x) 3))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (cos.f64 x) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (cos.f64 x) 3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (cos.f64 x) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cos.f64 x) 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 x) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cos.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 x) 2) (cos.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (*.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 x)) (pow.f64 (cos.f64 x) 5/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 x) 3/2) (pow.f64 (cos.f64 x) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 x) 5/2) (sqrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cos.f64 x) 2) 1) (cos.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (cos.f64 x) (cbrt.f64 (cos.f64 x))) 2) (cbrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cos.f64 x) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cos.f64 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (cos.f64 x) 9))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (log.f64 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (cos.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (cos.f64 x))) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (cos.f64 x) 9)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (cos.f64 x))) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x))))) (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x))))) 2) (cbrt.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x))))) (sqrt.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (*.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (pow.f64 (cbrt.f64 (cos.f64 x)) 2)) (cbrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (sqrt.f64 (cos.f64 x))) (sqrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x)))) 6) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x)))) 9) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) (pow.f64 (cos.f64 x) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x)))) 3/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 (cos.f64 x)) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (cos.f64 x)) (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) (pow.f64 (cos.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (pow.f64 (exp.f64 10) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/3 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/2 (fma.f64 10 (*.f64 x x) (log.f64 (cos.f64 x)))) 2))))))

simplify58.0ms (0.7%)

Algorithm
egg-herbie
Rules
637×fma-def_binary64
621×distribute-rgt-out_binary64
478×unswap-sqr_binary64
474×associate-*l*_binary64
465×distribute-lft-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
051364
1120358
2282350
3891322
43291322
55979322
Stop Event
node limit
Counts
118 → 113
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 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
1
(+.f64 1 (*.f64 -3/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 -3/2 (pow.f64 x 2)) (*.f64 7/8 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 -61/240 (pow.f64 x 6)) (+.f64 (*.f64 -3/2 (pow.f64 x 2)) (*.f64 7/8 (pow.f64 x 4)))))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
Outputs
1
(+.f64 1 (*.f64 30 (pow.f64 x 2)))
(+.f64 1 (*.f64 30 (*.f64 x x)))
(fma.f64 30 (*.f64 x x) 1)
(fma.f64 x (*.f64 30 x) 1)
(+.f64 1 (+.f64 (*.f64 450 (pow.f64 x 4)) (*.f64 30 (pow.f64 x 2))))
(+.f64 1 (fma.f64 450 (pow.f64 x 4) (*.f64 30 (*.f64 x x))))
(+.f64 (fma.f64 30 (*.f64 x x) 1) (*.f64 450 (pow.f64 x 4)))
(fma.f64 30 (*.f64 x x) (fma.f64 450 (pow.f64 x 4) 1))
(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 450 (pow.f64 x 4) (*.f64 4500 (pow.f64 x 6)))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 450) 30) (fma.f64 4500 (pow.f64 x 6) 1))
(fma.f64 30 (*.f64 x x) (fma.f64 450 (pow.f64 x 4) (fma.f64 4500 (pow.f64 x 6) 1)))
(fma.f64 4500 (pow.f64 x 6) (fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 450) 30) 1))
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
(pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 3)
(pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)
(exp.f64 (*.f64 30 (*.f64 x x)))
(pow.f64 (pow.f64 (exp.f64 x) x) 30)
1
(+.f64 1 (*.f64 -3/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) -3/2))
(fma.f64 (*.f64 x x) -3/2 1)
(fma.f64 x (*.f64 x -3/2) 1)
(+.f64 1 (+.f64 (*.f64 -3/2 (pow.f64 x 2)) (*.f64 7/8 (pow.f64 x 4))))
(+.f64 1 (fma.f64 -3/2 (*.f64 x x) (*.f64 (pow.f64 x 4) 7/8)))
(+.f64 (fma.f64 (*.f64 x x) -3/2 1) (*.f64 (pow.f64 x 4) 7/8))
(fma.f64 x (*.f64 x -3/2) (fma.f64 (pow.f64 x 4) 7/8 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 7/8) -3/2) 1)
(+.f64 1 (+.f64 (*.f64 -61/240 (pow.f64 x 6)) (+.f64 (*.f64 -3/2 (pow.f64 x 2)) (*.f64 7/8 (pow.f64 x 4)))))
(+.f64 1 (fma.f64 -61/240 (pow.f64 x 6) (fma.f64 -3/2 (*.f64 x x) (*.f64 (pow.f64 x 4) 7/8))))
(+.f64 1 (fma.f64 (pow.f64 x 6) -61/240 (fma.f64 (*.f64 x x) -3/2 (*.f64 (pow.f64 x 4) 7/8))))
(fma.f64 (pow.f64 x 6) -61/240 (fma.f64 x (*.f64 x -3/2) (fma.f64 (pow.f64 x 4) 7/8 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 7/8) -3/2) (fma.f64 (pow.f64 x 6) -61/240 1))
(fma.f64 x (*.f64 x -3/2) (fma.f64 (pow.f64 x 4) 7/8 (fma.f64 (pow.f64 x 6) -61/240 1)))
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 (*.f64 x x) 19/2 (fma.f64 (pow.f64 x 4) 1081/24 1))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (*.f64 x x) 19/2))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 (pow.f64 x 4) 1081/24 1)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.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 x) x) 10) (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 x) x) 10) (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 x) x) 10) (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 x) x) 10) (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 x) x) 10) (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 x) x) 10) (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 x) x) 10) (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 x) x) 10) (cos.f64 x))

eval400.0ms (4.7%)

Compiler

Compiled 8524 to 5444 computations (36.1% saved)

prune457.0ms (5.4%)

Pruning

60 alts after pruning (51 fresh and 9 done)

PrunedKeptTotal
New53522557
Fresh112940
Picked011
Done2810
Total54860608
Error
0.1b
Counts
608 → 60
Alt Table
Click to see full alt table
StatusErrorProgram
0.6b
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
3.1b
(cbrt.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x)) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) 3) (pow.f64 (cos.f64 x) 3)))
1.0b
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
3.0b
(cbrt.f64 (*.f64 (pow.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 1/6)) (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 1/6)) 3) (pow.f64 (cos.f64 x) 3)))
3.0b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (log1p.f64 (expm1.f64 (pow.f64 (cos.f64 x) 3)))))
2.0b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30) (pow.f64 (cos.f64 x) 3)))
3.6b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
3.5b
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
1.5b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))) 3)
3.0b
(cbrt.f64 (*.f64 (+.f64 0 (pow.f64 (exp.f64 30) (*.f64 x x))) (pow.f64 (cos.f64 x) 3)))
2.0b
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
3.9b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (*.f64 x 30) (*.f64 x 1/3))))
3.0b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (cbrt.f64 (pow.f64 (cos.f64 x) 9))))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 x x) 30)) 1/3))
3.4b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 20 x)) x)) (cos.f64 x))
0.5b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 1/2)) (*.f64 x 20)))
3.7b
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
3.9b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (*.f64 (*.f64 x 30) (+.f64 x x)) 1/6)))
0.5b
(*.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 40) x)) x)) (cos.f64 x))
0.6b
(cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3) (pow.f64 (cos.f64 x) 3)))
3.1b
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 2) 3) (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))
3.8b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) 3)))
0.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
63.0b
1
3.1b
(*.f64 (*.f64 (cbrt.f64 (exp.f64 (*.f64 20 (*.f64 x x)))) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) (cos.f64 x))
3.5b
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
4.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 (/.f64 x 1/10) x) 3)) 1/3))
0.7b
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
3.5b
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
0.4b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
3.4b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.8b
(*.f64 (cos.f64 x) (exp.f64 (/.f64 x (/.f64 1/10 x))))
2.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30)))
2.9b
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) (pow.f64 (cos.f64 x) 3)))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 x 30) x)) 1/3))
3.5b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
2.1b
(*.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 (*.f64 x (*.f64 x 20))) 3/2) 1/3))
1.3b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
57.8b
(*.f64 (cos.f64 x) 1)
3.4b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 30)))) 1/3))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
3.5b
(*.f64 (cos.f64 x) (sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3))))
0.9b
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2)) x) (cos.f64 x))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
2.9b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))))
3.0b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (*.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (cos.f64 x) 2)))))
3.0b
(*.f64 (sqrt.f64 (sqrt.f64 (pow.f64 (exp.f64 40) (*.f64 x x)))) (cos.f64 x))
2.9b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)) (cos.f64 x))
2.9b
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
3.0b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
3.0b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/6)) (cos.f64 x))
3.0b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
3.0b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (exp.f64 (*.f64 1/3 (*.f64 (*.f64 x x) 10)))) (cos.f64 x))
3.0b
(*.f64 (pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2)) (cos.f64 x))
Compiler

Compiled 812 to 607 computations (25.2% saved)

regimes398.0ms (4.7%)

Counts
120 → 1
Calls
Call 1
Inputs
1
(*.f64 (cos.f64 x) 1)
(*.f64 (cos.f64 x) (exp.f64 (/.f64 x (/.f64 1/10 x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (/.f64 x 1/10) x)))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (*.f64 x 30) (*.f64 x 1/3))))
(*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))) (cos.f64 x))
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (*.f64 (*.f64 x 30) (+.f64 x x)) 1/6)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 20)))))
(*.f64 (pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 1/2)) (*.f64 x 20)))
(*.f64 (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 x 30) x)) 1/3))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 x x) 30)) 1/3))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (pow.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 30)))) 1/3))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 (*.f64 (/.f64 x 1/10) x) 3)) 1/3))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 20 x)) x)) (cos.f64 x))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 30))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x 20)) x)))
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 20)))
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 2) (/.f64 x 1/5)))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 20) (*.f64 x 1/2)))
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
(*.f64 (cos.f64 x) (pow.f64 (+.f64 0 (pow.f64 (exp.f64 x) (*.f64 x 30))) 1/3))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 (*.f64 x (*.f64 x 20))) 3/2) 1/3))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30)))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) 20))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
(*.f64 (sqrt.f64 (sqrt.f64 (pow.f64 (exp.f64 40) (*.f64 x x)))) (cos.f64 x))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 30)) (pow.f64 (cos.f64 x) 3)))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/10)) 3)))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2)))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)))
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)))
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)) 3))
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3/2) 1/3))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
(cbrt.f64 (*.f64 (+.f64 0 (pow.f64 (exp.f64 30) (*.f64 x x))) (pow.f64 (cos.f64 x) 3)))
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (exp.f64 (*.f64 10 (*.f64 x x)))) (sqrt.f64 (exp.f64 (*.f64 10 (*.f64 x x))))))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (exp.f64 (*.f64 1/3 (*.f64 (*.f64 x x) 10)))) (cos.f64 x))
(*.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 40) x)) x)) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (sqrt.f64 (pow.f64 (exp.f64 40) x))) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (expm1.f64 (log1p.f64 (pow.f64 (exp.f64 x) 10))) x))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 30) (pow.f64 (cos.f64 x) 3)))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))) 3)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 3/2)) x) (cos.f64 x))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) 3)) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 10) 3)) x))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) 2) x) (cos.f64 x))
(*.f64 (cos.f64 x) (sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 20)) 3))))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (exp.f64 x) 5) (pow.f64 (exp.f64 x) 5)) x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) (sqrt.f64 (*.f64 x 10))) (sqrt.f64 (*.f64 x 10))))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x)))))
(*.f64 (*.f64 (cbrt.f64 (exp.f64 (*.f64 20 (*.f64 x x)))) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) (cos.f64 x))
(*.f64 (*.f64 (pow.f64 (exp.f64 20) (*.f64 (*.f64 x x) 1/3)) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) (cos.f64 x))
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)) (cos.f64 x))
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) 3)) x)))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (cbrt.f64 (pow.f64 (cos.f64 x) 9))))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 5) x) (pow.f64 (pow.f64 (exp.f64 x) 5) x)))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 3) 1/3)) (*.f64 x (sqrt.f64 10))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x)) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))) (cos.f64 x))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (pow.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) 1/3)) (cos.f64 x))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x x)) 1/6)) (cos.f64 x))
(cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3) (pow.f64 (cos.f64 x) 3)))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (log1p.f64 (expm1.f64 (pow.f64 (cos.f64 x) 3)))))
(*.f64 (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) (pow.f64 (sqrt.f64 (exp.f64 10)) x)) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) x) (pow.f64 (sqrt.f64 (exp.f64 x)) x)) 10))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) 10) (pow.f64 (sqrt.f64 (exp.f64 x)) 10)) x))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) (cbrt.f64 (pow.f64 (exp.f64 x) 10))) x))
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 2) (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x)))))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) (*.f64 x 10)) (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 x 10))))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) 20) (pow.f64 (sqrt.f64 (exp.f64 x)) 20)) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 40)) (cbrt.f64 (pow.f64 (exp.f64 x) 20))) x)))
(*.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x)) (cos.f64 x))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) x)) x)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) 2) 10) (pow.f64 (cbrt.f64 (exp.f64 x)) 10)) x))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) x)))
(*.f64 (cos.f64 x) (sqrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 40) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))
(*.f64 (cos.f64 x) (*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 40) x))) (sqrt.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 20))))))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x)) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) 3) (pow.f64 (cos.f64 x) 3)))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 1/4) (*.f64 x 10)) (pow.f64 (pow.f64 (exp.f64 x) 1/4) (*.f64 x 10)))))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (*.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (cos.f64 x) 2)))))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 2) 3) (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))))
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (*.f64 (pow.f64 (cbrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 x))) (*.f64 x 10)))))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 1/6)) (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 1/6)) 3) (pow.f64 (cos.f64 x) 3)))
Outputs
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
Calls

3 calls:

147.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
129.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
74.0ms
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 1637 to 959 computations (41.4% saved)

regimes220.0ms (2.6%)

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

3 calls:

92.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
80.0ms
x
33.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 471 to 270 computations (42.7% saved)

regimes228.0ms (2.7%)

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

3 calls:

140.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
34.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
33.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 389 to 220 computations (43.4% saved)

regimes200.0ms (2.4%)

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

3 calls:

78.0ms
x
76.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
29.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Results
ErrorSegmentsBranch
2.0b1x
2.0b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
2.0b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 312 to 181 computations (42% saved)

regimes87.0ms (1%)

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

3 calls:

32.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
23.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
16.0ms
x
Results
ErrorSegmentsBranch
2.9b1x
2.9b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
2.9b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 303 to 177 computations (41.6% saved)

regimes33.0ms (0.4%)

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

3 calls:

11.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
8.0ms
x
8.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 155 to 91 computations (41.3% saved)

regimes27.0ms (0.3%)

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

3 calls:

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

Compiled 119 to 73 computations (38.7% saved)

regimes17.0ms (0.2%)

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

2 calls:

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

Compiled 85 to 52 computations (38.8% saved)

regimes7.0ms (0.1%)

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

1 calls:

5.0ms
x
Results
ErrorSegmentsBranch
3.5b1x
Compiler

Compiled 44 to 26 computations (40.9% saved)

regimes7.0ms (0.1%)

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

1 calls:

4.0ms
x
Results
ErrorSegmentsBranch
3.8b1x
Compiler

Compiled 26 to 16 computations (38.5% saved)

regimes4.0ms (0%)

Accuracy

Total -5.2b remaining (-9%)

Threshold costs -5.2b (-9%)

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

1 calls:

3.0ms
x
Results
ErrorSegmentsBranch
57.8b1x
Compiler

Compiled 8 to 6 computations (25% saved)

simplify10.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
045152
163152
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (/.f64 x (/.f64 1/10 x))))
(*.f64 (cos.f64 x) 1)
1
Outputs
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (exp.f64 (*.f64 x (*.f64 10 x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) (exp.f64 (/.f64 x (/.f64 1/10 x))))
(*.f64 (cos.f64 x) 1)
(cos.f64 x)
1
Compiler

Compiled 110 to 79 computations (28.2% saved)

soundness87.0ms (1%)

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

Useful iterations: 3 (0.0ms)

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

Compiled 50 to 36 computations (28% saved)

end80.0ms (0.9%)

Compiler

Compiled 99 to 55 computations (44.4% saved)

Profiling

Loading profile data...