Details

Time bar (total: 9.9s)

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)

sample1.8s (18.2%)

Results
1.7s8256×body256valid
Bogosity

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

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

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 20 to 14 computations (30% saved)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 13 computations (53.6% saved)

series4.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite59.0ms (0.6%)

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

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

localize17.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 26 to 13 computations (50% saved)

series7.0ms (0.1%)

Counts
3 → 28
Calls

9 calls:

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

rewrite146.0ms (1.5%)

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

Useful iterations: 0 (0.0ms)

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

simplify60.0ms (0.6%)

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

Useful iterations: 3 (0.0ms)

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

eval42.0ms (0.4%)

Compiler

Compiled 1731 to 1044 computations (39.7% saved)

prune192.0ms (1.9%)

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.3b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
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.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)))
3.2b
(*.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))
3.3b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) (pow.f64 (cos.f64 x) 3)))
2.1b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 20)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 10)) x)))
3.4b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
4.4b
(*.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.3b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))
3.3b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) 10) (pow.f64 (sqrt.f64 (exp.f64 x)) 10)) x))
3.0b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) (pow.f64 (cos.f64 x) 3)))
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.8b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x 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.0b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (exp.f64 x) 5) (pow.f64 (exp.f64 x) 5)) x))
4.5b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (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.3b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
4.6b
(*.f64 (cos.f64 x) (exp.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 2)))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3))
57.8b
(*.f64 (cos.f64 x) 1)
2.3b
(*.f64 (cos.f64 x) (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.6b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
3.2b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x 10)) x))
3.3b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)))
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) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
Compiler

Compiled 914 to 668 computations (26.9% saved)

localize25.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

Compiled 26 to 17 computations (34.6% saved)

series4.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite68.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify52.0ms (0.5%)

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

Useful iterations: 3 (0.0ms)

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

localize5.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 35 to 27 computations (22.9% saved)

series8.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite90.0ms (0.9%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
01042
120236
2220036
Stop Event
node limit
Counts
4 → 73
Calls
Call 1
Inputs
(exp.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 2))
(*.f64 x (sqrt.f64 10))
(pow.f64 (*.f64 x (sqrt.f64 10)) 2)
(*.f64 (cos.f64 x) (exp.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 2)))
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 (*.f64 x x)) 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 (*.f64 x x)) 10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 2) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 x) (sqrt.f64 10)) (*.f64 x (sqrt.f64 10)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 4))) (cbrt.f64 (*.f64 10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (*.f64 x x)) 10)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.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 (*.f64 10 (*.f64 x x)) 1/2)))) (#(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 fabs.f64 (*.f64 x (sqrt.f64 10)))))) (#(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 0 (*.f64 10 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 10 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (sqrt.f64 10) (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 10 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 10) (*.f64 x (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (sqrt.f64 10)) (*.f64 x (sqrt.f64 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 10 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 10 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) 10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 10 (*.f64 x x))) (cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 10 (*.f64 x x))) (*.f64 (cbrt.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 4)) (cbrt.f64 (*.f64 10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (sqrt.f64 10))) (*.f64 (sqrt.f64 (*.f64 x (sqrt.f64 10))) (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (sqrt.f64 10)) (sqrt.f64 (*.f64 x (sqrt.f64 10)))) (sqrt.f64 (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (sqrt.f64 10)) x) (sqrt.f64 10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (sqrt.f64 10)) (sqrt.f64 10)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (sqrt.f64 10)) (cbrt.f64 (*.f64 10 (*.f64 x x)))) (cbrt.f64 (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10))))) (#(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))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 3) (pow.f64 (cos.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 x) 3) (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 10 (*.f64 x x)) (log.f64 (cos.f64 x))))))))

simplify140.0ms (1.4%)

Algorithm
egg-herbie
Rules
505×associate-+l+_binary64
439×distribute-rgt-in_binary64
404×distribute-lft-out_binary64
394×associate-+r+_binary64
307×*-commutative_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
053666
1132456
2398432
31661432
44299432
55953432
67967432
Stop Event
node limit
Counts
121 → 93
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 (pow.f64 (sqrt.f64 10) 4) (pow.f64 x 4)))))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 10) 6) (pow.f64 x 6))) (+.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (sqrt.f64 10) 4) (pow.f64 x 4))))))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(*.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 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
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 (+.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 (*.f64 (-.f64 (+.f64 (*.f64 1/24 (pow.f64 (sqrt.f64 10) 2)) (+.f64 (*.f64 -1/4 (pow.f64 (sqrt.f64 10) 4)) (*.f64 1/6 (pow.f64 (sqrt.f64 10) 6)))) 1/720) (pow.f64 x 6)) (+.f64 1 (+.f64 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)) (*.f64 (+.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 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
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 (pow.f64 (sqrt.f64 10) 4) (pow.f64 x 4)))))
(+.f64 (fma.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x) 1) (*.f64 1/2 (*.f64 (pow.f64 (sqrt.f64 10) 4) (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(fma.f64 (pow.f64 x 4) 50 (fma.f64 10 (*.f64 x x) 1))
(fma.f64 10 (*.f64 x x) (fma.f64 (pow.f64 x 4) 50 1))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 10) 6) (pow.f64 x 6))) (+.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (sqrt.f64 10) 4) (pow.f64 x 4))))))
(fma.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x) (fma.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 10) 6) (pow.f64 x 6)) (+.f64 1 (*.f64 1/2 (*.f64 (pow.f64 (sqrt.f64 10) 4) (pow.f64 x 4))))))
(fma.f64 10 (*.f64 x x) (fma.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 10) 6) (pow.f64 x 6)) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 (pow.f64 x 6) 500/3 (fma.f64 (pow.f64 x 4) 50 (fma.f64 10 (*.f64 x x) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 (pow.f64 x 4) 50 (fma.f64 (pow.f64 x 6) 500/3 1)))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2))
(exp.f64 (*.f64 10 (*.f64 x x)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.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)
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))
(*.f64 10 (*.f64 x x))
(*.f64 x (*.f64 10 x))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))
(*.f64 10 (*.f64 x x))
(*.f64 x (*.f64 10 x))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))
(*.f64 10 (*.f64 x x))
(*.f64 x (*.f64 10 x))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))
(*.f64 10 (*.f64 x x))
(*.f64 x (*.f64 10 x))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))
(*.f64 10 (*.f64 x x))
(*.f64 x (*.f64 10 x))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))
(*.f64 10 (*.f64 x x))
(*.f64 x (*.f64 10 x))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))
(*.f64 10 (*.f64 x x))
(*.f64 x (*.f64 10 x))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))
(*.f64 10 (*.f64 x x))
(*.f64 x (*.f64 10 x))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))
(*.f64 10 (*.f64 x x))
(*.f64 x (*.f64 10 x))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))
(*.f64 10 (*.f64 x x))
(*.f64 x (*.f64 10 x))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))
(*.f64 10 (*.f64 x x))
(*.f64 x (*.f64 10 x))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 10) 2) (*.f64 x x))
(*.f64 10 (*.f64 x x))
(*.f64 x (*.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 (+.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) (*.f64 (pow.f64 x 4) (+.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 (pow.f64 x 4) 1081/24 (*.f64 x (*.f64 x 19/2))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 (*.f64 (-.f64 (+.f64 (*.f64 1/24 (pow.f64 (sqrt.f64 10) 2)) (+.f64 (*.f64 -1/4 (pow.f64 (sqrt.f64 10) 4)) (*.f64 1/6 (pow.f64 (sqrt.f64 10) 6)))) 1/720) (pow.f64 x 6)) (+.f64 1 (+.f64 (*.f64 (-.f64 (pow.f64 (sqrt.f64 10) 2) 1/2) (pow.f64 x 2)) (*.f64 (+.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)))))
(fma.f64 (+.f64 (fma.f64 1/24 (pow.f64 (sqrt.f64 10) 2) (fma.f64 -1/4 (pow.f64 (sqrt.f64 10) 4) (*.f64 1/6 (pow.f64 (sqrt.f64 10) 6)))) -1/720) (pow.f64 x 6) (+.f64 1 (fma.f64 (+.f64 (pow.f64 (sqrt.f64 10) 2) -1/2) (*.f64 x x) (*.f64 (pow.f64 x 4) (+.f64 1/24 (fma.f64 -1/2 (pow.f64 (sqrt.f64 10) 2) (*.f64 1/2 (pow.f64 (sqrt.f64 10) 4))))))))
(fma.f64 (pow.f64 x 6) (+.f64 (fma.f64 1/6 (pow.f64 (sqrt.f64 10) 6) -25) 299/720) (+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (*.f64 x (*.f64 x 19/2)))))
(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 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 10) x) 2)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))

localize50.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

Compiled 48 to 26 computations (45.8% saved)

series13.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite193.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
928×pow1_binary64
871×add-log-exp_binary64
870×log1p-expm1-u_binary64
870×expm1-log1p-u_binary64
849×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify112.0ms (1.1%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
051674
1129616
2296612
3849608
42995608
55048608
67241608
Stop Event
node limit
Counts
131 → 100
Calls
Call 1
Inputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
1
(+.f64 (*.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 (*.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 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
Outputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 x (*.f64 10 x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 500/3 (pow.f64 x 6) 1))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
1
(+.f64 (*.f64 19/6 (pow.f64 x 2)) 1)
(fma.f64 19/6 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 19/6 1)
(fma.f64 x (*.f64 x 19/6) 1)
(+.f64 (*.f64 19/6 (pow.f64 x 2)) (+.f64 (*.f64 359/72 (pow.f64 x 4)) 1))
(fma.f64 19/6 (*.f64 x x) (fma.f64 359/72 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) 19/6 (fma.f64 (pow.f64 x 4) 359/72 1))
(fma.f64 x (*.f64 x 19/6) (fma.f64 (pow.f64 x 4) 359/72 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 359/72) 19/6) 1)
(+.f64 (*.f64 19/6 (pow.f64 x 2)) (+.f64 (*.f64 359/72 (pow.f64 x 4)) (+.f64 1 (*.f64 33677/6480 (pow.f64 x 6)))))
(fma.f64 19/6 (*.f64 x x) (fma.f64 359/72 (pow.f64 x 4) (+.f64 1 (*.f64 (pow.f64 x 6) 33677/6480))))
(fma.f64 (*.f64 x x) 19/6 (fma.f64 (pow.f64 x 4) 359/72 (fma.f64 (pow.f64 x 6) 33677/6480 1)))
(fma.f64 x (*.f64 x 19/6) (fma.f64 (pow.f64 x 4) 359/72 (fma.f64 (pow.f64 x 6) 33677/6480 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 359/72) 19/6) (fma.f64 (pow.f64 x 6) 33677/6480 1))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (*.f64 x x) 19/2))))
(+.f64 (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 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (*.f64 x x) 19/2))))
(+.f64 (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 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))

localize109.0ms (1.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(cbrt.f64 (*.f64 10 (*.f64 x x)))
0.6b
(cbrt.f64 (*.f64 100 (pow.f64 x 4)))
2.0b
(exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))
3.0b
(pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 73 to 49 computations (32.9% saved)

series50.0ms (0.5%)

Counts
4 → 4
Calls

12 calls:

TimeVariablePointExpression
40.0ms
x
@inf
(pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x))))
4.0ms
x
@0
(pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x))))
1.0ms
x
@-inf
(pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x))))
1.0ms
x
@inf
(exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))
1.0ms
x
@inf
(cbrt.f64 (*.f64 10 (*.f64 x x)))

rewrite100.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
979×pow1_binary64
913×log1p-expm1-u_binary64
913×expm1-log1p-u_binary64
912×add-log-exp_binary64
116×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01351
126238
2282538
Stop Event
node limit
Counts
4 → 93
Calls
Call 1
Inputs
(pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x))))
(exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))
(cbrt.f64 (*.f64 100 (pow.f64 x 4)))
(cbrt.f64 (*.f64 10 (*.f64 x x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (exp.f64 (*.f64 x (*.f64 x 10))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (*.f64 x (*.f64 x 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (exp.f64 (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 (*.f64 x (*.f64 x 10)))) (pow.f64 (cbrt.f64 (exp.f64 (*.f64 x (*.f64 x 10)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 x (*.f64 x 10)))) 2) (cbrt.f64 (exp.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 10)))) (sqrt.f64 (exp.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (cbrt.f64 (*.f64 x (*.f64 x 10)))) (exp.f64 (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) 2) (cbrt.f64 (*.f64 x (*.f64 x 10)))) (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) (cbrt.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) (cbrt.f64 (*.f64 x (*.f64 x 10)))) (pow.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) (cbrt.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 (*.f64 x (*.f64 x 10))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (exp.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (exp.f64 (*.f64 x (*.f64 x 10))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (exp.f64 (*.f64 x (*.f64 x 10))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (exp.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (exp.f64 (*.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 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) 2) (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (cbrt.f64 (*.f64 x (*.f64 x 10)))) (cbrt.f64 (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (cbrt.f64 100)) (cbrt.f64 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 x 8) 10000)))) (cbrt.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (cbrt.f64 (*.f64 100 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))) (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (*.f64 x 10))) (cbrt.f64 (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 100))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 100) (cbrt.f64 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 10) (*.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 x 8) 10000))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (*.f64 x 10)))) (cbrt.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 x 8) 10000))) (cbrt.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (sqrt.f64 10)) (cbrt.f64 (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (sqrt.f64 10))) (*.f64 (cbrt.f64 (*.f64 x (sqrt.f64 10))) (cbrt.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 100 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 x 8) 10000)) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (*.f64 x (*.f64 x 10))) (cbrt.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) (cbrt.f64 (cbrt.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (*.f64 x (*.f64 x 10))) (cbrt.f64 10)) (pow.f64 (cbrt.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 100 (pow.f64 x 4)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 x 10)) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 10))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (*.f64 (pow.f64 x 8) 10000)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 (*.f64 x (*.f64 x 10))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (*.f64 x 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (*.f64 x 10)))) (cbrt.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 10) (pow.f64 (cbrt.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (cbrt.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (sqrt.f64 10))) (cbrt.f64 (*.f64 x (sqrt.f64 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x 10)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 100)) (sqrt.f64 (cbrt.f64 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 x 8) 10000)))) (sqrt.f64 (cbrt.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 1/3) (pow.f64 (*.f64 x (sqrt.f64 10)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x 10) 1/3) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 100 (pow.f64 x 4)) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 x 10)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (*.f64 x 10)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 10))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 (*.f64 x (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (*.f64 x (*.f64 x 10))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 x (*.f64 x 10)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 x (*.f64 x 10)))))))))

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Rules
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014
144
Stop Event
saturated
Counts
97 → 94
Calls
Call 1
Inputs
1
1
1
1
Outputs
1
1
1
1

eval191.0ms (1.9%)

Compiler

Compiled 5780 to 3788 computations (34.5% saved)

prune178.0ms (1.8%)

Pruning

49 alts after pruning (42 fresh and 7 done)

PrunedKeptTotal
New32532357
Fresh181028
Picked011
Done066
Total34349392
Error
0.2b
Counts
392 → 49
Alt Table
Click to see full alt table
StatusErrorProgram
3.3b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
1.3b
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) x) 3)) x) (cos.f64 x))
2.4b
(pow.f64 (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)))) (cos.f64 x))) 3)
3.0b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
3.5b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 (*.f64 10 (*.f64 x x))) (cos.f64 x))) 3)
1.3b
(*.f64 (*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 10) x)) x)) (cos.f64 x))
0.5b
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 20) x)) x) (cos.f64 x))
3.3b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (*.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (exp.f64 x) (*.f64 x 10))))
1.5b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) x)) x)) (cos.f64 x))
1.1b
(*.f64 (pow.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) (pow.f64 (sqrt.f64 (exp.f64 10)) x)) x) (cos.f64 x))
3.3b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3)))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
2.4b
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))) (cos.f64 x)))
3.0b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (exp.f64 20)) (*.f64 x x)) (pow.f64 (cbrt.f64 (exp.f64 10)) (*.f64 x x))) (cos.f64 x))
2.0b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) 20) x)))
2.4b
(*.f64 (*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))
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)))
1.5b
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) (cbrt.f64 (pow.f64 (exp.f64 10) x))) x) (cos.f64 x))
3.3b
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) 3) (pow.f64 (cos.f64 x) 3)))
3.4b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.4b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.3b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))
2.3b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)) (cos.f64 x))) 3)
4.6b
(*.f64 (cos.f64 x) (pow.f64 (*.f64 (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) 2) (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))))) (cbrt.f64 (*.f64 10 (*.f64 x x)))))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 2))
3.8b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
4.5b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4))))) 2) (cbrt.f64 (*.f64 10 (*.f64 x 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))))
3.8b
(pow.f64 (cbrt.f64 (*.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10)) (pow.f64 (sqrt.f64 (exp.f64 x)) (*.f64 x 10))) (cos.f64 x))) 3)
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
4.5b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (cbrt.f64 (*.f64 100 (pow.f64 x 4)))) (cbrt.f64 (*.f64 10 (*.f64 x x)))))
3.1b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 3))
3.3b
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)))) 2) 3) (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))
3.3b
(pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)))) 3) 3)
3.5b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x (*.f64 x 10))) 3)))
3.3b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
3.6b
(*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) (cos.f64 x)))
4.6b
(*.f64 (cos.f64 x) (exp.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 2)))
57.8b
(*.f64 (cos.f64 x) 1)
3.2b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 3)))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
3.5b
(*.f64 (cos.f64 x) (*.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 x (*.f64 x 10)))) 2) (cbrt.f64 (exp.f64 (*.f64 x (*.f64 x 10))))))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
3.6b
(pow.f64 (cbrt.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) (pow.f64 (exp.f64 x) (/.f64 x 1/5))) (cos.f64 x))) 3)
Compiler

Compiled 1391 to 1024 computations (26.4% saved)

localize32.0ms (0.3%)

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)

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

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

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

localize25.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 17 computations (39.3% saved)

series2.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite60.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

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

localize22.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 51 to 26 computations (49% saved)

series6.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite203.0ms (2.1%)

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

Useful iterations: 0 (0.0ms)

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

simplify93.0ms (0.9%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
042552
1104498
2228494
3635490
42211490
54104490
66035490
Stop Event
node limit
Counts
104 → 76
Calls
Call 1
Inputs
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 (*.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 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
Outputs
1
(+.f64 (*.f64 19/6 (pow.f64 x 2)) 1)
(fma.f64 19/6 (*.f64 x x) 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))
(+.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 33677/6480 (pow.f64 x 6))))
(fma.f64 19/6 (*.f64 x x) (fma.f64 359/72 (pow.f64 x 4) (fma.f64 33677/6480 (pow.f64 x 6) 1)))
(fma.f64 359/72 (pow.f64 x 4) (fma.f64 19/6 (*.f64 x x) (fma.f64 33677/6480 (pow.f64 x 6) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 359/72) 19/6) (fma.f64 33677/6480 (pow.f64 x 6) 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)))
(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)))
(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)))
(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)))
(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)))
(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)))
(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)))
(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)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 1)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 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 (*.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 (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 (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 (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 (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 (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 (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 (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 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 (pow.f64 x 6) 102299/720 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 1)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 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)) (*.f64 (cos.f64 x) 1))
(*.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 (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 (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 (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 (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 (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 (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 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))

localize209.0ms (2.1%)

Local error

Found 4 expressions with local error:

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

Compiled 46 to 35 computations (23.9% saved)

series4.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite60.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify68.0ms (0.7%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
046328
1120320
2311312
3969276
43991276
57214276
Stop Event
node limit
Counts
102 → 89
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 10 x))
(+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2))))
(+.f64 (*.f64 500/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2)))))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
(exp.f64 (*.f64 10 x))
1
(+.f64 1 (*.f64 30 x))
(+.f64 1 (+.f64 (*.f64 30 x) (*.f64 450 (pow.f64 x 2))))
(+.f64 (*.f64 4500 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 30 x) (*.f64 450 (pow.f64 x 2)))))
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
Outputs
1
(+.f64 1 (*.f64 10 x))
(fma.f64 10 x 1)
(+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2))))
(+.f64 1 (fma.f64 10 x (*.f64 50 (*.f64 x x))))
(+.f64 1 (fma.f64 50 (*.f64 x x) (*.f64 10 x)))
(fma.f64 10 x (fma.f64 x (*.f64 x 50) 1))
(fma.f64 x (fma.f64 x 50 10) 1)
(+.f64 (*.f64 500/3 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 10 x) (*.f64 50 (pow.f64 x 2)))))
(fma.f64 500/3 (pow.f64 x 3) (+.f64 1 (fma.f64 10 x (*.f64 50 (*.f64 x x)))))
(+.f64 (fma.f64 50 (*.f64 x x) (*.f64 10 x)) (fma.f64 500/3 (pow.f64 x 3) 1))
(fma.f64 500/3 (pow.f64 x 3) (fma.f64 10 x (fma.f64 x (*.f64 x 50) 1)))
(fma.f64 500/3 (pow.f64 x 3) (fma.f64 x (fma.f64 x 50 10) 1))
(fma.f64 x (fma.f64 x 50 10) (fma.f64 500/3 (pow.f64 x 3) 1))
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
(exp.f64 (*.f64 10 x))
(pow.f64 (exp.f64 10) x)
1
(+.f64 1 (*.f64 30 x))
(+.f64 1 (*.f64 x 30))
(fma.f64 x 30 1)
(+.f64 1 (+.f64 (*.f64 30 x) (*.f64 450 (pow.f64 x 2))))
(+.f64 1 (fma.f64 30 x (*.f64 (*.f64 x x) 450)))
(+.f64 (fma.f64 x 30 1) (*.f64 x (*.f64 x 450)))
(fma.f64 x 30 (fma.f64 x (*.f64 x 450) 1))
(fma.f64 x (fma.f64 x 450 30) 1)
(+.f64 (*.f64 4500 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 30 x) (*.f64 450 (pow.f64 x 2)))))
(fma.f64 4500 (pow.f64 x 3) (+.f64 1 (fma.f64 30 x (*.f64 (*.f64 x x) 450))))
(+.f64 (fma.f64 x 30 (*.f64 x (*.f64 x 450))) (fma.f64 (pow.f64 x 3) 4500 1))
(fma.f64 (pow.f64 x 3) 4500 (fma.f64 x 30 (fma.f64 x (*.f64 x 450) 1)))
(fma.f64 x (fma.f64 x 450 30) (fma.f64 (pow.f64 x 3) 4500 1))
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
(pow.f64 (exp.f64 (*.f64 10 x)) 3)
(pow.f64 (pow.f64 (exp.f64 10) x) 3)
(exp.f64 (*.f64 x 30))
(pow.f64 (exp.f64 x) 30)
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 10) x)) x))
(pow.f64 (pow.f64 (exp.f64 10) x) x)

localize81.0ms (0.8%)

Local error

Found 4 expressions with local error:

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

Compiled 55 to 42 computations (23.6% saved)

series15.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite147.0ms (1.5%)

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

Useful iterations: 1 (0.0ms)

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

simplify56.0ms (0.6%)

Algorithm
egg-herbie
Rules
695×fma-def_binary64
692×distribute-rgt-in_binary64
592×distribute-rgt-out_binary64
444×distribute-lft-out_binary64
382×associate-*l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
086921
1248844
2847809
34461780
Stop Event
node limit
Counts
116 → 99
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)))
(+.f64 1 (+.f64 (*.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) (*.f64 2 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (pow.f64 x 2)))))
(+.f64 1 (+.f64 (*.f64 (+.f64 (*.f64 1/3 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (pow.f64 x 3)) (+.f64 (*.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) (*.f64 2 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (pow.f64 x 2))))))
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
1
(+.f64 1 (*.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2)) (*.f64 4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2))) (pow.f64 x 3))) (*.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) (pow.f64 x 2)))))
(+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2)) (*.f64 4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2))) (pow.f64 x 3))) (+.f64 (*.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) (pow.f64 x 2))) (*.f64 (+.f64 (*.f64 2 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2)) (*.f64 1/6 (+.f64 (*.f64 -24 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (+.f64 (*.f64 16 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (*.f64 6 (+.f64 (*.f64 1/3 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3))))))) (pow.f64 x 4)))))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
1
(+.f64 1 (*.f64 (-.f64 (*.f64 2 (log.f64 (sqrt.f64 (exp.f64 10)))) 1/2) (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 (-.f64 (*.f64 2 (log.f64 (sqrt.f64 (exp.f64 10)))) 1/2) (pow.f64 x 2)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2)) (*.f64 4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2))) (pow.f64 x 3)))))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2)) (+.f64 1/24 (+.f64 (*.f64 -1 (log.f64 (sqrt.f64 (exp.f64 10)))) (*.f64 1/6 (+.f64 (*.f64 -24 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (+.f64 (*.f64 16 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (*.f64 6 (+.f64 (*.f64 1/3 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3))))))))) (pow.f64 x 4)) (+.f64 1 (+.f64 (*.f64 (-.f64 (*.f64 2 (log.f64 (sqrt.f64 (exp.f64 10)))) 1/2) (pow.f64 x 2)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2)) (*.f64 4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2))) (pow.f64 x 3))))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
1
(+.f64 1 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (pow.f64 x 2))) (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) (pow.f64 x 3))) (+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (pow.f64 x 2))) (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
Outputs
1
(+.f64 1 (*.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)))
(fma.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x) 1)
(fma.f64 (log.f64 (sqrt.f64 (exp.f64 10))) (*.f64 2 x) 1)
(+.f64 1 (+.f64 (*.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) (*.f64 2 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (pow.f64 x 2)))))
(+.f64 1 (*.f64 2 (+.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x) (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (*.f64 x x)))))
(fma.f64 2 (fma.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (*.f64 x x))) 1)
(fma.f64 2 (*.f64 (fma.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x 1) (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 1)
(fma.f64 2 (*.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x) (fma.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x 1)) 1)
(+.f64 1 (+.f64 (*.f64 (+.f64 (*.f64 1/3 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (pow.f64 x 3)) (+.f64 (*.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) (*.f64 2 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (pow.f64 x 2))))))
(+.f64 1 (fma.f64 (*.f64 4/3 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (pow.f64 x 3) (*.f64 2 (+.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x) (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (*.f64 x x))))))
(+.f64 1 (fma.f64 2 (fma.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (*.f64 x x))) (*.f64 (*.f64 (pow.f64 x 3) 4/3) (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3))))
(fma.f64 2 (*.f64 (fma.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x 1) (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) (fma.f64 (*.f64 (pow.f64 x 3) 4/3) (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) 1))
(fma.f64 2 (*.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x) (fma.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x 1)) (fma.f64 (*.f64 (pow.f64 x 3) 4/3) (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) 1))
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x))
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x))
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x))
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x))
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x))
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x))
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x))
(pow.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)) 2)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x))
1
(+.f64 1 (*.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) (pow.f64 x 2))))
(+.f64 1 (*.f64 (*.f64 2 (log.f64 (sqrt.f64 (exp.f64 10)))) (*.f64 x x)))
(fma.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) (*.f64 x x)) 1)
(+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2)) (*.f64 4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2))) (pow.f64 x 3))) (*.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) (pow.f64 x 2)))))
(+.f64 1 (*.f64 (*.f64 2 (log.f64 (sqrt.f64 (exp.f64 10)))) (*.f64 x x)))
(fma.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) (*.f64 x x)) 1)
(+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2)) (*.f64 4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2))) (pow.f64 x 3))) (+.f64 (*.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) (pow.f64 x 2))) (*.f64 (+.f64 (*.f64 2 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2)) (*.f64 1/6 (+.f64 (*.f64 -24 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (+.f64 (*.f64 16 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (*.f64 6 (+.f64 (*.f64 1/3 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3))))))) (pow.f64 x 4)))))
(+.f64 1 (fma.f64 1/2 (*.f64 (pow.f64 x 3) (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) 0)) (fma.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) (*.f64 x x)) (*.f64 (fma.f64 2 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (*.f64 1/6 (fma.f64 -24 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) (fma.f64 16 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) (*.f64 (*.f64 4/3 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) 6))))) (pow.f64 x 4)))))
(+.f64 1 (fma.f64 0 (pow.f64 x 3) (fma.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) (*.f64 x x)) (*.f64 (fma.f64 2 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (*.f64 1/6 (+.f64 (*.f64 8 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) -8)))) (pow.f64 x 4)))))
(+.f64 (*.f64 2 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) (*.f64 x x))) (fma.f64 (fma.f64 2 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (+.f64 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) 4/3) (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) -4/3))) (pow.f64 x 4) 1))
(+.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) (*.f64 2 (*.f64 x x))) (fma.f64 (fma.f64 2 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) 0)) (pow.f64 x 4) 1))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x))
(pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x)
(pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x)))
1
(+.f64 1 (*.f64 (-.f64 (*.f64 2 (log.f64 (sqrt.f64 (exp.f64 10)))) 1/2) (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) (fma.f64 2 (log.f64 (sqrt.f64 (exp.f64 10))) -1/2)))
(fma.f64 (*.f64 x x) (fma.f64 2 (log.f64 (sqrt.f64 (exp.f64 10))) -1/2) 1)
(+.f64 1 (+.f64 (*.f64 (-.f64 (*.f64 2 (log.f64 (sqrt.f64 (exp.f64 10)))) 1/2) (pow.f64 x 2)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2)) (*.f64 4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2))) (pow.f64 x 3)))))
(+.f64 1 (*.f64 (*.f64 x x) (fma.f64 2 (log.f64 (sqrt.f64 (exp.f64 10))) -1/2)))
(fma.f64 (*.f64 x x) (fma.f64 2 (log.f64 (sqrt.f64 (exp.f64 10))) -1/2) 1)
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2)) (+.f64 1/24 (+.f64 (*.f64 -1 (log.f64 (sqrt.f64 (exp.f64 10)))) (*.f64 1/6 (+.f64 (*.f64 -24 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (+.f64 (*.f64 16 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (*.f64 6 (+.f64 (*.f64 1/3 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3))))))))) (pow.f64 x 4)) (+.f64 1 (+.f64 (*.f64 (-.f64 (*.f64 2 (log.f64 (sqrt.f64 (exp.f64 10)))) 1/2) (pow.f64 x 2)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2)) (*.f64 4 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2))) (pow.f64 x 3))))))
(fma.f64 (fma.f64 2 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (+.f64 1/24 (fma.f64 -1 (log.f64 (sqrt.f64 (exp.f64 10))) (*.f64 1/6 (fma.f64 -24 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) (fma.f64 16 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) (*.f64 (*.f64 4/3 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) 6))))))) (pow.f64 x 4) (+.f64 1 (fma.f64 (fma.f64 2 (log.f64 (sqrt.f64 (exp.f64 10))) -1/2) (*.f64 x x) (*.f64 1/2 (*.f64 (pow.f64 x 3) (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) 0))))))
(fma.f64 (pow.f64 x 4) (+.f64 (-.f64 (*.f64 1/6 (+.f64 (*.f64 8 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3)) (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) -8))) (log.f64 (sqrt.f64 (exp.f64 10)))) (fma.f64 2 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) 1/24)) (+.f64 1 (fma.f64 (*.f64 x x) (fma.f64 2 (log.f64 (sqrt.f64 (exp.f64 10))) -1/2) (*.f64 (pow.f64 x 3) 0))))
(fma.f64 (pow.f64 x 4) (fma.f64 2 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (-.f64 (fma.f64 1/6 (fma.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) -24 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) 24)) 1/24) (log.f64 (sqrt.f64 (exp.f64 10))))) (fma.f64 (*.f64 x x) (fma.f64 2 (log.f64 (sqrt.f64 (exp.f64 10))) -1/2) 1))
(fma.f64 (pow.f64 x 4) (-.f64 (+.f64 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) 0) (fma.f64 2 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) 1/24)) (log.f64 (sqrt.f64 (exp.f64 10)))) (fma.f64 (*.f64 x x) (fma.f64 2 (log.f64 (sqrt.f64 (exp.f64 10))) -1/2) 1))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x))) (cos.f64 x))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 (log.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2)) x)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x) 2) x) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 x)) x) (cos.f64 x))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x))) (cos.f64 x))
1
(+.f64 1 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(fma.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x 1)
(+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (pow.f64 x 2))) (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)))
(+.f64 1 (fma.f64 1/2 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (*.f64 x x)) (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x)))
(+.f64 1 (fma.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (*.f64 (*.f64 x x) 1/2))))
(fma.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x (fma.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (*.f64 x (*.f64 x 1/2)) 1))
(+.f64 1 (*.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x) (+.f64 1 (log.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x))))))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) (pow.f64 x 3))) (+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (pow.f64 x 2))) (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))))
(fma.f64 1/6 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) (pow.f64 x 3)) (+.f64 1 (fma.f64 1/2 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (*.f64 x x)) (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))))
(+.f64 (fma.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (*.f64 (*.f64 x x) 1/2))) (fma.f64 1/6 (*.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) (pow.f64 x 3)) 1))
(fma.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) (*.f64 (pow.f64 x 3) 1/6) (fma.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x (fma.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 2) (*.f64 x (*.f64 x 1/2)) 1)))
(+.f64 1 (fma.f64 (pow.f64 (log.f64 (sqrt.f64 (exp.f64 10))) 3) (*.f64 (pow.f64 x 3) 1/6) (*.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x) (+.f64 1 (log.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) x)))))))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(pow.f64 (sqrt.f64 (exp.f64 10)) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(pow.f64 (sqrt.f64 (exp.f64 10)) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(pow.f64 (sqrt.f64 (exp.f64 10)) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(pow.f64 (sqrt.f64 (exp.f64 10)) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(pow.f64 (sqrt.f64 (exp.f64 10)) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(pow.f64 (sqrt.f64 (exp.f64 10)) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(pow.f64 (sqrt.f64 (exp.f64 10)) x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (exp.f64 10))) x))
(pow.f64 (sqrt.f64 (exp.f64 10)) x)

eval492.0ms (5%)

Compiler

Compiled 8249 to 5617 computations (31.9% saved)

prune151.0ms (1.5%)

Pruning

46 alts after pruning (39 fresh and 7 done)

PrunedKeptTotal
New50124525
Fresh221537
Picked101
Done4711
Total52846574
Error
0.0b
Counts
574 → 46
Alt Table
Click to see full alt table
StatusErrorProgram
3.0b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))
63.0b
(pow.f64 1 3)
1.5b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))) 3)
3.0b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
3.0b
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))) (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 2)))
3.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3)) (cos.f64 x))) 3)
2.4b
(*.f64 (*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))
0.6b
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)) (cos.f64 x))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3) (cos.f64 x))) 3)
3.5b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))))
3.4b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.3b
(*.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 x 5)) x) (pow.f64 (exp.f64 (*.f64 x 5)) x)) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))))
1.0b
(*.f64 (pow.f64 (pow.f64 (exp.f64 5) (+.f64 x x)) x) (cos.f64 x))
0.4b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
3.3b
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)) 3))
0.5b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
1.1b
(*.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) x)) (cos.f64 x))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.8b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
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)))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
0.7b
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
1.0b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 40) x)) (*.f64 x 1/2)) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 20) x)) (*.f64 x 1/2))) (cos.f64 x))
3.1b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 3))
3.3b
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)))) 2) 3) (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))
3.3b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))) 3)
3.3b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
3.6b
(*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) (cos.f64 x)))
4.6b
(*.f64 (cos.f64 x) (exp.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 2)))
57.8b
(*.f64 (cos.f64 x) 1)
3.2b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.2b
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 (*.f64 20 x))) x) (cos.f64 x))
3.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 3)))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
3.0b
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 10)) (*.f64 2 (*.f64 x x))) (cos.f64 x))
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
1.2b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
0.9b
(*.f64 (*.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)))) (cos.f64 x))
3.3b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
2.2b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))) 3)
3.0b
(*.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))))
Compiler

Compiled 1207 to 895 computations (25.8% saved)

localize36.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 34 to 23 computations (32.4% saved)

series4.0ms (0%)

Counts
3 → 20
Calls

9 calls:

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

rewrite67.0ms (0.7%)

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

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

Useful iterations: 3 (0.0ms)

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

localize3.0ms (0%)

Compiler

Compiled 6 to 6 computations (0% saved)

localize16.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 26 to 10 computations (61.5% saved)

series5.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite109.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
753×pow1_binary64
700×add-log-exp_binary64
700×log1p-expm1-u_binary64
700×expm1-log1p-u_binary64
681×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify87.0ms (0.9%)

Algorithm
egg-herbie
Rules
586×associate-/l/_binary64
571×fma-def_binary64
492×distribute-rgt-out_binary64
420×associate-*l*_binary64
382×distribute-lft-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
045381
1108369
2265363
3778361
42832361
54708361
66005361
76927361
Stop Event
node limit
Counts
81 → 70
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)))))
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
1
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 1/6 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4)))))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
(exp.f64 (pow.f64 x 2))
1
(+.f64 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 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
Outputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 x (*.f64 10 x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 10 (*.f64 x x) 1)))
(fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 x (*.f64 10 x) 1)))
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
(pow.f64 (exp.f64 (pow.f64 x 2)) 10)
(pow.f64 (exp.f64 (*.f64 x x)) 10)
(pow.f64 (pow.f64 (exp.f64 x) x) 10)
1
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (*.f64 x x))
(fma.f64 x x 1)
(+.f64 1 (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 x x) (*.f64 (pow.f64 x 4) 1/2)))
(+.f64 (fma.f64 x x 1) (*.f64 (pow.f64 x 4) 1/2))
(fma.f64 x x (fma.f64 (pow.f64 x 4) 1/2 1))
(fma.f64 (pow.f64 x 4) 1/2 (fma.f64 x x 1))
(+.f64 1 (+.f64 (*.f64 1/6 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4)))))
(+.f64 1 (fma.f64 1/6 (pow.f64 x 6) (+.f64 (*.f64 x x) (*.f64 (pow.f64 x 4) 1/2))))
(+.f64 1 (fma.f64 (pow.f64 x 6) 1/6 (fma.f64 x x (*.f64 (pow.f64 x 4) 1/2))))
(fma.f64 (pow.f64 x 6) 1/6 (fma.f64 x x (fma.f64 (pow.f64 x 4) 1/2 1)))
(fma.f64 (pow.f64 x 4) 1/2 (fma.f64 (pow.f64 x 6) 1/6 (fma.f64 x x 1)))
(fma.f64 (pow.f64 x 6) 1/6 (fma.f64 (pow.f64 x 4) 1/2 (fma.f64 x x 1)))
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
(exp.f64 (pow.f64 x 2))
(exp.f64 (*.f64 x x))
(pow.f64 (exp.f64 x) x)
1
(+.f64 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)
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 1081/24 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (pow.f64 x 4) 1081/24))))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 1081/24 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (pow.f64 x 2)) 10))
(*.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))

localize123.0ms (1.2%)

Local error

Found 4 expressions with local error:

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

Compiled 48 to 26 computations (45.8% saved)

series7.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite126.0ms (1.3%)

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

Useful iterations: 0 (0.0ms)

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

simplify80.0ms (0.8%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
051674
1129616
2296612
3849608
42995608
55048608
67241608
Stop Event
node limit
Counts
131 → 100
Calls
Call 1
Inputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
1
(+.f64 (*.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 (*.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 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
Outputs
1
(+.f64 (*.f64 10 (pow.f64 x 2)) 1)
(fma.f64 10 (*.f64 x x) 1)
(fma.f64 x (*.f64 10 x) 1)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 1 (*.f64 50 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 500/3 (pow.f64 x 6)) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (+.f64 1 (*.f64 50 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 500/3 (pow.f64 x 6) (fma.f64 50 (pow.f64 x 4) 1)))
(fma.f64 10 (*.f64 x x) (fma.f64 50 (pow.f64 x 4) (fma.f64 500/3 (pow.f64 x 6) 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 50) 10) (fma.f64 500/3 (pow.f64 x 6) 1))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
(exp.f64 (*.f64 10 (pow.f64 x 2)))
(pow.f64 (exp.f64 10) (*.f64 x x))
(pow.f64 (exp.f64 x) (*.f64 10 x))
1
(+.f64 (*.f64 19/6 (pow.f64 x 2)) 1)
(fma.f64 19/6 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 19/6 1)
(fma.f64 x (*.f64 x 19/6) 1)
(+.f64 (*.f64 19/6 (pow.f64 x 2)) (+.f64 (*.f64 359/72 (pow.f64 x 4)) 1))
(fma.f64 19/6 (*.f64 x x) (fma.f64 359/72 (pow.f64 x 4) 1))
(fma.f64 (*.f64 x x) 19/6 (fma.f64 (pow.f64 x 4) 359/72 1))
(fma.f64 x (*.f64 x 19/6) (fma.f64 (pow.f64 x 4) 359/72 1))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 359/72) 19/6) 1)
(+.f64 (*.f64 19/6 (pow.f64 x 2)) (+.f64 (*.f64 359/72 (pow.f64 x 4)) (+.f64 1 (*.f64 33677/6480 (pow.f64 x 6)))))
(fma.f64 19/6 (*.f64 x x) (fma.f64 359/72 (pow.f64 x 4) (+.f64 1 (*.f64 (pow.f64 x 6) 33677/6480))))
(fma.f64 (*.f64 x x) 19/6 (fma.f64 (pow.f64 x 4) 359/72 (fma.f64 (pow.f64 x 6) 33677/6480 1)))
(fma.f64 x (*.f64 x 19/6) (fma.f64 (pow.f64 x 4) 359/72 (fma.f64 (pow.f64 x 6) 33677/6480 1)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 359/72) 19/6) (fma.f64 (pow.f64 x 6) 33677/6480 1))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
(pow.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x)))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (*.f64 x x) 19/2))))
(+.f64 (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 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x)) (pow.f64 1 1/3))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
1
(+.f64 1 (*.f64 19/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 19/2))
(fma.f64 (*.f64 x x) 19/2 1)
(fma.f64 x (*.f64 x 19/2) 1)
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (*.f64 19/2 (pow.f64 x 2))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (*.f64 (*.f64 x x) 19/2)))
(+.f64 1 (fma.f64 (*.f64 x x) 19/2 (*.f64 (pow.f64 x 4) 1081/24)))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 1))
(+.f64 1 (+.f64 (*.f64 1081/24 (pow.f64 x 4)) (+.f64 (*.f64 19/2 (pow.f64 x 2)) (*.f64 102299/720 (pow.f64 x 6)))))
(+.f64 1 (fma.f64 1081/24 (pow.f64 x 4) (fma.f64 19/2 (*.f64 x x) (*.f64 (pow.f64 x 6) 102299/720))))
(+.f64 1 (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 (*.f64 (*.f64 x x) 19/2))))
(+.f64 (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 (*.f64 x x) (fma.f64 x (*.f64 x 1081/24) 19/2) (fma.f64 (pow.f64 x 6) 102299/720 1))
(fma.f64 x (*.f64 x 19/2) (fma.f64 (pow.f64 x 4) 1081/24 (fma.f64 (pow.f64 x 6) 102299/720 1)))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))
(*.f64 (exp.f64 (*.f64 10 (pow.f64 x 2))) (cos.f64 x))
(*.f64 1 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 x) (*.f64 10 x)) (cos.f64 x))

localize148.0ms (1.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))
0.5b
(pow.f64 (pow.f64 (exp.f64 20) x) x)
0.5b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
0.6b
(cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)))
Compiler

Compiled 59 to 40 computations (32.2% saved)

series55.0ms (0.6%)

Counts
2 → 24
Calls

6 calls:

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

rewrite449.0ms (4.5%)

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

Useful iterations: 2 (0.0ms)

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

simplify98.0ms (1%)

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

Useful iterations: 4 (0.0ms)

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

eval430.0ms (4.4%)

Compiler

Compiled 6726 to 4254 computations (36.8% saved)

prune397.0ms (4%)

Pruning

47 alts after pruning (36 fresh and 11 done)

PrunedKeptTotal
New41213425
Fresh112334
Picked011
Done11011
Total42447471
Error
0.0b
Counts
471 → 47
Alt Table
Click to see full alt table
StatusErrorProgram
3.3b
(*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (exp.f64 20) (*.f64 x x))) (cos.f64 x))) 3)
2.1b
(*.f64 (cos.f64 x) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20)))
2.4b
(*.f64 (*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 20))) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 10))))
0.6b
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) 3)) (cos.f64 x))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 10) (*.f64 x x))) 3) (cos.f64 x))) 3)
3.6b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 x) (/.f64 x 1/10)))
3.5b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 10)))))
0.5b
(*.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (pow.f64 (exp.f64 40) x)) x)) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
0.4b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
3.4b
(*.f64 (cos.f64 x) (+.f64 1 (expm1.f64 (*.f64 10 (*.f64 x x)))))
3.3b
(*.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 x 5)) x) (pow.f64 (exp.f64 (*.f64 x 5)) x)) (cos.f64 x))
1.0b
(*.f64 (pow.f64 (pow.f64 (exp.f64 5) (+.f64 x x)) x) (cos.f64 x))
3.0b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
3.7b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 x (*.f64 x 10))))
3.0b
(*.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))))
3.0b
(*.f64 (pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2)) (cos.f64 x))
0.5b
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) (*.f64 x 1/2)) x) (cos.f64 x))
1.1b
(*.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 20) x) 1/4) x)) (cos.f64 x))
3.0b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))) 3)
3.8b
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 1) (*.f64 10 (*.f64 x x))))
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.0b
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
3.0b
(*.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)))
1.3b
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
0.7b
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x)) 3))
3.2b
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 20 x)) x)) (cos.f64 x))
3.1b
(*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10)) 3))
3.3b
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x)))) 2) 3) (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))))
3.3b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))) 3)
3.3b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 x 10)) (cos.f64 x))) 3)
3.6b
(*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) (*.f64 (pow.f64 (exp.f64 x) (/.f64 x 1/5)) (cos.f64 x)))
4.6b
(*.f64 (cos.f64 x) (exp.f64 (pow.f64 (*.f64 x (sqrt.f64 10)) 2)))
57.8b
(*.f64 (cos.f64 x) 1)
3.2b
(*.f64 (pow.f64 (exp.f64 (*.f64 10 x)) x) (cos.f64 x))
3.0b
(*.f64 (cos.f64 x) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 x x)) 10) 3)))
3.6b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) 3) 1/3))
3.5b
(pow.f64 (*.f64 (pow.f64 (exp.f64 10/3) (*.f64 x x)) (cbrt.f64 (cos.f64 x))) 3)
2.0b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) 10) x))
2.1b
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 x) x) 10))
1.2b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 20) x) x)) (cos.f64 x))) 3)
63.0b
(pow.f64 1 3)
2.2b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 10) (cos.f64 x))) 3)
1.5b
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))) 3)
3.5b
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
3.5b
(*.f64 (sqrt.f64 (exp.f64 (*.f64 x (*.f64 20 x)))) (cos.f64 x))
Compiler

Compiled 626 to 462 computations (26.2% saved)

regimes467.0ms (4.7%)

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

3 calls:

159.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
90.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
89.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 1457 to 864 computations (40.7% saved)

regimes281.0ms (2.9%)

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

3 calls:

151.0ms
x
65.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
27.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Results
ErrorSegmentsBranch
1.3b1x
1.3b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
1.3b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 279 to 154 computations (44.8% saved)

regimes185.0ms (1.9%)

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

3 calls:

37.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
22.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
21.0ms
x
Results
ErrorSegmentsBranch
3.0b1x
3.0b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
3.0b1(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Compiler

Compiled 212 to 117 computations (44.8% saved)

regimes89.0ms (0.9%)

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

3 calls:

39.0ms
x
21.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
20.0ms
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
Results
ErrorSegmentsBranch
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 179 to 98 computations (45.3% saved)

regimes45.0ms (0.5%)

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

3 calls:

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

Compiled 97 to 59 computations (39.2% saved)

regimes59.0ms (0.6%)

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

2 calls:

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

Compiled 78 to 48 computations (38.5% saved)

regimes12.0ms (0.1%)

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

1 calls:

9.0ms
x
Results
ErrorSegmentsBranch
3.5b1x
Compiler

Compiled 28 to 18 computations (35.7% saved)

regimes9.0ms (0.1%)

Accuracy

Total -5.2b remaining (-9%)

Threshold costs -5.2b (-9%)

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

1 calls:

7.0ms
x
Results
ErrorSegmentsBranch
57.8b1x
Compiler

Compiled 10 to 8 computations (20% saved)

simplify14.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
036108
150108
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2)) (cos.f64 x))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) 1)
(pow.f64 1 3)
Outputs
(*.f64 (pow.f64 (pow.f64 (exp.f64 20) x) (*.f64 x 1/2)) (cos.f64 x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 10) x) x) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (pow.f64 (exp.f64 10) x) x))
(*.f64 (pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 20) (/.f64 (*.f64 x x) 2)))
(*.f64 (pow.f64 (exp.f64 10) (*.f64 x x)) (cos.f64 x))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 10) (*.f64 x x)))
(*.f64 (cos.f64 x) (pow.f64 (exp.f64 (*.f64 x x)) 10))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 10 (*.f64 x x))))
(*.f64 (cos.f64 x) (exp.f64 (*.f64 x (*.f64 x 10))))
(*.f64 (cos.f64 x) 1)
(cos.f64 x)
(pow.f64 1 3)
1
Compiler

Compiled 79 to 57 computations (27.8% saved)

soundness211.0ms (2.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)

end136.0ms (1.4%)

Compiler

Compiled 71 to 39 computations (45.1% saved)

Profiling

Loading profile data...