Details

Time bar (total: 7.3s)

analyze309.0ms (4.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
0%100%0%3
37.5%62.5%0%4
43.7%56.2%0%5
46.9%53.1%0%6
48.4%51.5%0%7
49.2%50.8%0%8
49.6%50.4%0%9
49.8%50.2%0%10
49.9%50.1%0%11
49.9%50%0%12
Compiler

Compiled 18 to 15 computations (16.7% saved)

sample2.7s (37.2%)

Results
1.2s2030×body1024valid
1.0s5183×body256valid
408.0ms1036×body512valid
8.0msbody2048valid

preprocess21.0ms (0.3%)

Algorithm
egg-herbie
Rules
10×*-commutative_binary64
associate-/l*_binary64
associate-/r/_binary64
associate-*r*_binary64
associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01322
12022
23122
34422
45222
56122
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(/.f64 (*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))
Outputs
(/.f64 (*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))
(/.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
(/.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (sin.f64 x) 8/3)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (/.f64 8/3 (sin.f64 x)) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))
Compiler

Compiled 18 to 15 computations (16.7% saved)

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Rules
10×*-commutative_binary64
associate-/l*_binary64
associate-/r/_binary64
associate-*r*_binary64
associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01322
12022
23122
34422
45222
56122
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(/.f64 (*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))
Outputs
(/.f64 (*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))
(/.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
(/.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (sin.f64 x) 8/3)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (/.f64 8/3 (sin.f64 x)) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))

eval1.0ms (0%)

Compiler

Compiled 31 to 24 computations (22.6% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.6b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
21.3b
(/.f64 (*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))
0.7b
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))
Compiler

Compiled 32 to 26 computations (18.8% saved)

localize9.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.6b
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))
0.4b
(/.f64 8/3 (sin.f64 x))
0.3b
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))
0.3b
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))
0.4b
(/.f64 8/3 (sin.f64 x))
0.6b
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))

series8.0ms (0.1%)

Counts
3 → 28
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))
1.0ms
x
@-inf
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))
1.0ms
x
@inf
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))
1.0ms
x
@-inf
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))
1.0ms
x
@inf
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))

rewrite63.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
499×log-prod_binary64
379×exp-prod_binary64
323×prod-exp_binary64
287×pow-prod-down_binary64
261×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01042
120937
2249937
Stop Event
node limit
Counts
3 → 116
Calls
Call 1
Inputs
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))
(/.f64 8/3 (sin.f64 x))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 x) 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sin.f64 x) (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3) 1) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (cbrt.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3) (sqrt.f64 (sin.f64 x))) (sqrt.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -8/3 (sin.f64 (*.f64 x 1/2))) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) -8/3) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sin.f64 x) (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))) 2)) (cbrt.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))))) (sqrt.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1) (log.f64 (*.f64 (sin.f64 x) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3)) (*.f64 (log.f64 (sin.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1) (log.f64 (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) (*.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1) (*.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) 1) (log.f64 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) 1) (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 8/3 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 8/3 (sin.f64 x)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 8/3 (sin.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8/3 (/.f64 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 8/3 (sin.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 8/3 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 8/3 (sin.f64 x))) (cbrt.f64 (*.f64 64/9 (pow.f64 (sin.f64 x) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 64/9 (pow.f64 (sin.f64 x) -2))) (cbrt.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sqrt.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -8/3 (/.f64 1 (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sin.f64 x)) 8/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 8/3 (sin.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 64/9 (pow.f64 (sin.f64 x) -2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 8/3 (sin.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 8/3 (sin.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 x) 3/8) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (sin.f64 x) 3/8) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 8/3 (sin.f64 x)))) 2)) (cbrt.f64 (log.f64 (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 8/3 (sin.f64 x))))) (sqrt.f64 (log.f64 (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 64/9 (pow.f64 (sin.f64 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 8/3 (sin.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 8/3 (sin.f64 x)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 8/3 (sin.f64 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 x) 3/8)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 8/3 (sin.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 (sin.f64 x) 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3)) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 1) (*.f64 (sin.f64 x) 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) -8/3) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))))) (sqrt.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1) (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) (*.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1) (*.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) 1) (log.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))) 1) (log.f64 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))) (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))) 1) (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) (*.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))))))))

simplify63.0ms (0.9%)

Algorithm
egg-herbie
Rules
769×distribute-lft-out_binary64
708×fma-def_binary64
517×unswap-sqr_binary64
471×associate-*l*_binary64
347×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
065405
1156403
2361401
31019401
43069401
55017401
67752401
Stop Event
node limit
Counts
144 → 142
Calls
Call 1
Inputs
4/3
(+.f64 (*.f64 1/6 (pow.f64 x 2)) 4/3)
(+.f64 (*.f64 1/6 (pow.f64 x 2)) (+.f64 4/3 (*.f64 5/288 (pow.f64 x 4))))
(+.f64 (*.f64 1/6 (pow.f64 x 2)) (+.f64 4/3 (+.f64 (*.f64 5/288 (pow.f64 x 4)) (*.f64 61/34560 (pow.f64 x 6)))))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(/.f64 8/3 x)
(+.f64 (*.f64 4/9 x) (*.f64 8/3 (/.f64 1 x)))
(+.f64 (*.f64 4/9 x) (+.f64 (*.f64 7/135 (pow.f64 x 3)) (*.f64 8/3 (/.f64 1 x))))
(+.f64 (*.f64 4/9 x) (+.f64 (*.f64 31/5670 (pow.f64 x 5)) (+.f64 (*.f64 7/135 (pow.f64 x 3)) (*.f64 8/3 (/.f64 1 x)))))
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
Outputs
4/3
(+.f64 (*.f64 1/6 (pow.f64 x 2)) 4/3)
(fma.f64 1/6 (*.f64 x x) 4/3)
(fma.f64 x (*.f64 1/6 x) 4/3)
(+.f64 (*.f64 1/6 (pow.f64 x 2)) (+.f64 4/3 (*.f64 5/288 (pow.f64 x 4))))
(+.f64 (fma.f64 1/6 (*.f64 x x) 4/3) (*.f64 5/288 (pow.f64 x 4)))
(fma.f64 1/6 (*.f64 x x) (fma.f64 5/288 (pow.f64 x 4) 4/3))
(+.f64 (*.f64 1/6 (pow.f64 x 2)) (+.f64 4/3 (+.f64 (*.f64 5/288 (pow.f64 x 4)) (*.f64 61/34560 (pow.f64 x 6)))))
(fma.f64 1/6 (*.f64 x x) (+.f64 4/3 (fma.f64 5/288 (pow.f64 x 4) (*.f64 61/34560 (pow.f64 x 6)))))
(+.f64 (fma.f64 61/34560 (pow.f64 x 6) (*.f64 5/288 (pow.f64 x 4))) (fma.f64 1/6 (*.f64 x x) 4/3))
(fma.f64 1/6 (*.f64 x x) (fma.f64 5/288 (pow.f64 x 4) (fma.f64 61/34560 (pow.f64 x 6) 4/3)))
(fma.f64 61/34560 (pow.f64 x 6) (fma.f64 1/6 (*.f64 x x) (fma.f64 5/288 (pow.f64 x 4) 4/3)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 5/288) 1/6) (fma.f64 61/34560 (pow.f64 x 6) 4/3))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))
(/.f64 8/3 x)
(+.f64 (*.f64 4/9 x) (*.f64 8/3 (/.f64 1 x)))
(fma.f64 4/9 x (/.f64 8/3 x))
(fma.f64 x 4/9 (/.f64 8/3 x))
(+.f64 (*.f64 4/9 x) (+.f64 (*.f64 7/135 (pow.f64 x 3)) (*.f64 8/3 (/.f64 1 x))))
(fma.f64 4/9 x (fma.f64 7/135 (pow.f64 x 3) (/.f64 8/3 x)))
(fma.f64 x 4/9 (fma.f64 7/135 (pow.f64 x 3) (/.f64 8/3 x)))
(fma.f64 x (fma.f64 x (*.f64 x 7/135) 4/9) (/.f64 8/3 x))
(+.f64 (*.f64 4/9 x) (+.f64 (*.f64 31/5670 (pow.f64 x 5)) (+.f64 (*.f64 7/135 (pow.f64 x 3)) (*.f64 8/3 (/.f64 1 x)))))
(fma.f64 4/9 x (fma.f64 31/5670 (pow.f64 x 5) (fma.f64 7/135 (pow.f64 x 3) (/.f64 8/3 x))))
(fma.f64 x 4/9 (fma.f64 31/5670 (pow.f64 x 5) (fma.f64 7/135 (pow.f64 x 3) (/.f64 8/3 x))))
(fma.f64 x 4/9 (fma.f64 7/135 (pow.f64 x 3) (fma.f64 31/5670 (pow.f64 x 5) (/.f64 8/3 x))))
(fma.f64 x (fma.f64 x (*.f64 x 7/135) 4/9) (fma.f64 31/5670 (pow.f64 x 5) (/.f64 8/3 x)))
(*.f64 2/3 x)
(*.f64 x 2/3)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(fma.f64 1/18 (pow.f64 x 3) (*.f64 x 2/3))
(fma.f64 x 2/3 (*.f64 (pow.f64 x 3) 1/18))
(fma.f64 (pow.f64 x 3) 1/18 (*.f64 x 2/3))
(*.f64 x (fma.f64 x (*.f64 x 1/18) 2/3))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 2/3 x (*.f64 (pow.f64 x 5) 1/180)))
(fma.f64 (pow.f64 x 3) 1/18 (fma.f64 (pow.f64 x 5) 1/180 (*.f64 x 2/3)))
(fma.f64 x (fma.f64 x (*.f64 x 1/18) 2/3) (*.f64 (pow.f64 x 5) 1/180))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 2/3 x (*.f64 (pow.f64 x 5) 1/180))))
(fma.f64 (pow.f64 x 3) 1/18 (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 (pow.f64 x 5) 1/180 (*.f64 x 2/3))))
(fma.f64 (pow.f64 x 3) 1/18 (fma.f64 x 2/3 (fma.f64 (pow.f64 x 5) 1/180 (*.f64 17/30240 (pow.f64 x 7)))))
(fma.f64 x 2/3 (fma.f64 (pow.f64 x 3) 1/18 (fma.f64 (pow.f64 x 5) 1/180 (*.f64 17/30240 (pow.f64 x 7)))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))

localize9.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
21.2b
(/.f64 (*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))
0.3b
(*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2)))
0.2b
(*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2)))
0.2b
(*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2)))
0.3b
(*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2)))
21.2b
(/.f64 (*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))

series5.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2)))
0.0ms
x
@-inf
(*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2)))
0.0ms
x
@0
(*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2)))
0.0ms
x
@-inf
(*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2)))
0.0ms
x
@inf
(*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2)))

rewrite76.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
583×log-prod_binary64
452×exp-prod_binary64
305×pow2_binary64
296×pow-prod-down_binary64
215×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01348
125138
2299538
Stop Event
node limit
Counts
3 → 109
Calls
Call 1
Inputs
(/.f64 (*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))
(*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2)))
(*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 8/3) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 8/3) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 8/3) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 8/3) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8/3 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 1 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (/.f64 1 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (/.f64 1 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 1 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (/.f64 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 64/9 (pow.f64 (sin.f64 (*.f64 x 1/2)) 4))) (*.f64 (cbrt.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) (/.f64 1 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))) (cbrt.f64 (pow.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))) 2)) (cbrt.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (*.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (/.f64 1 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (sin.f64 x))) (/.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (/.f64 1 (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sin.f64 x)) (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) 1) (/.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (sin.f64 x)) (sin.f64 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) 1) (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 64/9 (pow.f64 (sin.f64 (*.f64 x 1/2)) 4))) 1) (/.f64 (cbrt.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) 1) (/.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 8/3 (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (/.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (/.f64 (sin.f64 (*.f64 x 1/2)) (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) -2) (/.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 64/9 (pow.f64 (sin.f64 (*.f64 x 1/2)) 4))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (cbrt.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (/.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 8/3 (sqrt.f64 (sin.f64 x))) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (sin.f64 x))) (/.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (sin.f64 x))) (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sin.f64 x) -1/2) (/.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 64/9 (pow.f64 (sin.f64 (*.f64 x 1/2)) 4))) (sqrt.f64 (sin.f64 x))) (/.f64 (cbrt.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3/8 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (sin.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3/8 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) 6) (pow.f64 (sin.f64 x) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 3/8 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))) 2)) (cbrt.f64 (log.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))) (sqrt.f64 (log.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 8/3) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3/8 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) -3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) 6) (pow.f64 (sin.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 3/8 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (sin.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 3/8 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 8/3) (sin.f64 (*.f64 x 1/2)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 8/3) (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 8/3) (sin.f64 (*.f64 x 1/2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 8/3) (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 64/9) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))) 2)) (cbrt.f64 (log.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))))) (sqrt.f64 (log.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 64/9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 8/3) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 8/3) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 8/3) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 8/3) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 8/3) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 64/9 (pow.f64 (sin.f64 (*.f64 x 1/2)) 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 2)) (cbrt.f64 (log.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))) (sqrt.f64 (log.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 64/9 (pow.f64 (sin.f64 (*.f64 x 1/2)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 8/3) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))))

simplify76.0ms (1%)

Algorithm
egg-herbie
Rules
802×fma-def_binary64
783×distribute-rgt-out_binary64
772×distribute-lft-out_binary64
670×associate-*l*_binary64
503×associate-*r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
064490
1157490
2374490
31103490
43907490
56646490
67832490
Stop Event
node limit
Counts
145 → 138
Calls
Call 1
Inputs
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 4/3 x)
(+.f64 (*.f64 4/3 x) (*.f64 -1/18 (pow.f64 x 3)))
(+.f64 (*.f64 4/3 x) (+.f64 (*.f64 1/1440 (pow.f64 x 5)) (*.f64 -1/18 (pow.f64 x 3))))
(+.f64 (*.f64 4/3 x) (+.f64 (*.f64 -1/241920 (pow.f64 x 7)) (+.f64 (*.f64 1/1440 (pow.f64 x 5)) (*.f64 -1/18 (pow.f64 x 3)))))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 2/3 (pow.f64 x 2))
(+.f64 (*.f64 -1/18 (pow.f64 x 4)) (*.f64 2/3 (pow.f64 x 2)))
(+.f64 (*.f64 -1/18 (pow.f64 x 4)) (+.f64 (*.f64 2/3 (pow.f64 x 2)) (*.f64 1/540 (pow.f64 x 6))))
(+.f64 (*.f64 -1/18 (pow.f64 x 4)) (+.f64 (*.f64 2/3 (pow.f64 x 2)) (+.f64 (*.f64 -1/30240 (pow.f64 x 8)) (*.f64 1/540 (pow.f64 x 6)))))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
Outputs
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(fma.f64 1/18 (pow.f64 x 3) (*.f64 2/3 x))
(fma.f64 2/3 x (*.f64 1/18 (pow.f64 x 3)))
(*.f64 x (fma.f64 x (*.f64 x 1/18) 2/3))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 2/3 x)))
(fma.f64 1/180 (pow.f64 x 5) (fma.f64 2/3 x (*.f64 1/18 (pow.f64 x 3))))
(fma.f64 x (fma.f64 x (*.f64 x 1/18) 2/3) (*.f64 1/180 (pow.f64 x 5)))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 1/180 (pow.f64 x 5) (*.f64 2/3 x))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (fma.f64 2/3 x (*.f64 17/30240 (pow.f64 x 7)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (fma.f64 17/30240 (pow.f64 x 7) (*.f64 2/3 x))))
(fma.f64 x (fma.f64 x (*.f64 x 1/18) 2/3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 17/30240 (pow.f64 x 7))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(/.f64 (*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) (sin.f64 x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(/.f64 (*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) (sin.f64 x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(/.f64 (*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) (sin.f64 x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(/.f64 (*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) (sin.f64 x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(/.f64 (*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) (sin.f64 x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(/.f64 (*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) (sin.f64 x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(/.f64 (*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) (sin.f64 x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(/.f64 (*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) (sin.f64 x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 4/3 x)
(*.f64 x 4/3)
(+.f64 (*.f64 4/3 x) (*.f64 -1/18 (pow.f64 x 3)))
(fma.f64 4/3 x (*.f64 (pow.f64 x 3) -1/18))
(fma.f64 x 4/3 (*.f64 (pow.f64 x 3) -1/18))
(fma.f64 (pow.f64 x 3) -1/18 (*.f64 x 4/3))
(*.f64 x (fma.f64 -1/18 (*.f64 x x) 4/3))
(*.f64 x (fma.f64 x (*.f64 x -1/18) 4/3))
(+.f64 (*.f64 4/3 x) (+.f64 (*.f64 1/1440 (pow.f64 x 5)) (*.f64 -1/18 (pow.f64 x 3))))
(fma.f64 4/3 x (fma.f64 1/1440 (pow.f64 x 5) (*.f64 (pow.f64 x 3) -1/18)))
(fma.f64 x 4/3 (fma.f64 (pow.f64 x 3) -1/18 (*.f64 (pow.f64 x 5) 1/1440)))
(fma.f64 x (fma.f64 x (*.f64 x -1/18) 4/3) (*.f64 (pow.f64 x 5) 1/1440))
(+.f64 (*.f64 4/3 x) (+.f64 (*.f64 -1/241920 (pow.f64 x 7)) (+.f64 (*.f64 1/1440 (pow.f64 x 5)) (*.f64 -1/18 (pow.f64 x 3)))))
(fma.f64 4/3 x (fma.f64 -1/241920 (pow.f64 x 7) (fma.f64 1/1440 (pow.f64 x 5) (*.f64 (pow.f64 x 3) -1/18))))
(fma.f64 x 4/3 (fma.f64 (pow.f64 x 7) -1/241920 (fma.f64 (pow.f64 x 3) -1/18 (*.f64 (pow.f64 x 5) 1/1440))))
(fma.f64 x 4/3 (fma.f64 (pow.f64 x 3) -1/18 (fma.f64 (pow.f64 x 5) 1/1440 (*.f64 (pow.f64 x 7) -1/241920))))
(fma.f64 x 4/3 (fma.f64 (pow.f64 x 3) -1/18 (fma.f64 (pow.f64 x 7) -1/241920 (*.f64 (pow.f64 x 5) 1/1440))))
(fma.f64 x 4/3 (fma.f64 (pow.f64 x 5) 1/1440 (fma.f64 (pow.f64 x 3) -1/18 (*.f64 (pow.f64 x 7) -1/241920))))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 2/3 (pow.f64 x 2))
(*.f64 2/3 (*.f64 x x))
(+.f64 (*.f64 -1/18 (pow.f64 x 4)) (*.f64 2/3 (pow.f64 x 2)))
(fma.f64 -1/18 (pow.f64 x 4) (*.f64 2/3 (*.f64 x x)))
(fma.f64 2/3 (*.f64 x x) (*.f64 -1/18 (pow.f64 x 4)))
(*.f64 x (*.f64 x (fma.f64 -1/18 (*.f64 x x) 2/3)))
(*.f64 x (*.f64 x (fma.f64 x (*.f64 x -1/18) 2/3)))
(+.f64 (*.f64 -1/18 (pow.f64 x 4)) (+.f64 (*.f64 2/3 (pow.f64 x 2)) (*.f64 1/540 (pow.f64 x 6))))
(fma.f64 -1/18 (pow.f64 x 4) (fma.f64 2/3 (*.f64 x x) (*.f64 1/540 (pow.f64 x 6))))
(fma.f64 -1/18 (pow.f64 x 4) (fma.f64 1/540 (pow.f64 x 6) (*.f64 2/3 (*.f64 x x))))
(fma.f64 2/3 (*.f64 x x) (fma.f64 -1/18 (pow.f64 x 4) (*.f64 1/540 (pow.f64 x 6))))
(fma.f64 1/540 (pow.f64 x 6) (*.f64 x (*.f64 x (fma.f64 x (*.f64 x -1/18) 2/3))))
(+.f64 (*.f64 -1/18 (pow.f64 x 4)) (+.f64 (*.f64 2/3 (pow.f64 x 2)) (+.f64 (*.f64 -1/30240 (pow.f64 x 8)) (*.f64 1/540 (pow.f64 x 6)))))
(fma.f64 -1/18 (pow.f64 x 4) (fma.f64 2/3 (*.f64 x x) (fma.f64 -1/30240 (pow.f64 x 8) (*.f64 1/540 (pow.f64 x 6)))))
(fma.f64 -1/18 (pow.f64 x 4) (fma.f64 2/3 (*.f64 x x) (fma.f64 1/540 (pow.f64 x 6) (*.f64 -1/30240 (pow.f64 x 8)))))
(fma.f64 2/3 (*.f64 x x) (fma.f64 -1/18 (pow.f64 x 4) (fma.f64 1/540 (pow.f64 x 6) (*.f64 -1/30240 (pow.f64 x 8)))))
(fma.f64 -1/18 (pow.f64 x 4) (fma.f64 1/540 (pow.f64 x 6) (fma.f64 2/3 (*.f64 x x) (*.f64 -1/30240 (pow.f64 x 8)))))
(fma.f64 -1/30240 (pow.f64 x 8) (fma.f64 1/540 (pow.f64 x 6) (*.f64 x (*.f64 x (fma.f64 x (*.f64 x -1/18) 2/3)))))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))

eval108.0ms (1.5%)

Compiler

Compiled 4837 to 3614 computations (25.3% saved)

prune71.0ms (1%)

Pruning

28 alts after pruning (28 fresh and 0 done)

PrunedKeptTotal
New25228280
Fresh000
Picked101
Done101
Total25428282
Error
0.0b
Counts
282 → 28
Alt Table
Click to see full alt table
StatusErrorProgram
25.9b
(*.f64 2/3 x)
21.3b
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) (sin.f64 x))
26.5b
(*.f64 x (fma.f64 x (*.f64 x 1/18) 2/3))
35.8b
(cbrt.f64 (pow.f64 (*.f64 3/8 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) -3))
46.4b
(cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 6))
13.1b
(*.f64 (sin.f64 (*.f64 x 1/2)) (expm1.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))))
23.4b
(*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)
0.5b
(*.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (*.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (/.f64 1 (sin.f64 x))))
0.6b
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 1 (/.f64 (sin.f64 x) (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3))))
35.7b
(neg.f64 (/.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (neg.f64 (sin.f64 x))))
0.8b
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (/.f64 1 (sin.f64 x)) 8/3)))
0.5b
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 x) 3/8)))
21.3b
(/.f64 (pow.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) 2) (sin.f64 x))
35.7b
(/.f64 (log1p.f64 (expm1.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) (sin.f64 x))
21.4b
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
1.2b
(*.f64 (sin.f64 (*.f64 x 1/2)) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))) 3))
26.2b
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (+.f64 (*.f64 4/9 x) (*.f64 8/3 (/.f64 1 x)))))
35.7b
(*.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (/.f64 1 (sin.f64 x)))
26.0b
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)))
35.7b
(pow.f64 (*.f64 3/8 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) -1)
0.5b
(*.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 1 (sin.f64 x))))
0.4b
(*.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (/.f64 1 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))
47.0b
(/.f64 (*.f64 2/3 (*.f64 x x)) (sin.f64 x))
21.2b
(/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 (sin.f64 x) 3/8))
34.6b
(pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 2)
0.8b
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (pow.f64 (*.f64 (sin.f64 x) 3/8) -1)))
35.7b
(*.f64 8/3 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 1 (sin.f64 x))))
35.7b
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
Compiler

Compiled 784 to 648 computations (17.3% saved)

localize11.0ms (0.2%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.3b
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
0.2b
(*.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (/.f64 1 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))
0.1b
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
0.1b
(/.f64 1 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
0.1b
(/.f64 1 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
0.1b
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
0.2b
(*.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (/.f64 1 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))
0.3b
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))

series6.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

TimeVariablePointExpression
2.0ms
x
@0
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
1.0ms
x
@inf
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
1.0ms
x
@-inf
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
0.0ms
x
@0
(/.f64 1 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
0.0ms
x
@0
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))

rewrite78.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
620×log-prod_binary64
325×pow-prod-down_binary64
303×pow2_binary64
254×pow-unpow_binary64
214×pow1/3_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01256
125153
2312748
Stop Event
node limit
Counts
4 → 153
Calls
Call 1
Inputs
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (/.f64 1 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
(/.f64 1 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 8/3) (sin.f64 (*.f64 x 1/2)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 8/3) (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 8/3) (sin.f64 (*.f64 x 1/2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 8/3) (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 64/9 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 64/9 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 8/3) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8/3 (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (*.f64 64/9 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) (cbrt.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))) (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))) (/.f64 (neg.f64 (sin.f64 x)) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))) (sqrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) 1) (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (sin.f64 x)) (/.f64 1 (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (pow.f64 (cbrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) 2)) (cbrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))) (/.f64 (neg.f64 (sin.f64 x)) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) -1) (/.f64 (neg.f64 (sin.f64 x)) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) 3) (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) 3) (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 x) (/.f64 1 (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (*.f64 (cbrt.f64 (sin.f64 x)) (/.f64 1 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) (pow.f64 (cbrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) 2) (cbrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sin.f64 x)) (*.f64 (sqrt.f64 (sin.f64 x)) (/.f64 1 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) (sqrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 x)) (/.f64 1 (neg.f64 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sin.f64 (*.f64 x 1/2))) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) 1) (/.f64 (cbrt.f64 (sin.f64 x)) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (sin.f64 x)) 1) (/.f64 (sqrt.f64 (sin.f64 x)) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 x 1/2))) -2) (/.f64 (sin.f64 x) (cbrt.f64 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) (cbrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (sin.f64 x)) (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) (/.f64 (sqrt.f64 (sin.f64 x)) (cbrt.f64 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) -1/2) (/.f64 (sin.f64 x) (sqrt.f64 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sqrt.f64 (sin.f64 (*.f64 x 1/2)))) (/.f64 (cbrt.f64 (sin.f64 x)) (sqrt.f64 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)) 3) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (sin.f64 (*.f64 x 1/2)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (sin.f64 x) (neg.f64 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (sin.f64 (*.f64 x 1/2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))) (pow.f64 (cbrt.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))) 2) (cbrt.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))) (sqrt.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (/.f64 (neg.f64 (sin.f64 x)) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sin.f64 x)) (sin.f64 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 1) (/.f64 (cbrt.f64 (sin.f64 (*.f64 x 1/2))) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) 1) (/.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) -2) (/.f64 (sin.f64 (*.f64 x 1/2)) (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (/.f64 (cbrt.f64 (sin.f64 (*.f64 x 1/2))) (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (/.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sin.f64 x) -1/2) (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (sqrt.f64 (sin.f64 x))) (/.f64 (cbrt.f64 (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (sin.f64 x))) (/.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) -2) (cbrt.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (neg.f64 (sin.f64 x))) (neg.f64 (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (sin.f64 x)) 1) (sin.f64 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (sin.f64 x)) (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) (cbrt.f64 (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (sin.f64 x)) (sqrt.f64 (sin.f64 (*.f64 x 1/2)))) (sqrt.f64 (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 3) (pow.f64 (sin.f64 x) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (/.f64 (neg.f64 (sin.f64 x)) (sin.f64 (*.f64 x 1/2)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (sin.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 3) (pow.f64 (sin.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))))))))

simplify64.0ms (0.9%)

Algorithm
egg-herbie
Rules
677×associate-*l*_binary64
517×unswap-sqr_binary64
488×distribute-rgt-out_binary64
473×associate-*r*_binary64
448×distribute-lft-out_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
073604
1175598
2427592
31280592
43324592
55859592
Stop Event
node limit
Counts
201 → 190
Calls
Call 1
Inputs
(*.f64 4/3 x)
(+.f64 (*.f64 4/3 x) (*.f64 -1/18 (pow.f64 x 3)))
(+.f64 (*.f64 4/3 x) (+.f64 (*.f64 1/1440 (pow.f64 x 5)) (*.f64 -1/18 (pow.f64 x 3))))
(+.f64 (*.f64 4/3 x) (+.f64 (*.f64 -1/241920 (pow.f64 x 7)) (+.f64 (*.f64 1/1440 (pow.f64 x 5)) (*.f64 -1/18 (pow.f64 x 3)))))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
2
(+.f64 2 (*.f64 -1/4 (pow.f64 x 2)))
(+.f64 (*.f64 1/192 (pow.f64 x 4)) (+.f64 2 (*.f64 -1/4 (pow.f64 x 2))))
(+.f64 (*.f64 1/192 (pow.f64 x 4)) (+.f64 2 (+.f64 (*.f64 -1/4 (pow.f64 x 2)) (*.f64 -1/23040 (pow.f64 x 6)))))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
1/2
(+.f64 1/2 (*.f64 1/16 (pow.f64 x 2)))
(+.f64 1/2 (+.f64 (*.f64 5/768 (pow.f64 x 4)) (*.f64 1/16 (pow.f64 x 2))))
(+.f64 1/2 (+.f64 (*.f64 61/92160 (pow.f64 x 6)) (+.f64 (*.f64 5/768 (pow.f64 x 4)) (*.f64 1/16 (pow.f64 x 2)))))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
Outputs
(*.f64 4/3 x)
(+.f64 (*.f64 4/3 x) (*.f64 -1/18 (pow.f64 x 3)))
(fma.f64 4/3 x (*.f64 -1/18 (pow.f64 x 3)))
(fma.f64 -1/18 (pow.f64 x 3) (*.f64 4/3 x))
(+.f64 (*.f64 4/3 x) (+.f64 (*.f64 1/1440 (pow.f64 x 5)) (*.f64 -1/18 (pow.f64 x 3))))
(fma.f64 4/3 x (fma.f64 1/1440 (pow.f64 x 5) (*.f64 -1/18 (pow.f64 x 3))))
(fma.f64 4/3 x (fma.f64 -1/18 (pow.f64 x 3) (*.f64 1/1440 (pow.f64 x 5))))
(fma.f64 -1/18 (pow.f64 x 3) (fma.f64 1/1440 (pow.f64 x 5) (*.f64 4/3 x)))
(+.f64 (*.f64 4/3 x) (+.f64 (*.f64 -1/241920 (pow.f64 x 7)) (+.f64 (*.f64 1/1440 (pow.f64 x 5)) (*.f64 -1/18 (pow.f64 x 3)))))
(fma.f64 4/3 x (fma.f64 -1/241920 (pow.f64 x 7) (fma.f64 1/1440 (pow.f64 x 5) (*.f64 -1/18 (pow.f64 x 3)))))
(fma.f64 4/3 x (fma.f64 -1/241920 (pow.f64 x 7) (fma.f64 -1/18 (pow.f64 x 3) (*.f64 1/1440 (pow.f64 x 5)))))
(fma.f64 4/3 x (fma.f64 -1/18 (pow.f64 x 3) (fma.f64 1/1440 (pow.f64 x 5) (*.f64 -1/241920 (pow.f64 x 7)))))
(fma.f64 4/3 x (fma.f64 1/1440 (pow.f64 x 5) (fma.f64 -1/18 (pow.f64 x 3) (*.f64 -1/241920 (pow.f64 x 7)))))
(fma.f64 -1/241920 (pow.f64 x 7) (fma.f64 -1/18 (pow.f64 x 3) (fma.f64 1/1440 (pow.f64 x 5) (*.f64 4/3 x))))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 8/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 8/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 2/3 x)
(*.f64 x 2/3)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(fma.f64 1/18 (pow.f64 x 3) (*.f64 x 2/3))
(fma.f64 x 2/3 (*.f64 (pow.f64 x 3) 1/18))
(fma.f64 (pow.f64 x 3) 1/18 (*.f64 x 2/3))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 2/3 x (*.f64 (pow.f64 x 5) 1/180)))
(fma.f64 (pow.f64 x 3) 1/18 (fma.f64 x 2/3 (*.f64 (pow.f64 x 5) 1/180)))
(fma.f64 x 2/3 (fma.f64 (pow.f64 x 3) 1/18 (*.f64 (pow.f64 x 5) 1/180)))
(fma.f64 (pow.f64 x 3) 1/18 (fma.f64 (pow.f64 x 5) 1/180 (*.f64 x 2/3)))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 2/3 x (*.f64 (pow.f64 x 5) 1/180))))
(fma.f64 (pow.f64 x 3) 1/18 (fma.f64 (pow.f64 x 7) 17/30240 (fma.f64 x 2/3 (*.f64 (pow.f64 x 5) 1/180))))
(fma.f64 (pow.f64 x 3) 1/18 (fma.f64 (pow.f64 x 5) 1/180 (fma.f64 (pow.f64 x 7) 17/30240 (*.f64 x 2/3))))
(fma.f64 (pow.f64 x 3) 1/18 (fma.f64 x 2/3 (fma.f64 (pow.f64 x 5) 1/180 (*.f64 (pow.f64 x 7) 17/30240))))
(fma.f64 (pow.f64 x 7) 17/30240 (fma.f64 (pow.f64 x 3) 1/18 (fma.f64 (pow.f64 x 5) 1/180 (*.f64 x 2/3))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
2
(+.f64 2 (*.f64 -1/4 (pow.f64 x 2)))
(+.f64 2 (*.f64 -1/4 (*.f64 x x)))
(fma.f64 -1/4 (*.f64 x x) 2)
(fma.f64 x (*.f64 x -1/4) 2)
(+.f64 (*.f64 1/192 (pow.f64 x 4)) (+.f64 2 (*.f64 -1/4 (pow.f64 x 2))))
(fma.f64 1/192 (pow.f64 x 4) (+.f64 2 (*.f64 -1/4 (*.f64 x x))))
(fma.f64 1/192 (pow.f64 x 4) (fma.f64 -1/4 (*.f64 x x) 2))
(fma.f64 1/192 (pow.f64 x 4) (fma.f64 x (*.f64 x -1/4) 2))
(+.f64 (*.f64 1/192 (pow.f64 x 4)) (+.f64 2 (+.f64 (*.f64 -1/4 (pow.f64 x 2)) (*.f64 -1/23040 (pow.f64 x 6)))))
(fma.f64 1/192 (pow.f64 x 4) (+.f64 2 (fma.f64 -1/4 (*.f64 x x) (*.f64 -1/23040 (pow.f64 x 6)))))
(+.f64 (fma.f64 -1/23040 (pow.f64 x 6) (*.f64 -1/4 (*.f64 x x))) (fma.f64 1/192 (pow.f64 x 4) 2))
(fma.f64 1/192 (pow.f64 x 4) (fma.f64 x (*.f64 x -1/4) (fma.f64 -1/23040 (pow.f64 x 6) 2)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x)))
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
1/2
(+.f64 1/2 (*.f64 1/16 (pow.f64 x 2)))
(+.f64 1/2 (*.f64 (*.f64 x x) 1/16))
(fma.f64 (*.f64 x x) 1/16 1/2)
(fma.f64 x (*.f64 x 1/16) 1/2)
(+.f64 1/2 (+.f64 (*.f64 5/768 (pow.f64 x 4)) (*.f64 1/16 (pow.f64 x 2))))
(+.f64 1/2 (fma.f64 5/768 (pow.f64 x 4) (*.f64 (*.f64 x x) 1/16)))
(+.f64 1/2 (fma.f64 (pow.f64 x 4) 5/768 (*.f64 (*.f64 x x) 1/16)))
(fma.f64 x (*.f64 x 1/16) (fma.f64 (pow.f64 x 4) 5/768 1/2))
(+.f64 1/2 (+.f64 (*.f64 61/92160 (pow.f64 x 6)) (+.f64 (*.f64 5/768 (pow.f64 x 4)) (*.f64 1/16 (pow.f64 x 2)))))
(+.f64 1/2 (fma.f64 61/92160 (pow.f64 x 6) (fma.f64 5/768 (pow.f64 x 4) (*.f64 (*.f64 x x) 1/16))))
(+.f64 1/2 (fma.f64 (pow.f64 x 6) 61/92160 (fma.f64 (pow.f64 x 4) 5/768 (*.f64 (*.f64 x x) 1/16))))
(fma.f64 (pow.f64 x 6) 61/92160 (fma.f64 x (*.f64 x 1/16) (fma.f64 (pow.f64 x 4) 5/768 1/2)))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))

localize2.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(*.f64 2/3 x)
0.3b
(*.f64 2/3 x)

series2.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(*.f64 2/3 x)
1.0ms
x
@0
(*.f64 2/3 x)
0.0ms
x
@-inf
(*.f64 2/3 x)

rewrite35.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
345×pow1_binary64
338×add-sqr-sqrt_binary64
329×*-un-lft-identity_binary64
321×add-log-exp_binary64
321×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044
1804
28734
Stop Event
node limit
Counts
1 → 25
Calls
Call 1
Inputs
(*.f64 2/3 x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (*.f64 2/3 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 2/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 4/3) x))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 2/3) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (exp.f64 x))) (log.f64 (cbrt.f64 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 2/3 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 1 (*.f64 2/3 x)) 3) 1) (+.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) (+.f64 1 (*.f64 (+.f64 1 (*.f64 2/3 x)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2/3 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 x x) 4/9) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 3) 8/27) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 2/3 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 2/3 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 2/3 x)))) (sqrt.f64 (log.f64 (*.f64 2/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 2/3 x))) 2)) (cbrt.f64 (log.f64 (*.f64 2/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 x x) 4/9))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 2/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 2/3) x))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) 8/27))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x 3) 8/27)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 2/3 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 2/3 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 2/3 x)))))))

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize6.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))
0.4b
(/.f64 8/3 x)
0.3b
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)))
0.3b
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)))
0.4b
(/.f64 8/3 x)
0.5b
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))

series5.0ms (0.1%)

Counts
3 → 24
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)))
1.0ms
x
@-inf
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)))
1.0ms
x
@inf
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))
1.0ms
x
@-inf
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))
1.0ms
x
@0
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))

rewrite63.0ms (0.9%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0936
119031
2227631
Stop Event
node limit
Counts
3 → 61
Calls
Call 1
Inputs
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))
(/.f64 8/3 x)
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 x 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 x (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -8/3 (sin.f64 (*.f64 x 1/2))) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) -8/3) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sin.f64 (*.f64 x 1/2))) (/.f64 8/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 3) (pow.f64 (/.f64 8/3 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 8/3 x) 3) (pow.f64 (sin.f64 (*.f64 x 1/2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 8/3 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8/3 (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 8/3 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 8/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 8/3 x)) (pow.f64 (cbrt.f64 (/.f64 8/3 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 8/3 x)) 2) (cbrt.f64 (/.f64 8/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 8/3 x)) (sqrt.f64 (/.f64 8/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -8/3 (/.f64 1 (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) 8/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 8/3 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 8/3 x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 8/3 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 8/3 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 3/8) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 64/9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 8/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 8/3 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 8/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 8/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 8/3 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 x 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3) (sin.f64 (*.f64 x 1/2))) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3)) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 1) (*.f64 x 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) -8/3) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 3) (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)) 3) (pow.f64 (sin.f64 (*.f64 x 1/2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))))))))

simplify67.0ms (0.9%)

Algorithm
egg-herbie
Rules
530×unswap-sqr_binary64
504×fma-def_binary64
490×distribute-lft-out_binary64
428×*-commutative_binary64
426×times-frac_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
049322
1121320
2266320
3754320
42643320
56268320
66989320
77454320
Stop Event
node limit
Counts
85 → 80
Calls
Call 1
Inputs
4/3
(+.f64 (*.f64 -1/18 (pow.f64 x 2)) 4/3)
(+.f64 (*.f64 -1/18 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 4)) 4/3))
(+.f64 (*.f64 -1/18 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 4)) (+.f64 4/3 (*.f64 -1/241920 (pow.f64 x 6)))))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 2/3 x)
(+.f64 (*.f64 2/3 x) (*.f64 -1/18 (pow.f64 x 3)))
(+.f64 (*.f64 2/3 x) (+.f64 (*.f64 1/540 (pow.f64 x 5)) (*.f64 -1/18 (pow.f64 x 3))))
(+.f64 (*.f64 2/3 x) (+.f64 (*.f64 1/540 (pow.f64 x 5)) (+.f64 (*.f64 -1/18 (pow.f64 x 3)) (*.f64 -1/30240 (pow.f64 x 7)))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
Outputs
4/3
(+.f64 (*.f64 -1/18 (pow.f64 x 2)) 4/3)
(fma.f64 -1/18 (*.f64 x x) 4/3)
(+.f64 (*.f64 -1/18 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 4)) 4/3))
(fma.f64 -1/18 (*.f64 x x) (fma.f64 1/1440 (pow.f64 x 4) 4/3))
(+.f64 (*.f64 -1/18 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 4)) (+.f64 4/3 (*.f64 -1/241920 (pow.f64 x 6)))))
(fma.f64 -1/18 (*.f64 x x) (+.f64 (fma.f64 1/1440 (pow.f64 x 4) 4/3) (*.f64 -1/241920 (pow.f64 x 6))))
(fma.f64 -1/18 (*.f64 x x) (fma.f64 1/1440 (pow.f64 x 4) (fma.f64 -1/241920 (pow.f64 x 6) 4/3)))
(fma.f64 1/1440 (pow.f64 x 4) (fma.f64 -1/18 (*.f64 x x) (fma.f64 -1/241920 (pow.f64 x 6) 4/3)))
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) 1/1440 -1/18) (fma.f64 -1/241920 (pow.f64 x 6) 4/3))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 1/1440) -1/18) (fma.f64 -1/241920 (pow.f64 x 6) 4/3))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) x))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) x))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) x))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) x))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) x))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) x))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) x))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 1/2 x)) x))
(*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) x))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x))
(*.f64 2/3 x)
(*.f64 x 2/3)
(+.f64 (*.f64 2/3 x) (*.f64 -1/18 (pow.f64 x 3)))
(fma.f64 2/3 x (*.f64 -1/18 (pow.f64 x 3)))
(fma.f64 -1/18 (pow.f64 x 3) (*.f64 x 2/3))
(+.f64 (*.f64 2/3 x) (+.f64 (*.f64 1/540 (pow.f64 x 5)) (*.f64 -1/18 (pow.f64 x 3))))
(fma.f64 2/3 x (fma.f64 1/540 (pow.f64 x 5) (*.f64 -1/18 (pow.f64 x 3))))
(fma.f64 x 2/3 (fma.f64 -1/18 (pow.f64 x 3) (*.f64 1/540 (pow.f64 x 5))))
(fma.f64 -1/18 (pow.f64 x 3) (fma.f64 x 2/3 (*.f64 1/540 (pow.f64 x 5))))
(+.f64 (*.f64 2/3 x) (+.f64 (*.f64 1/540 (pow.f64 x 5)) (+.f64 (*.f64 -1/18 (pow.f64 x 3)) (*.f64 -1/30240 (pow.f64 x 7)))))
(fma.f64 2/3 x (fma.f64 1/540 (pow.f64 x 5) (fma.f64 -1/18 (pow.f64 x 3) (*.f64 -1/30240 (pow.f64 x 7)))))
(fma.f64 x 2/3 (fma.f64 1/540 (pow.f64 x 5) (fma.f64 -1/18 (pow.f64 x 3) (*.f64 -1/30240 (pow.f64 x 7)))))
(fma.f64 x 2/3 (fma.f64 -1/18 (pow.f64 x 3) (fma.f64 1/540 (pow.f64 x 5) (*.f64 -1/30240 (pow.f64 x 7)))))
(fma.f64 x (fma.f64 -1/18 (*.f64 x x) 2/3) (fma.f64 -1/30240 (pow.f64 x 7) (*.f64 1/540 (pow.f64 x 5))))
(fma.f64 -1/18 (pow.f64 x 3) (fma.f64 1/540 (pow.f64 x 5) (fma.f64 -1/30240 (pow.f64 x 7) (*.f64 x 2/3))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) x))
(*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) x))
(*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) x))
(*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) x))
(*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) x))
(*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) x))
(*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) x))
(*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) x))
(*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))

localize10.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
21.2b
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) (sin.f64 x))
0.3b
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3)
0.2b
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)
0.2b
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)
0.3b
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3)
21.2b
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) (sin.f64 x))

series3.0ms (0%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) (sin.f64 x))
0.0ms
x
@0
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)
0.0ms
x
@-inf
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) (sin.f64 x))
0.0ms
x
@inf
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) (sin.f64 x))
0.0ms
x
@0
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3)

rewrite66.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
511×log-prod_binary64
400×exp-prod_binary64
290×prod-exp_binary64
276×pow2_binary64
263×pow-prod-down_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01138
123138
2270938
Stop Event
node limit
Counts
3 → 116
Calls
Call 1
Inputs
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) (sin.f64 x))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3)
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 1 (*.f64 (sin.f64 x) 3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 8/3 (/.f64 1 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8/3 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 1 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (/.f64 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))) (cbrt.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 (sin.f64 x) 3/8))) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 (sin.f64 x) 3/8))) 4)) (cbrt.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 64/9 (pow.f64 (sin.f64 (*.f64 x 1/2)) 4))) (*.f64 (cbrt.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) (/.f64 1 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 (sin.f64 x) 3/8))) (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 (sin.f64 x) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3)) (*.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3)) (/.f64 1 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) -8/3) (/.f64 1 (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sin.f64 x)) (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 1) (/.f64 8/3 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 64/9 (pow.f64 (sin.f64 (*.f64 x 1/2)) 4))) 1) (/.f64 (cbrt.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3)) 1) (/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (/.f64 8/3 (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 8/3 (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) -2) (/.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 64/9 (pow.f64 (sin.f64 (*.f64 x 1/2)) 4))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (cbrt.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3)) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3)) (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sqrt.f64 (sin.f64 x))) (/.f64 8/3 (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 8/3 (sqrt.f64 (sin.f64 x))) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sin.f64 x) -1/2) (/.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 64/9 (pow.f64 (sin.f64 (*.f64 x 1/2)) 4))) (sqrt.f64 (sin.f64 x))) (/.f64 (cbrt.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 (sin.f64 x) 3/8))) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 (sin.f64 x) 3/8))) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 (sin.f64 x) 3/8))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) -2) (*.f64 (sin.f64 x) 3/8)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3)) 6) (pow.f64 (sin.f64 x) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) -2) (*.f64 (sin.f64 x) 3/8)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)))) 2)) (cbrt.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))))) (sqrt.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 (sin.f64 x) 3/8))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 (sin.f64 x) 3/8))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3)) 6) (pow.f64 (sin.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 (sin.f64 x) 3/8))) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 (sin.f64 x) 3/8)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) -2) (*.f64 (sin.f64 x) 3/8))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (*.f64 2 (log.f64 (sin.f64 (*.f64 x 1/2)))) 1) (log.f64 (*.f64 (sin.f64 x) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) 1) (log.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) (*.f64 (log.f64 (sin.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) 1) (*.f64 (log.f64 (sin.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) 1) (neg.f64 (log.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (neg.f64 (log.f64 (sin.f64 x))) (*.f64 (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 8/3) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 8/3) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 8/3) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 8/3) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 64/9 (pow.f64 (sin.f64 (*.f64 x 1/2)) 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3)) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3))) 2)) (cbrt.f64 (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)))) (sqrt.f64 (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 64/9 (pow.f64 (sin.f64 (*.f64 x 1/2)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 8/3) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3)) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) (log.f64 (sqrt.f64 (exp.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 x 1/2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 x 1/2))) 4) (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (pow.f64 (sin.f64 (*.f64 x 1/2)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 3/2) (sqrt.f64 (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 x 1/2))) 5) (cbrt.f64 (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (cos.f64 (-.f64 (*.f64 x 1/2) (*.f64 x 1/2))) (cos.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (sin.f64 (*.f64 x 1/2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 2 (log.f64 (sin.f64 (*.f64 x 1/2)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1) (log.f64 (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1) (*.f64 (log.f64 (sin.f64 (*.f64 x 1/2))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))

simplify69.0ms (1%)

Algorithm
egg-herbie
Rules
996×fma-def_binary64
707×associate-*l/_binary64
568×associate-/r*_binary64
556×distribute-rgt-out_binary64
509×associate-+l+_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
063502
1151502
2359502
31140502
43155502
54205502
65717502
76830502
Stop Event
node limit
Counts
152 → 145
Calls
Call 1
Inputs
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 2/3 (pow.f64 x 2))
(+.f64 (*.f64 -1/18 (pow.f64 x 4)) (*.f64 2/3 (pow.f64 x 2)))
(+.f64 (*.f64 -1/18 (pow.f64 x 4)) (+.f64 (*.f64 2/3 (pow.f64 x 2)) (*.f64 1/540 (pow.f64 x 6))))
(+.f64 (*.f64 -1/18 (pow.f64 x 4)) (+.f64 (*.f64 2/3 (pow.f64 x 2)) (+.f64 (*.f64 -1/30240 (pow.f64 x 8)) (*.f64 1/540 (pow.f64 x 6)))))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 1/4 (pow.f64 x 2))
(+.f64 (*.f64 1/4 (pow.f64 x 2)) (*.f64 -1/48 (pow.f64 x 4)))
(+.f64 (*.f64 1/4 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 6)) (*.f64 -1/48 (pow.f64 x 4))))
(+.f64 (*.f64 -1/80640 (pow.f64 x 8)) (+.f64 (*.f64 1/4 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 6)) (*.f64 -1/48 (pow.f64 x 4)))))
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
Outputs
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(fma.f64 1/18 (pow.f64 x 3) (*.f64 2/3 x))
(fma.f64 2/3 x (*.f64 1/18 (pow.f64 x 3)))
(*.f64 x (fma.f64 x (*.f64 x 1/18) 2/3))
(*.f64 x (fma.f64 1/18 (*.f64 x x) 2/3))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 2/3 x)))
(fma.f64 2/3 x (fma.f64 1/180 (pow.f64 x 5) (*.f64 1/18 (pow.f64 x 3))))
(fma.f64 x (fma.f64 x (*.f64 x 1/18) 2/3) (*.f64 1/180 (pow.f64 x 5)))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 1/180 (pow.f64 x 5) (*.f64 2/3 x))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (fma.f64 2/3 x (*.f64 17/30240 (pow.f64 x 7)))))
(fma.f64 x (fma.f64 x (*.f64 x 1/18) 2/3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 17/30240 (pow.f64 x 7))))
(fma.f64 2/3 x (fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 17/30240 (pow.f64 x 7)))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 2/3 (pow.f64 x 2))
(*.f64 2/3 (*.f64 x x))
(+.f64 (*.f64 -1/18 (pow.f64 x 4)) (*.f64 2/3 (pow.f64 x 2)))
(fma.f64 -1/18 (pow.f64 x 4) (*.f64 2/3 (*.f64 x x)))
(fma.f64 2/3 (*.f64 x x) (*.f64 -1/18 (pow.f64 x 4)))
(*.f64 (*.f64 x x) (fma.f64 (*.f64 x x) -1/18 2/3))
(*.f64 x (*.f64 x (fma.f64 (*.f64 x x) -1/18 2/3)))
(*.f64 x (*.f64 x (fma.f64 x (*.f64 x -1/18) 2/3)))
(+.f64 (*.f64 -1/18 (pow.f64 x 4)) (+.f64 (*.f64 2/3 (pow.f64 x 2)) (*.f64 1/540 (pow.f64 x 6))))
(fma.f64 -1/18 (pow.f64 x 4) (fma.f64 2/3 (*.f64 x x) (*.f64 1/540 (pow.f64 x 6))))
(fma.f64 1/540 (pow.f64 x 6) (fma.f64 2/3 (*.f64 x x) (*.f64 -1/18 (pow.f64 x 4))))
(fma.f64 1/540 (pow.f64 x 6) (*.f64 (*.f64 x x) (fma.f64 (*.f64 x x) -1/18 2/3)))
(fma.f64 1/540 (pow.f64 x 6) (*.f64 x (*.f64 x (fma.f64 (*.f64 x x) -1/18 2/3))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x -1/18) 2/3) (*.f64 1/540 (pow.f64 x 6)))
(+.f64 (*.f64 -1/18 (pow.f64 x 4)) (+.f64 (*.f64 2/3 (pow.f64 x 2)) (+.f64 (*.f64 -1/30240 (pow.f64 x 8)) (*.f64 1/540 (pow.f64 x 6)))))
(fma.f64 -1/18 (pow.f64 x 4) (fma.f64 2/3 (*.f64 x x) (fma.f64 -1/30240 (pow.f64 x 8) (*.f64 1/540 (pow.f64 x 6)))))
(fma.f64 2/3 (*.f64 x x) (fma.f64 -1/18 (pow.f64 x 4) (fma.f64 1/540 (pow.f64 x 6) (*.f64 -1/30240 (pow.f64 x 8)))))
(fma.f64 2/3 (*.f64 x x) (fma.f64 1/540 (pow.f64 x 6) (fma.f64 -1/18 (pow.f64 x 4) (*.f64 -1/30240 (pow.f64 x 8)))))
(fma.f64 1/540 (pow.f64 x 6) (fma.f64 -1/30240 (pow.f64 x 8) (*.f64 x (*.f64 x (fma.f64 x (*.f64 x -1/18) 2/3)))))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2))
(*.f64 8/3 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 1/4 (pow.f64 x 2))
(*.f64 (*.f64 x x) 1/4)
(*.f64 x (*.f64 x 1/4))
(+.f64 (*.f64 1/4 (pow.f64 x 2)) (*.f64 -1/48 (pow.f64 x 4)))
(fma.f64 1/4 (*.f64 x x) (*.f64 (pow.f64 x 4) -1/48))
(fma.f64 (*.f64 x x) 1/4 (*.f64 (pow.f64 x 4) -1/48))
(fma.f64 x (*.f64 x 1/4) (*.f64 (pow.f64 x 4) -1/48))
(*.f64 (*.f64 x x) (fma.f64 x (*.f64 x -1/48) 1/4))
(*.f64 x (*.f64 x (fma.f64 x (*.f64 x -1/48) 1/4)))
(+.f64 (*.f64 1/4 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 6)) (*.f64 -1/48 (pow.f64 x 4))))
(fma.f64 1/4 (*.f64 x x) (fma.f64 1/1440 (pow.f64 x 6) (*.f64 (pow.f64 x 4) -1/48)))
(fma.f64 (*.f64 x x) 1/4 (fma.f64 (pow.f64 x 4) -1/48 (*.f64 (pow.f64 x 6) 1/1440)))
(fma.f64 x (*.f64 x 1/4) (fma.f64 (pow.f64 x 4) -1/48 (*.f64 (pow.f64 x 6) 1/1440)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x -1/48) 1/4) (*.f64 (pow.f64 x 6) 1/1440))
(fma.f64 x (*.f64 x 1/4) (fma.f64 (pow.f64 x 6) 1/1440 (*.f64 (pow.f64 x 4) -1/48)))
(+.f64 (*.f64 -1/80640 (pow.f64 x 8)) (+.f64 (*.f64 1/4 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 6)) (*.f64 -1/48 (pow.f64 x 4)))))
(fma.f64 -1/80640 (pow.f64 x 8) (fma.f64 1/4 (*.f64 x x) (fma.f64 1/1440 (pow.f64 x 6) (*.f64 (pow.f64 x 4) -1/48))))
(fma.f64 (pow.f64 x 8) -1/80640 (fma.f64 (*.f64 x x) 1/4 (fma.f64 (pow.f64 x 4) -1/48 (*.f64 (pow.f64 x 6) 1/1440))))
(fma.f64 x (*.f64 x 1/4) (fma.f64 (pow.f64 x 8) -1/80640 (fma.f64 (pow.f64 x 4) -1/48 (*.f64 (pow.f64 x 6) 1/1440))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x -1/48) 1/4) (fma.f64 (pow.f64 x 6) 1/1440 (*.f64 (pow.f64 x 8) -1/80640)))
(fma.f64 x (*.f64 x 1/4) (fma.f64 (pow.f64 x 4) -1/48 (fma.f64 (pow.f64 x 6) 1/1440 (*.f64 (pow.f64 x 8) -1/80640))))
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)

localize9.0ms (0.1%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.4b
(/.f64 8/3 (sin.f64 x))
0.3b
(sqrt.f64 (/.f64 8/3 (sin.f64 x)))
0.2b
(pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 2)
0.2b
(*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x))))
0.2b
(*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x))))
0.2b
(pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 2)
0.3b
(sqrt.f64 (/.f64 8/3 (sin.f64 x)))
0.4b
(/.f64 8/3 (sin.f64 x))

series12.0ms (0.2%)

Counts
3 → 24
Calls

9 calls:

TimeVariablePointExpression
5.0ms
x
@0
(pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 2)
1.0ms
x
@0
(sqrt.f64 (/.f64 8/3 (sin.f64 x)))
1.0ms
x
@inf
(pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 2)
1.0ms
x
@inf
(sqrt.f64 (/.f64 8/3 (sin.f64 x)))
1.0ms
x
@-inf
(pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 2)

rewrite70.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
513×log-prod_binary64
390×exp-prod_binary64
312×pow-prod-down_binary64
288×pow2_binary64
203×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01243
125341
2284141
Stop Event
node limit
Counts
3 → 107
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 8/3 (sin.f64 x)))
(pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 2)
(*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 8/3 (sin.f64 x))) (pow.f64 (/.f64 8/3 (sin.f64 x)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 8/3 (sin.f64 x)) 1/6) (cbrt.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 8/3) (pow.f64 (sin.f64 x) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (sin.f64 x) 3/8) -1/4) (pow.f64 (*.f64 (sin.f64 x) 3/8) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (*.f64 (sin.f64 x) 3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 (sin.f64 x)) (sqrt.f64 8/3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 8/3) (sqrt.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 -8/3) (sqrt.f64 (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 8/3)) (neg.f64 (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 8/3 (sin.f64 x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1/2) (log.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 64/9 (pow.f64 (sin.f64 x) -2)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 8/3 (sin.f64 x)) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 8/3 (sin.f64 x)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 8/3 (sin.f64 x))) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 8/3 (sin.f64 x)) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 x) 3/8) -1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 x) 3/8) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sin.f64 x) 3/8)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (sin.f64 x)) (sqrt.f64 8/3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))))) (sqrt.f64 (log.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 8/3 (sin.f64 x)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (/.f64 8/3 (sin.f64 x)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 8/3 (sin.f64 x)) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sin.f64 x) 3/8) -1/4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))) (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))) 4) (cbrt.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))) (pow.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 8/3 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))) 3/2) (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) (sin.f64 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 5/6) (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) (sin.f64 (*.f64 x 1/2)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) (sin.f64 (*.f64 x 1/2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 8/3)) (sqrt.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))) 6) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))) 2)) (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))))) (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))))))))

simplify138.0ms (1.9%)

Algorithm
egg-herbie
Rules
691×unswap-sqr_binary64
624×associate-*l/_binary64
527×associate-*r/_binary64
522×sqr-pow_binary64
344×cube-prod_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
019448
136408
266408
3170408
4735408
52131408
63579408
74190408
84980408
95648408
106073408
116398408
126775408
137239408
147850408
Stop Event
node limit
Counts
131 → 112
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
Outputs
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sqrt.f64 8/3))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (pow.f64 (sqrt.f64 8/3) 2) (/.f64 (sin.f64 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (pow.f64 (sqrt.f64 8/3) 2) (/.f64 (sin.f64 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (pow.f64 (sqrt.f64 8/3) 2) (/.f64 (sin.f64 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (pow.f64 (sqrt.f64 8/3) 2) (/.f64 (sin.f64 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (pow.f64 (sqrt.f64 8/3) 2) (/.f64 (sin.f64 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (pow.f64 (sqrt.f64 8/3) 2) (/.f64 (sin.f64 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (pow.f64 (sqrt.f64 8/3) 2) (/.f64 (sin.f64 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 8/3) 2) (pow.f64 (sin.f64 (*.f64 1/2 x)) 2)) (sin.f64 x))
(/.f64 (pow.f64 (sqrt.f64 8/3) 2) (/.f64 (sin.f64 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 8/3) (*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 8/3) (*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 8/3) (*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 8/3) (*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 8/3) (*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 8/3) (*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 8/3) (*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 1/2 x))))
(*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))))
(*.f64 (sqrt.f64 8/3) (*.f64 (sqrt.f64 (/.f64 1 (sin.f64 x))) (sin.f64 (*.f64 x 1/2))))

eval273.0ms (3.8%)

Compiler

Compiled 9979 to 7603 computations (23.8% saved)

prune126.0ms (1.7%)

Pruning

38 alts after pruning (35 fresh and 3 done)

PrunedKeptTotal
New56628594
Fresh16723
Picked101
Done134
Total58438622
Error
0b
Counts
622 → 38
Alt Table
Click to see full alt table
StatusErrorProgram
25.9b
(*.f64 2/3 x)
47.6b
(pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 x))) 2)
21.3b
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) (sin.f64 x))
51.9b
(cbrt.f64 (*.f64 (pow.f64 x 3) 8/27))
0.5b
(/.f64 1 (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))))
21.2b
(/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 (sin.f64 x) 3/8))
0.2b
(/.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3))
46.1b
(fabs.f64 (*.f64 2/3 x))
35.7b
(/.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (sin.f64 x))
35.7b
(*.f64 1 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)))
21.3b
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
23.4b
(*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)
55.8b
(sqrt.f64 (*.f64 (*.f64 x x) 4/9))
0.6b
(/.f64 8/3 (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))))
35.7b
(*.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (/.f64 1 (sin.f64 x)))
0.8b
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (/.f64 1 (sin.f64 x)) 8/3)))
46.7b
(*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
47.4b
(pow.f64 (sqrt.f64 (*.f64 2/3 x)) 2)
35.7b
(/.f64 (log1p.f64 (expm1.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3))) (sin.f64 x))
26.5b
(*.f64 x (fma.f64 1/18 (*.f64 x x) 2/3))
35.8b
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 8/3 (sin.f64 x)))
26.6b
(pow.f64 (cbrt.f64 (*.f64 2/3 x)) 3)
35.8b
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 1 (*.f64 (sin.f64 x) 3/8)))
46.7b
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) x)
26.1b
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (/.f64 1 x) 8/3)))
26.0b
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)))
26.4b
(expm1.f64 (log1p.f64 (*.f64 2/3 x)))
35.7b
(pow.f64 (*.f64 3/8 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) -1)
0.5b
(*.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 1 (sin.f64 x))))
47.0b
(/.f64 (*.f64 2/3 (*.f64 x x)) (sin.f64 x))
46.6b
(/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 x 3/8))
61.1b
(/.f64 (-.f64 (pow.f64 (+.f64 1 (*.f64 2/3 x)) 3) 1) (+.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) (+.f64 1 (*.f64 (+.f64 1 (*.f64 2/3 x)) 1))))
35.7b
(*.f64 8/3 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 1 (sin.f64 x))))
0.4b
(*.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
25.8b
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 x 3/8)))
35.7b
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
59.0b
(pow.f64 (*.f64 (pow.f64 x 3) 8/27) 1/3)
60.9b
(/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
Compiler

Compiled 912 to 754 computations (17.3% saved)

localize9.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3)
0.1b
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
0.1b
(/.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3))
0.1b
(/.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3))
0.1b
(/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))
0.2b
(/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite66.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
575×log-prod_binary64
286×pow-prod-down_binary64
283×pow2_binary64
200×prod-diff_binary64
199×pow1/3_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01036
122236
2299334
Stop Event
node limit
Counts
2 → 92
Calls
Call 1
Inputs
(/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3)
(/.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 x) (/.f64 1 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 x) (*.f64 (/.f64 1 (sin.f64 (*.f64 x 1/2))) 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)) (cbrt.f64 (*.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 2) 9/64)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 2) 9/64)) (cbrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) 2) (*.f64 (cbrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)) (sqrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) (*.f64 (sqrt.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (neg.f64 (sin.f64 x)) (sin.f64 (*.f64 x 1/2))) -3/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) 8/3) (/.f64 (cbrt.f64 (sin.f64 x)) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (sin.f64 x)) 8/3) (/.f64 (sqrt.f64 (sin.f64 x)) (sin.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 2) 9/64) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3) (sin.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) -8/3))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 2) 9/64))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (*.f64 (cbrt.f64 (sin.f64 (*.f64 x 1/2))) (*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) (pow.f64 (cbrt.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 2) (cbrt.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (*.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) (sqrt.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 (*.f64 x 1/2))) (/.f64 1 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) -3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))) (sin.f64 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)) (/.f64 (sin.f64 (*.f64 x 1/2)) 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 8/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 1) (/.f64 (cbrt.f64 (sin.f64 (*.f64 x 1/2))) (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) 1) (/.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) (/.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))) (/.f64 (cbrt.f64 (sin.f64 (*.f64 x 1/2))) 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8)) -2) (/.f64 (sin.f64 (*.f64 x 1/2)) (cbrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (cbrt.f64 (*.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 2) 9/64))) (cbrt.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (cbrt.f64 (*.f64 (pow.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 2) 9/64))) (/.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (cbrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8) -1/2) (/.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (sqrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8))) (/.f64 (cbrt.f64 (sin.f64 (*.f64 x 1/2))) (sqrt.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) 1) (*.f64 8/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (neg.f64 (sin.f64 x)) (sin.f64 (*.f64 x 1/2)))) -8/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sin.f64 x) (*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 3) (pow.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (sin.f64 x) (*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) -3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 3) (pow.f64 (*.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 3/8) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sin.f64 x) (*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 8/3 (*.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))))

simplify54.0ms (0.7%)

Algorithm
egg-herbie
Rules
639×associate-/l*_binary64
517×unswap-sqr_binary64
492×distribute-lft-out_binary64
492×fma-def_binary64
448×*-commutative_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
048358
1113352
2261352
3757352
42464352
54704352
66390352
Stop Event
node limit
Counts
116 → 111
Calls
Call 1
Inputs
3/4
(+.f64 3/4 (*.f64 -3/32 (pow.f64 x 2)))
(+.f64 (*.f64 1/512 (pow.f64 x 4)) (+.f64 3/4 (*.f64 -3/32 (pow.f64 x 2))))
(+.f64 (*.f64 -1/61440 (pow.f64 x 6)) (+.f64 (*.f64 1/512 (pow.f64 x 4)) (+.f64 3/4 (*.f64 -3/32 (pow.f64 x 2)))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
Outputs
3/4
(+.f64 3/4 (*.f64 -3/32 (pow.f64 x 2)))
(+.f64 3/4 (*.f64 -3/32 (*.f64 x x)))
(fma.f64 -3/32 (*.f64 x x) 3/4)
(+.f64 (*.f64 1/512 (pow.f64 x 4)) (+.f64 3/4 (*.f64 -3/32 (pow.f64 x 2))))
(fma.f64 1/512 (pow.f64 x 4) (+.f64 3/4 (*.f64 -3/32 (*.f64 x x))))
(fma.f64 1/512 (pow.f64 x 4) (fma.f64 -3/32 (*.f64 x x) 3/4))
(fma.f64 -3/32 (*.f64 x x) (fma.f64 1/512 (pow.f64 x 4) 3/4))
(+.f64 (*.f64 -1/61440 (pow.f64 x 6)) (+.f64 (*.f64 1/512 (pow.f64 x 4)) (+.f64 3/4 (*.f64 -3/32 (pow.f64 x 2)))))
(fma.f64 -1/61440 (pow.f64 x 6) (fma.f64 1/512 (pow.f64 x 4) (+.f64 3/4 (*.f64 -3/32 (*.f64 x x)))))
(fma.f64 -1/61440 (pow.f64 x 6) (fma.f64 1/512 (pow.f64 x 4) (fma.f64 -3/32 (*.f64 x x) 3/4)))
(fma.f64 -3/32 (*.f64 x x) (fma.f64 1/512 (pow.f64 x 4) (fma.f64 -1/61440 (pow.f64 x 6) 3/4)))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 3/8 (sin.f64 x)) (sin.f64 (*.f64 x 1/2)))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 3/8 (sin.f64 x)) (sin.f64 (*.f64 x 1/2)))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 3/8 (sin.f64 x)) (sin.f64 (*.f64 x 1/2)))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 3/8 (sin.f64 x)) (sin.f64 (*.f64 x 1/2)))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 3/8 (sin.f64 x)) (sin.f64 (*.f64 x 1/2)))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 3/8 (sin.f64 x)) (sin.f64 (*.f64 x 1/2)))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 3/8 (sin.f64 x)) (sin.f64 (*.f64 x 1/2)))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 1/2 x))))
(*.f64 3/8 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 3/8 (sin.f64 x)) (sin.f64 (*.f64 x 1/2)))
(*.f64 2/3 x)
(*.f64 x 2/3)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(fma.f64 1/18 (pow.f64 x 3) (*.f64 x 2/3))
(fma.f64 x 2/3 (*.f64 1/18 (pow.f64 x 3)))
(*.f64 x (fma.f64 x (*.f64 x 1/18) 2/3))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 x 2/3 (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 x 2/3 (fma.f64 1/18 (pow.f64 x 3) (*.f64 1/180 (pow.f64 x 5))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 x 2/3 (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (fma.f64 17/30240 (pow.f64 x 7) (*.f64 x 2/3))))
(fma.f64 1/180 (pow.f64 x 5) (fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (*.f64 x 2/3))))
(fma.f64 17/30240 (pow.f64 x 7) (fma.f64 x 2/3 (fma.f64 1/18 (pow.f64 x 3) (*.f64 1/180 (pow.f64 x 5)))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))

localize7.0ms (0.1%)

Local error

Found 8 expressions with local error:

NewErrorProgram
11.1b
(/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
2.9b
(-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1)
0.3b
(*.f64 2/3 x)
0.1b
(*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x)))
0.1b
(*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x)))
0.3b
(*.f64 2/3 x)
2.9b
(-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1)
11.1b
(/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))

series8.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
3.0ms
x
@inf
(-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1)
1.0ms
x
@inf
(/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
1.0ms
x
@0
(/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
1.0ms
x
@-inf
(/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
0.0ms
x
@-inf
(-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1)

rewrite87.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
792×fma-def_binary64
502×log-prod_binary64
355×pow-prod-down_binary64
318×fma-neg_binary64
261×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01048
123723
2351323
Stop Event
node limit
Counts
3 → 285
Calls
Call 1
Inputs
(/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1)
(*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (fma.f64 2/3 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2/3 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 2/3 x 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 2/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (fma.f64 2/3 x 2)) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 2/3) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 2/3) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 2/3) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 2/3) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 2/3 x 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (fma.f64 2/3 x 2)) (/.f64 1 (fma.f64 2/3 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 2/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2/3 x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2/3 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (/.f64 1 (fma.f64 2/3 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 2/3 x 2) (/.f64 (*.f64 2/3 x) (fma.f64 2/3 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 2/3 x 2) (*.f64 (*.f64 2/3 x) (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)) (*.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 2/3 x)) (cbrt.f64 (*.f64 4/9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 4/9 (*.f64 x x))) (cbrt.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 2/3 x 2)) (/.f64 (*.f64 2/3 x) (cbrt.f64 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (*.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 2/3 x)) (sqrt.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 2/3 x 2)) (/.f64 (*.f64 2/3 x) (sqrt.f64 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fma.f64 2/3 x 2) (neg.f64 (*.f64 2/3 x))) (/.f64 1 (neg.f64 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 2/3 x 2)) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 2)) -2) (/.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (cbrt.f64 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 2/3 x 2) -1/2) (/.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (sqrt.f64 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)) 1) (/.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (fma.f64 2/3 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) 1) (/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (fma.f64 2/3 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 2)) 2)) (cbrt.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 2)) 2)) (/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (cbrt.f64 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)) (sqrt.f64 (fma.f64 2/3 x 2))) (/.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (sqrt.f64 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (fma.f64 2/3 x 1)) 1) (-.f64 (sqrt.f64 (fma.f64 2/3 x 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 3))) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (-.f64 1 (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2/3 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2/3 (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2/3 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 4/9 (*.f64 x x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 2/3 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 2/3 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 8/27 (pow.f64 x 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (*.f64 2/3 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 3) (pow.f64 (fma.f64 2/3 x 2) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 1 (*.f64 2/3 x)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (neg.f64 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 4/9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 2/3) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 2/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 8/27 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 3) (pow.f64 (fma.f64 2/3 x 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 2/3 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 2/3 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 2/3 x 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (fma.f64 2/3 x 2)) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2/3 x 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 2/3 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2/3 x) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 2/3 x 1) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (/.f64 1 (fma.f64 2/3 x 2)) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (/.f64 1 (fma.f64 2/3 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 2/3 x 2) (/.f64 (*.f64 2/3 x) (fma.f64 2/3 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 2/3 x 2) (*.f64 (*.f64 2/3 x) (/.f64 1 (fma.f64 2/3 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)) (*.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (/.f64 1 (fma.f64 2/3 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 2/3 x)) (cbrt.f64 (*.f64 4/9 (*.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 4/9 (*.f64 x x))) (cbrt.f64 (*.f64 2/3 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 2/3 x 2)) (/.f64 (*.f64 2/3 x) (cbrt.f64 (fma.f64 2/3 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 2/3 x 1)) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (cbrt.f64 (fma.f64 2/3 x 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (*.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 2/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (*.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (/.f64 1 (fma.f64 2/3 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 2/3 x)) (sqrt.f64 (*.f64 2/3 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2/3 x 2)) (/.f64 (*.f64 2/3 x) (sqrt.f64 (fma.f64 2/3 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2/3 x 1)) (sqrt.f64 (fma.f64 2/3 x 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2/3 x 1)) (*.f64 (sqrt.f64 (fma.f64 2/3 x 1)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) 2/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 2/3 x 2) (neg.f64 (*.f64 2/3 x))) (/.f64 1 (neg.f64 (fma.f64 2/3 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (fma.f64 2/3 x 2)) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 8/27 (pow.f64 x 3) 1) (/.f64 1 (fma.f64 (*.f64 2/3 x) (fma.f64 2/3 x -1) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (*.f64 4/9 (*.f64 x x))) (/.f64 1 (+.f64 1 (*.f64 -2/3 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (fma.f64 2/3 x 2))) 2) (cbrt.f64 (/.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (fma.f64 2/3 x 2))) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 4)) (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (fma.f64 2/3 x 2))) (sqrt.f64 (/.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (fma.f64 2/3 x 2))) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (fma.f64 2/3 x 1) 1) (/.f64 (fma.f64 2/3 x 1) (fma.f64 2/3 x 2)) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 4) 1) (/.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (fma.f64 2/3 x 2)) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 2)) -2) (/.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (cbrt.f64 (fma.f64 2/3 x 2))) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 2)) -2) (/.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (cbrt.f64 (fma.f64 2/3 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (fma.f64 2/3 x 1) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 2)) 2)) (/.f64 (fma.f64 2/3 x 1) (cbrt.f64 (fma.f64 2/3 x 2))) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 4) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 2)) 2)) (/.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (cbrt.f64 (fma.f64 2/3 x 2))) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 2/3 x 2) -1/2) (/.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (sqrt.f64 (fma.f64 2/3 x 2))) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 2/3 x 2) -1/2) (/.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (sqrt.f64 (fma.f64 2/3 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (fma.f64 2/3 x 1) (sqrt.f64 (fma.f64 2/3 x 2))) (/.f64 (fma.f64 2/3 x 1) (sqrt.f64 (fma.f64 2/3 x 2))) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 4) (sqrt.f64 (fma.f64 2/3 x 2))) (/.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (sqrt.f64 (fma.f64 2/3 x 2))) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)) 1) (/.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (fma.f64 2/3 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) 1) (/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (fma.f64 2/3 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 2)) 2)) (cbrt.f64 (*.f64 2/3 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 2)) 2)) (/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (cbrt.f64 (fma.f64 2/3 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)) (sqrt.f64 (fma.f64 2/3 x 2))) (/.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (sqrt.f64 (fma.f64 2/3 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 2/3 x 1)) 1) (-.f64 (sqrt.f64 (fma.f64 2/3 x 1)) 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (*.f64 2/3 x) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 3))) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (-.f64 1 (fma.f64 2/3 x 1))) (neg.f64 (/.f64 1 (fma.f64 2/3 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 3))) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (-.f64 1 (fma.f64 2/3 x 1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2/3 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2/3 (sqrt.f64 x)) (sqrt.f64 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (*.f64 2/3 x)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 2/3 x 1) (fma.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (pow.f64 (fma.f64 2/3 x 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 2/3) x) (fma.f64 2/3 x 2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 2/3) x) (fma.f64 2/3 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 2/3) x) (fma.f64 2/3 x 2)))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 2/3) x) (fma.f64 2/3 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2/3 x) (fma.f64 2/3 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 2/3 x 2) (*.f64 2/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)) (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 2)) 2) (*.f64 (cbrt.f64 (fma.f64 2/3 x 2)) (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 2/3 x 2)) (*.f64 (sqrt.f64 (fma.f64 2/3 x 2)) (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 6) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 4) (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 4) -1) (/.f64 1 (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 4) (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2))) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 6) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2)) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 4) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 6) -1) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 4) (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 6) -1) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 4) (-.f64 1 (*.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 4) -1) (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 6) -1)) (neg.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 4) (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 4) -1)) (neg.f64 (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (*.f64 2/3 x)) (*.f64 2/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 3)) (*.f64 2/3 x)) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (-.f64 1 (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 4) (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2))) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 6) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2)) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 4) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 8/27 (pow.f64 x 3)) (pow.f64 (fma.f64 2/3 x 2) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 (*.f64 2/3 x)) (cbrt.f64 (fma.f64 2/3 x 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (*.f64 2/3 x)) (sqrt.f64 (fma.f64 2/3 x 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (fma.f64 2/3 x 2) 3) (*.f64 8/27 (pow.f64 x 3))) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 2/3) x) (fma.f64 2/3 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 2/3 x 1) (fma.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 2/3 x 1) 1 (fma.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 2/3 x 1) (fma.f64 2/3 x 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 2/3 x 1) 2) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 2/3 x 1)) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (fma.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (cbrt.f64 (fma.f64 2/3 x 1)) (fma.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 4) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (*.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 1) (fma.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 4) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 4) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2/3 x 1)) (sqrt.f64 (fma.f64 2/3 x 1)) (fma.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2/3 x 1)) (pow.f64 (fma.f64 2/3 x 1) 3/2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2/3 x 1)) (*.f64 (sqrt.f64 (fma.f64 2/3 x 1)) 1) (fma.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 8/27 (pow.f64 x 3) 1) (/.f64 1 (fma.f64 (*.f64 2/3 x) (fma.f64 2/3 x -1) 1)) (fma.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (*.f64 4/9 (*.f64 x x))) (/.f64 1 (+.f64 1 (*.f64 -2/3 x))) (fma.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 2/3 x 1) 3/2) (sqrt.f64 (fma.f64 2/3 x 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 4)) (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2)) (fma.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 2/3 x 1) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2)) (cbrt.f64 (fma.f64 2/3 x 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 2 (log1p.f64 (*.f64 2/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (*.f64 2/3 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (*.f64 2 (log1p.f64 (*.f64 2/3 x))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (fma.f64 2/3 x (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2/3 x) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 2/3 x 1) (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 2/3 x 1) (*.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (fma.f64 2/3 x 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (fma.f64 2/3 x 1) 2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (fma.f64 2/3 x 1) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (fma.f64 2/3 x 1) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (fma.f64 2/3 x 1) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (fma.f64 8/27 (pow.f64 x 3) 1) 2) (pow.f64 (fma.f64 (*.f64 2/3 x) (fma.f64 2/3 x -1) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (-.f64 1 (*.f64 4/9 (*.f64 x x))) 2) (pow.f64 (+.f64 1 (*.f64 -2/3 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 4/9 (*.f64 x x))) (fma.f64 8/27 (pow.f64 x 3) 1)) (*.f64 (+.f64 1 (*.f64 -2/3 x)) (fma.f64 (*.f64 2/3 x) (fma.f64 2/3 x -1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 8/27 (pow.f64 x 3) 1) (-.f64 1 (*.f64 4/9 (*.f64 x x)))) (*.f64 (fma.f64 (*.f64 2/3 x) (fma.f64 2/3 x -1) 1) (+.f64 1 (*.f64 -2/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 3) (pow.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 3)) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (-.f64 (pow.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 2) (*.f64 (fma.f64 2/3 x 1) (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (pow.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 2)) (-.f64 (fma.f64 2/3 x 1) (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 8/27 (pow.f64 x 3) 1) (fma.f64 2/3 x 1)) (fma.f64 (*.f64 2/3 x) (fma.f64 2/3 x -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 4/9 (*.f64 x x))) (fma.f64 2/3 x 1)) (+.f64 1 (*.f64 -2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 2/3 x 1) (fma.f64 8/27 (pow.f64 x 3) 1)) (fma.f64 (*.f64 2/3 x) (fma.f64 2/3 x -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 2/3 x 1) (-.f64 1 (*.f64 4/9 (*.f64 x x)))) (+.f64 1 (*.f64 -2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 2/3 x 1) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 2/3 x 1) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 2/3 x 1) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 2/3 x 1)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 2/3 x 1) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 2/3 x 1) 3) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 2/3 x 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (fma.f64 2/3 x 1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (fma.f64 2/3 x 1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 2/3 x 1))) (exp.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))) (exp.f64 (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))) (+.f64 1 (expm1.f64 (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 2/3 x 1) 6))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log1p.f64 (*.f64 2/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (*.f64 2/3 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log1p.f64 (*.f64 2/3 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 2/3 x) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 2/3 x 1) (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 2/3 x 1) (*.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2/3 x (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 2/3 (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 2/3 (fma.f64 2/3 x 1)) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2/3 x) 1 (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2/3 x) (fma.f64 2/3 x 1) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 2/3 x 1) 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 2/3 x 1) 1 (*.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 2/3 x 1) (*.f64 2/3 x) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (/.f64 1 (fma.f64 2/3 x 2)) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 2/3 x 2) (/.f64 (*.f64 2/3 x) (fma.f64 2/3 x 2)) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 2/3 x 2) (*.f64 (*.f64 2/3 x) (/.f64 1 (fma.f64 2/3 x 2))) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)) (*.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (/.f64 1 (fma.f64 2/3 x 2))) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 2/3 x)) (cbrt.f64 (*.f64 4/9 (*.f64 x x))) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 4/9 (*.f64 x x))) (cbrt.f64 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 4/9 (*.f64 x x))) (*.f64 (cbrt.f64 (*.f64 2/3 x)) (fma.f64 2/3 x 1)) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 2/3 x 2)) (/.f64 (*.f64 2/3 x) (cbrt.f64 (fma.f64 2/3 x 2))) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 2/3 x 1)) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 2/3 x 1)) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (*.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (cbrt.f64 (fma.f64 2/3 x 1)) (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (cbrt.f64 (fma.f64 2/3 x 1)) (*.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (*.f64 (cbrt.f64 (fma.f64 2/3 x 1)) (*.f64 2/3 x)) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (*.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 1) (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2) (*.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 1) (*.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 2/3) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (*.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (/.f64 1 (fma.f64 2/3 x 2))) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 2/3 x)) (sqrt.f64 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 2/3 x)) (*.f64 (sqrt.f64 (*.f64 2/3 x)) (fma.f64 2/3 x 1)) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2/3 x 2)) (/.f64 (*.f64 2/3 x) (sqrt.f64 (fma.f64 2/3 x 2))) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2/3 x 1)) (sqrt.f64 (fma.f64 2/3 x 1)) (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2/3 x 1)) (sqrt.f64 (fma.f64 2/3 x 1)) (*.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2/3 x 1)) (*.f64 (sqrt.f64 (fma.f64 2/3 x 1)) (*.f64 2/3 x)) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2/3 x 1)) (*.f64 (sqrt.f64 (fma.f64 2/3 x 1)) 1) (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2/3 x 1)) (*.f64 (sqrt.f64 (fma.f64 2/3 x 1)) 1) (*.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) 2/3) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 2/3 x 2) (neg.f64 (*.f64 2/3 x))) (/.f64 1 (neg.f64 (fma.f64 2/3 x 2))) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (fma.f64 2/3 x 2)) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 8/27 (pow.f64 x 3) 1) (/.f64 1 (fma.f64 (*.f64 2/3 x) (fma.f64 2/3 x -1) 1)) (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 8/27 (pow.f64 x 3) 1) (/.f64 1 (fma.f64 (*.f64 2/3 x) (fma.f64 2/3 x -1) 1)) (*.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2)) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (*.f64 4/9 (*.f64 x x))) (/.f64 1 (+.f64 1 (*.f64 -2/3 x))) (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (*.f64 4/9 (*.f64 x x))) (/.f64 1 (+.f64 1 (*.f64 -2/3 x))) (*.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))) 2) (cbrt.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2))) 2) (cbrt.f64 (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 4)) (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2)) (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 4)) (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2)) (*.f64 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 (*.f64 2/3 x) (sqrt.f64 (*.f64 2/3 x))) (hypot.f64 (*.f64 2/3 x) (sqrt.f64 (*.f64 2/3 x))) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (fma.f64 2/3 x 1)) (hypot.f64 1 (fma.f64 2/3 x 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2/3 x 2)) -2) (/.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (cbrt.f64 (fma.f64 2/3 x 2))) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 2/3 x 2) -1/2) (/.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (sqrt.f64 (fma.f64 2/3 x 2))) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)) 1) (/.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (fma.f64 2/3 x 2)) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) 1) (/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (fma.f64 2/3 x 2)) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 2)) 2)) (cbrt.f64 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 2)) 2)) (/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (cbrt.f64 (fma.f64 2/3 x 2))) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) 2)) (sqrt.f64 (fma.f64 2/3 x 2))) (/.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1)) (sqrt.f64 (fma.f64 2/3 x 2))) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 2/3 x 1)) 1) (-.f64 (sqrt.f64 (fma.f64 2/3 x 1)) 1) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) -1) (+.f64 1 (pow.f64 (fma.f64 2/3 x 1) 3))) (+.f64 (pow.f64 (fma.f64 2/3 x 1) 2) (-.f64 1 (fma.f64 2/3 x 1))) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 2/3 x) (pow.f64 (cbrt.f64 (fma.f64 2/3 x 1)) 2)) (cbrt.f64 (fma.f64 2/3 x 1)) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 2/3 x) (sqrt.f64 (fma.f64 2/3 x 1))) (sqrt.f64 (fma.f64 2/3 x 1)) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2/3 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2/3 (sqrt.f64 x)) (sqrt.f64 x) (+.f64 1 (*.f64 2/3 (*.f64 x (fma.f64 2/3 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 2/3 x 1) 2/3) x (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 2/3 x 1) x) 2/3 (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 2/3 x 1) (cbrt.f64 (*.f64 4/9 (*.f64 x x)))) (cbrt.f64 (*.f64 2/3 x)) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 2/3 x 1) (sqrt.f64 (*.f64 2/3 x))) (sqrt.f64 (*.f64 2/3 x)) (fma.f64 2/3 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (fma.f64 2/3 x 1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (fma.f64 2/3 x 1) 2)))))))

simplify135.0ms (1.9%)

Algorithm
egg-herbie
Rules
801×sqr-pow_binary64
607×associate-*l*_binary64
513×fma-def_binary64
490×cube-prod_binary64
479×fabs-mul_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
014293
129291
248268
3100228
4220228
5595228
61974228
73313228
83519228
93732228
103952228
114258228
124658228
135168228
145730228
156414228
167249228
177647228
187933228
Stop Event
node limit
Counts
321 → 296
Calls
Call 1
Inputs
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 4/3 x)
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(*.f64 4/9 (pow.f64 x 2))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(*.f64 4/9 (pow.f64 x 2))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
1
(+.f64 1 (*.f64 4/3 x))
(+.f64 1 (+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x)))
(+.f64 1 (+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x)))
(*.f64 4/9 (pow.f64 x 2))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(+.f64 1 (+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x)))
(+.f64 1 (+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x)))
(*.f64 4/9 (pow.f64 x 2))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(+.f64 1 (+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x)))
(+.f64 1 (+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x)))
Outputs
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 2/3 x)
(*.f64 4/3 x)
(*.f64 x 4/3)
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3))
(*.f64 x (+.f64 4/3 (*.f64 x 4/9)))
(*.f64 x (fma.f64 x 4/9 4/3))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3))
(*.f64 x (+.f64 4/3 (*.f64 x 4/9)))
(*.f64 x (fma.f64 x 4/9 4/3))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3))
(*.f64 x (+.f64 4/3 (*.f64 x 4/9)))
(*.f64 x (fma.f64 x 4/9 4/3))
(*.f64 4/9 (pow.f64 x 2))
(*.f64 4/9 (*.f64 x x))
(*.f64 x (*.f64 x 4/9))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3))
(*.f64 x (+.f64 4/3 (*.f64 x 4/9)))
(*.f64 x (fma.f64 x 4/9 4/3))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3))
(*.f64 x (+.f64 4/3 (*.f64 x 4/9)))
(*.f64 x (fma.f64 x 4/9 4/3))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3))
(*.f64 x (+.f64 4/3 (*.f64 x 4/9)))
(*.f64 x (fma.f64 x 4/9 4/3))
(*.f64 4/9 (pow.f64 x 2))
(*.f64 4/9 (*.f64 x x))
(*.f64 x (*.f64 x 4/9))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3))
(*.f64 x (+.f64 4/3 (*.f64 x 4/9)))
(*.f64 x (fma.f64 x 4/9 4/3))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3))
(*.f64 x (+.f64 4/3 (*.f64 x 4/9)))
(*.f64 x (fma.f64 x 4/9 4/3))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3))
(*.f64 x (+.f64 4/3 (*.f64 x 4/9)))
(*.f64 x (fma.f64 x 4/9 4/3))
1
(+.f64 1 (*.f64 4/3 x))
(+.f64 (*.f64 x 4/3) 1)
(fma.f64 x 4/3 1)
(+.f64 1 (+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x)))
(+.f64 (fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3)) 1)
(+.f64 (*.f64 x (*.f64 x 4/9)) (fma.f64 x 4/3 1))
(fma.f64 x (*.f64 x 4/9) (fma.f64 x 4/3 1))
(fma.f64 x (fma.f64 x 4/9 4/3) 1)
(+.f64 1 (+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x)))
(+.f64 (fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3)) 1)
(+.f64 (*.f64 x (*.f64 x 4/9)) (fma.f64 x 4/3 1))
(fma.f64 x (*.f64 x 4/9) (fma.f64 x 4/3 1))
(fma.f64 x (fma.f64 x 4/9 4/3) 1)
(*.f64 4/9 (pow.f64 x 2))
(*.f64 4/9 (*.f64 x x))
(*.f64 x (*.f64 x 4/9))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3))
(*.f64 x (+.f64 4/3 (*.f64 x 4/9)))
(*.f64 x (fma.f64 x 4/9 4/3))
(+.f64 1 (+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x)))
(+.f64 (fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3)) 1)
(+.f64 (*.f64 x (*.f64 x 4/9)) (fma.f64 x 4/3 1))
(fma.f64 x (*.f64 x 4/9) (fma.f64 x 4/3 1))
(fma.f64 x (fma.f64 x 4/9 4/3) 1)
(+.f64 1 (+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x)))
(+.f64 (fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3)) 1)
(+.f64 (*.f64 x (*.f64 x 4/9)) (fma.f64 x 4/3 1))
(fma.f64 x (*.f64 x 4/9) (fma.f64 x 4/3 1))
(fma.f64 x (fma.f64 x 4/9 4/3) 1)
(*.f64 4/9 (pow.f64 x 2))
(*.f64 4/9 (*.f64 x x))
(*.f64 x (*.f64 x 4/9))
(+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x))
(fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3))
(*.f64 x (+.f64 4/3 (*.f64 x 4/9)))
(*.f64 x (fma.f64 x 4/9 4/3))
(+.f64 1 (+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x)))
(+.f64 (fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3)) 1)
(+.f64 (*.f64 x (*.f64 x 4/9)) (fma.f64 x 4/3 1))
(fma.f64 x (*.f64 x 4/9) (fma.f64 x 4/3 1))
(fma.f64 x (fma.f64 x 4/9 4/3) 1)
(+.f64 1 (+.f64 (*.f64 4/9 (pow.f64 x 2)) (*.f64 4/3 x)))
(+.f64 (fma.f64 4/9 (*.f64 x x) (*.f64 x 4/3)) 1)
(+.f64 (*.f64 x (*.f64 x 4/9)) (fma.f64 x 4/3 1))
(fma.f64 x (*.f64 x 4/9) (fma.f64 x 4/3 1))
(fma.f64 x (fma.f64 x 4/9 4/3) 1)

localize4.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.7b
(pow.f64 (cbrt.f64 (*.f64 2/3 x)) 3)
0.6b
(cbrt.f64 (*.f64 2/3 x))
0.3b
(*.f64 2/3 x)
0.3b
(*.f64 2/3 x)
0.6b
(cbrt.f64 (*.f64 2/3 x))
0.7b
(pow.f64 (cbrt.f64 (*.f64 2/3 x)) 3)

series6.0ms (0.1%)

Counts
2 → 0
Calls

6 calls:

TimeVariablePointExpression
2.0ms
x
@0
(pow.f64 (cbrt.f64 (*.f64 2/3 x)) 3)
2.0ms
x
@-inf
(pow.f64 (cbrt.f64 (*.f64 2/3 x)) 3)
1.0ms
x
@inf
(pow.f64 (cbrt.f64 (*.f64 2/3 x)) 3)
1.0ms
x
@-inf
(cbrt.f64 (*.f64 2/3 x))
1.0ms
x
@0
(cbrt.f64 (*.f64 2/3 x))

rewrite43.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
522×pow1_binary64
516×add-sqr-sqrt_binary64
495×add-log-exp_binary64
495×log1p-expm1-u_binary64
495×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
114910
2139710
Stop Event
node limit
Counts
2 → 49
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 (*.f64 2/3 x)) 3)
(cbrt.f64 (*.f64 2/3 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 2/3 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2/3 x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2/3 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 2/3 x)) (pow.f64 (cbrt.f64 (*.f64 2/3 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 2/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 2/3 x)) 2) (cbrt.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 2/3 x))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 2/3 x))) (pow.f64 (cbrt.f64 (*.f64 2/3 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 2/3) (*.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 (*.f64 2/3 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 2/3 x) 1/6) (*.f64 (pow.f64 (*.f64 2/3 x) 1/6) (pow.f64 (cbrt.f64 (*.f64 2/3 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 2/3 x)) (sqrt.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 2/3 x))) 2) 3) (cbrt.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 2/3) 3) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 2/3 x) 1/6) 3) (pow.f64 (pow.f64 (*.f64 2/3 x) 1/6) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2/3 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2/3 (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 2/3 x)) 2) 1) (cbrt.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 2/3 x)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 2/3 x))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 2/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 2/3 x)) 2) (cbrt.f64 2/3)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 2/3 x)) 2) (pow.f64 (*.f64 2/3 x) 1/6)) (pow.f64 (*.f64 2/3 x) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 x x) 4/9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 2/3) x))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 2/3 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 2/3 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (*.f64 2/3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 2/3 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (cbrt.f64 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 2/3 x))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 2/3 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 2/3 x))) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 2/3 x)) 2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 2/3 x))) 2) (cbrt.f64 (cbrt.f64 (*.f64 2/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 2/3) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 2/3 x) 1/6) (pow.f64 (*.f64 2/3 x) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 2/3 x)) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 2/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 2/3 x)) 1/3) (pow.f64 (sqrt.f64 (*.f64 2/3 x)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2/3 x) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 2/3 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 2/3 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 2/3 x) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 2/3 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 2/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 2/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 2/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 2/3 x))))))))

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize7.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
1.7b
(-.f64 1/2 (*.f64 1/2 (cos.f64 x)))
0.4b
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 8/3 (sin.f64 x)))
0.4b
(/.f64 8/3 (sin.f64 x))
0.4b
(/.f64 8/3 (sin.f64 x))
0.4b
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 8/3 (sin.f64 x)))
1.7b
(-.f64 1/2 (*.f64 1/2 (cos.f64 x)))

series4.0ms (0.1%)

Counts
2 → 16
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 8/3 (sin.f64 x)))
1.0ms
x
@inf
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 8/3 (sin.f64 x)))
1.0ms
x
@inf
(-.f64 1/2 (*.f64 1/2 (cos.f64 x)))
1.0ms
x
@0
(-.f64 1/2 (*.f64 1/2 (cos.f64 x)))
0.0ms
x
@-inf
(-.f64 1/2 (*.f64 1/2 (cos.f64 x)))

rewrite60.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
512×log-prod_binary64
397×exp-prod_binary64
286×pow-prod-down_binary64
285×pow2_binary64
200×expm1-udef_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01026
122426
2287422
Stop Event
node limit
Counts
2 → 111
Calls
Call 1
Inputs
(-.f64 1/2 (*.f64 1/2 (cos.f64 x)))
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 8/3 (sin.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1/2 (*.f64 (cos.f64 x) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1/2 (*.f64 (*.f64 (cos.f64 x) -1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 x) -1/2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 (cos.f64 x) -1/2 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 (cos.f64 x) -1/2 1/2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 (cos.f64 x) -1/2 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 (cos.f64 x) -1/2 1/2)))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 (cos.f64 x) -1/2 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (cos.f64 x) -1/2 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (cos.f64 x) -1/2 1/2)) (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 x) -1/2 1/2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 x) -1/2 1/2)) 2) (cbrt.f64 (fma.f64 (cos.f64 x) -1/2 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (cos.f64 x) -1/2 1/2)) (sqrt.f64 (fma.f64 (cos.f64 x) -1/2 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/8 (pow.f64 (*.f64 1/2 (cos.f64 x)) 3)) (/.f64 1 (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2))) (/.f64 1 (fma.f64 1/2 (cos.f64 x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4) (-.f64 1/8 (pow.f64 (*.f64 1/2 (cos.f64 x)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 1/2 (cos.f64 x) 1/2) (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1/8 (pow.f64 (*.f64 1/2 (cos.f64 x)) 3)) (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2))) (fma.f64 1/2 (cos.f64 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1/8 (pow.f64 (*.f64 1/2 (cos.f64 x)) 3))) (neg.f64 (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2)))) (neg.f64 (fma.f64 1/2 (cos.f64 x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1/8 (pow.f64 (*.f64 (cos.f64 x) -1/2) 3)) (+.f64 1/4 (-.f64 (pow.f64 (*.f64 (cos.f64 x) -1/2) 2) (*.f64 1/2 (*.f64 (cos.f64 x) -1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1/4 (pow.f64 (*.f64 (cos.f64 x) -1/2) 2)) (-.f64 1/2 (*.f64 (cos.f64 x) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (cos.f64 x) -1/2 1/2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (cos.f64 x) -1/2 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (fma.f64 (cos.f64 x) -1/2 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4) (-.f64 1/8 (pow.f64 (*.f64 1/2 (cos.f64 x)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 1/2 (cos.f64 x) 1/2) (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (fma.f64 (cos.f64 x) -1/2 1/2))) 2)) (cbrt.f64 (log.f64 (fma.f64 (cos.f64 x) -1/2 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (fma.f64 (cos.f64 x) -1/2 1/2)))) (sqrt.f64 (log.f64 (fma.f64 (cos.f64 x) -1/2 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (cos.f64 x) -1/2 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (cos.f64 x) -1/2 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (cos.f64 x) -1/2 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 (cos.f64 x) -1/2 1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 (cos.f64 x) -1/2 1/2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 (cos.f64 x) -1/2 1/2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 (cos.f64 x) -1/2 1/2)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (neg.f64 (cos.f64 x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 x) -1/2 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 x) -1/2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 (cos.f64 x) 2))) (neg.f64 (cbrt.f64 (*.f64 1/2 (cos.f64 x)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 1/2 (cos.f64 x))) (neg.f64 (sqrt.f64 (*.f64 1/2 (cos.f64 x)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1/2 (cos.f64 x) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 x) -1/2)) 2) (cbrt.f64 (*.f64 (cos.f64 x) -1/2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cos.f64 x) -1/2)) (sqrt.f64 (*.f64 (cos.f64 x) -1/2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 1/2 (cos.f64 x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cos.f64 x)) 1/2 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 (cos.f64 x) 2)))) (cbrt.f64 (*.f64 1/2 (cos.f64 x))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (*.f64 1/2 (cos.f64 x)))) (sqrt.f64 (*.f64 1/2 (cos.f64 x))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/2 (pow.f64 (cbrt.f64 (cos.f64 x)) 2)) (cbrt.f64 (cos.f64 x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/2 (sqrt.f64 (cos.f64 x))) (sqrt.f64 (cos.f64 x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (cos.f64 x) -1/2 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (cos.f64 x) -1/2 1/2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (/.f64 8/3 (sin.f64 x))) (*.f64 (*.f64 (cos.f64 x) -1/2) (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) 1/2) (*.f64 (/.f64 8/3 (sin.f64 x)) (*.f64 (cos.f64 x) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (fma.f64 (cos.f64 x) -1/2 1/2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (fma.f64 (cos.f64 x) -1/2 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (fma.f64 (cos.f64 x) -1/2 1/2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (fma.f64 (cos.f64 x) -1/2 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (*.f64 (sin.f64 x) 3/8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sin.f64 x) (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 8/3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1/8 (pow.f64 (*.f64 1/2 (cos.f64 x)) 3)) (*.f64 (*.f64 (sin.f64 x) 3/8) (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2))) (*.f64 (*.f64 (sin.f64 x) 3/8) (fma.f64 1/2 (cos.f64 x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 8/3) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 8/3)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/8 (pow.f64 (*.f64 1/2 (cos.f64 x)) 3)) 8/3) (*.f64 (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2))) 8/3) (*.f64 (fma.f64 1/2 (cos.f64 x) 1/2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/8 (pow.f64 (*.f64 1/2 (cos.f64 x)) 3)) 1) (*.f64 (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4) (*.f64 (sin.f64 x) 3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2))) 1) (*.f64 (fma.f64 1/2 (cos.f64 x) 1/2) (*.f64 (sin.f64 x) 3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/8 (pow.f64 (*.f64 1/2 (cos.f64 x)) 3)) -8/3) (*.f64 (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2))) -8/3) (*.f64 (fma.f64 1/2 (cos.f64 x) 1/2) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 8/3 (-.f64 1/8 (pow.f64 (*.f64 1/2 (cos.f64 x)) 3))) (*.f64 (sin.f64 x) (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -8/3 (-.f64 1/8 (pow.f64 (*.f64 1/2 (cos.f64 x)) 3))) (*.f64 (neg.f64 (sin.f64 x)) (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 8/3 (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2)))) (*.f64 (sin.f64 x) (fma.f64 1/2 (cos.f64 x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -8/3 (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2)))) (*.f64 (neg.f64 (sin.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 8/3) 1) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 8/3) (cbrt.f64 (pow.f64 (sin.f64 x) 2))) (cbrt.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 8/3) (sqrt.f64 (sin.f64 x))) (sqrt.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/8 (pow.f64 (*.f64 1/2 (cos.f64 x)) 3)) (/.f64 8/3 (sin.f64 x))) (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2))) (/.f64 8/3 (sin.f64 x))) (fma.f64 1/2 (cos.f64 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -8/3 (fma.f64 (cos.f64 x) -1/2 1/2)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) -8/3) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/8 (pow.f64 (*.f64 1/2 (cos.f64 x)) 3))) (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2)))) (fma.f64 1/2 (cos.f64 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sin.f64 x) (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 8/3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))) 2)) (cbrt.f64 (log.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))))) (sqrt.f64 (log.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (fma.f64 (cos.f64 x) -1/2 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (/.f64 8/3 (sin.f64 x)) (*.f64 (*.f64 (cos.f64 x) -1/2) (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 8/3 (sin.f64 x)) 1/2 (*.f64 (/.f64 8/3 (sin.f64 x)) (*.f64 (cos.f64 x) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))))))))

simplify79.0ms (1.1%)

Algorithm
egg-herbie
Rules
745×distribute-lft-out_binary64
703×distribute-rgt-out_binary64
636×fma-def_binary64
615×associate-*l*_binary64
436×associate-*r*_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
049264
1123264
2294240
3876224
43531224
56034200
66890200
77542200
Stop Event
node limit
Counts
127 → 129
Calls
Call 1
Inputs
(*.f64 1/4 (pow.f64 x 2))
(+.f64 (*.f64 1/4 (pow.f64 x 2)) (*.f64 -1/48 (pow.f64 x 4)))
(+.f64 (*.f64 1/4 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 6)) (*.f64 -1/48 (pow.f64 x 4))))
(+.f64 (*.f64 -1/80640 (pow.f64 x 8)) (+.f64 (*.f64 1/4 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 6)) (*.f64 -1/48 (pow.f64 x 4)))))
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
Outputs
(*.f64 1/4 (pow.f64 x 2))
(*.f64 1/4 (*.f64 x x))
(+.f64 (*.f64 1/4 (pow.f64 x 2)) (*.f64 -1/48 (pow.f64 x 4)))
(fma.f64 1/4 (*.f64 x x) (*.f64 -1/48 (pow.f64 x 4)))
(*.f64 (*.f64 x x) (fma.f64 (*.f64 x x) -1/48 1/4))
(fma.f64 -1/48 (pow.f64 x 4) (*.f64 1/4 (*.f64 x x)))
(*.f64 x (*.f64 x (fma.f64 (*.f64 x x) -1/48 1/4)))
(+.f64 (*.f64 1/4 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 6)) (*.f64 -1/48 (pow.f64 x 4))))
(fma.f64 1/4 (*.f64 x x) (fma.f64 1/1440 (pow.f64 x 6) (*.f64 -1/48 (pow.f64 x 4))))
(fma.f64 1/4 (*.f64 x x) (fma.f64 -1/48 (pow.f64 x 4) (*.f64 1/1440 (pow.f64 x 6))))
(fma.f64 (*.f64 x x) (fma.f64 (*.f64 x x) -1/48 1/4) (*.f64 1/1440 (pow.f64 x 6)))
(+.f64 (*.f64 -1/80640 (pow.f64 x 8)) (+.f64 (*.f64 1/4 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 6)) (*.f64 -1/48 (pow.f64 x 4)))))
(fma.f64 -1/80640 (pow.f64 x 8) (fma.f64 1/4 (*.f64 x x) (fma.f64 1/1440 (pow.f64 x 6) (*.f64 -1/48 (pow.f64 x 4)))))
(fma.f64 1/4 (*.f64 x x) (fma.f64 -1/80640 (pow.f64 x 8) (fma.f64 -1/48 (pow.f64 x 4) (*.f64 1/1440 (pow.f64 x 6)))))
(fma.f64 1/4 (*.f64 x x) (fma.f64 -1/48 (pow.f64 x 4) (fma.f64 1/1440 (pow.f64 x 6) (*.f64 -1/80640 (pow.f64 x 8)))))
(fma.f64 1/4 (*.f64 x x) (fma.f64 1/1440 (pow.f64 x 6) (fma.f64 -1/48 (pow.f64 x 4) (*.f64 -1/80640 (pow.f64 x 8)))))
(*.f64 2/3 x)
(*.f64 x 2/3)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(fma.f64 1/18 (pow.f64 x 3) (*.f64 x 2/3))
(fma.f64 x 2/3 (*.f64 1/18 (pow.f64 x 3)))
(*.f64 x (fma.f64 x (*.f64 x 1/18) 2/3))
(*.f64 x (fma.f64 (*.f64 x x) 1/18 2/3))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 x 2/3 (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 x 2/3 (fma.f64 1/18 (pow.f64 x 3) (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 x 2/3)))
(fma.f64 x (fma.f64 (*.f64 x x) 1/18 2/3) (*.f64 1/180 (pow.f64 x 5)))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 x 2/3 (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (fma.f64 17/30240 (pow.f64 x 7) (*.f64 x 2/3))))
(fma.f64 x 2/3 (fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 17/30240 (pow.f64 x 7)))))
(fma.f64 17/30240 (pow.f64 x 7) (fma.f64 x (fma.f64 (*.f64 x x) 1/18 2/3) (*.f64 1/180 (pow.f64 x 5))))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)

localize8.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
21.1b
(/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x))
0.3b
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
0.2b
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
0.2b
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
0.3b
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
21.1b
(/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x))

series4.0ms (0.1%)

Counts
3 → 12
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x))
0.0ms
x
@0
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
0.0ms
x
@inf
(/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x))
0.0ms
x
@-inf
(/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x))
0.0ms
x
@-inf
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))

rewrite63.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
498×log-prod_binary64
390×exp-prod_binary64
276×pow2_binary64
270×prod-exp_binary64
247×pow-prod-down_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01140
123140
2266240
Stop Event
node limit
Counts
3 → 116
Calls
Call 1
Inputs
(/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(pow.f64 (sin.f64 (*.f64 1/2 x)) 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 (*.f64 1/2 x)) (*.f64 (sin.f64 (*.f64 1/2 x)) (/.f64 1 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))) (cbrt.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))) 4)) (cbrt.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 1/2 x))) 4) (*.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (/.f64 1 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))) (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (/.f64 1 (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sin.f64 x)) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) 1) (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 1/2 x))) 4) 1) (/.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (/.f64 (sin.f64 (*.f64 1/2 x)) (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) -2) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 1/2 x))) 4) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (cbrt.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sin.f64 x) -1/2) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 1/2 x))) 4) (sqrt.f64 (sin.f64 x))) (/.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 6) (pow.f64 (sin.f64 x) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))) 2)) (cbrt.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))) (sqrt.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 6) (pow.f64 (sin.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (*.f64 2 (log.f64 (sin.f64 (*.f64 1/2 x)))) 1) (log.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 2 (log.f64 (sin.f64 (*.f64 1/2 x)))) (*.f64 (log.f64 (sin.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (*.f64 2 (log.f64 (sin.f64 (*.f64 1/2 x)))) 1) (*.f64 (log.f64 (sin.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 2 (log.f64 (sin.f64 (*.f64 1/2 x)))) 1) (neg.f64 (log.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (neg.f64 (log.f64 (sin.f64 x))) (*.f64 (*.f64 2 (log.f64 (sin.f64 (*.f64 1/2 x)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 8/3) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 8/3) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 8/3) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 8/3) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8/3 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sin.f64 x) (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) 1) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (cbrt.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (sqrt.f64 (sin.f64 x))) (sqrt.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) 8/3) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 8/3 (neg.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))) 4) 64/9) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))) (sqrt.f64 8/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sin.f64 x) (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3)))) (sqrt.f64 (log.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))) 4) 64/9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 8/3) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (sin.f64 (*.f64 1/2 x)) (sqrt.f64 (sin.f64 x))) (sqrt.f64 8/3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3)) (*.f64 (log.f64 (sin.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)) 8/3)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) (log.f64 (sqrt.f64 (exp.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 (*.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 1/2 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 1/2 x))) 4) (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sin.f64 (*.f64 1/2 x))) (pow.f64 (sin.f64 (*.f64 1/2 x)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 3/2) (sqrt.f64 (sin.f64 (*.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 1/2 x))) 5) (cbrt.f64 (sin.f64 (*.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (cos.f64 (-.f64 (*.f64 1/2 x) (*.f64 1/2 x))) (cos.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (sin.f64 (*.f64 1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (sin.f64 (*.f64 1/2 x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (cbrt.f64 (sin.f64 (*.f64 1/2 x))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sin.f64 (*.f64 1/2 x))) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 2 (log.f64 (sin.f64 (*.f64 1/2 x)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (sin.f64 (*.f64 1/2 x))) 1) (log.f64 (sin.f64 (*.f64 1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (sin.f64 (*.f64 1/2 x))) (*.f64 (log.f64 (sin.f64 (*.f64 1/2 x))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (sin.f64 (*.f64 1/2 x))) 1) (*.f64 (log.f64 (sin.f64 (*.f64 1/2 x))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))))))

simplify106.0ms (1.5%)

Algorithm
egg-herbie
Rules
826×fma-def_binary64
753×distribute-lft-out_binary64
714×distribute-rgt-out_binary64
679×associate-*l*_binary64
486×associate-*r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
052186
1129186
2327186
31013186
43916186
56278186
66861186
77097186
87404186
97816186
Stop Event
node limit
Counts
128 → 139
Calls
Call 1
Inputs
(*.f64 1/4 x)
(+.f64 (*.f64 1/48 (pow.f64 x 3)) (*.f64 1/4 x))
(+.f64 (*.f64 1/48 (pow.f64 x 3)) (+.f64 (*.f64 1/480 (pow.f64 x 5)) (*.f64 1/4 x)))
(+.f64 (*.f64 17/80640 (pow.f64 x 7)) (+.f64 (*.f64 1/48 (pow.f64 x 3)) (+.f64 (*.f64 1/480 (pow.f64 x 5)) (*.f64 1/4 x))))
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(*.f64 1/4 (pow.f64 x 2))
(+.f64 (*.f64 1/4 (pow.f64 x 2)) (*.f64 -1/48 (pow.f64 x 4)))
(+.f64 (*.f64 1/4 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 6)) (*.f64 -1/48 (pow.f64 x 4))))
(+.f64 (*.f64 -1/80640 (pow.f64 x 8)) (+.f64 (*.f64 1/4 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 6)) (*.f64 -1/48 (pow.f64 x 4)))))
Outputs
(*.f64 1/4 x)
(+.f64 (*.f64 1/48 (pow.f64 x 3)) (*.f64 1/4 x))
(fma.f64 1/48 (pow.f64 x 3) (*.f64 1/4 x))
(fma.f64 1/4 x (*.f64 1/48 (pow.f64 x 3)))
(*.f64 x (fma.f64 x (*.f64 x 1/48) 1/4))
(+.f64 (*.f64 1/48 (pow.f64 x 3)) (+.f64 (*.f64 1/480 (pow.f64 x 5)) (*.f64 1/4 x)))
(fma.f64 1/48 (pow.f64 x 3) (fma.f64 1/480 (pow.f64 x 5) (*.f64 1/4 x)))
(fma.f64 1/4 x (fma.f64 1/48 (pow.f64 x 3) (*.f64 1/480 (pow.f64 x 5))))
(fma.f64 x (fma.f64 x (*.f64 x 1/48) 1/4) (*.f64 1/480 (pow.f64 x 5)))
(+.f64 (*.f64 17/80640 (pow.f64 x 7)) (+.f64 (*.f64 1/48 (pow.f64 x 3)) (+.f64 (*.f64 1/480 (pow.f64 x 5)) (*.f64 1/4 x))))
(fma.f64 17/80640 (pow.f64 x 7) (fma.f64 1/48 (pow.f64 x 3) (fma.f64 1/480 (pow.f64 x 5) (*.f64 1/4 x))))
(fma.f64 1/48 (pow.f64 x 3) (fma.f64 17/80640 (pow.f64 x 7) (fma.f64 1/4 x (*.f64 1/480 (pow.f64 x 5)))))
(fma.f64 1/480 (pow.f64 x 5) (fma.f64 1/4 x (fma.f64 17/80640 (pow.f64 x 7) (*.f64 1/48 (pow.f64 x 3)))))
(fma.f64 1/48 (pow.f64 x 3) (fma.f64 1/480 (pow.f64 x 5) (fma.f64 17/80640 (pow.f64 x 7) (*.f64 1/4 x))))
(*.f64 2/3 x)
(*.f64 x 2/3)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(fma.f64 1/18 (pow.f64 x 3) (*.f64 x 2/3))
(fma.f64 (pow.f64 x 3) 1/18 (*.f64 x 2/3))
(*.f64 x (fma.f64 1/18 (*.f64 x x) 2/3))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 2/3 x (*.f64 (pow.f64 x 5) 1/180)))
(fma.f64 (pow.f64 x 3) 1/18 (fma.f64 (pow.f64 x 5) 1/180 (*.f64 x 2/3)))
(fma.f64 x 2/3 (fma.f64 (pow.f64 x 3) 1/18 (*.f64 (pow.f64 x 5) 1/180)))
(fma.f64 x 2/3 (fma.f64 (pow.f64 x 5) 1/180 (*.f64 (pow.f64 x 3) 1/18)))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 2/3 x (*.f64 (pow.f64 x 5) 1/180))))
(fma.f64 (pow.f64 x 3) 1/18 (fma.f64 (pow.f64 x 7) 17/30240 (fma.f64 (pow.f64 x 5) 1/180 (*.f64 x 2/3))))
(fma.f64 (pow.f64 x 3) 1/18 (fma.f64 (pow.f64 x 5) 1/180 (fma.f64 (pow.f64 x 7) 17/30240 (*.f64 x 2/3))))
(fma.f64 x 2/3 (fma.f64 (pow.f64 x 3) 1/18 (fma.f64 (pow.f64 x 5) 1/180 (*.f64 (pow.f64 x 7) 17/30240))))
(*.f64 1/4 (pow.f64 x 2))
(*.f64 1/4 (*.f64 x x))
(+.f64 (*.f64 1/4 (pow.f64 x 2)) (*.f64 -1/48 (pow.f64 x 4)))
(fma.f64 1/4 (*.f64 x x) (*.f64 -1/48 (pow.f64 x 4)))
(*.f64 (*.f64 x x) (fma.f64 x (*.f64 x -1/48) 1/4))
(+.f64 (*.f64 1/4 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 6)) (*.f64 -1/48 (pow.f64 x 4))))
(fma.f64 1/4 (*.f64 x x) (fma.f64 1/1440 (pow.f64 x 6) (*.f64 -1/48 (pow.f64 x 4))))
(fma.f64 1/4 (*.f64 x x) (fma.f64 -1/48 (pow.f64 x 4) (*.f64 1/1440 (pow.f64 x 6))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x -1/48) 1/4) (*.f64 1/1440 (pow.f64 x 6)))
(+.f64 (*.f64 -1/80640 (pow.f64 x 8)) (+.f64 (*.f64 1/4 (pow.f64 x 2)) (+.f64 (*.f64 1/1440 (pow.f64 x 6)) (*.f64 -1/48 (pow.f64 x 4)))))
(fma.f64 -1/80640 (pow.f64 x 8) (fma.f64 1/4 (*.f64 x x) (fma.f64 1/1440 (pow.f64 x 6) (*.f64 -1/48 (pow.f64 x 4)))))
(fma.f64 -1/80640 (pow.f64 x 8) (fma.f64 1/4 (*.f64 x x) (fma.f64 -1/48 (pow.f64 x 4) (*.f64 1/1440 (pow.f64 x 6)))))
(fma.f64 1/4 (*.f64 x x) (fma.f64 -1/80640 (pow.f64 x 8) (fma.f64 -1/48 (pow.f64 x 4) (*.f64 1/1440 (pow.f64 x 6)))))
(fma.f64 -1/48 (pow.f64 x 4) (fma.f64 -1/80640 (pow.f64 x 8) (fma.f64 1/4 (*.f64 x x) (*.f64 1/1440 (pow.f64 x 6)))))
(fma.f64 1/4 (*.f64 x x) (fma.f64 1/1440 (pow.f64 x 6) (fma.f64 -1/48 (pow.f64 x 4) (*.f64 -1/80640 (pow.f64 x 8)))))

eval411.0ms (5.7%)

Compiler

Compiled 17602 to 13883 computations (21.1% saved)

prune129.0ms (1.8%)

Pruning

16 alts after pruning (14 fresh and 2 done)

PrunedKeptTotal
New91110921
Fresh26430
Picked101
Done527
Total94316959
Error
0b
Counts
959 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
61.0b
(/.f64 (-.f64 1 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
35.7b
(/.f64 8/3 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))
0.5b
(/.f64 1 (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))))
35.7b
(*.f64 1 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)))
21.2b
(/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 (sin.f64 x) 3/8))
35.8b
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 8/3 (sin.f64 x)))
35.8b
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 1 (*.f64 (sin.f64 x) 3/8)))
35.8b
(+.f64 (*.f64 1/2 (/.f64 8/3 (sin.f64 x))) (*.f64 (*.f64 (cos.f64 x) -1/2) (/.f64 8/3 (sin.f64 x))))
35.7b
(/.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (sin.f64 x))
25.9b
(*.f64 2/3 x)
61.1b
(/.f64 (*.f64 x (*.f64 x 4/9)) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
0.4b
(*.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3))
24.3b
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
0.3b
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
35.8b
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 8/3 (/.f64 1 (sin.f64 x))))
23.2b
(/.f64 (sin.f64 (*.f64 x 1/2)) 3/4)
Compiler

Compiled 374 to 311 computations (16.8% saved)

localize4.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
0.3b
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
1.0ms
x
@-inf
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
1.0ms
x
@0
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)

rewrite37.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
679×pow1_binary64
634×add-log-exp_binary64
634×log1p-expm1-u_binary64
634×expm1-log1p-u_binary64
624×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079
11519
217189
Stop Event
node limit
Counts
1 → 13
Calls
Call 1
Inputs
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3) (cos.f64 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4/3 (sin.f64 (*.f64 x 1/2))) (cos.f64 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 16/9 (pow.f64 (tan.f64 (*.f64 x 1/2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 4/3) (tan.f64 (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3)))))))

simplify123.0ms (1.7%)

Algorithm
egg-herbie
Rules
708×sqr-pow_binary64
672×cube-prod_binary64
624×unswap-sqr_binary64
619×fabs-mul_binary64
439×fma-def_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
028194
167194
2144194
3359194
4632194
51359194
61983194
72932194
83085194
93332194
103651194
114132194
124811194
135705194
146347194
156858194
167257194
177636194
187850194
Stop Event
node limit
Counts
25 → 21
Calls
Call 1
Inputs
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
Outputs
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(fma.f64 1/18 (pow.f64 x 3) (*.f64 2/3 x))
(fma.f64 2/3 x (*.f64 1/18 (pow.f64 x 3)))
(*.f64 x (fma.f64 x (*.f64 x 1/18) 2/3))
(*.f64 x (fma.f64 1/18 (*.f64 x x) 2/3))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 x (fma.f64 x (*.f64 x 1/18) 2/3) (*.f64 1/180 (pow.f64 x 5)))
(fma.f64 2/3 x (fma.f64 1/18 (pow.f64 x 3) (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 x (fma.f64 1/18 (*.f64 x x) 2/3) (*.f64 1/180 (pow.f64 x 5)))
(fma.f64 2/3 x (fma.f64 1/180 (pow.f64 x 5) (*.f64 1/18 (pow.f64 x 3))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 2/3 x (fma.f64 1/180 (pow.f64 x 5) (*.f64 17/30240 (pow.f64 x 7)))))
(fma.f64 x (fma.f64 x (*.f64 x 1/18) 2/3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 17/30240 (pow.f64 x 7))))
(fma.f64 2/3 x (fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 17/30240 (pow.f64 x 7)))))
(fma.f64 x (fma.f64 1/18 (*.f64 x x) 2/3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 17/30240 (pow.f64 x 7))))
(fma.f64 2/3 x (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 1/180 (pow.f64 x 5) (*.f64 1/18 (pow.f64 x 3)))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (cos.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 4/3 (sin.f64 (*.f64 x 1/2))) (cos.f64 (*.f64 x 1/2)))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (cos.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 4/3 (sin.f64 (*.f64 x 1/2))) (cos.f64 (*.f64 x 1/2)))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (cos.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 4/3 (sin.f64 (*.f64 x 1/2))) (cos.f64 (*.f64 x 1/2)))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (cos.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 4/3 (sin.f64 (*.f64 x 1/2))) (cos.f64 (*.f64 x 1/2)))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (cos.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 4/3 (sin.f64 (*.f64 x 1/2))) (cos.f64 (*.f64 x 1/2)))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (cos.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 4/3 (sin.f64 (*.f64 x 1/2))) (cos.f64 (*.f64 x 1/2)))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (cos.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 4/3 (sin.f64 (*.f64 x 1/2))) (cos.f64 (*.f64 x 1/2)))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 1/2 x)) (cos.f64 (*.f64 1/2 x))))
(*.f64 4/3 (/.f64 (sin.f64 (*.f64 x 1/2)) (cos.f64 (*.f64 x 1/2))))
(/.f64 (*.f64 4/3 (sin.f64 (*.f64 x 1/2))) (cos.f64 (*.f64 x 1/2)))

localize14.0ms (0.2%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.3b
(*.f64 x 4/3)
0.3b
(*.f64 2/3 x)
0.0b
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
0.0b
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
0.3b
(*.f64 2/3 x)
0.3b
(*.f64 x 4/3)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite53.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
504×log-prod_binary64
365×prod-diff_binary64
349×fma-def_binary64
297×pow-prod-down_binary64
271×pow2_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01020
122217
2298815
Stop Event
node limit
Counts
2 → 75
Calls
Call 1
Inputs
(*.f64 x 4/3)
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x 4/3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 4/3) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 4/3) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 4/3) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 4/3) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x 4/3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 4/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 x x) 16/9) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x 4/3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x 4/3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x 4/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 x x) 16/9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 4/3) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x 4/3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x 4/3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x 4/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x 4/3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x 4/3))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x 4/3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x 4/3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x 4/3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x 4/3)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 1 (*.f64 (fma.f64 x 2/3 2) 3/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 4/3 (/.f64 1 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4/3 (*.f64 x (/.f64 1 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4/3) (/.f64 1 (fma.f64 x 2/3 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))) (cbrt.f64 (pow.f64 (*.f64 3/4 (/.f64 (fma.f64 x 2/3 2) x)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 3/4 (/.f64 (fma.f64 x 2/3 2) x)) -2)) (cbrt.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x 4/3)) 2) (*.f64 (cbrt.f64 (*.f64 x 4/3)) (/.f64 1 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))) (sqrt.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x 4/3)) (*.f64 (sqrt.f64 (*.f64 x 4/3)) (/.f64 1 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x -4/3) (/.f64 1 (neg.f64 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x 2/3 2)) (*.f64 x 4/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 1) (/.f64 4/3 (fma.f64 x 2/3 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (fma.f64 x 2/3 2)) 4/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 x 4/3)) 2) 1) (/.f64 (cbrt.f64 (*.f64 x 4/3)) (fma.f64 x 2/3 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 x 4/3)) 1) (/.f64 (sqrt.f64 (*.f64 x 4/3)) (fma.f64 x 2/3 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (pow.f64 (cbrt.f64 (fma.f64 x 2/3 2)) 2)) (/.f64 4/3 (cbrt.f64 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4/3 (pow.f64 (cbrt.f64 (fma.f64 x 2/3 2)) 2)) (/.f64 x (cbrt.f64 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x 2/3 2)) -2) (/.f64 (*.f64 x 4/3) (cbrt.f64 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 x 4/3)) 2) (pow.f64 (cbrt.f64 (fma.f64 x 2/3 2)) 2)) (cbrt.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 x 4/3)) (pow.f64 (cbrt.f64 (fma.f64 x 2/3 2)) 2)) (/.f64 (sqrt.f64 (*.f64 x 4/3)) (cbrt.f64 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (sqrt.f64 (fma.f64 x 2/3 2))) (/.f64 4/3 (sqrt.f64 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4/3 (sqrt.f64 (fma.f64 x 2/3 2))) (/.f64 x (sqrt.f64 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x 2/3 2) -1/2) (/.f64 (*.f64 x 4/3) (sqrt.f64 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 x 4/3)) 2) (sqrt.f64 (fma.f64 x 2/3 2))) (/.f64 (cbrt.f64 (*.f64 x 4/3)) (sqrt.f64 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x 4/3) (+.f64 1 (pow.f64 (fma.f64 x 2/3 1) 3))) (-.f64 (+.f64 (pow.f64 (fma.f64 x 2/3 1) 2) 1) (fma.f64 x 2/3 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x 4/3) (+.f64 (pow.f64 (fma.f64 x 2/3 1) 2) -1)) (*.f64 x 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3/4 (/.f64 (fma.f64 x 2/3 2) x)) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3/4 (/.f64 (fma.f64 x 2/3 2) x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 x 4/3) 3) (pow.f64 (fma.f64 x 2/3 2) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 3/4 (/.f64 (fma.f64 x 2/3 2) x)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 x 4/3) (neg.f64 (fma.f64 x 2/3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 3/4 (/.f64 (fma.f64 x 2/3 2) x)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 x 4/3) 3) (pow.f64 (fma.f64 x 2/3 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2))) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 3/4 (/.f64 (fma.f64 x 2/3 2) x))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 4/3 (/.f64 x (fma.f64 x 2/3 2)))))))))

simplify40.0ms (0.6%)

Algorithm
egg-herbie
Rules
805×unswap-sqr_binary64
767×distribute-neg-frac_binary64
518×associate-/r*_binary64
376×fma-def_binary64
334×times-frac_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
038204
199204
2238201
3690193
42172193
55996193
Stop Event
node limit
Counts
99 → 91
Calls
Call 1
Inputs
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 2/3 x)
(+.f64 (*.f64 2/3 x) (*.f64 -2/9 (pow.f64 x 2)))
(+.f64 (*.f64 2/27 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 -2/9 (pow.f64 x 2))))
(+.f64 (*.f64 2/27 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (+.f64 (*.f64 -2/9 (pow.f64 x 2)) (*.f64 -2/81 (pow.f64 x 4)))))
2
(-.f64 2 (*.f64 6 (/.f64 1 x)))
(-.f64 (+.f64 (*.f64 18 (/.f64 1 (pow.f64 x 2))) 2) (*.f64 6 (/.f64 1 x)))
(-.f64 (+.f64 (*.f64 18 (/.f64 1 (pow.f64 x 2))) 2) (+.f64 (*.f64 6 (/.f64 1 x)) (*.f64 54 (/.f64 1 (pow.f64 x 3)))))
2
(-.f64 2 (*.f64 6 (/.f64 1 x)))
(-.f64 (+.f64 (*.f64 18 (/.f64 1 (pow.f64 x 2))) 2) (*.f64 6 (/.f64 1 x)))
(-.f64 (+.f64 (*.f64 18 (/.f64 1 (pow.f64 x 2))) 2) (+.f64 (*.f64 6 (/.f64 1 x)) (*.f64 54 (/.f64 1 (pow.f64 x 3)))))
Outputs
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 4/3 x)
(*.f64 2/3 x)
(*.f64 x 2/3)
(+.f64 (*.f64 2/3 x) (*.f64 -2/9 (pow.f64 x 2)))
(fma.f64 2/3 x (*.f64 -2/9 (*.f64 x x)))
(fma.f64 x 2/3 (*.f64 x (*.f64 x -2/9)))
(*.f64 x (+.f64 2/3 (*.f64 x -2/9)))
(*.f64 x (fma.f64 x -2/9 2/3))
(+.f64 (*.f64 2/27 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 -2/9 (pow.f64 x 2))))
(fma.f64 2/27 (pow.f64 x 3) (fma.f64 2/3 x (*.f64 -2/9 (*.f64 x x))))
(fma.f64 2/27 (pow.f64 x 3) (fma.f64 x 2/3 (*.f64 x (*.f64 x -2/9))))
(fma.f64 x 2/3 (*.f64 (*.f64 x x) (+.f64 -2/9 (*.f64 x 2/27))))
(*.f64 x (+.f64 2/3 (*.f64 x (fma.f64 x 2/27 -2/9))))
(+.f64 (*.f64 2/27 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (+.f64 (*.f64 -2/9 (pow.f64 x 2)) (*.f64 -2/81 (pow.f64 x 4)))))
(fma.f64 2/27 (pow.f64 x 3) (fma.f64 2/3 x (fma.f64 -2/9 (*.f64 x x) (*.f64 -2/81 (pow.f64 x 4)))))
(fma.f64 2/27 (pow.f64 x 3) (fma.f64 x 2/3 (fma.f64 -2/9 (*.f64 x x) (*.f64 -2/81 (pow.f64 x 4)))))
(fma.f64 2/27 (pow.f64 x 3) (fma.f64 -2/81 (pow.f64 x 4) (*.f64 x (+.f64 2/3 (*.f64 x -2/9)))))
(fma.f64 x (fma.f64 x -2/9 2/3) (*.f64 (pow.f64 x 3) (+.f64 (*.f64 x -2/81) 2/27)))
(fma.f64 x (fma.f64 x -2/9 2/3) (*.f64 (pow.f64 x 3) (+.f64 2/27 (*.f64 x -2/81))))
2
(-.f64 2 (*.f64 6 (/.f64 1 x)))
(-.f64 2 (/.f64 6 x))
(+.f64 2 (/.f64 -6 x))
(-.f64 (+.f64 (*.f64 18 (/.f64 1 (pow.f64 x 2))) 2) (*.f64 6 (/.f64 1 x)))
(+.f64 (/.f64 18 (*.f64 x x)) (-.f64 2 (/.f64 6 x)))
(+.f64 (/.f64 18 (*.f64 x x)) (+.f64 2 (/.f64 -6 x)))
(+.f64 2 (+.f64 (/.f64 18 (*.f64 x x)) (/.f64 -6 x)))
(-.f64 (+.f64 (*.f64 18 (/.f64 1 (pow.f64 x 2))) 2) (+.f64 (*.f64 6 (/.f64 1 x)) (*.f64 54 (/.f64 1 (pow.f64 x 3)))))
(+.f64 (/.f64 18 (*.f64 x x)) (-.f64 2 (+.f64 (/.f64 6 x) (/.f64 54 (pow.f64 x 3)))))
(+.f64 (+.f64 2 (/.f64 18 (*.f64 x x))) (-.f64 (/.f64 -6 x) (/.f64 54 (pow.f64 x 3))))
(+.f64 (/.f64 18 (*.f64 x x)) (+.f64 (+.f64 2 (/.f64 -6 x)) (/.f64 -54 (pow.f64 x 3))))
(+.f64 2 (+.f64 (/.f64 -6 x) (-.f64 (/.f64 18 (*.f64 x x)) (/.f64 54 (pow.f64 x 3)))))
(+.f64 2 (+.f64 (/.f64 18 (*.f64 x x)) (-.f64 (/.f64 -6 x) (/.f64 54 (pow.f64 x 3)))))
(-.f64 (/.f64 -54 (pow.f64 x 3)) (+.f64 (/.f64 6 x) (+.f64 (/.f64 -18 (*.f64 x x)) -2)))
2
(-.f64 2 (*.f64 6 (/.f64 1 x)))
(-.f64 2 (/.f64 6 x))
(+.f64 2 (/.f64 -6 x))
(-.f64 (+.f64 (*.f64 18 (/.f64 1 (pow.f64 x 2))) 2) (*.f64 6 (/.f64 1 x)))
(+.f64 (/.f64 18 (*.f64 x x)) (-.f64 2 (/.f64 6 x)))
(+.f64 (/.f64 18 (*.f64 x x)) (+.f64 2 (/.f64 -6 x)))
(+.f64 2 (+.f64 (/.f64 18 (*.f64 x x)) (/.f64 -6 x)))
(-.f64 (+.f64 (*.f64 18 (/.f64 1 (pow.f64 x 2))) 2) (+.f64 (*.f64 6 (/.f64 1 x)) (*.f64 54 (/.f64 1 (pow.f64 x 3)))))
(+.f64 (/.f64 18 (*.f64 x x)) (-.f64 2 (+.f64 (/.f64 6 x) (/.f64 54 (pow.f64 x 3)))))
(+.f64 (+.f64 2 (/.f64 18 (*.f64 x x))) (-.f64 (/.f64 -6 x) (/.f64 54 (pow.f64 x 3))))
(+.f64 (/.f64 18 (*.f64 x x)) (+.f64 (+.f64 2 (/.f64 -6 x)) (/.f64 -54 (pow.f64 x 3))))
(+.f64 2 (+.f64 (/.f64 -6 x) (-.f64 (/.f64 18 (*.f64 x x)) (/.f64 54 (pow.f64 x 3)))))
(+.f64 2 (+.f64 (/.f64 18 (*.f64 x x)) (-.f64 (/.f64 -6 x) (/.f64 54 (pow.f64 x 3)))))
(-.f64 (/.f64 -54 (pow.f64 x 3)) (+.f64 (/.f64 6 x) (+.f64 (/.f64 -18 (*.f64 x x)) -2)))

localize4.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (sin.f64 (*.f64 x 1/2)) 3/4)
0.1b
(/.f64 (sin.f64 (*.f64 x 1/2)) 3/4)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite37.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
079
11489
216709
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(/.f64 (sin.f64 (*.f64 x 1/2)) 3/4)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 (*.f64 x 1/2)) 4/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 x 1/2))) 2) (*.f64 (cbrt.f64 (sin.f64 (*.f64 x 1/2))) 4/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)) 2) (cbrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) (*.f64 (sqrt.f64 (sin.f64 (*.f64 x 1/2))) 4/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)) (sqrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 (*.f64 x 1/2))) -4/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4/3 (sin.f64 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 3/4 (sin.f64 (*.f64 x 1/2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) -3/4))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 16/9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)))))))

simplify119.0ms (1.6%)

Algorithm
egg-herbie
Rules
708×sqr-pow_binary64
672×cube-prod_binary64
624×unswap-sqr_binary64
623×fabs-mul_binary64
437×fma-def_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
027130
165130
2136130
3331130
4613130
51319130
61945130
72894130
83047130
93293130
103612130
114093130
124772130
135666130
146312130
156823130
167224130
177601130
187819130
Stop Event
node limit
Counts
35 → 31
Calls
Call 1
Inputs
(*.f64 2/3 x)
(+.f64 (*.f64 -1/36 (pow.f64 x 3)) (*.f64 2/3 x))
(+.f64 (*.f64 -1/36 (pow.f64 x 3)) (+.f64 (*.f64 1/2880 (pow.f64 x 5)) (*.f64 2/3 x)))
(+.f64 (*.f64 -1/36 (pow.f64 x 3)) (+.f64 (*.f64 1/2880 (pow.f64 x 5)) (+.f64 (*.f64 2/3 x) (*.f64 -1/483840 (pow.f64 x 7)))))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
Outputs
(*.f64 2/3 x)
(+.f64 (*.f64 -1/36 (pow.f64 x 3)) (*.f64 2/3 x))
(fma.f64 -1/36 (pow.f64 x 3) (*.f64 2/3 x))
(*.f64 x (fma.f64 x (*.f64 x -1/36) 2/3))
(*.f64 x (fma.f64 -1/36 (*.f64 x x) 2/3))
(+.f64 (*.f64 -1/36 (pow.f64 x 3)) (+.f64 (*.f64 1/2880 (pow.f64 x 5)) (*.f64 2/3 x)))
(fma.f64 -1/36 (pow.f64 x 3) (fma.f64 1/2880 (pow.f64 x 5) (*.f64 2/3 x)))
(fma.f64 -1/36 (pow.f64 x 3) (fma.f64 2/3 x (*.f64 1/2880 (pow.f64 x 5))))
(fma.f64 2/3 x (fma.f64 -1/36 (pow.f64 x 3) (*.f64 1/2880 (pow.f64 x 5))))
(fma.f64 x (fma.f64 x (*.f64 x -1/36) 2/3) (*.f64 1/2880 (pow.f64 x 5)))
(fma.f64 2/3 x (fma.f64 1/2880 (pow.f64 x 5) (*.f64 -1/36 (pow.f64 x 3))))
(+.f64 (*.f64 -1/36 (pow.f64 x 3)) (+.f64 (*.f64 1/2880 (pow.f64 x 5)) (+.f64 (*.f64 2/3 x) (*.f64 -1/483840 (pow.f64 x 7)))))
(fma.f64 -1/36 (pow.f64 x 3) (fma.f64 1/2880 (pow.f64 x 5) (fma.f64 2/3 x (*.f64 -1/483840 (pow.f64 x 7)))))
(fma.f64 -1/36 (pow.f64 x 3) (fma.f64 2/3 x (fma.f64 1/2880 (pow.f64 x 5) (*.f64 -1/483840 (pow.f64 x 7)))))
(fma.f64 x (fma.f64 x (*.f64 x -1/36) 2/3) (fma.f64 1/2880 (pow.f64 x 5) (*.f64 -1/483840 (pow.f64 x 7))))
(fma.f64 2/3 x (fma.f64 -1/36 (pow.f64 x 3) (fma.f64 1/2880 (pow.f64 x 5) (*.f64 -1/483840 (pow.f64 x 7)))))
(fma.f64 x (fma.f64 -1/36 (*.f64 x x) 2/3) (fma.f64 1/2880 (pow.f64 x 5) (*.f64 -1/483840 (pow.f64 x 7))))
(fma.f64 2/3 x (fma.f64 -1/483840 (pow.f64 x 7) (fma.f64 1/2880 (pow.f64 x 5) (*.f64 -1/36 (pow.f64 x 3)))))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 x 1/2)))
(*.f64 4/3 (sin.f64 (*.f64 1/2 x)))
(*.f64 4/3 (sin.f64 (*.f64 x 1/2)))

localize9.0ms (0.1%)

Local error

Found 8 expressions with local error:

NewErrorProgram
1.7b
(-.f64 1/2 (*.f64 1/2 (cos.f64 x)))
0.4b
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 8/3 (/.f64 1 (sin.f64 x))))
0.4b
(*.f64 8/3 (/.f64 1 (sin.f64 x)))
0.1b
(/.f64 1 (sin.f64 x))
0.1b
(/.f64 1 (sin.f64 x))
0.4b
(*.f64 8/3 (/.f64 1 (sin.f64 x)))
0.4b
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 8/3 (/.f64 1 (sin.f64 x))))
1.7b
(-.f64 1/2 (*.f64 1/2 (cos.f64 x)))

series3.0ms (0%)

Counts
3 → 28
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 8/3 (/.f64 1 (sin.f64 x))))
0.0ms
x
@0
(/.f64 1 (sin.f64 x))
0.0ms
x
@inf
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 8/3 (/.f64 1 (sin.f64 x))))
0.0ms
x
@-inf
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 8/3 (/.f64 1 (sin.f64 x))))
0.0ms
x
@0
(*.f64 8/3 (/.f64 1 (sin.f64 x)))

rewrite59.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
576×log-prod_binary64
322×pow-prod-down_binary64
313×pow2_binary64
219×expm1-udef_binary64
219×log1p-udef_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01229
125829
2313127
Stop Event
node limit
Counts
3 → 100
Calls
Call 1
Inputs
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 8/3 (/.f64 1 (sin.f64 x))))
(*.f64 8/3 (/.f64 1 (sin.f64 x)))
(/.f64 1 (sin.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (/.f64 8/3 (sin.f64 x))) (*.f64 (*.f64 (cos.f64 x) -1/2) (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) 1/2) (*.f64 (/.f64 8/3 (sin.f64 x)) (*.f64 (cos.f64 x) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (fma.f64 (cos.f64 x) -1/2 1/2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (fma.f64 (cos.f64 x) -1/2 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (fma.f64 (cos.f64 x) -1/2 1/2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (fma.f64 (cos.f64 x) -1/2 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 8/3) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/8 (*.f64 1/8 (pow.f64 (cos.f64 x) 3))) 8/3) (*.f64 (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2))) 8/3) (*.f64 (fma.f64 1/2 (cos.f64 x) 1/2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 8/3 (-.f64 1/8 (*.f64 1/8 (pow.f64 (cos.f64 x) 3)))) (*.f64 (sin.f64 x) (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 8/3 (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2)))) (*.f64 (sin.f64 x) (fma.f64 1/2 (cos.f64 x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/8 (*.f64 1/8 (pow.f64 (cos.f64 x) 3))) (/.f64 8/3 (sin.f64 x))) (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2))) (/.f64 8/3 (sin.f64 x))) (fma.f64 1/2 (cos.f64 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/8 (*.f64 1/8 (pow.f64 (cos.f64 x) 3)))) (fma.f64 (*.f64 1/2 (cos.f64 x)) (fma.f64 1/2 (cos.f64 x) 1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 8/3 (sin.f64 x)) (-.f64 1/4 (*.f64 1/4 (pow.f64 (cos.f64 x) 2)))) (fma.f64 1/2 (cos.f64 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 8/3) 1) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) 8/3) -1) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))) (fma.f64 (cos.f64 x) -1/2 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (/.f64 8/3 (sin.f64 x)) (*.f64 (*.f64 (cos.f64 x) -1/2) (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 8/3 (sin.f64 x)) 1/2 (*.f64 (/.f64 8/3 (sin.f64 x)) (*.f64 (cos.f64 x) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 (cos.f64 x) -1/2 1/2) (/.f64 8/3 (sin.f64 x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 8/3 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 8/3 (sin.f64 x)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 8/3 (sin.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8/3 (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sin.f64 x) 8/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -8/3 (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 8/3 (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (cbrt.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 8/3 (sqrt.f64 (sin.f64 x))) (sqrt.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 8/3 (sin.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (sin.f64 x) -2) 64/9) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 8/3 (sin.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 8/3 (sin.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sin.f64 x) 8/3) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (sin.f64 x) -2) 64/9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 8/3 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 8/3 (sin.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 8/3 (sin.f64 x)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 8/3 (sin.f64 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 8/3 (sin.f64 x))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 8/3 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 8/3 (sin.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 1 (sin.f64 x)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 1 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (sin.f64 x))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1 (sin.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sin.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (sin.f64 x))) (cbrt.f64 (pow.f64 (sin.f64 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (sin.f64 x) -2)) (/.f64 1 (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sin.f64 x) -1/2) (pow.f64 (sin.f64 x) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) -2) (/.f64 1 (cbrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sin.f64 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (sin.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sin.f64 x) 2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sin.f64 x) 3) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sin.f64 x) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sin.f64 x) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sin.f64 x)) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (sin.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (sin.f64 x)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sin.f64 x) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (neg.f64 (sin.f64 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (sin.f64 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (sin.f64 x) -3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sin.f64 x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (sin.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (sin.f64 x) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (cbrt.f64 (sin.f64 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 -1/2 (log.f64 (sin.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sin.f64 x)) 1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sin.f64 x)) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (neg.f64 (log.f64 (sin.f64 x))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (sin.f64 x))))))))

simplify74.0ms (1%)

Algorithm
egg-herbie
Rules
866×fma-neg_binary64
763×fma-def_binary64
603×associate-*l*_binary64
399×associate-*r*_binary64
231×distribute-rgt-in_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
056340
1146340
2352316
3904300
41666300
53303276
64069276
74719276
85680276
96790276
Stop Event
node limit
Counts
128 → 123
Calls
Call 1
Inputs
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(/.f64 8/3 x)
(+.f64 (*.f64 4/9 x) (*.f64 8/3 (/.f64 1 x)))
(+.f64 (*.f64 4/9 x) (+.f64 (*.f64 7/135 (pow.f64 x 3)) (*.f64 8/3 (/.f64 1 x))))
(+.f64 (*.f64 4/9 x) (+.f64 (*.f64 31/5670 (pow.f64 x 5)) (+.f64 (*.f64 7/135 (pow.f64 x 3)) (*.f64 8/3 (/.f64 1 x)))))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 1 x)
(+.f64 (*.f64 1/6 x) (/.f64 1 x))
(+.f64 (*.f64 1/6 x) (+.f64 (*.f64 7/360 (pow.f64 x 3)) (/.f64 1 x)))
(+.f64 (*.f64 1/6 x) (+.f64 (*.f64 31/15120 (pow.f64 x 5)) (+.f64 (*.f64 7/360 (pow.f64 x 3)) (/.f64 1 x))))
Outputs
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(fma.f64 1/18 (pow.f64 x 3) (*.f64 2/3 x))
(fma.f64 2/3 x (*.f64 1/18 (pow.f64 x 3)))
(*.f64 x (fma.f64 x (*.f64 x 1/18) 2/3))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 2/3 x)))
(fma.f64 2/3 x (fma.f64 1/18 (pow.f64 x 3) (*.f64 1/180 (pow.f64 x 5))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 1/180 (pow.f64 x 5) (*.f64 2/3 x))))
(fma.f64 17/30240 (pow.f64 x 7) (fma.f64 2/3 x (fma.f64 1/18 (pow.f64 x 3) (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 x (fma.f64 x (*.f64 x 1/18) 2/3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 17/30240 (pow.f64 x 7))))
(fma.f64 1/180 (pow.f64 x 5) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 2/3 x (*.f64 1/18 (pow.f64 x 3)))))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 4/3 (tan.f64 (/.f64 x 2)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 4/3 (tan.f64 (/.f64 x 2)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 4/3 (tan.f64 (/.f64 x 2)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 4/3 (tan.f64 (/.f64 x 2)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 4/3 (tan.f64 (/.f64 x 2)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 4/3 (tan.f64 (/.f64 x 2)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 4/3 (tan.f64 (/.f64 x 2)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (+.f64 1/2 (*.f64 (cos.f64 x) -1/2)) (sin.f64 x)))
(/.f64 (+.f64 4/3 (*.f64 (cos.f64 x) -4/3)) (sin.f64 x))
(/.f64 (fma.f64 (cos.f64 x) -4/3 4/3) (sin.f64 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(*.f64 4/3 (tan.f64 (/.f64 x 2)))
(/.f64 8/3 x)
(+.f64 (*.f64 4/9 x) (*.f64 8/3 (/.f64 1 x)))
(fma.f64 4/9 x (/.f64 8/3 x))
(fma.f64 x 4/9 (/.f64 8/3 x))
(+.f64 (*.f64 4/9 x) (+.f64 (*.f64 7/135 (pow.f64 x 3)) (*.f64 8/3 (/.f64 1 x))))
(fma.f64 4/9 x (fma.f64 7/135 (pow.f64 x 3) (/.f64 8/3 x)))
(fma.f64 x 4/9 (fma.f64 (pow.f64 x 3) 7/135 (/.f64 8/3 x)))
(+.f64 (*.f64 4/9 x) (+.f64 (*.f64 31/5670 (pow.f64 x 5)) (+.f64 (*.f64 7/135 (pow.f64 x 3)) (*.f64 8/3 (/.f64 1 x)))))
(fma.f64 4/9 x (fma.f64 31/5670 (pow.f64 x 5) (fma.f64 7/135 (pow.f64 x 3) (/.f64 8/3 x))))
(fma.f64 x 4/9 (fma.f64 (pow.f64 x 5) 31/5670 (fma.f64 (pow.f64 x 3) 7/135 (/.f64 8/3 x))))
(fma.f64 x (fma.f64 x (*.f64 x 7/135) 4/9) (fma.f64 (pow.f64 x 5) 31/5670 (/.f64 8/3 x)))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 8/3 (sin.f64 x))
(/.f64 1 x)
(+.f64 (*.f64 1/6 x) (/.f64 1 x))
(fma.f64 1/6 x (/.f64 1 x))
(fma.f64 x 1/6 (/.f64 1 x))
(+.f64 (*.f64 1/6 x) (+.f64 (*.f64 7/360 (pow.f64 x 3)) (/.f64 1 x)))
(fma.f64 1/6 x (fma.f64 7/360 (pow.f64 x 3) (/.f64 1 x)))
(fma.f64 x 1/6 (fma.f64 (pow.f64 x 3) 7/360 (/.f64 1 x)))
(+.f64 (*.f64 1/6 x) (+.f64 (*.f64 31/15120 (pow.f64 x 5)) (+.f64 (*.f64 7/360 (pow.f64 x 3)) (/.f64 1 x))))
(fma.f64 1/6 x (fma.f64 31/15120 (pow.f64 x 5) (fma.f64 7/360 (pow.f64 x 3) (/.f64 1 x))))
(fma.f64 x 1/6 (fma.f64 (pow.f64 x 5) 31/15120 (fma.f64 (pow.f64 x 3) 7/360 (/.f64 1 x))))
(fma.f64 x 1/6 (fma.f64 (pow.f64 x 3) 7/360 (fma.f64 (pow.f64 x 5) 31/15120 (/.f64 1 x))))
(fma.f64 (pow.f64 x 5) 31/15120 (fma.f64 x 1/6 (fma.f64 (pow.f64 x 3) 7/360 (/.f64 1 x))))

localize8.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
21.2b
(/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 (sin.f64 x) 3/8))
0.2b
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)
0.1b
(*.f64 (sin.f64 x) 3/8)
0.1b
(*.f64 (sin.f64 x) 3/8)
0.2b
(pow.f64 (sin.f64 (*.f64 x 1/2)) 2)
21.2b
(/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 (sin.f64 x) 3/8))

series9.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
6.0ms
x
@-inf
(*.f64 (sin.f64 x) 3/8)
1.0ms
x
@0
(/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 (sin.f64 x) 3/8))
0.0ms
x
@inf
(*.f64 (sin.f64 x) 3/8)
0.0ms
x
@0
(*.f64 (sin.f64 x) 3/8)
0.0ms
x
@-inf
(/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 (sin.f64 x) 3/8))

rewrite55.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
516×log-prod_binary64
407×exp-prod_binary64
277×pow2_binary64
252×pow-prod-down_binary64
194×expm1-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify101.0ms (1.4%)

Algorithm
egg-herbie
Rules
874×fma-def_binary64
851×associate-/r*_binary64
625×sqr-pow_binary64
599×associate-*l*_binary64
371×associate-*r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044300
1107300
2251300
3666300
41269300
52889300
64509300
75125300
85626300
96068300
106511300
117108300
Stop Event
node limit
Counts
105 → 100
Calls
Call 1
Inputs
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 3/8 x)
(+.f64 (*.f64 -1/16 (pow.f64 x 3)) (*.f64 3/8 x))
(+.f64 (*.f64 1/320 (pow.f64 x 5)) (+.f64 (*.f64 -1/16 (pow.f64 x 3)) (*.f64 3/8 x)))
(+.f64 (*.f64 1/320 (pow.f64 x 5)) (+.f64 (*.f64 -1/16 (pow.f64 x 3)) (+.f64 (*.f64 -1/13440 (pow.f64 x 7)) (*.f64 3/8 x))))
(*.f64 3/8 (sin.f64 x))
(*.f64 3/8 (sin.f64 x))
(*.f64 3/8 (sin.f64 x))
(*.f64 3/8 (sin.f64 x))
(*.f64 3/8 (sin.f64 x))
(*.f64 3/8 (sin.f64 x))
(*.f64 3/8 (sin.f64 x))
(*.f64 3/8 (sin.f64 x))
Outputs
(*.f64 2/3 x)
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (*.f64 2/3 x))
(fma.f64 1/18 (pow.f64 x 3) (*.f64 2/3 x))
(*.f64 x (fma.f64 x (*.f64 x 1/18) 2/3))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 2/3 x)))
(fma.f64 2/3 x (fma.f64 1/18 (pow.f64 x 3) (*.f64 1/180 (pow.f64 x 5))))
(fma.f64 x (fma.f64 x (*.f64 x 1/18) 2/3) (*.f64 1/180 (pow.f64 x 5)))
(fma.f64 2/3 x (fma.f64 1/180 (pow.f64 x 5) (*.f64 1/18 (pow.f64 x 3))))
(+.f64 (*.f64 1/18 (pow.f64 x 3)) (+.f64 (*.f64 17/30240 (pow.f64 x 7)) (+.f64 (*.f64 2/3 x) (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 2/3 x (*.f64 1/180 (pow.f64 x 5)))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 17/30240 (pow.f64 x 7) (fma.f64 1/180 (pow.f64 x 5) (*.f64 2/3 x))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (fma.f64 2/3 x (*.f64 17/30240 (pow.f64 x 7)))))
(fma.f64 x (fma.f64 x (*.f64 x 1/18) 2/3) (fma.f64 1/180 (pow.f64 x 5) (*.f64 17/30240 (pow.f64 x 7))))
(fma.f64 1/18 (pow.f64 x 3) (fma.f64 1/180 (pow.f64 x 5) (fma.f64 17/30240 (pow.f64 x 7) (*.f64 2/3 x))))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (sin.f64 x)))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (/.f64 8/3 (sin.f64 x)))
(*.f64 3/8 x)
(*.f64 x 3/8)
(+.f64 (*.f64 -1/16 (pow.f64 x 3)) (*.f64 3/8 x))
(fma.f64 -1/16 (pow.f64 x 3) (*.f64 x 3/8))
(fma.f64 (pow.f64 x 3) -1/16 (*.f64 x 3/8))
(*.f64 x (fma.f64 -1/16 (*.f64 x x) 3/8))
(*.f64 x (fma.f64 x (*.f64 x -1/16) 3/8))
(+.f64 (*.f64 1/320 (pow.f64 x 5)) (+.f64 (*.f64 -1/16 (pow.f64 x 3)) (*.f64 3/8 x)))
(fma.f64 1/320 (pow.f64 x 5) (fma.f64 -1/16 (pow.f64 x 3) (*.f64 x 3/8)))
(fma.f64 (pow.f64 x 5) 1/320 (fma.f64 (pow.f64 x 3) -1/16 (*.f64 x 3/8)))
(fma.f64 (pow.f64 x 3) -1/16 (fma.f64 (pow.f64 x 5) 1/320 (*.f64 x 3/8)))
(fma.f64 x (fma.f64 -1/16 (*.f64 x x) 3/8) (*.f64 (pow.f64 x 5) 1/320))
(fma.f64 x (fma.f64 x (*.f64 x -1/16) 3/8) (*.f64 (pow.f64 x 5) 1/320))
(fma.f64 x 3/8 (fma.f64 (pow.f64 x 3) -1/16 (*.f64 (pow.f64 x 5) 1/320)))
(+.f64 (*.f64 1/320 (pow.f64 x 5)) (+.f64 (*.f64 -1/16 (pow.f64 x 3)) (+.f64 (*.f64 -1/13440 (pow.f64 x 7)) (*.f64 3/8 x))))
(fma.f64 1/320 (pow.f64 x 5) (fma.f64 -1/16 (pow.f64 x 3) (fma.f64 -1/13440 (pow.f64 x 7) (*.f64 x 3/8))))
(fma.f64 (pow.f64 x 5) 1/320 (fma.f64 (pow.f64 x 3) -1/16 (fma.f64 (pow.f64 x 7) -1/13440 (*.f64 x 3/8))))
(fma.f64 (pow.f64 x 3) -1/16 (fma.f64 (pow.f64 x 5) 1/320 (fma.f64 (pow.f64 x 7) -1/13440 (*.f64 x 3/8))))
(fma.f64 x 3/8 (fma.f64 (pow.f64 x 3) -1/16 (fma.f64 (pow.f64 x 5) 1/320 (*.f64 (pow.f64 x 7) -1/13440))))
(fma.f64 x (fma.f64 x (*.f64 x -1/16) 3/8) (fma.f64 (pow.f64 x 5) 1/320 (*.f64 (pow.f64 x 7) -1/13440)))
(*.f64 3/8 (sin.f64 x))
(*.f64 (sin.f64 x) 3/8)
(*.f64 3/8 (sin.f64 x))
(*.f64 (sin.f64 x) 3/8)
(*.f64 3/8 (sin.f64 x))
(*.f64 (sin.f64 x) 3/8)
(*.f64 3/8 (sin.f64 x))
(*.f64 (sin.f64 x) 3/8)
(*.f64 3/8 (sin.f64 x))
(*.f64 (sin.f64 x) 3/8)
(*.f64 3/8 (sin.f64 x))
(*.f64 (sin.f64 x) 3/8)
(*.f64 3/8 (sin.f64 x))
(*.f64 (sin.f64 x) 3/8)
(*.f64 3/8 (sin.f64 x))
(*.f64 (sin.f64 x) 3/8)

eval183.0ms (2.5%)

Compiler

Compiled 7645 to 5795 computations (24.2% saved)

prune69.0ms (0.9%)

Pruning

15 alts after pruning (11 fresh and 4 done)

PrunedKeptTotal
New4878495
Fresh639
Picked011
Done336
Total49615511
Error
0b
Counts
511 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
61.0b
(/.f64 (-.f64 1 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
35.7b
(/.f64 8/3 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))
35.7b
(*.f64 (/.f64 1 (sin.f64 x)) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 3/8))
21.2b
(/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 (sin.f64 x) 3/8))
0.4b
(/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3) (cos.f64 (*.f64 x 1/2)))
35.7b
(/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))
26.0b
(cbrt.f64 (pow.f64 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3) 3))
25.9b
(*.f64 2/3 x)
61.1b
(/.f64 (*.f64 x (*.f64 x 4/9)) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
35.3b
(-.f64 (+.f64 1 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3)) 1)
0.3b
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
25.2b
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))) 1))
60.7b
(+.f64 2 (/.f64 -6 x))
23.2b
(/.f64 (sin.f64 (*.f64 x 1/2)) 3/4)
60.0b
2
Compiler

Compiled 165 to 141 computations (14.5% saved)

regimes141.0ms (1.9%)

Counts
76 → 1
Calls
Call 1
Inputs
2
(*.f64 2/3 x)
(+.f64 2 (/.f64 -6 x))
(/.f64 (-.f64 1 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(/.f64 (*.f64 x (*.f64 x 4/9)) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))) 1))
(fabs.f64 (*.f64 2/3 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(/.f64 (sin.f64 (*.f64 x 1/2)) 3/4)
(sqrt.f64 (*.f64 (*.f64 x x) 4/9))
(*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)
(*.f64 x (fma.f64 1/18 (*.f64 x x) 2/3))
(*.f64 x (fma.f64 x (*.f64 x 1/18) 2/3))
(/.f64 (*.f64 2/3 (*.f64 x x)) (sin.f64 x))
(-.f64 (+.f64 1 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3)) 1)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (*.f64 2/3 x)) 3) 1) (+.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) (+.f64 1 (*.f64 (+.f64 1 (*.f64 2/3 x)) 1))))
(expm1.f64 (log1p.f64 (*.f64 2/3 x)))
(cbrt.f64 (*.f64 (pow.f64 x 3) 8/27))
(pow.f64 (sqrt.f64 (*.f64 2/3 x)) 2)
(pow.f64 (cbrt.f64 (*.f64 2/3 x)) 3)
(pow.f64 (*.f64 (pow.f64 x 3) 8/27) 1/3)
(*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) x)
(/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 x 3/8))
(/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3) (cos.f64 (*.f64 x 1/2)))
(/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))
(/.f64 8/3 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))
(/.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (sin.f64 x))
(/.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (sin.f64 x))
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 (/.f64 1 (sin.f64 x)) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 3/8))
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 8/3 (/.f64 1 (sin.f64 x))))
(*.f64 1 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)))
(*.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (/.f64 1 (sin.f64 x)))
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 1 (*.f64 (sin.f64 x) 3/8)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 x 3/8)))
(neg.f64 (/.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (neg.f64 (sin.f64 x))))
(*.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (/.f64 1 (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)))
(*.f64 8/3 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 1 (sin.f64 x))))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (/.f64 1 x) 8/3)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (+.f64 (*.f64 4/9 x) (*.f64 8/3 (/.f64 1 x)))))
(cbrt.f64 (pow.f64 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3) 3))
(pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 x))) 2)
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) (sin.f64 x))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 (sin.f64 x) 3/8))
(pow.f64 (*.f64 3/8 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) -1)
(*.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3))
(/.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3))
(/.f64 8/3 (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))))
(*.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (/.f64 (sin.f64 (*.f64 1/2 x)) (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 x) 3/8)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))
(+.f64 (*.f64 1/2 (/.f64 8/3 (sin.f64 x))) (*.f64 (*.f64 (cos.f64 x) -1/2) (/.f64 8/3 (sin.f64 x))))
(/.f64 1 (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) (*.f64 8/3 (sin.f64 (*.f64 x 1/2)))))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 1 (/.f64 (sin.f64 x) (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3))))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (/.f64 1 (sin.f64 x)) 8/3)))
(*.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 1 (sin.f64 x))))
(*.f64 (*.f64 8/3 (sin.f64 (*.f64 x 1/2))) (/.f64 1 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2)))))
(/.f64 (*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))
(/.f64 (pow.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) 2) (sin.f64 x))
(pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 2)
(/.f64 (log1p.f64 (expm1.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3))) (sin.f64 x))
(/.f64 (log1p.f64 (expm1.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))) (sin.f64 x))
(cbrt.f64 (pow.f64 (*.f64 3/8 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) -3))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (pow.f64 (*.f64 (sin.f64 x) 3/8) -1)))
(cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 (sin.f64 x)))) 6))
(*.f64 (sin.f64 (*.f64 x 1/2)) (expm1.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x))))))
(*.f64 (sin.f64 (*.f64 x 1/2)) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 (sin.f64 x)))) 3))
(*.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (*.f64 (*.f64 (sqrt.f64 8/3) (sin.f64 (*.f64 x 1/2))) (/.f64 1 (sin.f64 x))))
Outputs
(/.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3))
Calls

3 calls:

48.0ms
x
35.0ms
(/.f64 (*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))
32.0ms
(/.f64 (*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))
Results
ErrorSegmentsBranch
0.2b1x
0.2b1(/.f64 (*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))
0.2b1(/.f64 (*.f64 (*.f64 (/.f64 8 3) (sin.f64 (*.f64 x 1/2))) (sin.f64 (*.f64 x 1/2))) (sin.f64 x))
Compiler

Compiled 955 to 716 computations (25% saved)

regimes52.0ms (0.7%)

Counts
54 → 1
Calls
Call 1
Inputs
2
(*.f64 2/3 x)
(+.f64 2 (/.f64 -6 x))
(/.f64 (-.f64 1 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(/.f64 (*.f64 x (*.f64 x 4/9)) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))) 1))
(fabs.f64 (*.f64 2/3 x))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(/.f64 (sin.f64 (*.f64 x 1/2)) 3/4)
(sqrt.f64 (*.f64 (*.f64 x x) 4/9))
(*.f64 (sin.f64 (*.f64 x 1/2)) 4/3)
(*.f64 x (fma.f64 1/18 (*.f64 x x) 2/3))
(*.f64 x (fma.f64 x (*.f64 x 1/18) 2/3))
(/.f64 (*.f64 2/3 (*.f64 x x)) (sin.f64 x))
(-.f64 (+.f64 1 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3)) 1)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (*.f64 2/3 x)) 3) 1) (+.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) (+.f64 1 (*.f64 (+.f64 1 (*.f64 2/3 x)) 1))))
(expm1.f64 (log1p.f64 (*.f64 2/3 x)))
(cbrt.f64 (*.f64 (pow.f64 x 3) 8/27))
(pow.f64 (sqrt.f64 (*.f64 2/3 x)) 2)
(pow.f64 (cbrt.f64 (*.f64 2/3 x)) 3)
(pow.f64 (*.f64 (pow.f64 x 3) 8/27) 1/3)
(*.f64 (/.f64 8/3 x) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) x)
(/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 x 3/8))
(/.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) 4/3) (cos.f64 (*.f64 x 1/2)))
(/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8))
(/.f64 8/3 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))))
(/.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (sin.f64 x))
(/.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (sin.f64 x))
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 8/3 (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 8/3 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (sin.f64 x)))
(*.f64 (/.f64 1 (sin.f64 x)) (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 3/8))
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 8/3 (/.f64 1 (sin.f64 x))))
(*.f64 1 (/.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (*.f64 (sin.f64 x) 3/8)))
(*.f64 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) 8/3) (/.f64 1 (sin.f64 x)))
(*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 1 (*.f64 (sin.f64 x) 3/8)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 x 3/8)))
(neg.f64 (/.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (neg.f64 (sin.f64 x))))
(*.f64 (*.f64 8/3 (-.f64 1/2 (*.f64 1/2 (cos.f64 x)))) (/.f64 1 (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 8/3 x)))
(*.f64 8/3 (*.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 x))) (/.f64 1 (sin.f64 x))))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (/.f64 1 x) 8/3)))
(*.f64 (sin.f64 (*.f64 x 1/2)) (*.f64 (sin.f64 (*.f64 x 1/2)) (+.f64 (*.f64 4/9 x) (*.f64 8/3 (/.f64 1 x)))))
(cbrt.f64 (pow.f64 (*.f64 (tan.f64 (*.f64 x 1/2)) 4/3) 3))
(pow.f64 (*.f64 (sin.f64 (*.f64 x 1/2)) (sqrt.f64 (/.f64 8/3 x))) 2)
(*.f64 8/3 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 x)) 2) (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) 8/3) (sin.f64 x))
(*.f64 (/.f64 8/3 (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x 1/2)) 2))
(/.f64 (pow.f64 (sin.f64 (*.f64 x 1/2)) 2) (*.f64 (sin.f64 x) 3/8))
(pow.f64 (*.f64 3/8 (/.f64 (sin.f64 x) (-.f64 1/2 (*.f64 1/2 (cos.f64 x))))) -1)
(*.f64 (/.f64 (sin.f64 (*.f64 x 1/2)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 x 1/2)) 8/3))
Outputs
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
Calls

1 calls:

34.0ms
x
Results
ErrorSegmentsBranch
0.3b1x
Compiler

Compiled 593 to 447 computations (24.6% saved)

regimes10.0ms (0.1%)

Counts
9 → 1
Calls
Call 1
Inputs
2
(*.f64 2/3 x)
(+.f64 2 (/.f64 -6 x))
(/.f64 (-.f64 1 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(/.f64 (*.f64 x (*.f64 x 4/9)) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (/.f64 (-.f64 (*.f64 (+.f64 1 (*.f64 2/3 x)) (+.f64 1 (*.f64 2/3 x))) 1) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))) 1))
(fabs.f64 (*.f64 2/3 x))
Outputs
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
Calls

1 calls:

7.0ms
x
Results
ErrorSegmentsBranch
24.3b1x
Compiler

Compiled 101 to 84 computations (16.8% saved)

regimes8.0ms (0.1%)

Accuracy

Total -38.2b remaining (-154.6%)

Threshold costs -38.2b (-154.6%)

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

1 calls:

7.0ms
x
Results
ErrorSegmentsBranch
24.7b2x
Compiler

Compiled 23 to 19 computations (17.4% saved)

bsearch53.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
52.0ms
5.878279198007264e-13
827229744342845.3
Compiler

Compiled 21 to 17 computations (19% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02659
13459
Stop Event
saturated
Calls
Call 1
Inputs
(/.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(if (<=.f64 x 46572525960393896/79228162514264337593543950336) (*.f64 2/3 x) 2)
2
Outputs
(/.f64 (sin.f64 (*.f64 x 1/2)) (/.f64 (/.f64 (sin.f64 x) (sin.f64 (*.f64 x 1/2))) 8/3))
(*.f64 (tan.f64 (/.f64 x 2)) 4/3)
(/.f64 (*.f64 x 4/3) (+.f64 (+.f64 1 (*.f64 2/3 x)) 1))
(/.f64 (*.f64 x 4/3) (+.f64 1 (+.f64 1 (*.f64 x 2/3))))
(if (<=.f64 x 46572525960393896/79228162514264337593543950336) (*.f64 2/3 x) 2)
(if (<=.f64 x 5821565745049237/9903520314283042199192993792) (*.f64 x 2/3) 2)
2

end44.0ms (0.6%)

Stop Event
fuel
Compiler

Compiled 86 to 70 computations (18.6% saved)

Profiling

Loading profile data...