Details

Time bar (total: 14.7s)

analyze2.9s (19.5%)

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
25%74.9%0.1%6
25%74.9%0.1%7
31.2%68.6%0.1%8
40.6%59.3%0.1%9
40.6%59.3%0.1%10
46%53.8%0.1%11
52.7%47.2%0.1%12
52.7%44.6%2.8%13
55.9%40.6%3.5%14
Compiler

Compiled 27 to 22 computations (18.5% saved)

sample286.0ms (1.9%)

Algorithm
intervals
Results
63.0ms48×body1024valid
54.0ms165×body128valid
46.0ms35×body1024invalid
29.0msbody4096valid
20.0ms23×body512valid
16.0ms19×body512invalid
10.0msbody2048valid
8.0ms30×body128invalid
8.0ms14×body256invalid
7.0ms12×body256valid
Compiler

Compiled 56 to 46 computations (17.9% saved)

simplify59.0ms (0.4%)

Algorithm
egg-herbie
Rules
387×unsub-neg_binary64
380×neg-sub0_binary64
373×neg-mul-1_binary64
358×*-commutative_binary64
328×fma-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01737
13737
28437
322437
480337
5206137
6386137
7507637

prune6.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
29.6b
Counts
3 → 1
Alt Table
StatusErrorProgram
29.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
Compiler

Compiled 101 to 78 computations (22.8% saved)

localize27.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.8b
(-.f64 (pow.f64 b 2) (pow.f64 a 2))
8.5b
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
23.2b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
23.2b
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

series127.0ms (0.9%)

Counts
4 → 66
Calls

4 calls:

100.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
14.0ms
(-.f64 (pow.f64 b 2) (pow.f64 a 2))
7.0ms
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
6.0ms
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

rewrite61.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
64×prod-diff_binary64
64×unpow-prod-down_binary64
57×add-sqr-sqrt_binary64
45×*-un-lft-identity_binary64
41×add-cube-cbrt_binary64
Counts
4 → 151
Calls

4 calls:

19.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
16.0ms
(-.f64 (pow.f64 b 2) (pow.f64 a 2))
2.0ms
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
2.0ms
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

simplify309.0ms (2.1%)

Algorithm
egg-herbie
Rules
580×cancel-sign-sub-inv_binary64
482×fma-neg_binary64
457×unswap-sqr_binary64
363×associate-*r*_binary64
310×associate-*l*_binary64
Counts
217 → 222
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03388304
17014859
225063469
345943463
449813463
548713463

prune515.0ms (3.5%)

Pruning

22 alts after pruning (22 fresh and 0 done)

PrunedKeptTotal
New20022222
Fresh000
Picked101
Done000
Total20122223
Error
28.0b
Counts
223 → 22
Alt Table
StatusErrorProgram
53.6b
(*.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 (exp.f64 (pow.f64 b 2)) (exp.f64 (pow.f64 a 2))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
53.2b
(*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.8b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 b 2)) (cbrt.f64 (pow.f64 b 2))) (cbrt.f64 (pow.f64 b 2)) (neg.f64 (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
49.4b
(*.f64 (/.f64 (*.f64 (*.f64 2 (-.f64 (*.f64 (pow.f64 b 2) (pow.f64 b 2)) (*.f64 (pow.f64 a 2) (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (pow.f64 b 2) (pow.f64 a 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
32.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 1/180 (*.f64 angle (PI.f64)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
45.4b
(*.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
45.2b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.7b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
40.7b
(*.f64 (*.f64 (*.f64 2 (neg.f64 (*.f64 a a))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
30.1b
(*.f64 (*.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 b)) 2) (pow.f64 (cbrt.f64 b) 2) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (pow.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 a)) 2)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 a) 2)) (pow.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 a)) 2) (*.f64 (pow.f64 (cbrt.f64 a) 2) (pow.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 a)) 2))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
56.8b
(*.f64 (/.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (pow.f64 b 6) (pow.f64 a 6)))) (+.f64 (*.f64 (pow.f64 b 2) (pow.f64 b 2)) (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 a 2)) (*.f64 (pow.f64 b 2) (pow.f64 a 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
30.0b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
40.7b
(*.f64 (*.f64 -2 (*.f64 (pow.f64 a 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1)
34.6b
(*.f64 (-.f64 (+.f64 (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 a 2)))) (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 b 2))))) (+.f64 (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 a 2)))) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 b 2)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
32.9b
(*.f64 (*.f64 angle (*.f64 1/90 (*.f64 (PI.f64) (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.7b
(*.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
54.3b
(*.f64 (exp.f64 (+.f64 (+.f64 (log.f64 2) (log.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)))) (log.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
30.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 (*.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
Compiler

Compiled 10144 to 7264 computations (28.4% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.8b
(-.f64 (pow.f64 b 2) (pow.f64 a 2))
8.5b
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
23.2b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
23.2b
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

prune454.0ms (3.1%)

Pruning

26 alts after pruning (26 fresh and 0 done)

PrunedKeptTotal
New21111222
Fresh61521
Picked101
Done000
Total21826244
Error
28.0b
Counts
244 → 26
Alt Table
StatusErrorProgram
54.3b
(*.f64 (exp.f64 (+.f64 (+.f64 (log.f64 2) (log.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)))) (log.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
53.2b
(*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
53.6b
(*.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 (exp.f64 (pow.f64 b 2)) (exp.f64 (pow.f64 a 2))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.8b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 b 2)) (cbrt.f64 (pow.f64 b 2))) (cbrt.f64 (pow.f64 b 2)) (neg.f64 (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.8b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (pow.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 b)) 2) (pow.f64 (cbrt.f64 b) 2) (neg.f64 (*.f64 a a)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
49.4b
(*.f64 (/.f64 (*.f64 (*.f64 2 (-.f64 (*.f64 (pow.f64 b 2) (pow.f64 b 2)) (*.f64 (pow.f64 a 2) (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (pow.f64 b 2) (pow.f64 a 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
45.2b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (*.f64 b b) (*.f64 a a))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
45.4b
(*.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
45.2b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.7b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
40.7b
(*.f64 (*.f64 (*.f64 2 (neg.f64 (*.f64 a a))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
56.8b
(*.f64 (/.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (pow.f64 b 6) (pow.f64 a 6)))) (+.f64 (*.f64 (pow.f64 b 2) (pow.f64 b 2)) (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 a 2)) (*.f64 (pow.f64 b 2) (pow.f64 a 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
32.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 1/180 (*.f64 angle (PI.f64)))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
29.9b
(*.f64 (*.f64 (*.f64 2 (+.f64 (pow.f64 b 2) (*.f64 (neg.f64 (pow.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 a)) 2)) (pow.f64 (cbrt.f64 a) 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
29.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
32.9b
(*.f64 (*.f64 angle (*.f64 1/90 (*.f64 (PI.f64) (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
32.9b
(*.f64 (*.f64 angle (*.f64 1/90 (*.f64 (PI.f64) (-.f64 (*.f64 b b) (*.f64 a a))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.0b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.7b
(*.f64 (exp.f64 (log.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.0b
(*.f64 (*.f64 (*.f64 2 (*.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 a a))) (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 a a)))) (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 a a))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
31.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1)
34.6b
(*.f64 (-.f64 (+.f64 (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 a 2)))) (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 b 2))))) (+.f64 (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 a 2)))) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 b 2)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.7b
(*.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 (*.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
Compiler

Compiled 10834 to 7894 computations (27.1% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.8b
(-.f64 (pow.f64 b 2) (pow.f64 a 2))
8.5b
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
23.2b
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
23.5b
(sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

series61.0ms (0.4%)

Counts
2 → 40
Calls

2 calls:

57.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
4.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

rewrite13.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
add-cbrt-cube_binary64
add-exp-log_binary64
pow1_binary64
associate-*r*_binary64
cbrt-unprod_binary64
Counts
2 → 31
Calls

2 calls:

10.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
1.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

simplify103.0ms (0.7%)

Algorithm
egg-herbie
Rules
742×fma-def_binary64
438×fma-neg_binary64
429×cancel-sign-sub-inv_binary64
236×associate-*r*_binary64
220×associate-*l*_binary64
Counts
71 → 64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01462456
14131947
216391903
345181901
449941901
549551901

prune471.0ms (3.2%)

Pruning

28 alts after pruning (28 fresh and 0 done)

PrunedKeptTotal
New2109219
Fresh61925
Picked101
Done000
Total21728245
Error
27.9b
Counts
245 → 28
Alt Table
StatusErrorProgram
53.2b
(*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
53.6b
(*.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 (exp.f64 (pow.f64 b 2)) (exp.f64 (pow.f64 a 2))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.8b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 b 2)) (cbrt.f64 (pow.f64 b 2))) (cbrt.f64 (pow.f64 b 2)) (neg.f64 (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.8b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (pow.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 b)) 2) (pow.f64 (cbrt.f64 b) 2) (neg.f64 (*.f64 a a)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
49.4b
(*.f64 (/.f64 (*.f64 (*.f64 2 (-.f64 (*.f64 (pow.f64 b 2) (pow.f64 b 2)) (*.f64 (pow.f64 a 2) (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (pow.f64 b 2) (pow.f64 a 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
45.3b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (*.f64 b b) (*.f64 a a))))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.0b
(*.f64 (*.f64 (*.f64 2 (*.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 a a))) (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 a a)))) (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 a a))))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
31.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1)
45.4b
(*.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
45.2b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.7b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
54.5b
(*.f64 (exp.f64 (+.f64 (+.f64 (log.f64 2) (log.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)))) (log.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
56.8b
(*.f64 (/.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (pow.f64 b 6) (pow.f64 a 6)))) (+.f64 (*.f64 (pow.f64 b 2) (pow.f64 b 2)) (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 a 2)) (*.f64 (pow.f64 b 2) (pow.f64 a 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
32.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 1/180 (*.f64 angle (PI.f64)))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
34.6b
(*.f64 (-.f64 (+.f64 (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 a 2)))) (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 b 2))))) (+.f64 (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 a 2)))) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 b 2)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.9b
(*.f64 (*.f64 (*.f64 2 (+.f64 (pow.f64 b 2) (*.f64 (neg.f64 (pow.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 a)) 2)) (pow.f64 (cbrt.f64 a) 2)))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
41.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
29.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))
30.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 (*.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
40.7b
(*.f64 (*.f64 (*.f64 2 (neg.f64 (*.f64 a a))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
32.9b
(*.f64 (*.f64 angle (*.f64 1/90 (*.f64 (PI.f64) (-.f64 (*.f64 b b) (*.f64 a a))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.0b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.8b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (pow.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 b)) 2) (pow.f64 (cbrt.f64 b) 2) (neg.f64 (*.f64 a a)))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.0b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
53.0b
(*.f64 (log.f64 (exp.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
32.9b
(*.f64 (*.f64 angle (*.f64 1/90 (*.f64 (PI.f64) (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.7b
(*.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
Compiler

Compiled 10953 to 7767 computations (29.1% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
8.5b
(*.f64 (*.f64 2 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 b 2)) (cbrt.f64 (pow.f64 b 2))) (cbrt.f64 (pow.f64 b 2)) (neg.f64 (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
23.2b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
23.2b
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
24.4b
(cbrt.f64 (pow.f64 b 2))

series639.0ms (4.3%)

Counts
2 → 48
Calls

2 calls:

609.0ms
(*.f64 (*.f64 2 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 b 2)) (cbrt.f64 (pow.f64 b 2))) (cbrt.f64 (pow.f64 b 2)) (neg.f64 (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.0ms
(cbrt.f64 (pow.f64 b 2))

rewrite8.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
cbrt-prod_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
pow1_binary64
*-un-lft-identity_binary64
Counts
2 → 38
Calls

2 calls:

4.0ms
(*.f64 (*.f64 2 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 b 2)) (cbrt.f64 (pow.f64 b 2))) (cbrt.f64 (pow.f64 b 2)) (neg.f64 (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
1.0ms
(cbrt.f64 (pow.f64 b 2))

simplify118.0ms (0.8%)

Algorithm
egg-herbie
Rules
652×fma-def_binary64
332×cancel-sign-sub-inv_binary64
266×unswap-sqr_binary64
226×associate-*r*_binary64
205×associate-*l*_binary64
Counts
86 → 73
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01552087
13851889
215041851
346551851
448261851
549921851
649551851

prune381.0ms (2.6%)

Pruning

31 alts after pruning (31 fresh and 0 done)

PrunedKeptTotal
New1587165
Fresh32427
Picked101
Done000
Total16231193
Error
27.9b
Counts
193 → 31
Alt Table
StatusErrorProgram
29.8b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 b 2)) (*.f64 (cbrt.f64 b) (cbrt.f64 b))) (cbrt.f64 (pow.f64 b 2)) (neg.f64 (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
53.2b
(*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
53.6b
(*.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 (exp.f64 (pow.f64 b 2)) (exp.f64 (pow.f64 a 2))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
49.4b
(*.f64 (/.f64 (*.f64 (*.f64 2 (-.f64 (*.f64 (pow.f64 b 2) (pow.f64 b 2)) (*.f64 (pow.f64 a 2) (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (pow.f64 b 2) (pow.f64 a 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
45.3b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (*.f64 b b) (*.f64 a a))))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
31.7b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 b 2)) (cbrt.f64 (pow.f64 b 2))) (cbrt.f64 (pow.f64 b 2)) (neg.f64 (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1)
53.0b
(*.f64 (log.f64 (exp.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.0b
(*.f64 (*.f64 (*.f64 2 (*.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 a a))) (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 a a)))) (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 a a))))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
31.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1)
41.7b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
54.5b
(*.f64 (exp.f64 (+.f64 (+.f64 (log.f64 2) (log.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)))) (log.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
56.8b
(*.f64 (/.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (pow.f64 b 6) (pow.f64 a 6)))) (+.f64 (*.f64 (pow.f64 b 2) (pow.f64 b 2)) (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 a 2)) (*.f64 (pow.f64 b 2) (pow.f64 a 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
32.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 1/180 (*.f64 angle (PI.f64)))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
34.6b
(*.f64 (-.f64 (+.f64 (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 a 2)))) (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 b 2))))) (+.f64 (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 a 2)))) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 b 2)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.9b
(*.f64 (*.f64 (*.f64 2 (+.f64 (pow.f64 b 2) (*.f64 (neg.f64 (pow.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 a)) 2)) (pow.f64 (cbrt.f64 a) 2)))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.3b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 b 2)) (cbrt.f64 (pow.f64 b 2))) (*.f64 (pow.f64 (*.f64 b b) 1/6) (pow.f64 (*.f64 b b) 1/6)) (neg.f64 (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.8b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 b 2)) (cbrt.f64 (pow.f64 b 2))) (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 b 2))) (cbrt.f64 (cbrt.f64 (pow.f64 b 2)))) (cbrt.f64 (cbrt.f64 (pow.f64 b 2)))) (neg.f64 (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
30.2b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 b 2)) (cbrt.f64 (pow.f64 b 2))) (exp.f64 (log.f64 (cbrt.f64 (pow.f64 b 2)))) (neg.f64 (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.7b
(*.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
29.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))
30.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 (*.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
40.7b
(*.f64 (*.f64 (*.f64 2 (neg.f64 (*.f64 a a))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
33.1b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 b 2)) (cbrt.f64 (pow.f64 b 2))) (cbrt.f64 (pow.f64 b 2)) (neg.f64 (pow.f64 a 2)))) (*.f64 1/180 (*.f64 angle (PI.f64)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
30.3b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 b 2)) (cbrt.f64 (pow.f64 b 2))) (pow.f64 (pow.f64 b 2) 1/3) (neg.f64 (pow.f64 a 2)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
30.0b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.8b
(*.f64 (*.f64 (*.f64 2 (fma.f64 (pow.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 b)) 2) (pow.f64 (cbrt.f64 b) 2) (neg.f64 (*.f64 a a)))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.0b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (cbrt.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
45.2b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
32.9b
(*.f64 (*.f64 angle (*.f64 1/90 (*.f64 (PI.f64) (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
Compiler

Compiled 7886 to 5790 computations (26.6% saved)

regimes2.7s (18.5%)

Accuracy

Total 2.2b remaining (7.1%)

Threshold costs 0b (0%)

Counts
190 → 1
Compiler

Compiled 75822 to 57940 computations (23.6% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02067
12767
23267
33467
43567
53567

end1.0ms (0%)

Compiler

Compiled 43 to 34 computations (20.9% saved)

sample5.4s (36.8%)

Algorithm
intervals
Results
1.0s1533×body1024valid
850.0ms1290×body1024invalid
786.0ms5215×body128valid
341.0ms729×body512invalid
321.0ms681×body512valid
317.0ms76×body4096valid
217.0ms181×body2048valid
198.0ms1288×body128invalid
107.0ms343×body256invalid
101.0ms314×body256valid
Compiler

Compiled 1202 to 940 computations (21.8% saved)

Profiling

Loading profile data...