ab-angle->ABCF A

Time bar (total: 6.8s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 50 to 32 computations (36% saved)

sample6.2s (92.2%)

Results
546.0ms4617×0valid-sollya
460.0ms4617×0valid-rival-baseline
479.0ms4617×0valid-rival
1.1s3639×1valid-rival-baseline
1.3s3639×1valid-sollya
1.2s3639×1valid-rival
Bogosity

preprocess488.0ms (7.2%)

Algorithm
egg-herbie
Rules
1559×fma-define
656×unsub-neg
631×fma-neg
450×distribute-lft-neg-in
434×distribute-rgt-in
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
066893
1135881
2378881
31237881
42150881
53307881
64582881
75256881
85589881
95784881
105873881
115951881
127196881
137425881
147529881
157558881
167590881
177590881
187590881
197590881
207600881
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 (neg.f64 a) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 (neg.f64 b) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 (neg.f64 angle) #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 (neg.f64 angle) #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(neg.f64 (+.f64 (pow.f64 (*.f64 (neg.f64 a) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
(neg.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 (neg.f64 b) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
(neg.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 (neg.f64 angle) #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 (neg.f64 angle) #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
(+.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 angle (sin.f64 (*.f64 (/.f64 a #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 a #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 b #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 angle (cos.f64 (*.f64 (/.f64 b #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
Outputs
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 (neg.f64 a) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 (neg.f64 b) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 (neg.f64 angle) #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 (neg.f64 angle) #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)))
(neg.f64 (+.f64 (pow.f64 (*.f64 (neg.f64 a) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
(neg.f64 (+.f64 (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) (neg.f64 a)) #s(literal 2 binary64))))
(-.f64 (neg.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64))) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)))
(-.f64 (neg.f64 (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64))) (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)))
(-.f64 (neg.f64 (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64))) (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)))
(neg.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 (neg.f64 b) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
(neg.f64 (+.f64 (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) (neg.f64 a)) #s(literal 2 binary64))))
(-.f64 (neg.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64))) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)))
(-.f64 (neg.f64 (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64))) (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)))
(-.f64 (neg.f64 (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64))) (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)))
(neg.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 (neg.f64 angle) #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 (neg.f64 angle) #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
(neg.f64 (+.f64 (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) (neg.f64 a)) #s(literal 2 binary64))))
(-.f64 (neg.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64))) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)))
(-.f64 (neg.f64 (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64))) (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)))
(-.f64 (neg.f64 (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64))) (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) b) #s(literal 2 binary64)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64)))) b) #s(literal 2 binary64)) (pow.f64 (*.f64 a (cos.f64 (*.f64 angle (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64)))) b) #s(literal 2 binary64)) (pow.f64 (*.f64 a (cos.f64 (*.f64 angle (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 angle (sin.f64 (*.f64 (/.f64 a #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 a #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 angle (sin.f64 (*.f64 (PI.f64) (/.f64 a #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (PI.f64) (/.f64 a #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 angle (sin.f64 (*.f64 a (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 a (/.f64 (PI.f64) #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 angle (sin.f64 (*.f64 a (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 a (*.f64 (PI.f64) #s(literal 1/180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 b #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 angle (cos.f64 (*.f64 (/.f64 b #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (/.f64 b #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 angle (cos.f64 (*.f64 (PI.f64) (/.f64 b #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (*.f64 b #s(literal 1/180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 angle (cos.f64 (*.f64 (PI.f64) (*.f64 b #s(literal 1/180 binary64))))) #s(literal 2 binary64)))
Symmetry

(abs a)

(abs b)

(abs angle)

Compiler

Compiled 24 to 15 computations (37.5% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
74.6%
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
Compiler

Compiled 48 to 30 computations (37.5% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02279
12679
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
Outputs
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))

soundness0.0ms (0%)

Stop Event
fuel
Compiler

Compiled 24 to 15 computations (37.5% saved)

preprocess40.0ms (0.6%)

Remove

(abs angle)

(abs b)

(abs a)

Compiler

Compiled 384 to 240 computations (37.5% saved)

end0.0ms (0%)

Profiling

Loading profile data...