Details

Time bar (total: 19.5s)

analyze1.7s (8.7%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.7%0.3%0
0%99.7%0.3%1
0%99.7%0.3%2
0%99.7%0.3%3
0%99.7%0.3%4
0%99.7%0.3%5
0%99.7%0.3%6
0%99.7%0.3%7
0%74.8%25.2%8
0%74.8%25.2%9
0%74.8%25.2%10
0%74.8%25.2%11
0%74.8%25.2%12
24.9%49.9%25.2%13
24.9%37.4%37.7%14
Compiler

Compiled 26 to 20 computations (23.1% saved)

sample113.0ms (0.6%)

Algorithm
intervals
Results
29.0ms58×body1024valid
17.0ms22×body2048valid
14.0ms133×body128valid
9.0ms31×body512valid
6.0ms63×body128nan
5.0ms35×body128invalid
2.0ms12×body256valid
Compiler

Compiled 57 to 45 computations (21.1% saved)

simplify68.0ms (0.3%)

Algorithm
egg-herbie
Rules
718×fma-def_binary64
437×fma-neg_binary64
146×cancel-sign-sub-inv_binary64
110×distribute-rgt-neg-in_binary64
104×associate-/l*_binary64
Counts
1 → 2
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01929
13429
26429
311427
420925
532225
649425
764425
881025
997925
10119725
11129725
12130825
13132425
14132425
15121325

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
19.9b
Counts
3 → 2
Alt Table
StatusErrorProgram
20.4b
(fma.f64 a (/.f64 -1/3 b) (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (fma.f64 z (*.f64 t -1/3) y))))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))) (/.f64 a (*.f64 b 3)))
Compiler

Compiled 138 to 101 computations (26.8% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 a (*.f64 b 3))
0.2b
(/.f64 (*.f64 z t) 3)
0.3b
(*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))))
22.3b
(cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))

series71.0ms (0.4%)

Counts
4 → 120
Calls

4 calls:

46.0ms
(*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))))
11.0ms
(cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))
7.0ms
(/.f64 a (*.f64 b 3))
6.0ms
(/.f64 (*.f64 z t) 3)

rewrite30.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
29×cos-sum_binary64
24×*-un-lft-identity_binary64
24×add-sqr-sqrt_binary64
24×add-cube-cbrt_binary64
21×prod-diff_binary64
Counts
4 → 107
Calls

4 calls:

9.0ms
(*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))))
7.0ms
(cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))
3.0ms
(/.f64 (*.f64 z t) 3)
3.0ms
(/.f64 a (*.f64 b 3))

simplify172.0ms (0.9%)

Algorithm
egg-herbie
Rules
544×fma-def_binary64
441×cancel-sign-sub-inv_binary64
355×times-frac_binary64
315×fma-neg_binary64
307×associate-*l*_binary64
Counts
227 → 197
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
04295768
18454618
225064006
347133886
449833886
548423886

prune576.0ms (3%)

Pruning

27 alts after pruning (27 fresh and 0 done)

PrunedKeptTotal
New17126197
Fresh011
Picked101
Done000
Total17227199
Error
12.7b
Counts
199 → 27
Alt Table
StatusErrorProgram
20.1b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (*.f64 (/.f64 z (sqrt.f64 3)) (/.f64 t (sqrt.f64 3)))))) (/.f64 a (*.f64 b 3)))
20.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (log.f64 (exp.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
20.4b
(fma.f64 a (/.f64 -1/3 b) (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (fma.f64 z (*.f64 t -1/3) y))))
31.7b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (*.f64 1/3 (*.f64 t z)))) (/.f64 a (*.f64 b 3)))
26.0b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (cbrt.f64 (/.f64 (*.f64 (*.f64 (*.f64 z t) (*.f64 z t)) (*.f64 z t)) (*.f64 (*.f64 3 3) 3)))))) (/.f64 a (*.f64 b 3)))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 y) (cos.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3))))) (*.f64 (sin.f64 y) (sin.f64 (neg.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))))) (/.f64 a (*.f64 b 3)))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))) (*.f64 (/.f64 1 b) (/.f64 a 3)))
18.2b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t 3) (/.f64 z 1))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 t 3)) (/.f64 z 1) (*.f64 (/.f64 t 3) (/.f64 z 1))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t 3) (/.f64 z 1))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 t 3)) (/.f64 z 1) (*.f64 (/.f64 t 3) (/.f64 z 1))))))) (/.f64 a (*.f64 b 3)))
20.5b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (*.f64 (*.f64 (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))) (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))))) (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
20.7b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))) (*.f64 (/.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 a)) b) (/.f64 (cbrt.f64 a) 3)))
20.7b
(-.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))))) (cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
20.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))) (*.f64 1/3 (/.f64 a b)))
28.8b
(-.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 t z) 3))) (*.f64 2 (sqrt.f64 x))) 3)) (/.f64 a (*.f64 b 3)))
46.6b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 (sqrt.f64 y) (sqrt.f64 y) (neg.f64 (*.f64 (/.f64 (*.f64 z t) 3) 1)))) (cos.f64 (fma.f64 (neg.f64 (/.f64 (*.f64 z t) 3)) 1 (*.f64 (/.f64 (*.f64 z t) 3) 1)))) (*.f64 (sin.f64 (fma.f64 (sqrt.f64 y) (sqrt.f64 y) (neg.f64 (*.f64 (/.f64 (*.f64 z t) 3) 1)))) (sin.f64 (fma.f64 (neg.f64 (/.f64 (*.f64 z t) 3)) 1 (*.f64 (/.f64 (*.f64 z t) 3) 1)))))) (/.f64 a (*.f64 b 3)))
20.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cbrt.f64 (*.f64 (*.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
20.1b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (/.f64 (*.f64 z t) (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (cbrt.f64 3))))) (/.f64 a (*.f64 b 3)))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 y) (cos.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3)))) (cbrt.f64 (/.f64 (*.f64 z t) 3))))) (*.f64 (sin.f64 y) (sin.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3)))) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (/.f64 a (*.f64 b 3)))
24.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (expm1.f64 (log1p.f64 (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
29.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (cos.f64 (fma.f64 (neg.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (*.f64 (sin.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (sin.f64 (fma.f64 (neg.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))))) (/.f64 a (*.f64 b 3)))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (*.f64 1/3 (*.f64 t z))) (cos.f64 y)) (*.f64 (sin.f64 (*.f64 t (*.f64 z -1/3))) (sin.f64 y)))) (/.f64 a (*.f64 b 3)))
20.2b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 t (cbrt.f64 3))) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 t (cbrt.f64 3))) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))))) (/.f64 a (*.f64 b 3)))
16.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y)) (/.f64 a (*.f64 b 3)))
38.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))) (cos.f64 (fma.f64 (neg.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3))) (sqrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))) (sin.f64 (fma.f64 (neg.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3))) (sqrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))))) (/.f64 a (*.f64 b 3)))
20.5b
(-.f64 (*.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (*.f64 (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))) (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))))) (/.f64 a (*.f64 b 3)))
29.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 t (sqrt.f64 3))) (/.f64 z (sqrt.f64 3)) (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))) (*.f64 (sin.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 t (sqrt.f64 3))) (/.f64 z (sqrt.f64 3)) (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))))) (/.f64 a (*.f64 b 3)))
20.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 1 3) (*.f64 z t))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 1 3)) (*.f64 z t) (*.f64 (/.f64 1 3) (*.f64 z t))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 1 3) (*.f64 z t))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 1 3)) (*.f64 z t) (*.f64 (/.f64 1 3) (*.f64 z t))))))) (/.f64 a (*.f64 b 3)))
28.8b
(-.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (*.f64 2 (sqrt.f64 x))) (*.f64 2 (sqrt.f64 x))) (*.f64 (*.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
Compiler

Compiled 9857 to 6301 computations (36.1% saved)

localize9.0ms (0%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y)) (/.f64 a (*.f64 b 3)))
0.2b
(/.f64 a (*.f64 b 3))
0.2b
(*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y))

series50.0ms (0.3%)

Counts
2 → 49
Calls

2 calls:

35.0ms
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y)) (/.f64 a (*.f64 b 3)))
15.0ms
(*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y))

rewrite16.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
cancel-sign-sub-inv_binary64
prod-diff_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
Counts
2 → 48
Calls

2 calls:

7.0ms
(*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y))
6.0ms
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y)) (/.f64 a (*.f64 b 3)))

simplify80.0ms (0.4%)

Algorithm
egg-herbie
Rules
754×fma-neg_binary64
651×fma-def_binary64
358×*-commutative_binary64
307×associate-*l/_binary64
253×associate-*r/_binary64
Counts
97 → 86
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01641861
14291652
214161562
342591558
448111558

prune328.0ms (1.7%)

Pruning

28 alts after pruning (28 fresh and 0 done)

PrunedKeptTotal
New11011121
Fresh91726
Picked101
Done000
Total12028148
Error
12.2b
Counts
148 → 28
Alt Table
StatusErrorProgram
61.0b
(log.f64 (exp.f64 (fma.f64 2 (*.f64 (sqrt.f64 x) (cos.f64 y)) (*.f64 -1/3 (/.f64 a b)))))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (*.f64 1/3 (*.f64 t z))) (cos.f64 y)) (*.f64 (sin.f64 (*.f64 t (*.f64 z -1/3))) (sin.f64 y)))) (/.f64 a (*.f64 b 3)))
39.3b
(*.f64 -1/3 (/.f64 a b))
20.2b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 t (cbrt.f64 3))) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 t (cbrt.f64 3))) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))))) (/.f64 a (*.f64 b 3)))
38.6b
(-.f64 (*.f64 (sqrt.f64 x) (-.f64 2 (*.f64 y y))) (/.f64 a (*.f64 b 3)))
31.7b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (*.f64 1/3 (*.f64 t z)))) (/.f64 a (*.f64 b 3)))
16.6b
(-.f64 (*.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (*.f64 (cbrt.f64 (cos.f64 y)) (cbrt.f64 (cos.f64 y)))) (cbrt.f64 (cos.f64 y))) (/.f64 a (*.f64 b 3)))
38.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))) (cos.f64 (fma.f64 (neg.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3))) (sqrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))) (sin.f64 (fma.f64 (neg.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3))) (sqrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))))) (/.f64 a (*.f64 b 3)))
24.4b
(/.f64 (-.f64 (*.f64 x (*.f64 4 (*.f64 (cos.f64 y) (cos.f64 y)))) (pow.f64 (cbrt.f64 (*.f64 (/.f64 a b) 1/3)) 6)) (fma.f64 2 (*.f64 (sqrt.f64 x) (cos.f64 y)) (*.f64 (/.f64 a b) 1/3)))
29.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 t (sqrt.f64 3))) (/.f64 z (sqrt.f64 3)) (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))) (*.f64 (sin.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 t (sqrt.f64 3))) (/.f64 z (sqrt.f64 3)) (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))))) (/.f64 a (*.f64 b 3)))
16.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y)) (*.f64 a (/.f64 1 (*.f64 b 3))))
20.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 1 3) (*.f64 z t))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 1 3)) (*.f64 z t) (*.f64 (/.f64 1 3) (*.f64 z t))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 1 3) (*.f64 z t))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 1 3)) (*.f64 z t) (*.f64 (/.f64 1 3) (*.f64 z t))))))) (/.f64 a (*.f64 b 3)))
16.4b
(+.f64 (fma.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y) (neg.f64 (*.f64 (/.f64 a 3) (/.f64 1 b)))) (fma.f64 (neg.f64 (/.f64 a 3)) (/.f64 1 b) (*.f64 (/.f64 a 3) (/.f64 1 b))))
26.0b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (cbrt.f64 (/.f64 (*.f64 (*.f64 (*.f64 z t) (*.f64 z t)) (*.f64 z t)) (*.f64 (*.f64 3 3) 3)))))) (/.f64 a (*.f64 b 3)))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 y) (cos.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3))))) (*.f64 (sin.f64 y) (sin.f64 (neg.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))))) (/.f64 a (*.f64 b 3)))
18.2b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t 3) (/.f64 z 1))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 t 3)) (/.f64 z 1) (*.f64 (/.f64 t 3) (/.f64 z 1))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t 3) (/.f64 z 1))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 t 3)) (/.f64 z 1) (*.f64 (/.f64 t 3) (/.f64 z 1))))))) (/.f64 a (*.f64 b 3)))
20.5b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (*.f64 (*.f64 (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))) (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))))) (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
16.8b
(+.f64 (fma.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y) (neg.f64 (*.f64 (/.f64 (cbrt.f64 a) 3) (/.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 a)) b)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 a) 3)) (/.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 a)) b) (*.f64 (/.f64 (cbrt.f64 a) 3) (/.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 a)) b))))
28.4b
(-.f64 (exp.f64 (log.f64 (*.f64 2 (*.f64 (sqrt.f64 x) (cos.f64 y))))) (/.f64 a (*.f64 b 3)))
20.1b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (/.f64 (*.f64 z t) (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (cbrt.f64 3))))) (/.f64 a (*.f64 b 3)))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 y) (cos.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3)))) (cbrt.f64 (/.f64 (*.f64 z t) 3))))) (*.f64 (sin.f64 y) (sin.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3)))) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (/.f64 a (*.f64 b 3)))
24.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (expm1.f64 (log1p.f64 (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
29.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (cos.f64 (fma.f64 (neg.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (*.f64 (sin.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (sin.f64 (fma.f64 (neg.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))))) (/.f64 a (*.f64 b 3)))
20.1b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (*.f64 (/.f64 z (sqrt.f64 3)) (/.f64 t (sqrt.f64 3)))))) (/.f64 a (*.f64 b 3)))
27.3b
(-.f64 (*.f64 2 (sqrt.f64 x)) (/.f64 a (*.f64 b 3)))
25.5b
(-.f64 (cbrt.f64 (*.f64 8 (pow.f64 (*.f64 (sqrt.f64 x) (cos.f64 y)) 3))) (/.f64 a (*.f64 b 3)))
20.7b
(-.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))))) (cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
46.6b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 (sqrt.f64 y) (sqrt.f64 y) (neg.f64 (*.f64 (/.f64 (*.f64 z t) 3) 1)))) (cos.f64 (fma.f64 (neg.f64 (/.f64 (*.f64 z t) 3)) 1 (*.f64 (/.f64 (*.f64 z t) 3) 1)))) (*.f64 (sin.f64 (fma.f64 (sqrt.f64 y) (sqrt.f64 y) (neg.f64 (*.f64 (/.f64 (*.f64 z t) 3) 1)))) (sin.f64 (fma.f64 (neg.f64 (/.f64 (*.f64 z t) 3)) 1 (*.f64 (/.f64 (*.f64 z t) 3) 1)))))) (/.f64 a (*.f64 b 3)))
Compiler

Compiled 5294 to 3364 computations (36.5% saved)

localize15.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(fma.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y) (neg.f64 (*.f64 (/.f64 a 3) (/.f64 1 b))))
0.3b
(*.f64 (/.f64 a 3) (/.f64 1 b))
50.1b
(fma.f64 (neg.f64 (/.f64 a 3)) (/.f64 1 b) (*.f64 (/.f64 a 3) (/.f64 1 b)))

series60.0ms (0.3%)

Counts
3 → 85
Calls

3 calls:

34.0ms
(fma.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y) (neg.f64 (*.f64 (/.f64 a 3) (/.f64 1 b))))
19.0ms
(fma.f64 (neg.f64 (/.f64 a 3)) (/.f64 1 b) (*.f64 (/.f64 a 3) (/.f64 1 b)))
7.0ms
(*.f64 (/.f64 a 3) (/.f64 1 b))

rewrite14.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
34×add-sqr-sqrt_binary64
25×times-frac_binary64
25×add-exp-log_binary64
19×*-un-lft-identity_binary64
17×add-cube-cbrt_binary64
Counts
3 → 79
Calls

3 calls:

8.0ms
(*.f64 (/.f64 a 3) (/.f64 1 b))
0.0ms
(fma.f64 (neg.f64 (/.f64 a 3)) (/.f64 1 b) (*.f64 (/.f64 a 3) (/.f64 1 b)))
0.0ms
(fma.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y) (neg.f64 (*.f64 (/.f64 a 3) (/.f64 1 b))))

simplify117.0ms (0.6%)

Algorithm
egg-herbie
Rules
812×fma-def_binary64
508×times-frac_binary64
429×cancel-sign-sub-inv_binary64
401×fma-neg_binary64
318×associate-*l*_binary64
Counts
164 → 147
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01592102
13701802
29841687
324971683
447581683
549851683
648331683

prune695.0ms (3.6%)

Pruning

28 alts after pruning (28 fresh and 0 done)

PrunedKeptTotal
New2403243
Fresh22527
Picked101
Done000
Total24328271
Error
12.2b
Counts
271 → 28
Alt Table
StatusErrorProgram
60.9b
(+.f64 (log.f64 (exp.f64 (fma.f64 (/.f64 a b) -1/3 (*.f64 2 (*.f64 (sqrt.f64 x) (cos.f64 y)))))) (fma.f64 (neg.f64 (/.f64 a 3)) (/.f64 1 b) (*.f64 (/.f64 a 3) (/.f64 1 b))))
16.4b
(+.f64 (fma.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y) (neg.f64 (/.f64 (/.f64 a 3) b))) (fma.f64 (neg.f64 (/.f64 a 3)) (/.f64 1 b) (*.f64 (/.f64 a 3) (/.f64 1 b))))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (*.f64 1/3 (*.f64 t z))) (cos.f64 y)) (*.f64 (sin.f64 (*.f64 t (*.f64 z -1/3))) (sin.f64 y)))) (/.f64 a (*.f64 b 3)))
39.3b
(*.f64 -1/3 (/.f64 a b))
20.2b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 t (cbrt.f64 3))) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 t (cbrt.f64 3))) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))))) (/.f64 a (*.f64 b 3)))
38.6b
(-.f64 (*.f64 (sqrt.f64 x) (-.f64 2 (*.f64 y y))) (/.f64 a (*.f64 b 3)))
31.7b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (*.f64 1/3 (*.f64 t z)))) (/.f64 a (*.f64 b 3)))
16.6b
(-.f64 (*.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (*.f64 (cbrt.f64 (cos.f64 y)) (cbrt.f64 (cos.f64 y)))) (cbrt.f64 (cos.f64 y))) (/.f64 a (*.f64 b 3)))
38.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))) (cos.f64 (fma.f64 (neg.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3))) (sqrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))) (sin.f64 (fma.f64 (neg.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3))) (sqrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))))) (/.f64 a (*.f64 b 3)))
24.4b
(/.f64 (-.f64 (*.f64 x (*.f64 4 (*.f64 (cos.f64 y) (cos.f64 y)))) (pow.f64 (cbrt.f64 (*.f64 (/.f64 a b) 1/3)) 6)) (fma.f64 2 (*.f64 (sqrt.f64 x) (cos.f64 y)) (*.f64 (/.f64 a b) 1/3)))
29.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 t (sqrt.f64 3))) (/.f64 z (sqrt.f64 3)) (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))) (*.f64 (sin.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 t (sqrt.f64 3))) (/.f64 z (sqrt.f64 3)) (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))))) (/.f64 a (*.f64 b 3)))
16.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y)) (*.f64 a (/.f64 1 (*.f64 b 3))))
26.0b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (cbrt.f64 (/.f64 (*.f64 (*.f64 (*.f64 z t) (*.f64 z t)) (*.f64 z t)) (*.f64 (*.f64 3 3) 3)))))) (/.f64 a (*.f64 b 3)))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 y) (cos.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3))))) (*.f64 (sin.f64 y) (sin.f64 (neg.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))))) (/.f64 a (*.f64 b 3)))
18.2b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t 3) (/.f64 z 1))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 t 3)) (/.f64 z 1) (*.f64 (/.f64 t 3) (/.f64 z 1))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t 3) (/.f64 z 1))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 t 3)) (/.f64 z 1) (*.f64 (/.f64 t 3) (/.f64 z 1))))))) (/.f64 a (*.f64 b 3)))
16.8b
(+.f64 (fma.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y) (neg.f64 (*.f64 (/.f64 a 3) (/.f64 1 b)))) (fma.f64 (neg.f64 (/.f64 a 3)) (/.f64 1 b) (*.f64 (/.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 a)) (sqrt.f64 3)) (/.f64 (/.f64 (cbrt.f64 a) (sqrt.f64 3)) b))))
20.5b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (*.f64 (*.f64 (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))) (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))))) (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
20.1b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (/.f64 (*.f64 z t) (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (cbrt.f64 3))))) (/.f64 a (*.f64 b 3)))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 y) (cos.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3)))) (cbrt.f64 (/.f64 (*.f64 z t) 3))))) (*.f64 (sin.f64 y) (sin.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3)))) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (/.f64 a (*.f64 b 3)))
24.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (expm1.f64 (log1p.f64 (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
29.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (cos.f64 (fma.f64 (neg.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (*.f64 (sin.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (sin.f64 (fma.f64 (neg.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))))) (/.f64 a (*.f64 b 3)))
20.1b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (*.f64 (/.f64 z (sqrt.f64 3)) (/.f64 t (sqrt.f64 3)))))) (/.f64 a (*.f64 b 3)))
27.3b
(-.f64 (*.f64 2 (sqrt.f64 x)) (/.f64 a (*.f64 b 3)))
25.5b
(-.f64 (cbrt.f64 (*.f64 8 (pow.f64 (*.f64 (sqrt.f64 x) (cos.f64 y)) 3))) (/.f64 a (*.f64 b 3)))
20.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 1 3) (*.f64 z t))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 1 3)) (*.f64 z t) (*.f64 (/.f64 1 3) (*.f64 z t))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 1 3) (*.f64 z t))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 1 3)) (*.f64 z t) (*.f64 (/.f64 1 3) (*.f64 z t))))))) (/.f64 a (*.f64 b 3)))
28.4b
(-.f64 (exp.f64 (log.f64 (*.f64 2 (*.f64 (sqrt.f64 x) (cos.f64 y))))) (/.f64 a (*.f64 b 3)))
20.7b
(-.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))))) (cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
46.6b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 (sqrt.f64 y) (sqrt.f64 y) (neg.f64 (*.f64 (/.f64 (*.f64 z t) 3) 1)))) (cos.f64 (fma.f64 (neg.f64 (/.f64 (*.f64 z t) 3)) 1 (*.f64 (/.f64 (*.f64 z t) 3) 1)))) (*.f64 (sin.f64 (fma.f64 (sqrt.f64 y) (sqrt.f64 y) (neg.f64 (*.f64 (/.f64 (*.f64 z t) 3) 1)))) (sin.f64 (fma.f64 (neg.f64 (/.f64 (*.f64 z t) 3)) 1 (*.f64 (/.f64 (*.f64 z t) 3) 1)))))) (/.f64 a (*.f64 b 3)))
Compiler

Compiled 11700 to 7953 computations (32% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(fma.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y) (neg.f64 (/.f64 (/.f64 a 3) b)))
0.2b
(/.f64 (/.f64 a 3) b)
0.3b
(*.f64 (/.f64 a 3) (/.f64 1 b))
50.1b
(fma.f64 (neg.f64 (/.f64 a 3)) (/.f64 1 b) (*.f64 (/.f64 a 3) (/.f64 1 b)))

series41.0ms (0.2%)

Counts
2 → 61
Calls

2 calls:

34.0ms
(fma.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y) (neg.f64 (/.f64 (/.f64 a 3) b)))
7.0ms
(/.f64 (/.f64 a 3) b)

rewrite12.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
75×times-frac_binary64
44×*-un-lft-identity_binary64
44×add-sqr-sqrt_binary64
44×add-cube-cbrt_binary64
13×associate-/l*_binary64
Counts
2 → 82
Calls

2 calls:

4.0ms
(/.f64 (/.f64 a 3) b)
0.0ms
(fma.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y) (neg.f64 (/.f64 (/.f64 a 3) b)))

simplify106.0ms (0.5%)

Algorithm
egg-herbie
Rules
605×fma-def_binary64
513×fma-neg_binary64
466×associate-/r/_binary64
381×cancel-sign-sub-inv_binary64
324×associate-/l/_binary64
Counts
143 → 144
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01972394
14252245
210052210
324692203
447312201
549252201

prune741.0ms (3.8%)

Pruning

28 alts after pruning (27 fresh and 1 done)

PrunedKeptTotal
New2590259
Fresh02727
Picked011
Done000
Total25928287
Error
12.2b
Counts
287 → 28
Alt Table
StatusErrorProgram
60.9b
(+.f64 (log.f64 (exp.f64 (fma.f64 (/.f64 a b) -1/3 (*.f64 2 (*.f64 (sqrt.f64 x) (cos.f64 y)))))) (fma.f64 (neg.f64 (/.f64 a 3)) (/.f64 1 b) (*.f64 (/.f64 a 3) (/.f64 1 b))))
16.4b
(+.f64 (fma.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y) (neg.f64 (/.f64 (/.f64 a 3) b))) (fma.f64 (neg.f64 (/.f64 a 3)) (/.f64 1 b) (*.f64 (/.f64 a 3) (/.f64 1 b))))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (*.f64 1/3 (*.f64 t z))) (cos.f64 y)) (*.f64 (sin.f64 (*.f64 t (*.f64 z -1/3))) (sin.f64 y)))) (/.f64 a (*.f64 b 3)))
39.3b
(*.f64 -1/3 (/.f64 a b))
20.2b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 t (cbrt.f64 3))) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 t (cbrt.f64 3))) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (*.f64 (/.f64 t (cbrt.f64 3)) (/.f64 z (*.f64 (cbrt.f64 3) (cbrt.f64 3))))))))) (/.f64 a (*.f64 b 3)))
38.6b
(-.f64 (*.f64 (sqrt.f64 x) (-.f64 2 (*.f64 y y))) (/.f64 a (*.f64 b 3)))
31.7b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (*.f64 1/3 (*.f64 t z)))) (/.f64 a (*.f64 b 3)))
16.6b
(-.f64 (*.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (*.f64 (cbrt.f64 (cos.f64 y)) (cbrt.f64 (cos.f64 y)))) (cbrt.f64 (cos.f64 y))) (/.f64 a (*.f64 b 3)))
38.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))) (cos.f64 (fma.f64 (neg.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3))) (sqrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))) (sin.f64 (fma.f64 (neg.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3))) (sqrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (sqrt.f64 (/.f64 (*.f64 z t) 3)) (sqrt.f64 (/.f64 (*.f64 z t) 3)))))))) (/.f64 a (*.f64 b 3)))
24.4b
(/.f64 (-.f64 (*.f64 x (*.f64 4 (*.f64 (cos.f64 y) (cos.f64 y)))) (pow.f64 (cbrt.f64 (*.f64 (/.f64 a b) 1/3)) 6)) (fma.f64 2 (*.f64 (sqrt.f64 x) (cos.f64 y)) (*.f64 (/.f64 a b) 1/3)))
29.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 t (sqrt.f64 3))) (/.f64 z (sqrt.f64 3)) (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))) (*.f64 (sin.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 t (sqrt.f64 3))) (/.f64 z (sqrt.f64 3)) (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))))) (/.f64 a (*.f64 b 3)))
16.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y)) (*.f64 a (/.f64 1 (*.f64 b 3))))
26.0b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (cbrt.f64 (/.f64 (*.f64 (*.f64 (*.f64 z t) (*.f64 z t)) (*.f64 z t)) (*.f64 (*.f64 3 3) 3)))))) (/.f64 a (*.f64 b 3)))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 y) (cos.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3))))) (*.f64 (sin.f64 y) (sin.f64 (neg.f64 (*.f64 (/.f64 t (sqrt.f64 3)) (/.f64 z (sqrt.f64 3)))))))) (/.f64 a (*.f64 b 3)))
18.2b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t 3) (/.f64 z 1))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 t 3)) (/.f64 z 1) (*.f64 (/.f64 t 3) (/.f64 z 1))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 t 3) (/.f64 z 1))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 t 3)) (/.f64 z 1) (*.f64 (/.f64 t 3) (/.f64 z 1))))))) (/.f64 a (*.f64 b 3)))
16.8b
(+.f64 (fma.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 y) (neg.f64 (*.f64 (/.f64 a 3) (/.f64 1 b)))) (fma.f64 (neg.f64 (/.f64 a 3)) (/.f64 1 b) (*.f64 (/.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 a)) (sqrt.f64 3)) (/.f64 (/.f64 (cbrt.f64 a) (sqrt.f64 3)) b))))
20.5b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (*.f64 (*.f64 (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))) (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))))) (cbrt.f64 (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
20.1b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (/.f64 (*.f64 z t) (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (cbrt.f64 3))))) (/.f64 a (*.f64 b 3)))
20.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 y) (cos.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3)))) (cbrt.f64 (/.f64 (*.f64 z t) 3))))) (*.f64 (sin.f64 y) (sin.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3)))) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (/.f64 a (*.f64 b 3)))
24.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (expm1.f64 (log1p.f64 (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
29.3b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (cos.f64 (fma.f64 (neg.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (*.f64 (sin.f64 (fma.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (cbrt.f64 y) (neg.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))) (sin.f64 (fma.f64 (neg.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (*.f64 (cbrt.f64 (/.f64 (*.f64 z t) 3)) (cbrt.f64 (/.f64 (*.f64 z t) 3))))))))) (/.f64 a (*.f64 b 3)))
20.1b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (*.f64 (/.f64 z (sqrt.f64 3)) (/.f64 t (sqrt.f64 3)))))) (/.f64 a (*.f64 b 3)))
27.3b
(-.f64 (*.f64 2 (sqrt.f64 x)) (/.f64 a (*.f64 b 3)))
25.5b
(-.f64 (cbrt.f64 (*.f64 8 (pow.f64 (*.f64 (sqrt.f64 x) (cos.f64 y)) 3))) (/.f64 a (*.f64 b 3)))
20.4b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 1 3) (*.f64 z t))))) (cos.f64 (fma.f64 (neg.f64 (/.f64 1 3)) (*.f64 z t) (*.f64 (/.f64 1 3) (*.f64 z t))))) (*.f64 (sin.f64 (fma.f64 1 y (neg.f64 (*.f64 (/.f64 1 3) (*.f64 z t))))) (sin.f64 (fma.f64 (neg.f64 (/.f64 1 3)) (*.f64 z t) (*.f64 (/.f64 1 3) (*.f64 z t))))))) (/.f64 a (*.f64 b 3)))
28.4b
(-.f64 (exp.f64 (log.f64 (*.f64 2 (*.f64 (sqrt.f64 x) (cos.f64 y))))) (/.f64 a (*.f64 b 3)))
20.7b
(-.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3))))) (cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (cos.f64 (-.f64 y (/.f64 (*.f64 z t) 3)))))) (/.f64 a (*.f64 b 3)))
46.6b
(-.f64 (*.f64 (*.f64 2 (sqrt.f64 x)) (-.f64 (*.f64 (cos.f64 (fma.f64 (sqrt.f64 y) (sqrt.f64 y) (neg.f64 (*.f64 (/.f64 (*.f64 z t) 3) 1)))) (cos.f64 (fma.f64 (neg.f64 (/.f64 (*.f64 z t) 3)) 1 (*.f64 (/.f64 (*.f64 z t) 3) 1)))) (*.f64 (sin.f64 (fma.f64 (sqrt.f64 y) (sqrt.f64 y) (neg.f64 (*.f64 (/.f64 (*.f64 z t) 3) 1)))) (sin.f64 (fma.f64 (neg.f64 (/.f64 (*.f64 z t) 3)) 1 (*.f64 (/.f64 (*.f64 z t) 3) 1)))))) (/.f64 a (*.f64 b 3)))
Compiler

Compiled 10638 to 6945 computations (34.7% saved)

regimes10.2s (52.6%)

Accuracy

Total 2.3b remaining (15.7%)

Threshold costs 0b (0%)

Counts
225 → 3
Compiler

Compiled 164977 to 121974 computations (26.1% saved)

bsearch14.0ms (0.1%)

Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify10.0ms (0.1%)

Algorithm
egg-herbie
Rules
20×*-commutative_binary64
15×+-commutative_binary64
14×sub-neg_binary64
11×neg-sub0_binary64
10×neg-mul-1_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
050154
181152
2110152
3133152
4145152
5148152
6146152

end11.0ms (0.1%)

Compiler

Compiled 318 to 219 computations (31.1% saved)

sample4.2s (21.4%)

Algorithm
intervals
Results
789.0ms1605×body1024valid
580.0ms707×body2048valid
465.0ms4599×body128valid
232.0ms2291×body128nan
231.0ms753×body512valid
114.0ms1141×body128invalid
77.0ms334×body256valid
7.0msbody4096valid
Compiler

Compiled 1543 to 1107 computations (28.3% saved)

Profiling

Loading profile data...