ab-angle->ABCF C

Time bar (total: 2.7s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
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 23 to 12 computations (47.8% saved)

sample1.5s (55.6%)

Memory
54.2MiB live, 1 248.0MiB allocated
Samples
1.2s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 1.0s
ival-sinu: 452.0ms (45.2% of total)
ival-cosu: 212.0ms (21.2% of total)
ival-pow2: 174.0ms (17.4% of total)
ival-mult: 116.0ms (11.6% of total)
ival-add: 36.0ms (3.6% of total)
ival-true: 6.0ms (0.6% of total)
ival-assert: 3.0ms (0.3% of total)
Bogosity

explain247.0ms (9.2%)

Memory
-4.1MiB live, 307.1MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1230-0-(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
1230-0-(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
10-1(-6.6236670837266825e+255 4.188184698450465e+249 2.860005577086827e-308)(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
00-0-(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
00-0-(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
00-0-(/.f64 angle #s(literal 180 binary64))
00-0-(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
00-0-a
00-0-#s(literal 180 binary64)
00-0-angle
00-0-(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
00-0-#s(literal 2 binary64)
00-0-b
00-0-(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
00-0-(PI.f64)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
cos.f64(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))sensitivity1231
sin.f64(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))sensitivity1231
Confusion
Predicted +Predicted -
+580
-65133
Precision
0.4715447154471545
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+5800
-651132
Precision?
0.46774193548387094
Recall?
1.0
Freqs
test
numberfreq
0133
2123
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
84.0ms512×0valid
Compiler

Compiled 274 to 64 computations (76.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 62.0ms
ival-pow2: 15.0ms (24.3% of total)
ival-cosu: 13.0ms (21% of total)
ival-sinu: 13.0ms (21% of total)
ival-mult: 11.0ms (17.8% of total)
ival-div: 5.0ms (8.1% of total)
ival-pi: 2.0ms (3.2% of total)
ival-add: 2.0ms (3.2% of total)
ival-true: 1.0ms (1.6% of total)
exact: 1.0ms (1.6% of total)
ival-assert: 0.0ms (0% of total)

preprocess3.0ms (0.1%)

Memory
6.5MiB live, 6.5MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Outputs
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Compiler

Compiled 21 to 15 computations (28.6% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.5%
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Compiler

Compiled 21 to 15 computations (28.6% saved)

simplify1.0ms (0%)

Memory
1.1MiB live, 1.1MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
cost-diff0
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
cost-diff0
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
cost-diff0
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Calls
Call 1
Inputs
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
a
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
Outputs
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
a
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))

localize57.0ms (2.1%)

Memory
-13.8MiB live, 68.3MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.192374716849389
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
accuracy0.3046875
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
accuracy27.049848645940852
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy27.37181816252783
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
Samples
43.0ms256×0valid
Compiler

Compiled 168 to 32 computations (81% saved)

Precisions
Click to see histograms. Total time spent on operations: 33.0ms
ival-sinu: 12.0ms (36.9% of total)
ival-cosu: 6.0ms (18.4% of total)
ival-mult: 5.0ms (15.4% of total)
ival-pow2: 5.0ms (15.4% of total)
ival-div: 2.0ms (6.1% of total)
ival-pi: 1.0ms (3.1% of total)
ival-add: 1.0ms (3.1% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series27.0ms (1%)

Memory
-1.8MiB live, 35.3MiB allocated
Counts
7 → 32
Calls
Call 1
Inputs
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
Outputs
(* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(* a (cos (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* b (sin (* 1/180 (* angle (PI)))))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(pow a 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* 1/32400 (* (pow b 2) (pow (PI) 2))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (+ (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))) (* (pow angle 2) (+ (* (pow a 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))))) (pow a 2))
(+ (* -1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2)))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow a 2) (* (pow angle 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6))))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))) (pow a 2))
a
(+ a (* -1/64800 (* a (* (pow angle 2) (pow (PI) 2)))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* 1/25194240000 (* a (* (pow angle 2) (pow (PI) 4)))))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* (pow angle 2) (+ (* -1/24488801280000000 (* a (* (pow angle 2) (pow (PI) 6)))) (* 1/25194240000 (* a (pow (PI) 4))))))))
1
(+ 1 (* -1/64800 (* (pow angle 2) (pow (PI) 2))))
(+ 1 (* (pow angle 2) (+ (* -1/64800 (pow (PI) 2)) (* 1/25194240000 (* (pow angle 2) (pow (PI) 4))))))
(+ 1 (* (pow angle 2) (+ (* -1/64800 (pow (PI) 2)) (* (pow angle 2) (+ (* -1/24488801280000000 (* (pow angle 2) (pow (PI) 6))) (* 1/25194240000 (pow (PI) 4)))))))
(* 1/180 (* angle (PI)))
(* angle (+ (* -1/34992000 (* (pow angle 2) (pow (PI) 3))) (* 1/180 (PI))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* 1/22674816000000 (* (pow angle 2) (pow (PI) 5)))))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (pow (PI) 7))) (* 1/22674816000000 (pow (PI) 5))))))))
(* 1/180 (* angle (* b (PI))))
(* angle (+ (* -1/34992000 (* (pow angle 2) (* b (pow (PI) 3)))) (* 1/180 (* b (PI)))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* 1/22674816000000 (* (pow angle 2) (* b (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (* b (pow (PI) 7)))) (* 1/22674816000000 (* b (pow (PI) 5)))))))))
(cos (* 1/180 (* angle (PI))))
(sin (* 1/180 (* angle (PI))))
Calls

9 calls:

TimeVariablePointExpression
7.0ms
angle
@-inf
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)) (* b (sin (* (PI) (/ angle 180)))))
4.0ms
angle
@0
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)) (* b (sin (* (PI) (/ angle 180)))))
3.0ms
a
@0
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)) (* b (sin (* (PI) (/ angle 180)))))
2.0ms
a
@inf
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)) (* b (sin (* (PI) (/ angle 180)))))
2.0ms
angle
@inf
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)) (* b (sin (* (PI) (/ angle 180)))))

simplify1.0ms (0%)

Memory
1.5MiB live, 1.5MiB allocated
Algorithm
egg-herbie
Counts
32 → 7
Calls
Call 1
Inputs
(* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(* a (cos (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* b (sin (* 1/180 (* angle (PI)))))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(pow a 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* 1/32400 (* (pow b 2) (pow (PI) 2))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (+ (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))) (* (pow angle 2) (+ (* (pow a 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))))) (pow a 2))
(+ (* -1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2)))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow a 2) (* (pow angle 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6))))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))) (pow a 2))
a
(+ a (* -1/64800 (* a (* (pow angle 2) (pow (PI) 2)))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* 1/25194240000 (* a (* (pow angle 2) (pow (PI) 4)))))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* (pow angle 2) (+ (* -1/24488801280000000 (* a (* (pow angle 2) (pow (PI) 6)))) (* 1/25194240000 (* a (pow (PI) 4))))))))
1
(+ 1 (* -1/64800 (* (pow angle 2) (pow (PI) 2))))
(+ 1 (* (pow angle 2) (+ (* -1/64800 (pow (PI) 2)) (* 1/25194240000 (* (pow angle 2) (pow (PI) 4))))))
(+ 1 (* (pow angle 2) (+ (* -1/64800 (pow (PI) 2)) (* (pow angle 2) (+ (* -1/24488801280000000 (* (pow angle 2) (pow (PI) 6))) (* 1/25194240000 (pow (PI) 4)))))))
(* 1/180 (* angle (PI)))
(* angle (+ (* -1/34992000 (* (pow angle 2) (pow (PI) 3))) (* 1/180 (PI))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* 1/22674816000000 (* (pow angle 2) (pow (PI) 5)))))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (pow (PI) 7))) (* 1/22674816000000 (pow (PI) 5))))))))
(* 1/180 (* angle (* b (PI))))
(* angle (+ (* -1/34992000 (* (pow angle 2) (* b (pow (PI) 3)))) (* 1/180 (* b (PI)))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* 1/22674816000000 (* (pow angle 2) (* b (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (* b (pow (PI) 7)))) (* 1/22674816000000 (* b (pow (PI) 5)))))))))
(cos (* 1/180 (* angle (PI))))
(sin (* 1/180 (* angle (PI))))
Outputs
(* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(* a (cos (* 1/180 (* angle (PI)))))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(* b (sin (* 1/180 (* angle (PI)))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))

rewrite0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Counts
7 → 7
Calls
Call 1
Inputs
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
Outputs
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))

eval2.0ms (0.1%)

Memory
3.3MiB live, 3.3MiB allocated
Compiler

Compiled 386 to 39 computations (89.9% saved)

prune4.0ms (0.2%)

Memory
7.6MiB live, 7.6MiB allocated
Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New10515
Fresh000
Picked011
Done000
Total10616
Accuracy
81.6%
Counts
16 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.5%
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
56.4%
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
27.8%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
59.7%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
5.7%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
2.8%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
Compiler

Compiled 315 to 235 computations (25.4% saved)

simplify2.0ms (0.1%)

Memory
2.7MiB live, 2.8MiB allocated
Algorithm
egg-herbie
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
cost-diff0
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
cost-diff0
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
cost-diff0
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
cost-diff0
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
cost-diff0
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
cost-diff0
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
cost-diff0
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
cost-diff0
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
cost-diff0
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
cost-diff0
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
cost-diff0
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
cost-diff0
(PI.f64)
cost-diff0
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
cost-diff0
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
cost-diff0
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
cost-diff0
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
cost-diff0
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
cost-diff0
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
cost-diff0
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
a
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
a
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
a
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(literal 2 binary64)
Outputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
a
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
a
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
a
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(literal 2 binary64)

localize73.0ms (2.7%)

Memory
22.2MiB live, 97.3MiB allocated
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.3046875
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
accuracy27.049848645940852
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy27.37181816252783
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy61.02718818756744
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
accuracy0.16082001953688402
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
accuracy0.3046875
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
accuracy27.37181816252783
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy61.659503682653934
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy0.192374716849389
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
accuracy0.3046875
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
accuracy27.049848645940852
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy60.251469577649154
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
accuracy0.0
(PI.f64)
accuracy0.3046875
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
accuracy27.049848645940852
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy62.1299835061619
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
accuracy0.140625
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
accuracy0.3046875
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
accuracy20.676825297838235
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
accuracy27.37181816252783
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
Samples
46.0ms256×0valid
Compiler

Compiled 669 to 51 computations (92.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 27.0ms
ival-cosu: 7.0ms (26.3% of total)
ival-sinu: 6.0ms (22.6% of total)
ival-mult: 5.0ms (18.8% of total)
ival-pow2: 5.0ms (18.8% of total)
ival-div: 2.0ms (7.5% of total)
ival-pi: 1.0ms (3.8% of total)
ival-add: 1.0ms (3.8% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series27.0ms (1%)

Memory
-38.3MiB live, 26.9MiB allocated
Counts
15 → 36
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
Outputs
(* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(* a (cos (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* b (sin (* 1/180 (* angle (PI)))))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(pow a 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* 1/32400 (* (pow b 2) (pow (PI) 2))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (+ (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))) (* (pow angle 2) (+ (* (pow a 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))))) (pow a 2))
(+ (* -1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2)))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow a 2) (* (pow angle 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6))))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))) (pow a 2))
a
(+ a (* -1/64800 (* a (* (pow angle 2) (pow (PI) 2)))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* 1/25194240000 (* a (* (pow angle 2) (pow (PI) 4)))))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* (pow angle 2) (+ (* -1/24488801280000000 (* a (* (pow angle 2) (pow (PI) 6)))) (* 1/25194240000 (* a (pow (PI) 4))))))))
1
(+ 1 (* -1/64800 (* (pow angle 2) (pow (PI) 2))))
(+ 1 (* (pow angle 2) (+ (* -1/64800 (pow (PI) 2)) (* 1/25194240000 (* (pow angle 2) (pow (PI) 4))))))
(+ 1 (* (pow angle 2) (+ (* -1/64800 (pow (PI) 2)) (* (pow angle 2) (+ (* -1/24488801280000000 (* (pow angle 2) (pow (PI) 6))) (* 1/25194240000 (pow (PI) 4)))))))
(* 1/180 (* angle (PI)))
(* angle (+ (* -1/34992000 (* (pow angle 2) (pow (PI) 3))) (* 1/180 (PI))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* 1/22674816000000 (* (pow angle 2) (pow (PI) 5)))))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (pow (PI) 7))) (* 1/22674816000000 (pow (PI) 5))))))))
(* 1/180 (* angle (* b (PI))))
(* angle (+ (* -1/34992000 (* (pow angle 2) (* b (pow (PI) 3)))) (* 1/180 (* b (PI)))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* 1/22674816000000 (* (pow angle 2) (* b (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (* b (pow (PI) 7)))) (* 1/22674816000000 (* b (pow (PI) 5)))))))))
(* 1/32400 (* (pow angle 2) (* (pow b 2) (pow (PI) 2))))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow angle 2) (* (pow b 2) (pow (PI) 4)))) (* 1/32400 (* (pow b 2) (pow (PI) 2)))))
(* (pow angle 2) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow angle 2) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
(* (pow angle 2) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow angle 2) (* (pow b 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
(cos (* 1/180 (* angle (PI))))
(sin (* 1/180 (* angle (PI))))
Calls

9 calls:

TimeVariablePointExpression
12.0ms
a
@inf
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)) (PI) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (* b (sin (* (PI) (/ angle 180)))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* b (sin (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2))
2.0ms
a
@-inf
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)) (PI) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (* b (sin (* (PI) (/ angle 180)))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* b (sin (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2))
2.0ms
a
@0
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)) (PI) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (* b (sin (* (PI) (/ angle 180)))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* b (sin (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2))
2.0ms
b
@0
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)) (PI) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (* b (sin (* (PI) (/ angle 180)))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* b (sin (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2))
2.0ms
b
@-inf
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)) (PI) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (* b (sin (* (PI) (/ angle 180)))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* b (sin (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2))

simplify1.0ms (0%)

Memory
1.7MiB live, 1.7MiB allocated
Algorithm
egg-herbie
Counts
36 → 15
Calls
Call 1
Inputs
(* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(* a (cos (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* b (sin (* 1/180 (* angle (PI)))))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(pow a 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* 1/32400 (* (pow b 2) (pow (PI) 2))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (+ (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))) (* (pow angle 2) (+ (* (pow a 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))))) (pow a 2))
(+ (* -1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2)))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow a 2) (* (pow angle 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6))))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))) (pow a 2))
a
(+ a (* -1/64800 (* a (* (pow angle 2) (pow (PI) 2)))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* 1/25194240000 (* a (* (pow angle 2) (pow (PI) 4)))))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* (pow angle 2) (+ (* -1/24488801280000000 (* a (* (pow angle 2) (pow (PI) 6)))) (* 1/25194240000 (* a (pow (PI) 4))))))))
1
(+ 1 (* -1/64800 (* (pow angle 2) (pow (PI) 2))))
(+ 1 (* (pow angle 2) (+ (* -1/64800 (pow (PI) 2)) (* 1/25194240000 (* (pow angle 2) (pow (PI) 4))))))
(+ 1 (* (pow angle 2) (+ (* -1/64800 (pow (PI) 2)) (* (pow angle 2) (+ (* -1/24488801280000000 (* (pow angle 2) (pow (PI) 6))) (* 1/25194240000 (pow (PI) 4)))))))
(* 1/180 (* angle (PI)))
(* angle (+ (* -1/34992000 (* (pow angle 2) (pow (PI) 3))) (* 1/180 (PI))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* 1/22674816000000 (* (pow angle 2) (pow (PI) 5)))))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (pow (PI) 7))) (* 1/22674816000000 (pow (PI) 5))))))))
(* 1/180 (* angle (* b (PI))))
(* angle (+ (* -1/34992000 (* (pow angle 2) (* b (pow (PI) 3)))) (* 1/180 (* b (PI)))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* 1/22674816000000 (* (pow angle 2) (* b (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (* b (pow (PI) 7)))) (* 1/22674816000000 (* b (pow (PI) 5)))))))))
(* 1/32400 (* (pow angle 2) (* (pow b 2) (pow (PI) 2))))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow angle 2) (* (pow b 2) (pow (PI) 4)))) (* 1/32400 (* (pow b 2) (pow (PI) 2)))))
(* (pow angle 2) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow angle 2) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
(* (pow angle 2) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow angle 2) (* (pow b 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
(cos (* 1/180 (* angle (PI))))
(sin (* 1/180 (* angle (PI))))
Outputs
(* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(* a (cos (* 1/180 (* angle (PI)))))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(* b (sin (* 1/180 (* angle (PI)))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(pow a 2)
(PI.f64)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* 1/32400 (* (pow b 2) (pow (PI) 2))))) (pow a 2))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow a 2))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (+ (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))) (* (pow angle 2) (+ (* (pow a 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))))) (pow a 2))
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(+ (* -1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2)))) (pow a 2))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow a 2) (* (pow angle 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))) (pow a 2))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6))))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))) (pow a 2))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
a
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))

rewrite1.0ms (0%)

Memory
1.7MiB live, 1.7MiB allocated
Counts
15 → 15
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
Outputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))

eval5.0ms (0.2%)

Memory
9.6MiB live, 9.6MiB allocated
Compiler

Compiled 1 959 to 67 computations (96.6% saved)

prune13.0ms (0.5%)

Memory
-20.3MiB live, 18.6MiB allocated
Pruning

15 alts after pruning (10 fresh and 5 done)

PrunedKeptTotal
New461056
Fresh000
Picked145
Done011
Total471562
Accuracy
81.6%
Counts
62 → 15
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.5%
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
23.0%
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
27.8%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
3.8%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
14.8%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
34.3%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
24.3%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
59.7%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
24.3%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
4.3%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
3.1%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
5.7%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
2.8%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
4.3%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
3.7%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
Compiler

Compiled 913 to 557 computations (39% saved)

simplify2.0ms (0.1%)

Memory
2.7MiB live, 2.7MiB allocated
Algorithm
egg-herbie
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
cost-diff0
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
cost-diff0
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
cost-diff0
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
cost-diff0
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
cost-diff0
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
cost-diff0
#s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
cost-diff0
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
cost-diff0
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
cost-diff0
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
cost-diff0
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
cost-diff0
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
cost-diff0
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
cost-diff0
(PI.f64)
cost-diff0
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
cost-diff0
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
cost-diff0
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
cost-diff0
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
cost-diff0
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Calls
Call 1
Inputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
(PI.f64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
a
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
Outputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
(PI.f64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
a
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)

localize76.0ms (2.8%)

Memory
8.3MiB live, 84.7MiB allocated
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
accuracy0.16082001953688402
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
accuracy0.3046875
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
accuracy61.659503682653934
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy61.90399229008133
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
accuracy0.3046875
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
accuracy20.676825297838235
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
accuracy27.37181816252783
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy61.88596317683398
#s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
accuracy0.3046875
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
accuracy20.676825297838235
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
accuracy27.37181816252783
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy61.02718818756744
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
accuracy0.0
(PI.f64)
accuracy61.27087827285218
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
accuracy27.049848645940852
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy61.02718818756744
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
accuracy61.659503682653934
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy61.90399229008133
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
Samples
55.0ms256×0valid
Compiler

Compiled 813 to 55 computations (93.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 31.0ms
ival-cosu: 8.0ms (25.5% of total)
ival-sinu: 7.0ms (22.3% of total)
ival-mult: 6.0ms (19.1% of total)
ival-pow2: 6.0ms (19.1% of total)
ival-div: 2.0ms (6.4% of total)
ival-pi: 1.0ms (3.2% of total)
ival-add: 1.0ms (3.2% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series20.0ms (0.7%)

Memory
-15.1MiB live, 25.9MiB allocated
Counts
18 → 36
Calls
Call 1
Inputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
(PI.f64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
Outputs
(* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(* a (cos (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* b (sin (* 1/180 (* angle (PI)))))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(pow a 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* 1/32400 (* (pow b 2) (pow (PI) 2))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (+ (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))) (* (pow angle 2) (+ (* (pow a 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))))) (pow a 2))
(+ (* -1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2)))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow a 2) (* (pow angle 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6))))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))) (pow a 2))
a
(+ a (* -1/64800 (* a (* (pow angle 2) (pow (PI) 2)))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* 1/25194240000 (* a (* (pow angle 2) (pow (PI) 4)))))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* (pow angle 2) (+ (* -1/24488801280000000 (* a (* (pow angle 2) (pow (PI) 6)))) (* 1/25194240000 (* a (pow (PI) 4))))))))
(* 1/32400 (* (pow angle 2) (* (pow b 2) (pow (PI) 2))))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow angle 2) (* (pow b 2) (pow (PI) 4)))) (* 1/32400 (* (pow b 2) (pow (PI) 2)))))
(* (pow angle 2) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow angle 2) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
(* (pow angle 2) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow angle 2) (* (pow b 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
1
(+ 1 (* -1/64800 (* (pow angle 2) (pow (PI) 2))))
(+ 1 (* (pow angle 2) (+ (* -1/64800 (pow (PI) 2)) (* 1/25194240000 (* (pow angle 2) (pow (PI) 4))))))
(+ 1 (* (pow angle 2) (+ (* -1/64800 (pow (PI) 2)) (* (pow angle 2) (+ (* -1/24488801280000000 (* (pow angle 2) (pow (PI) 6))) (* 1/25194240000 (pow (PI) 4)))))))
(* 1/180 (* angle (* b (PI))))
(* angle (+ (* -1/34992000 (* (pow angle 2) (* b (pow (PI) 3)))) (* 1/180 (* b (PI)))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* 1/22674816000000 (* (pow angle 2) (* b (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (* b (pow (PI) 7)))) (* 1/22674816000000 (* b (pow (PI) 5)))))))))
(* 1/180 (* angle (PI)))
(* angle (+ (* -1/34992000 (* (pow angle 2) (pow (PI) 3))) (* 1/180 (PI))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* 1/22674816000000 (* (pow angle 2) (pow (PI) 5)))))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (pow (PI) 7))) (* 1/22674816000000 (pow (PI) 5))))))))
(cos (* 1/180 (* angle (PI))))
(sin (* 1/180 (* angle (PI))))
Calls

9 calls:

TimeVariablePointExpression
5.0ms
b
@-inf
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* b (sin (* (PI) (/ angle 180)))) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)))
2.0ms
a
@0
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* b (sin (* (PI) (/ angle 180)))) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)))
2.0ms
a
@-inf
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* b (sin (* (PI) (/ angle 180)))) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)))
2.0ms
a
@inf
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* b (sin (* (PI) (/ angle 180)))) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)))
2.0ms
b
@0
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (cos (* (PI) (/ angle 180))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* b (sin (* (PI) (/ angle 180)))) (sin (* (PI) (/ angle 180))) (* (PI) (/ angle 180)))

simplify1.0ms (0.1%)

Memory
1.8MiB live, 1.8MiB allocated
Algorithm
egg-herbie
Counts
36 → 18
Calls
Call 1
Inputs
(* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(* a (cos (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* b (sin (* 1/180 (* angle (PI)))))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(pow a 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* 1/32400 (* (pow b 2) (pow (PI) 2))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (+ (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))) (* (pow angle 2) (+ (* (pow a 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))))) (pow a 2))
(+ (* -1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2)))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow a 2) (* (pow angle 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6))))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))) (pow a 2))
a
(+ a (* -1/64800 (* a (* (pow angle 2) (pow (PI) 2)))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* 1/25194240000 (* a (* (pow angle 2) (pow (PI) 4)))))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* (pow angle 2) (+ (* -1/24488801280000000 (* a (* (pow angle 2) (pow (PI) 6)))) (* 1/25194240000 (* a (pow (PI) 4))))))))
(* 1/32400 (* (pow angle 2) (* (pow b 2) (pow (PI) 2))))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow angle 2) (* (pow b 2) (pow (PI) 4)))) (* 1/32400 (* (pow b 2) (pow (PI) 2)))))
(* (pow angle 2) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow angle 2) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
(* (pow angle 2) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow angle 2) (* (pow b 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
1
(+ 1 (* -1/64800 (* (pow angle 2) (pow (PI) 2))))
(+ 1 (* (pow angle 2) (+ (* -1/64800 (pow (PI) 2)) (* 1/25194240000 (* (pow angle 2) (pow (PI) 4))))))
(+ 1 (* (pow angle 2) (+ (* -1/64800 (pow (PI) 2)) (* (pow angle 2) (+ (* -1/24488801280000000 (* (pow angle 2) (pow (PI) 6))) (* 1/25194240000 (pow (PI) 4)))))))
(* 1/180 (* angle (* b (PI))))
(* angle (+ (* -1/34992000 (* (pow angle 2) (* b (pow (PI) 3)))) (* 1/180 (* b (PI)))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* 1/22674816000000 (* (pow angle 2) (* b (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (* b (pow (PI) 7)))) (* 1/22674816000000 (* b (pow (PI) 5)))))))))
(* 1/180 (* angle (PI)))
(* angle (+ (* -1/34992000 (* (pow angle 2) (pow (PI) 3))) (* 1/180 (PI))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* 1/22674816000000 (* (pow angle 2) (pow (PI) 5)))))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (pow (PI) 7))) (* 1/22674816000000 (pow (PI) 5))))))))
(cos (* 1/180 (* angle (PI))))
(sin (* 1/180 (* angle (PI))))
Outputs
(* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
(* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(* a (cos (* 1/180 (* angle (PI)))))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
(* b (sin (* 1/180 (* angle (PI)))))
(PI.f64)
(* (pow b 2) (+ (/ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
(pow a 2)
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* 1/32400 (* (pow b 2) (pow (PI) 2))))) (pow a 2))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow a 2))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (+ (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))) (* (pow angle 2) (+ (* (pow a 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))))) (pow a 2))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+ (* -1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2)))) (pow a 2))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow a 2) (* (pow angle 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))) (pow a 2))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6))))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))) (pow a 2))
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
a
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
(+ a (* -1/64800 (* a (* (pow angle 2) (pow (PI) 2)))))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* 1/25194240000 (* a (* (pow angle 2) (pow (PI) 4)))))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* (pow angle 2) (+ (* -1/24488801280000000 (* a (* (pow angle 2) (pow (PI) 6)))) (* 1/25194240000 (* a (pow (PI) 4))))))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))

rewrite1.0ms (0%)

Memory
1.8MiB live, 1.8MiB allocated
Counts
18 → 18
Calls
Call 1
Inputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
(PI.f64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
Outputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
(PI.f64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))

eval6.0ms (0.2%)

Memory
9.4MiB live, 9.4MiB allocated
Compiler

Compiled 2 439 to 79 computations (96.8% saved)

prune12.0ms (0.5%)

Memory
17.4MiB live, 17.4MiB allocated
Pruning

18 alts after pruning (9 fresh and 9 done)

PrunedKeptTotal
New51556
Fresh145
Picked145
Done055
Total531871
Accuracy
81.6%
Counts
71 → 18
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.5%
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
17.9%
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
27.8%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
3.8%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
14.8%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
34.3%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
24.5%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
25.7%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
59.7%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
24.3%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
4.3%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
3.1%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
5.7%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
2.8%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
3.7%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
4.3%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
3.7%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
17.9%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
Compiler

Compiled 997 to 609 computations (38.9% saved)

simplify3.0ms (0.1%)

Memory
-36.1MiB live, 2.7MiB allocated
Algorithm
egg-herbie
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))
cost-diff0
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))
cost-diff0
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))))
cost-diff0
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
cost-diff0
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
cost-diff0
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
cost-diff0
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
cost-diff0
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
cost-diff0
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
cost-diff0
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
cost-diff0
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
cost-diff0
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
cost-diff0
(/.f64 angle #s(literal 180 binary64))
cost-diff0
(PI.f64)
cost-diff0
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
cost-diff0
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
cost-diff0
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
cost-diff0
#s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
cost-diff0
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
cost-diff0
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Calls
Call 1
Inputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(literal 2 binary64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))
(PI.f64)
#s(literal 2 binary64)
(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
Outputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(literal 2 binary64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)
#s(literal 2 binary64)
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))
(PI.f64)
#s(literal 2 binary64)
(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(/.f64 angle #s(literal 180 binary64))
angle
#s(literal 180 binary64)

localize72.0ms (2.7%)

Memory
16.0MiB live, 90.3MiB allocated
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy27.049848645940852
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy61.02718818756744
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))))
accuracy61.7628011175073
#s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))
accuracy61.90399229008133
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))
accuracy0.3046875
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
accuracy20.676825297838235
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
accuracy61.659503682653934
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy61.90399229008133
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
accuracy20.676825297838235
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
accuracy61.02718818756744
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
accuracy61.659503682653934
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy61.90399229008133
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
accuracy0.0
(/.f64 angle #s(literal 180 binary64))
accuracy0.0
(PI.f64)
accuracy0.3046875
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
accuracy62.0345172639434
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy0.3046875
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
accuracy27.049848645940852
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
accuracy61.02718818756744
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
accuracy61.86685557265276
#s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
Samples
48.0ms256×0valid
Compiler

Compiled 951 to 56 computations (94.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 29.0ms
ival-cosu: 7.0ms (24.2% of total)
ival-sinu: 6.0ms (20.7% of total)
ival-mult: 5.0ms (17.3% of total)
ival-pow2: 5.0ms (17.3% of total)
ival-pi: 3.0ms (10.4% of total)
ival-div: 2.0ms (6.9% of total)
ival-add: 1.0ms (3.5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series18.0ms (0.7%)

Memory
27.8MiB live, 27.8MiB allocated
Counts
20 → 32
Calls
Call 1
Inputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))
Outputs
(* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(* a (cos (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* b (sin (* 1/180 (* angle (PI)))))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(pow a 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* 1/32400 (* (pow b 2) (pow (PI) 2))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (+ (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))) (* (pow angle 2) (+ (* (pow a 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))))) (pow a 2))
(+ (* -1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2)))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow a 2) (* (pow angle 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6))))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))) (pow a 2))
a
(+ a (* -1/64800 (* a (* (pow angle 2) (pow (PI) 2)))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* 1/25194240000 (* a (* (pow angle 2) (pow (PI) 4)))))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* (pow angle 2) (+ (* -1/24488801280000000 (* a (* (pow angle 2) (pow (PI) 6)))) (* 1/25194240000 (* a (pow (PI) 4))))))))
(* 1/180 (* angle (PI)))
(* 1/180 angle)
(* 1/32400 (* (pow angle 2) (* (pow b 2) (pow (PI) 2))))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow angle 2) (* (pow b 2) (pow (PI) 4)))) (* 1/32400 (* (pow b 2) (pow (PI) 2)))))
(* (pow angle 2) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow angle 2) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
(* (pow angle 2) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow angle 2) (* (pow b 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
(* angle (+ (* -1/34992000 (* (pow angle 2) (pow (PI) 3))) (* 1/180 (PI))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* 1/22674816000000 (* (pow angle 2) (pow (PI) 5)))))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (pow (PI) 7))) (* 1/22674816000000 (pow (PI) 5))))))))
(* 1/180 (* angle (* b (PI))))
(* angle (+ (* -1/34992000 (* (pow angle 2) (* b (pow (PI) 3)))) (* 1/180 (* b (PI)))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* 1/22674816000000 (* (pow angle 2) (* b (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (* b (pow (PI) 7)))) (* 1/22674816000000 (* b (pow (PI) 5)))))))))
(sin (* 1/180 (* angle (PI))))
Calls

9 calls:

TimeVariablePointExpression
2.0ms
a
@0
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (* (PI) (/ angle 180)) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI) (/ angle 180) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (sin (* (PI) (/ angle 180))) (* b (sin (* (PI) (/ angle 180)))) (* b (sin (* (PI) (/ angle 180)))))
2.0ms
angle
@-inf
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (* (PI) (/ angle 180)) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI) (/ angle 180) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (sin (* (PI) (/ angle 180))) (* b (sin (* (PI) (/ angle 180)))) (* b (sin (* (PI) (/ angle 180)))))
2.0ms
angle
@inf
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (* (PI) (/ angle 180)) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI) (/ angle 180) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (sin (* (PI) (/ angle 180))) (* b (sin (* (PI) (/ angle 180)))) (* b (sin (* (PI) (/ angle 180)))))
2.0ms
a
@-inf
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (* (PI) (/ angle 180)) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI) (/ angle 180) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (sin (* (PI) (/ angle 180))) (* b (sin (* (PI) (/ angle 180)))) (* b (sin (* (PI) (/ angle 180)))))
2.0ms
b
@0
((+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (* (PI) (/ angle 180)) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI) (/ angle 180) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow (* a (cos (* (PI) (/ angle 180)))) 2) (* a (cos (* (PI) (/ angle 180)))) (pow (* b (sin (* (PI) (/ angle 180)))) 2) (sin (* (PI) (/ angle 180))) (* b (sin (* (PI) (/ angle 180)))) (* b (sin (* (PI) (/ angle 180)))))

simplify8.0ms (0.3%)

Memory
-37.8MiB live, 2.2MiB allocated
Algorithm
egg-herbie
Counts
32 → 20
Calls
Call 1
Inputs
(* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(* a (cos (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* b (sin (* 1/180 (* angle (PI)))))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(pow a 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* 1/32400 (* (pow b 2) (pow (PI) 2))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (+ (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))) (* (pow angle 2) (+ (* (pow a 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))))) (pow a 2))
(+ (* -1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2)))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow a 2) (* (pow angle 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))) (pow a 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6))))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))) (pow a 2))
a
(+ a (* -1/64800 (* a (* (pow angle 2) (pow (PI) 2)))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* 1/25194240000 (* a (* (pow angle 2) (pow (PI) 4)))))))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* (pow angle 2) (+ (* -1/24488801280000000 (* a (* (pow angle 2) (pow (PI) 6)))) (* 1/25194240000 (* a (pow (PI) 4))))))))
(* 1/180 (* angle (PI)))
(* 1/180 angle)
(* 1/32400 (* (pow angle 2) (* (pow b 2) (pow (PI) 2))))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow angle 2) (* (pow b 2) (pow (PI) 4)))) (* 1/32400 (* (pow b 2) (pow (PI) 2)))))
(* (pow angle 2) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow angle 2) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
(* (pow angle 2) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow angle 2) (* (pow b 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
(* angle (+ (* -1/34992000 (* (pow angle 2) (pow (PI) 3))) (* 1/180 (PI))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* 1/22674816000000 (* (pow angle 2) (pow (PI) 5)))))))
(* angle (+ (* 1/180 (PI)) (* (pow angle 2) (+ (* -1/34992000 (pow (PI) 3)) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (pow (PI) 7))) (* 1/22674816000000 (pow (PI) 5))))))))
(* 1/180 (* angle (* b (PI))))
(* angle (+ (* -1/34992000 (* (pow angle 2) (* b (pow (PI) 3)))) (* 1/180 (* b (PI)))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* 1/22674816000000 (* (pow angle 2) (* b (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* b (PI))) (* (pow angle 2) (+ (* -1/34992000 (* b (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* (pow angle 2) (* b (pow (PI) 7)))) (* 1/22674816000000 (* b (pow (PI) 5)))))))))
(sin (* 1/180 (* angle (PI))))
Outputs
(* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
(* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(* a (cos (* 1/180 (* angle (PI)))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(* b (sin (* 1/180 (* angle (PI)))))
(PI.f64)
(* (pow b 2) (+ (/ (* (pow a 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(/.f64 angle #s(literal 180 binary64))
(pow a 2)
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* 1/32400 (* (pow b 2) (pow (PI) 2))))) (pow a 2))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow a 2))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow b 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow b 2) (pow (PI) 4))) (+ (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))) (* (pow angle 2) (+ (* (pow a 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))) (* (pow b 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))))) (pow a 2))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
(+ (* -1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2)))) (pow a 2))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow a 2) (* (pow angle 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))) (pow a 2))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6))))) (* (pow a 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))) (pow a 2))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
a
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))))
(+ a (* -1/64800 (* a (* (pow angle 2) (pow (PI) 2)))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* 1/25194240000 (* a (* (pow angle 2) (pow (PI) 4)))))))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))
(+ a (* (pow angle 2) (+ (* -1/64800 (* a (pow (PI) 2))) (* (pow angle 2) (+ (* -1/24488801280000000 (* a (* (pow angle 2) (pow (PI) 6)))) (* 1/25194240000 (* a (pow (PI) 4))))))))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(* 1/180 (* angle (PI)))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(* 1/180 angle)
#s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))

rewrite1.0ms (0.1%)

Memory
2.1MiB live, 2.1MiB allocated
Counts
20 → 20
Calls
Call 1
Inputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))
Outputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
(PI.f64)
(/.f64 angle #s(literal 180 binary64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))))
#s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))
(pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64))
(sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))

eval7.0ms (0.2%)

Memory
12.9MiB live, 12.9MiB allocated
Compiler

Compiled 3 145 to 99 computations (96.9% saved)

prune22.0ms (0.8%)

Memory
-10.1MiB live, 28.7MiB allocated
Pruning

25 alts after pruning (12 fresh and 13 done)

PrunedKeptTotal
New58866
Fresh044
Picked145
Done099
Total592584
Accuracy
81.8%
Counts
84 → 25
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.5%
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
17.9%
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
19.8%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
27.8%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
3.8%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
14.8%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
34.3%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
21.3%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) #s(literal 2 binary64)))
25.7%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
20.2%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) #s(literal 2 binary64)))
24.5%
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
59.7%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
24.3%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
4.3%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64))) #s(literal 2 binary64)))
4.3%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
3.1%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (/.f64 angle #s(literal 180 binary64)))
3.1%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
4.3%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
5.7%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
2.8%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
3.7%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
4.3%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
3.7%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
17.9%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
4.3%
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64)))))
Compiler

Compiled 2 163 to 658 computations (69.6% saved)

regimes53.0ms (2%)

Memory
0.9MiB live, 78.2MiB allocated
Counts
29 → 1
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (/.f64 angle #s(literal 180 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Outputs
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Calls

6 calls:

9.0ms
angle
8.0ms
(/.f64 angle #s(literal 180 binary64))
8.0ms
b
8.0ms
a
8.0ms
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
Results
AccuracySegmentsBranch
81.5%1a
81.5%1b
81.5%1angle
81.5%1(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
81.5%1(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
81.5%1(/.f64 angle #s(literal 180 binary64))
Compiler

Compiled 32 to 36 computations (-12.5% saved)

regimes52.0ms (1.9%)

Memory
11.6MiB live, 91.0MiB allocated
Counts
27 → 3
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (/.f64 angle #s(literal 180 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Outputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Calls

6 calls:

11.0ms
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
9.0ms
b
8.0ms
a
8.0ms
(/.f64 angle #s(literal 180 binary64))
8.0ms
angle
Results
AccuracySegmentsBranch
73.7%3b
62.3%2angle
65.4%2(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
62.3%2(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
62.3%2(/.f64 angle #s(literal 180 binary64))
65.4%4a
Compiler

Compiled 32 to 36 computations (-12.5% saved)

regimes9.0ms (0.3%)

Memory
15.6MiB live, 15.6MiB allocated
Counts
24 → 3
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (/.f64 angle #s(literal 180 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Outputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Calls

1 calls:

7.0ms
b
Results
AccuracySegmentsBranch
73.7%3b
Compiler

Compiled 1 to 3 computations (-200% saved)

regimes8.0ms (0.3%)

Memory
-26.0MiB live, 12.8MiB allocated
Counts
18 → 3
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (/.f64 angle #s(literal 180 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) #s(literal 2 binary64)))
(+.f64 (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
Outputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Calls

1 calls:

6.0ms
b
Results
AccuracySegmentsBranch
71.8%3b
Compiler

Compiled 1 to 3 computations (-200% saved)

regimes6.0ms (0.2%)

Memory
12.3MiB live, 12.3MiB allocated
Counts
16 → 3
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (/.f64 angle #s(literal 180 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Outputs
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Calls

1 calls:

5.0ms
b
Results
AccuracySegmentsBranch
71.8%3b
Compiler

Compiled 1 to 3 computations (-200% saved)

regimes26.0ms (1%)

Memory
11.5MiB live, 50.5MiB allocated
Counts
15 → 2
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (/.f64 angle #s(literal 180 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Outputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Calls

5 calls:

6.0ms
(/.f64 angle #s(literal 180 binary64))
5.0ms
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
5.0ms
angle
5.0ms
b
5.0ms
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Results
AccuracySegmentsBranch
62.3%2angle
62.3%2(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
62.3%2(/.f64 angle #s(literal 180 binary64))
59.7%1(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
61.9%2b
Compiler

Compiled 31 to 33 computations (-6.5% saved)

regimes36.0ms (1.3%)

Memory
1.5MiB live, 43.0MiB allocated
Counts
14 → 1
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (/.f64 angle #s(literal 180 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
Outputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
Calls

6 calls:

12.0ms
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
5.0ms
(/.f64 angle #s(literal 180 binary64))
4.0ms
b
4.0ms
angle
4.0ms
a
Results
AccuracySegmentsBranch
24.3%1(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
24.3%1b
24.3%1a
24.3%1angle
24.3%1(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
24.3%1(/.f64 angle #s(literal 180 binary64))
Compiler

Compiled 32 to 36 computations (-12.5% saved)

regimes29.0ms (1.1%)

Memory
0.1MiB live, 37.7MiB allocated
Counts
13 → 1
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (/.f64 angle #s(literal 180 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))))
(+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Outputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
Calls

6 calls:

7.0ms
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
4.0ms
(/.f64 angle #s(literal 180 binary64))
4.0ms
angle
4.0ms
a
4.0ms
b
Results
AccuracySegmentsBranch
17.9%1(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
17.9%1a
17.9%1b
17.9%1angle
17.9%1(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
17.9%1(/.f64 angle #s(literal 180 binary64))
Compiler

Compiled 32 to 36 computations (-12.5% saved)

regimes20.0ms (0.7%)

Memory
-10.7MiB live, 26.9MiB allocated
Counts
7 → 1
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (/.f64 angle #s(literal 180 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))))
Outputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64)))))
Calls

6 calls:

5.0ms
angle
3.0ms
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
3.0ms
(/.f64 angle #s(literal 180 binary64))
3.0ms
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
3.0ms
a
Results
AccuracySegmentsBranch
4.3%1(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
4.3%1a
4.3%1angle
4.3%1(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
4.3%1(/.f64 angle #s(literal 180 binary64))
4.3%1b
Compiler

Compiled 32 to 36 computations (-12.5% saved)

regimes12.0ms (0.5%)

Memory
20.6MiB live, 20.6MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (/.f64 angle #s(literal 180 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))
Outputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
Calls

6 calls:

2.0ms
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
2.0ms
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
2.0ms
(/.f64 angle #s(literal 180 binary64))
2.0ms
angle
2.0ms
b
Results
AccuracySegmentsBranch
4.3%1(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
4.3%1a
4.3%1angle
4.3%1(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
4.3%1(/.f64 angle #s(literal 180 binary64))
4.3%1b
Compiler

Compiled 32 to 36 computations (-12.5% saved)

regimes10.0ms (0.4%)

Memory
-22.6MiB live, 15.4MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
Outputs
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
Calls

6 calls:

3.0ms
(/.f64 angle #s(literal 180 binary64))
1.0ms
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
1.0ms
(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
1.0ms
a
1.0ms
b
Results
AccuracySegmentsBranch
4.3%1b
4.3%1angle
4.3%1(*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))
4.3%1(/.f64 angle #s(literal 180 binary64))
4.3%1a
4.3%1(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
Compiler

Compiled 32 to 36 computations (-12.5% saved)

bsearch40.0ms (1.5%)

Memory
-0.8MiB live, 40.3MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
22.0ms
8.220856577283062e+106
2.6115950657263854e+108
15.0ms
-5.108363519195522e+144
-5.973823654312332e+143
Samples
29.0ms208×0valid
Compiler

Compiled 985 to 668 computations (32.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 23.0ms
ival-sinu: 9.0ms (38.7% of total)
ival-cosu: 6.0ms (25.8% of total)
ival-pow2: 4.0ms (17.2% of total)
ival-mult: 3.0ms (12.9% of total)
ival-add: 1.0ms (4.3% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch15.0ms (0.6%)

Memory
17.5MiB live, 17.5MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
13.0ms
8.220856577283062e+106
2.6115950657263854e+108
1.0ms
-5.108363519195522e+144
-5.973823654312332e+143
Samples
9.0ms80×0valid
Compiler

Compiled 908 to 640 computations (29.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
ival-cosu: 2.0ms (29% of total)
ival-sinu: 2.0ms (29% of total)
ival-mult: 1.0ms (14.5% of total)
ival-pow2: 1.0ms (14.5% of total)
ival-true: 0.0ms (0% of total)
ival-add: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch42.0ms (1.6%)

Memory
5.2MiB live, 42.6MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
18.0ms
1.1593514798472118e+155
1.2860807417702964e+157
21.0ms
-5.369785376989533e+168
-2.2996035785648221e+167
Samples
29.0ms224×0valid
Compiler

Compiled 1 130 to 758 computations (32.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 24.0ms
ival-pow2: 8.0ms (33.7% of total)
ival-cosu: 6.0ms (25.3% of total)
ival-sinu: 5.0ms (21.1% of total)
ival-mult: 3.0ms (12.6% of total)
ival-add: 1.0ms (4.2% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch29.0ms (1.1%)

Memory
0.8MiB live, 38.5MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
1.1593514798472118e+155
1.2860807417702964e+157
26.0ms
-8.868484487292293e+160
-1.1680601685319353e+152
Samples
19.0ms144×0valid
Compiler

Compiled 1 288 to 864 computations (32.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-sinu: 7.0ms (44.8% of total)
ival-cosu: 4.0ms (25.6% of total)
ival-pow2: 3.0ms (19.2% of total)
ival-mult: 2.0ms (12.8% of total)
ival-add: 1.0ms (6.4% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch18.0ms (0.7%)

Memory
-0.6MiB live, 38.4MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
17.0ms
-2.049082163404882e+131
-1.3463383601920967e+130
Samples
12.0ms96×0valid
Compiler

Compiled 484 to 300 computations (38% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
ival-cosu: 3.0ms (32.1% of total)
ival-sinu: 3.0ms (32.1% of total)
ival-pow2: 2.0ms (21.4% of total)
ival-mult: 1.0ms (10.7% of total)
ival-true: 0.0ms (0% of total)
ival-add: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify7.0ms (0.2%)

Memory
13.7MiB live, 13.7MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(if (<=.f64 b #s(literal -1600000000000000037992691773841768571853852684525891499957543981872379887267232916109084205145733270606953550614144185721269461071824130517499904 binary64)) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 1000000000000000033998991713002824594943974719712898047713430714837875271723200833292741616380733445921308672 binary64)) #s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))))
(if (<=.f64 b #s(literal -1600000000000000037992691773841768571853852684525891499957543981872379887267232916109084205145733270606953550614144185721269461071824130517499904 binary64)) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 2600000000000000244841741436295875372270963141093777692807692492122379755335908676977612024414165994280321024 binary64)) #s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))))
(if (<=.f64 b #s(literal -229999999999999987930368795571180344558210658733471435408665713332113346644868552326197704045532140537249636190798650804225274349549975111302841740292834913219095035904 binary64)) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 124999999999999997919897527898965214320046534377183817045875951807558552187626569316434734618242342718904673543045388133441813418520571716683188796290760704 binary64)) #s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))))
(if (<=.f64 b #s(literal -19500000000000001390331709227966727879384722017778221341565296186125884491148445779449368489233072375938370257494605722061697068866577721679028936205402112 binary64)) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 124999999999999997919897527898965214320046534377183817045875951807558552187626569316434734618242342718904673543045388133441813418520571716683188796290760704 binary64)) #s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))))
(if (<=.f64 (/.f64 angle #s(literal 180 binary64)) #s(literal -199999999999999982405111001914463627825705729939051460364922737117355163153802565541919878198424069508213948681199740222346696327168 binary64)) #s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))) #s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))
Outputs
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))
(if (<=.f64 b #s(literal -1600000000000000037992691773841768571853852684525891499957543981872379887267232916109084205145733270606953550614144185721269461071824130517499904 binary64)) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 1000000000000000033998991713002824594943974719712898047713430714837875271723200833292741616380733445921308672 binary64)) #s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))))
(if (<=.f64 b #s(literal -1600000000000000037992691773841768571853852684525891499957543981872379887267232916109084205145733270606953550614144185721269461071824130517499904 binary64)) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 2600000000000000244841741436295875372270963141093777692807692492122379755335908676977612024414165994280321024 binary64)) #s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))))
(if (<=.f64 b #s(literal -229999999999999987930368795571180344558210658733471435408665713332113346644868552326197704045532140537249636190798650804225274349549975111302841740292834913219095035904 binary64)) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 124999999999999997919897527898965214320046534377183817045875951807558552187626569316434734618242342718904673543045388133441813418520571716683188796290760704 binary64)) #s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))))
(if (<=.f64 b #s(literal -19500000000000001390331709227966727879384722017778221341565296186125884491148445779449368489233072375938370257494605722061697068866577721679028936205402112 binary64)) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 124999999999999997919897527898965214320046534377183817045875951807558552187626569316434734618242342718904673543045388133441813418520571716683188796290760704 binary64)) #s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64)))))
(if (<=.f64 (/.f64 angle #s(literal 180 binary64)) #s(literal -199999999999999982405111001914463627825705729939051460364922737117355163153802565541919878198424069508213948681199740222346696327168 binary64)) #s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64))) #s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) #s(literal 2 binary64))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (pow.f64 #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64)))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) #s(approx (pow (* a (cos (* (PI) (/ angle 180)))) 2) #s(approx (* a (cos (* (PI) (/ angle 180)))) (pow.f64 #s(approx (* b (sin (* (PI) (/ angle 180)))) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64))))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (*.f64 (PI.f64) #s(approx (/ angle 180) #s(approx (* b (sin (* (PI) (/ angle 180)))) (PI.f64)))))
#s(approx (+ (pow (* a (cos (* (PI) (/ angle 180)))) 2) (pow (* b (sin (* (PI) (/ angle 180)))) 2)) (PI.f64))

soundness5.0ms (0.2%)

Memory
-37.4MiB live, 6.8MiB allocated
Stop Event
fuel
Compiler

Compiled 848 to 78 computations (90.8% saved)

preprocess57.0ms (2.1%)

Memory
8.3MiB live, 84.1MiB allocated
Compiler

Compiled 1 738 to 186 computations (89.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...