Details

Time bar (total: 7.2s)

analyze1.3s (17.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
18.7%81.2%0.1%7
32.8%67.1%0.1%8
38.2%61.7%0.1%9
41%58.9%0.1%10
43.9%56%0.1%11
45.4%54.5%0.1%12
46.9%53%0.1%13
47.6%52.3%0.1%14
Compiler

Compiled 16 to 12 computations (25% saved)

sample3.8s (52.2%)

Results
1.3s1095×body2048valid
1.0s1412×body1024valid
820.0ms4364×body128valid
436.0ms906×body512valid
173.0ms475×body256valid
14.0msbody4096valid
Compiler

Compiled 32 to 24 computations (25% saved)

preprocess18.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01440
12040
22440
022
Stop Event
saturated
saturated
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify7.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0920
11220
21420
Stop Event
saturated
Counts
1 → 1

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
37.7b
Counts
2 → 1
Alt Table
StatusErrorProgram
37.7b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (sin.f64 (/.f64 x (*.f64 y 2))))
Compiler

Compiled 45 to 33 computations (26.7% saved)

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
5.0b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (sin.f64 (/.f64 x (*.f64 y 2))))
32.8b
(tan.f64 (/.f64 x (*.f64 y 2)))
32.9b
(sin.f64 (/.f64 x (*.f64 y 2)))

series70.0ms (1%)

Counts
3 → 72
Calls

18 calls:

8.0ms
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (sin.f64 (/.f64 x (*.f64 y 2))))
x
inf
7.0ms
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (sin.f64 (/.f64 x (*.f64 y 2))))
y
0
7.0ms
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (sin.f64 (/.f64 x (*.f64 y 2))))
x
-inf
6.0ms
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (sin.f64 (/.f64 x (*.f64 y 2))))
y
-inf
6.0ms
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (sin.f64 (/.f64 x (*.f64 y 2))))
y
inf

rewrite60.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
621×prod-diff_binary64
522×log-prod_binary64
180×expm1-udef_binary64
180×log1p-udef_binary64
151×log-pow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0938
119338
2262238
Stop Event
node limit
Counts
3 → 87

simplify52.0ms (0.7%)

Algorithm
egg-herbie
Rules
363×associate-/r/_binary64
360×cancel-sign-sub-inv_binary64
359×times-frac_binary64
339×associate-/l/_binary64
215×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0701410
11871392
25441326
326641299
Stop Event
node limit
Counts
159 → 110

prune136.0ms (1.9%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New9119110
Fresh000
Picked101
Done000
Total9219111
Error
29.8b
Counts
111 → 19
Alt Table
StatusErrorProgram
40.0b
(*.f64 (pow.f64 (cbrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) 2) (*.f64 (cbrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) (/.f64 1 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
38.3b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (*.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 2)))
61.5b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 x y) 1/2)))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 1))))
32.9b
1
53.3b
(/.f64 (sqrt.f64 (pow.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) 2)) (sin.f64 (/.f64 x (*.f64 y 2))))
59.6b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))))
37.7b
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
59.6b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))))
53.5b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)) 2)))
40.7b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (fma.f64 1/2 (/.f64 x y) (*.f64 (pow.f64 (/.f64 x y) 3) -1/48)))
51.2b
(/.f64 (/.f64 (sqrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) (/.f64 (cos.f64 (*.f64 (/.f64 x y) 1/2)) (sqrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))) (sin.f64 (/.f64 x (*.f64 y 2))))
40.8b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (*.f64 1/2 (/.f64 x y)))
51.3b
(*.f64 (/.f64 (sqrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 2)) (/.f64 (sqrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
38.4b
(/.f64 (/.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 2) (/.f64 (cos.f64 (*.f64 (/.f64 x y) 1/2)) (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))) (sin.f64 (/.f64 x (*.f64 y 2))))
59.0b
(/.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))))) (log.f64 (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))))) (sin.f64 (/.f64 x (*.f64 y 2))))
37.9b
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 (/.f64 x (*.f64 y 2))))
59.6b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (log.f64 (+.f64 1 (expm1.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))))
38.1b
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 2)) (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
38.4b
(/.f64 (*.f64 (cbrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) (pow.f64 (cbrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) 2)) (sin.f64 (/.f64 x (*.f64 y 2))))
Compiler

Compiled 3207 to 2175 computations (32.2% saved)

localize0.0ms (0%)

prune28.0ms (0.4%)

Pruning

19 alts after pruning (18 fresh and 1 done)

PrunedKeptTotal
New000
Fresh01818
Picked011
Done000
Total01919
Error
29.8b
Counts
19 → 19
Alt Table
StatusErrorProgram
40.0b
(*.f64 (pow.f64 (cbrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) 2) (*.f64 (cbrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) (/.f64 1 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
38.3b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (*.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 2)))
61.5b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 x y) 1/2)))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 1))))
32.9b
1
53.3b
(/.f64 (sqrt.f64 (pow.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) 2)) (sin.f64 (/.f64 x (*.f64 y 2))))
59.6b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))))
37.7b
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
59.6b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))))
53.5b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)) 2)))
40.7b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (fma.f64 1/2 (/.f64 x y) (*.f64 (pow.f64 (/.f64 x y) 3) -1/48)))
51.2b
(/.f64 (/.f64 (sqrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) (/.f64 (cos.f64 (*.f64 (/.f64 x y) 1/2)) (sqrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))) (sin.f64 (/.f64 x (*.f64 y 2))))
40.8b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (*.f64 1/2 (/.f64 x y)))
51.3b
(*.f64 (/.f64 (sqrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 2)) (/.f64 (sqrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
38.4b
(/.f64 (/.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 2) (/.f64 (cos.f64 (*.f64 (/.f64 x y) 1/2)) (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))) (sin.f64 (/.f64 x (*.f64 y 2))))
59.0b
(/.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))))) (log.f64 (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))))) (sin.f64 (/.f64 x (*.f64 y 2))))
37.9b
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 (/.f64 x (*.f64 y 2))))
59.6b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (log.f64 (+.f64 1 (expm1.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))))
38.1b
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 2)) (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
38.4b
(/.f64 (*.f64 (cbrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) (pow.f64 (cbrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) 2)) (sin.f64 (/.f64 x (*.f64 y 2))))
Compiler

Compiled 933 to 679 computations (27.2% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.7b
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
5.0b
(/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))
32.8b
(tan.f64 (*.f64 (/.f64 x y) 1/2))
32.9b
(sin.f64 (*.f64 (/.f64 x y) 1/2))

series109.0ms (1.5%)

Counts
4 → 96
Calls

24 calls:

9.0ms
(/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))
y
0
9.0ms
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
x
inf
8.0ms
(/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))
x
-inf
7.0ms
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
y
0
7.0ms
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
x
-inf

rewrite65.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
542×log-prod_binary64
327×prod-diff_binary64
195×expm1-udef_binary64
195×log1p-udef_binary64
165×log-pow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01158
121558
2277058
Stop Event
node limit
Counts
4 → 136

simplify54.0ms (0.8%)

Algorithm
egg-herbie
Rules
363×associate-/r/_binary64
360×cancel-sign-sub-inv_binary64
359×times-frac_binary64
339×associate-/l/_binary64
215×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0701818
11871794
25441722
326641668
Stop Event
node limit
Counts
232 → 123

prune145.0ms (2%)

Pruning

20 alts after pruning (19 fresh and 1 done)

PrunedKeptTotal
New1176123
Fresh41317
Picked101
Done011
Total12220142
Error
29.8b
Counts
142 → 20
Alt Table
StatusErrorProgram
38.4b
(log1p.f64 (expm1.f64 (/.f64 (expm1.f64 (log1p.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
59.0b
(/.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))))) (log.f64 (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))))) (sin.f64 (/.f64 x (*.f64 y 2))))
38.3b
(log1p.f64 (expm1.f64 (/.f64 (pow.f64 (cbrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) 3) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
40.0b
(*.f64 (pow.f64 (cbrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) 2) (*.f64 (cbrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) (/.f64 1 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
38.3b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (*.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 2)))
59.0b
(log1p.f64 (expm1.f64 (/.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))))) (log.f64 (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))))) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
37.9b
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 (/.f64 x (*.f64 y 2))))
61.5b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 x y) 1/2)))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 1))))
32.9b
1
53.5b
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)) 2)))))
53.3b
(/.f64 (sqrt.f64 (pow.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) 2)) (sin.f64 (/.f64 x (*.f64 y 2))))
59.6b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))))
51.2b
(/.f64 (/.f64 (sqrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) (/.f64 (cos.f64 (*.f64 (/.f64 x y) 1/2)) (sqrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))) (sin.f64 (/.f64 x (*.f64 y 2))))
40.8b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (*.f64 1/2 (/.f64 x y)))
61.6b
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 x y) 1/2)))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 1))))))
38.1b
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 2)) (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
59.6b
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (log.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))))
59.6b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))))
40.7b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (fma.f64 1/2 (/.f64 x y) (*.f64 (pow.f64 (/.f64 x y) 3) -1/48)))
38.4b
(/.f64 (/.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 2) (/.f64 (cos.f64 (*.f64 (/.f64 x y) 1/2)) (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))) (sin.f64 (/.f64 x (*.f64 y 2))))
Compiler

Compiled 3800 to 2567 computations (32.4% saved)

localize17.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.8b
(log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))))
5.0b
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 (/.f64 x (*.f64 y 2))))
32.8b
(tan.f64 (*.f64 (/.f64 x y) 1/2))
32.9b
(sin.f64 (/.f64 x (*.f64 y 2)))

series67.0ms (0.9%)

Counts
2 → 48
Calls

12 calls:

10.0ms
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 (/.f64 x (*.f64 y 2))))
y
0
7.0ms
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 (/.f64 x (*.f64 y 2))))
x
-inf
7.0ms
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 (/.f64 x (*.f64 y 2))))
x
inf
6.0ms
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 (/.f64 x (*.f64 y 2))))
y
-inf
6.0ms
(log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))))
x
-inf

rewrite57.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
236×expm1-udef_binary64
236×log1p-udef_binary64
195×log-pow_binary64
140×add-sqr-sqrt_binary64
137×pow1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01429
128329
2373129
Stop Event
node limit
Counts
2 → 56

simplify48.0ms (0.7%)

Algorithm
egg-herbie
Rules
787×fma-def_binary64
784×associate-/r/_binary64
443×associate-/l/_binary64
314×times-frac_binary64
294×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
059966
1147960
2398927
31949894
44228894
Stop Event
node limit
Counts
104 → 75

prune138.0ms (1.9%)

Pruning

24 alts after pruning (23 fresh and 1 done)

PrunedKeptTotal
New13010140
Fresh51318
Picked101
Done011
Total13624160
Error
29.6b
Counts
160 → 24
Alt Table
StatusErrorProgram
38.3b
(log1p.f64 (expm1.f64 (/.f64 (pow.f64 (cbrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) 3) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
59.6b
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))))
38.3b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (*.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 2)))
39.9b
(/.f64 (/.f64 (sin.f64 (/.f64 1/2 (/.f64 y x))) (cos.f64 (/.f64 1/2 (/.f64 y x)))) (sin.f64 (/.f64 x (*.f64 y 2))))
61.5b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 x y) 1/2)))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 1))))
32.9b
1
53.5b
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)) 2)))))
59.0b
(/.f64 (log1p.f64 (expm1.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))))) (log.f64 (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))))))) (sin.f64 (/.f64 x (*.f64 y 2))))
38.1b
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 3))
40.9b
(/.f64 (*.f64 1/2 (/.f64 x y)) (sin.f64 (/.f64 x (*.f64 y 2))))
53.3b
(/.f64 (sqrt.f64 (pow.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) 2)) (sin.f64 (/.f64 x (*.f64 y 2))))
59.6b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))))
32.9b
(/.f64 1 (cos.f64 (/.f64 1/2 (/.f64 y x))))
59.6b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))))
51.2b
(/.f64 (/.f64 (sqrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) (/.f64 (cos.f64 (*.f64 (/.f64 x y) 1/2)) (sqrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))) (sin.f64 (/.f64 x (*.f64 y 2))))
40.8b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (*.f64 1/2 (/.f64 x y)))
60.9b
(/.f64 (/.f64 (-.f64 (sin.f64 (exp.f64 (log1p.f64 (/.f64 x y)))) (sin.f64 1)) (+.f64 (cos.f64 (exp.f64 (log1p.f64 (/.f64 x y)))) (cos.f64 1))) (sin.f64 (/.f64 x (*.f64 y 2))))
59.0b
(/.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))))) (log.f64 (cbrt.f64 (exp.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))))) (sin.f64 (/.f64 x (*.f64 y 2))))
59.8b
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))) 2) (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 (/.f64 x y)))))) (cbrt.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
59.8b
(*.f64 (/.f64 1 (cbrt.f64 (-.f64 1/2 (*.f64 1/2 (cos.f64 (/.f64 x y)))))) (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
59.6b
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (log.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)))))))
53.5b
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2)) 2)))
38.4b
(/.f64 (/.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))) 2) (/.f64 (cos.f64 (*.f64 (/.f64 x y) 1/2)) (cbrt.f64 (sin.f64 (*.f64 (/.f64 x y) 1/2))))) (sin.f64 (/.f64 x (*.f64 y 2))))
61.6b
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 x y) 1/2)))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 1))))))
Compiler

Compiled 3563 to 2402 computations (32.6% saved)

regimes664.0ms (9.2%)

Accuracy

Total 3.1b remaining (10.9%)

Threshold costs 0b (0%)

Counts
107 → 1
Compiler

Compiled 11754 to 8620 computations (26.7% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01116
11416
Stop Event
saturated

end415.0ms (5.7%)

Stop Event
fuel
Compiler

Compiled 632 to 464 computations (26.6% saved)

Profiling

Loading profile data...