Details

Time bar (total: 7.0s)

analyze1.2s (16.7%)

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.5s (50.7%)

Results
1.2s1095×body2048valid
942.0ms1412×body1024valid
730.0ms4364×body128valid
408.0ms906×body512valid
152.0ms475×body256valid
25.0msbody4096valid
Compiler

Compiled 32 to 24 computations (25% saved)

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

simplify8.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

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

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

series65.0ms (0.9%)

Counts
3 → 72
Calls

18 calls:

11.0ms
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (sin.f64 (/.f64 x (*.f64 y 2))))
y
0
8.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))))
x
inf
5.0ms
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (sin.f64 (/.f64 x (*.f64 y 2))))
x
0
4.0ms
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (sin.f64 (/.f64 x (*.f64 y 2))))
y
-inf

rewrite84.0ms (1.2%)

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

Useful iterations: 0 (0.0ms)

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

simplify51.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

prune118.0ms (1.7%)

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.8b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (*.f64 1/2 (/.f64 x y)))
53.3b
(/.f64 (sqrt.f64 (pow.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) 2)) (sin.f64 (/.f64 x (*.f64 y 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.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)))))))
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.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)))
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))))
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))))
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))))
32.9b
1
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.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)))))
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))))
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.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)))))
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)))
37.7b
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
Compiler

Compiled 3207 to 2175 computations (32.2% saved)

localize0.0ms (0%)

prune26.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.8b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (*.f64 1/2 (/.f64 x y)))
53.3b
(/.f64 (sqrt.f64 (pow.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) 2)) (sin.f64 (/.f64 x (*.f64 y 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.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)))))))
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.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)))
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))))
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))))
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))))
32.9b
1
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.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)))))
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))))
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.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)))))
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)))
37.7b
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
Compiler

Compiled 933 to 679 computations (27.2% saved)

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

series96.0ms (1.4%)

Counts
4 → 96
Calls

24 calls:

8.0ms
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
x
-inf
7.0ms
(/.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)))))
y
0
6.0ms
(/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))
x
-inf
6.0ms
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (sin.f64 (*.f64 (/.f64 x y) 1/2)))))
x
inf

rewrite64.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

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

simplify56.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

prune150.0ms (2.2%)

Pruning

19 alts after pruning (18 fresh and 1 done)

PrunedKeptTotal
New1176123
Fresh51217
Picked101
Done011
Total12319142
Error
29.8b
Counts
142 → 19
Alt Table
StatusErrorProgram
40.8b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (*.f64 1/2 (/.f64 x y)))
53.3b
(/.f64 (sqrt.f64 (pow.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) 2)) (sin.f64 (/.f64 x (*.f64 y 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.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)))))))
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))))
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))))))
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)))))
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)))))
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))))
32.9b
1
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
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) (log.f64 (+.f64 1 (expm1.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)))
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)))))
37.9b
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 (/.f64 x (*.f64 y 2))))
38.1b
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/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)))))
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)))))
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))))
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)))))))
Compiler

Compiled 3770 to 2545 computations (32.5% saved)

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

series54.0ms (0.8%)

Counts
2 → 48
Calls

12 calls:

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))))
y
0
6.0ms
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 (/.f64 x (*.f64 y 2))))
x
inf
4.0ms
(log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2))))
x
-inf
4.0ms
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (sin.f64 (/.f64 x (*.f64 y 2))))
y
inf

rewrite55.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
236×expm1-udef_binary64
236×log1p-udef_binary64
206×log-pow_binary64
140×add-sqr-sqrt_binary64
133×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify54.0ms (0.8%)

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

prune125.0ms (1.8%)

Pruning

23 alts after pruning (22 fresh and 1 done)

PrunedKeptTotal
New13010140
Fresh51217
Picked101
Done011
Total13623159
Error
29.6b
Counts
159 → 23
Alt Table
StatusErrorProgram
40.8b
(/.f64 (tan.f64 (/.f64 x (*.f64 y 2))) (*.f64 1/2 (/.f64 x y)))
32.9b
(/.f64 1 (cos.f64 (/.f64 1/2 (/.f64 y x))))
53.3b
(/.f64 (sqrt.f64 (pow.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)) 2)) (sin.f64 (/.f64 x (*.f64 y 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.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)))))))
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))))
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)))
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))))))
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))))
32.9b
1
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)))))
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.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)))))))
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)))))))
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))))
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)))))
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))
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
(log1p.f64 (expm1.f64 (/.f64 (tan.f64 (*.f64 (/.f64 x y) 1/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)))))
38.4b
(/.f64 (log1p.f64 (expm1.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.6b
(/.f64 (log1p.f64 (expm1.f64 (tan.f64 (*.f64 (/.f64 x y) 1/2)))) (log.f64 (+.f64 1 (expm1.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.9b
(/.f64 (*.f64 1/2 (/.f64 x y)) (sin.f64 (/.f64 x (*.f64 y 2))))
Compiler

Compiled 3538 to 2387 computations (32.5% saved)

regimes823.0ms (11.8%)

Accuracy

Total 3.1b remaining (10.9%)

Threshold costs 0b (0%)

Counts
136 → 1
Compiler

Compiled 14654 to 10735 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

end384.0ms (5.5%)

Stop Event
fuel
Compiler

Compiled 607 to 447 computations (26.4% saved)

Profiling

Loading profile data...