ab-angle->ABCF A

Time bar (total: 2.3s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0%)

Memory
0.5MiB live, 0.5MiB 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.3s (57.7%)

Memory
12.5MiB live, 1 648.4MiB allocated
Samples
1.0s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 788.0ms
ival-sinu: 261.0ms (33.1% of total)
ival-cosu: 185.0ms (23.5% of total)
ival-pow2: 173.0ms (21.9% of total)
ival-mult: 124.0ms (15.7% of total)
ival-add: 36.0ms (4.6% of total)
ival-true: 6.0ms (0.8% of total)
ival-assert: 3.0ms (0.4% of total)
Bogosity

explain217.0ms (9.6%)

Memory
34.2MiB live, 356.6MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1230-0-(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
1230-0-(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
00-0-(/.f64 angle #s(literal 180 binary64))
00-0-a
00-0-(pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))
00-0-(*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
00-0-(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
00-0-(pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))
00-0-#s(literal 180 binary64)
00-0-angle
00-0-#s(literal 2 binary64)
00-0-(*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
00-0-b
00-0-(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
00-0-(PI.f64)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
cos.f64(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))sensitivity1231
sin.f64(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))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
87.0ms512×0valid
Compiler

Compiled 274 to 64 computations (76.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 66.0ms
ival-cosu: 18.0ms (27.4% of total)
ival-sinu: 15.0ms (22.8% of total)
ival-mult: 13.0ms (19.8% of total)
ival-pow2: 10.0ms (15.2% of total)
ival-div: 4.0ms (6.1% of total)
ival-pi: 2.0ms (3% of total)
ival-add: 2.0ms (3% of total)
ival-true: 1.0ms (1.5% of total)
exact: 1.0ms (1.5% of total)
ival-assert: 0.0ms (0% of total)

preprocess5.0ms (0.2%)

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

Compiled 21 to 15 computations (28.6% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune1.0ms (0%)

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

Compiled 21 to 15 computations (28.6% saved)

simplify1.0ms (0%)

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

Found 4 expressions of interest:

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

localize50.0ms (2.2%)

Memory
-8.9MiB live, 72.6MiB allocated
Localize:

Found 4 expressions of interest:

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

Compiled 168 to 32 computations (81% saved)

Precisions
Click to see histograms. Total time spent on operations: 28.0ms
ival-sinu: 7.0ms (25.3% of total)
ival-mult: 6.0ms (21.7% of total)
ival-cosu: 5.0ms (18.1% of total)
ival-pow2: 5.0ms (18.1% of total)
ival-div: 2.0ms (7.2% of total)
ival-pi: 1.0ms (3.6% of total)
ival-add: 1.0ms (3.6% 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.9%)

Memory
37.7MiB live, 37.7MiB allocated
Counts
6 → 28
Calls
Call 1
Inputs
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))
(*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
Outputs
(* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(* a (sin (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(pow b 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (* 1/32400 (* (pow a 2) (pow (PI) 2))))) (pow b 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow b 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (+ (* (pow angle 2) (+ (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))) (* (pow b 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))))) (pow b 2))
(* 1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2))))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (* (pow angle 2) (pow (PI) 4)))) (* 1/32400 (* (pow a 2) (pow (PI) 2)))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow a 2) (* (pow angle 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
(* 1/180 (* a (* angle (PI))))
(* angle (+ (* -1/34992000 (* a (* (pow angle 2) (pow (PI) 3)))) (* 1/180 (* a (PI)))))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* 1/22674816000000 (* a (* (pow angle 2) (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* a (* (pow angle 2) (pow (PI) 7)))) (* 1/22674816000000 (* a (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))))))))
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)))))))
(sin (* 1/180 (* angle (PI))))
(cos (* 1/180 (* angle (PI))))
Calls

9 calls:

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

simplify3.0ms (0.1%)

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

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
3.2MiB live, 3.2MiB allocated
Compiler

Compiled 335 to 36 computations (89.3% saved)

prune4.0ms (0.2%)

Memory
8.4MiB live, 8.4MiB allocated
Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New8513
Fresh000
Picked011
Done000
Total8614
Accuracy
81.4%
Counts
14 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.3%
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
48.8%
(+.f64 (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
46.6%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
41.0%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
3.1%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
3.6%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
Compiler

Compiled 311 to 233 computations (25.1% saved)

simplify1.0ms (0.1%)

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

Found 20 expressions of interest:

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

localize73.0ms (3.2%)

Memory
-0.8MiB live, 119.8MiB allocated
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.3046875
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
accuracy27.049848645940852
(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy27.37181816252783
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy52.823991100125234
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))
accuracy0.24182379138909577
(*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
accuracy0.3046875
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
accuracy27.049848645940852
(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy33.10102366841124
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
accuracy0.0
(PI.f64)
accuracy0.3046875
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
accuracy27.37181816252783
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy61.6930171540757
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
accuracy0.0
(/.f64 angle #s(literal 180 binary64))
accuracy0.0
(PI.f64)
accuracy0.3046875
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
accuracy62.015835050777774
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy0.3046875
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
accuracy27.049848645940852
(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy27.37181816252783
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy60.29348889480205
#s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
Samples
52.0ms256×0valid
Compiler

Compiled 651 to 51 computations (92.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 33.0ms
ival-sinu: 11.0ms (33.2% of total)
ival-cosu: 8.0ms (24.1% of total)
ival-mult: 5.0ms (15.1% of total)
ival-pow2: 5.0ms (15.1% of total)
ival-div: 2.0ms (6% of total)
ival-pi: 1.0ms (3% of total)
ival-add: 1.0ms (3% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series16.0ms (0.7%)

Memory
-8.6MiB live, 30.7MiB allocated
Counts
15 → 29
Calls
Call 1
Inputs
(+.f64 (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))
#s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
(/.f64 angle #s(literal 180 binary64))
(PI.f64)
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))
(*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))
Outputs
(* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(* a (sin (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(pow b 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (* 1/32400 (* (pow a 2) (pow (PI) 2))))) (pow b 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow b 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (+ (* (pow angle 2) (+ (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))) (* (pow b 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))))) (pow b 2))
(* 1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2))))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (* (pow angle 2) (pow (PI) 4)))) (* 1/32400 (* (pow a 2) (pow (PI) 2)))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow a 2) (* (pow angle 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
(* 1/180 (* a (* angle (PI))))
(* angle (+ (* -1/34992000 (* a (* (pow angle 2) (pow (PI) 3)))) (* 1/180 (* a (PI)))))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* 1/22674816000000 (* a (* (pow angle 2) (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* a (* (pow angle 2) (pow (PI) 7)))) (* 1/22674816000000 (* a (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))))))))
(* 1/180 angle)
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)))))))
(sin (* 1/180 (* angle (PI))))
(cos (* 1/180 (* angle (PI))))
Calls

9 calls:

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

simplify1.0ms (0%)

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

rewrite1.0ms (0%)

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

eval5.0ms (0.2%)

Memory
10.5MiB live, 10.5MiB allocated
Compiler

Compiled 1 562 to 51 computations (96.7% saved)

prune8.0ms (0.4%)

Memory
17.1MiB live, 17.1MiB allocated
Pruning

11 alts after pruning (5 fresh and 6 done)

PrunedKeptTotal
New44549
Fresh000
Picked055
Done011
Total441155
Accuracy
81.4%
Counts
55 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.3%
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
48.8%
(+.f64 (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
34.2%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
46.6%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
42.3%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
41.0%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
7.0%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
3.1%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (/.f64 angle #s(literal 180 binary64)))
3.1%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
3.6%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
4.2%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (PI.f64))
Compiler

Compiled 518 to 338 computations (34.7% saved)

simplify2.0ms (0.1%)

Memory
-35.9MiB live, 3.4MiB allocated
Algorithm
egg-herbie
Localize:

Found 16 expressions of interest:

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

localize65.0ms (2.8%)

Memory
29.3MiB live, 108.8MiB allocated
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
accuracy27.049848645940852
(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy27.37181816252783
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy33.10102366841124
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
accuracy52.823991100125234
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))
accuracy0.3046875
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
accuracy27.049848645940852
(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy33.10102366841124
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
accuracy60.29348889480205
#s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
accuracy0.0
(/.f64 angle #s(literal 180 binary64))
accuracy62.022646613544254
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (/.f64 angle #s(literal 180 binary64)))
accuracy0.0
(PI.f64)
accuracy61.31107375266894
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (PI.f64))
accuracy27.049848645940852
(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy27.37181816252783
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy52.823991100125234
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))
accuracy60.29348889480205
#s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
Samples
46.0ms256×0valid
Compiler

Compiled 761 to 53 computations (93% saved)

Precisions
Click to see histograms. Total time spent on operations: 27.0ms
ival-sinu: 7.0ms (26.3% of total)
ival-cosu: 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)

series16.0ms (0.7%)

Memory
-9.0MiB live, 30.1MiB allocated
Counts
16 → 29
Calls
Call 1
Inputs
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))
#s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (PI.f64))
(PI.f64)
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (/.f64 angle #s(literal 180 binary64)))
(/.f64 angle #s(literal 180 binary64))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
Outputs
(* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(* a (sin (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(pow b 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (* 1/32400 (* (pow a 2) (pow (PI) 2))))) (pow b 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow b 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (+ (* (pow angle 2) (+ (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))) (* (pow b 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))))) (pow b 2))
(* 1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2))))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (* (pow angle 2) (pow (PI) 4)))) (* 1/32400 (* (pow a 2) (pow (PI) 2)))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow a 2) (* (pow angle 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
(* 1/180 (* a (* angle (PI))))
(* angle (+ (* -1/34992000 (* a (* (pow angle 2) (pow (PI) 3)))) (* 1/180 (* a (PI)))))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* 1/22674816000000 (* a (* (pow angle 2) (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* a (* (pow angle 2) (pow (PI) 7)))) (* 1/22674816000000 (* a (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))))))))
(* 1/180 angle)
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)))))))
(sin (* 1/180 (* angle (PI))))
(cos (* 1/180 (* angle (PI))))
Calls

9 calls:

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

simplify1.0ms (0.1%)

Memory
2.3MiB live, 2.3MiB allocated
Algorithm
egg-herbie
Counts
29 → 16
Calls
Call 1
Inputs
(* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(* a (sin (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(pow b 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (* 1/32400 (* (pow a 2) (pow (PI) 2))))) (pow b 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow b 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (+ (* (pow angle 2) (+ (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))) (* (pow b 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))))) (pow b 2))
(* 1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2))))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (* (pow angle 2) (pow (PI) 4)))) (* 1/32400 (* (pow a 2) (pow (PI) 2)))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow a 2) (* (pow angle 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
(* 1/180 (* a (* angle (PI))))
(* angle (+ (* -1/34992000 (* a (* (pow angle 2) (pow (PI) 3)))) (* 1/180 (* a (PI)))))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* 1/22674816000000 (* a (* (pow angle 2) (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* a (* (pow angle 2) (pow (PI) 7)))) (* 1/22674816000000 (* a (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))))))))
(* 1/180 angle)
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)))))))
(sin (* 1/180 (* angle (PI))))
(cos (* 1/180 (* angle (PI))))
Outputs
(* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))
(* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
#s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
(* a (sin (* 1/180 (* angle (PI)))))
(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (PI.f64))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(PI.f64)
(pow b 2)
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (/.f64 angle #s(literal 180 binary64)))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (* 1/32400 (* (pow a 2) (pow (PI) 2))))) (pow b 2))
(/.f64 angle #s(literal 180 binary64))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow b 2))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (+ (* (pow angle 2) (+ (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))) (* (pow b 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))))) (pow b 2))
(pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))
(* 1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2))))
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (* (pow angle 2) (pow (PI) 4)))) (* 1/32400 (* (pow a 2) (pow (PI) 2)))))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow a 2) (* (pow angle 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))
(* 1/180 (* a (* angle (PI))))
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
(* angle (+ (* -1/34992000 (* a (* (pow angle 2) (pow (PI) 3)))) (* 1/180 (* a (PI)))))
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))

rewrite1.0ms (0%)

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

eval5.0ms (0.2%)

Memory
10.5MiB live, 10.5MiB allocated
Compiler

Compiled 2 196 to 57 computations (97.4% saved)

prune11.0ms (0.5%)

Memory
-17.7MiB live, 21.3MiB allocated
Pruning

16 alts after pruning (5 fresh and 11 done)

PrunedKeptTotal
New45550
Fresh000
Picked055
Done066
Total451661
Accuracy
81.5%
Counts
61 → 16
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.3%
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
48.8%
(+.f64 (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
34.0%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
34.2%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
46.6%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
41.6%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
42.3%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
41.0%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
18.2%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64)))
7.0%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
4.2%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
3.1%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (/.f64 angle #s(literal 180 binary64)))
3.1%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
3.6%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
4.2%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (PI.f64))
2.8%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))))
Compiler

Compiled 812 to 469 computations (42.2% saved)

simplify2.0ms (0.1%)

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

Found 20 expressions of interest:

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

localize73.0ms (3.2%)

Memory
5.3MiB live, 125.0MiB allocated
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy27.37181816252783
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy33.10102366841124
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
accuracy33.10102366841124
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
accuracy52.823991100125234
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))
accuracy0.3046875
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
accuracy27.37181816252783
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy33.10102366841124
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
accuracy61.66029744585831
#s(approx (* a (sin (* (/ angle 180) (PI)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
accuracy0.23275375976844204
(pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64))
accuracy0.3046875
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
accuracy33.10102366841124
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64)))
accuracy61.71722529901702
#s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy27.049848645940852
(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy33.10102366841124
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))))
accuracy52.823991100125234
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))
accuracy60.29348889480205
#s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
accuracy0.3046875
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
accuracy27.37181816252783
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
accuracy52.823991100125234
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
accuracy61.71722529901702
#s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
Samples
48.0ms256×0valid
Compiler

Compiled 1 105 to 59 computations (94.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 28.0ms
ival-sinu: 7.0ms (25.2% of total)
ival-mult: 6.0ms (21.6% of total)
ival-cosu: 5.0ms (18% of total)
ival-pow2: 5.0ms (18% of total)
ival-div: 2.0ms (7.2% of total)
ival-pi: 1.0ms (3.6% of total)
ival-add: 1.0ms (3.6% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series17.0ms (0.8%)

Memory
-7.3MiB live, 31.8MiB allocated
Counts
19 → 28
Calls
Call 1
Inputs
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
#s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))
#s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))
#s(approx (* a (sin (* (/ angle 180) (PI)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))
Outputs
(* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(* a (sin (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(pow b 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (* 1/32400 (* (pow a 2) (pow (PI) 2))))) (pow b 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow b 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (+ (* (pow angle 2) (+ (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))) (* (pow b 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))))) (pow b 2))
(* 1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2))))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (* (pow angle 2) (pow (PI) 4)))) (* 1/32400 (* (pow a 2) (pow (PI) 2)))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow a 2) (* (pow angle 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
(* 1/180 (* a (* angle (PI))))
(* angle (+ (* -1/34992000 (* a (* (pow angle 2) (pow (PI) 3)))) (* 1/180 (* a (PI)))))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* 1/22674816000000 (* a (* (pow angle 2) (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* a (* (pow angle 2) (pow (PI) 7)))) (* 1/22674816000000 (* a (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))))))))
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)))))))
(sin (* 1/180 (* angle (PI))))
(cos (* 1/180 (* angle (PI))))
Calls

9 calls:

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

simplify1.0ms (0.1%)

Memory
2.8MiB live, 2.8MiB allocated
Algorithm
egg-herbie
Counts
28 → 19
Calls
Call 1
Inputs
(* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(+ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
(* a (sin (* 1/180 (* angle (PI)))))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
(pow b 2)
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (* 1/32400 (* (pow a 2) (pow (PI) 2))))) (pow b 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow b 2))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (+ (* (pow angle 2) (+ (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))) (* (pow b 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))))) (pow b 2))
(* 1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2))))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (* (pow angle 2) (pow (PI) 4)))) (* 1/32400 (* (pow a 2) (pow (PI) 2)))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow a 2) (* (pow angle 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
(* 1/180 (* a (* angle (PI))))
(* angle (+ (* -1/34992000 (* a (* (pow angle 2) (pow (PI) 3)))) (* 1/180 (* a (PI)))))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* 1/22674816000000 (* a (* (pow angle 2) (pow (PI) 5))))))))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* a (* (pow angle 2) (pow (PI) 7)))) (* 1/22674816000000 (* a (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))))))))
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)))))))
(sin (* 1/180 (* angle (PI))))
(cos (* 1/180 (* angle (PI))))
Outputs
(* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2))
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(+ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
(* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2))
#s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
(* a (sin (* 1/180 (* angle (PI)))))
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
(* (pow a 2) (+ (/ (* (pow b 2) (pow (cos (* 1/180 (* angle (PI)))) 2)) (pow a 2)) (pow (sin (* 1/180 (* angle (PI)))) 2)))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))))
(* (pow b 2) (+ (/ (* (pow a 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (pow b 2)) (pow (cos (* 1/180 (* angle (PI)))) 2)))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))
(pow b 2)
#s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (* 1/32400 (* (pow a 2) (pow (PI) 2))))) (pow b 2))
(sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4))))))))) (pow b 2))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64)))
(+ (* (pow angle 2) (+ (* -1/32400 (* (pow b 2) (pow (PI) 2))) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (+ (* (pow angle 2) (+ (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))) (* (pow b 2) (+ (* -1/816293376000000 (pow (PI) 6)) (* -1/12244400640000000 (pow (PI) 6)))))) (* (pow b 2) (+ (* 1/12597120000 (pow (PI) 4)) (* 1/4199040000 (pow (PI) 4)))))))))) (pow b 2))
(pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64))
(* 1/32400 (* (pow a 2) (* (pow angle 2) (pow (PI) 2))))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (* (pow angle 2) (pow (PI) 4)))) (* 1/32400 (* (pow a 2) (pow (PI) 2)))))
(pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow a 2) (* (pow angle 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6)))))))))
#s(approx (* a (sin (* (/ angle 180) (PI)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
(* (pow angle 2) (+ (* 1/32400 (* (pow a 2) (pow (PI) 2))) (* (pow angle 2) (+ (* -1/3149280000 (* (pow a 2) (pow (PI) 4))) (* (pow angle 2) (+ (* (pow a 2) (* (pow angle 2) (+ (* -1/396718580736000000000 (pow (PI) 8)) (* -1/2777030065152000000000 (pow (PI) 8))))) (* (pow a 2) (+ (* 1/2040733440000000 (pow (PI) 6)) (* 1/1224440064000000 (pow (PI) 6))))))))))
(cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
(* 1/180 (* a (* angle (PI))))
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(* angle (+ (* -1/34992000 (* a (* (pow angle 2) (pow (PI) 3)))) (* 1/180 (* a (PI)))))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* 1/22674816000000 (* a (* (pow angle 2) (pow (PI) 5))))))))
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(* angle (+ (* 1/180 (* a (PI))) (* (pow angle 2) (+ (* -1/34992000 (* a (pow (PI) 3))) (* (pow angle 2) (+ (* -1/30855889612800000000 (* a (* (pow angle 2) (pow (PI) 7)))) (* 1/22674816000000 (* a (pow (PI) 5)))))))))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))
(* 1/180 (* angle (PI)))
#s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))

rewrite1.0ms (0.1%)

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

eval7.0ms (0.3%)

Memory
14.3MiB live, 14.3MiB allocated
Compiler

Compiled 3 619 to 109 computations (97% saved)

prune16.0ms (0.7%)

Memory
-9.9MiB live, 31.9MiB allocated
Pruning

21 alts after pruning (5 fresh and 16 done)

PrunedKeptTotal
New55560
Fresh000
Picked055
Done01111
Total552176
Accuracy
81.7%
Counts
76 → 21
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.3%
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
48.8%
(+.f64 (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
34.0%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
34.1%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 #s(approx (* (/ angle 180) (PI)) #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))))) #s(literal 2 binary64)))
39.7%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 #s(approx (* (/ angle 180) (PI)) #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
34.2%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
46.6%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
33.9%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
41.6%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
40.8%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (pow.f64 (*.f64 b (cos.f64 #s(approx (* (/ angle 180) (PI)) #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))))))) #s(literal 2 binary64)))
42.3%
(+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
41.0%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
18.2%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64)))
7.0%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
4.2%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
3.1%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (/.f64 angle #s(literal 180 binary64)))
3.1%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))
3.6%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))
4.2%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (PI.f64))
2.8%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))))
5.4%
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 #s(approx (* (/ angle 180) (PI)) #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))))))))
Compiler

Compiled 1 988 to 568 computations (71.4% saved)

regimes41.0ms (1.8%)

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

6 calls:

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

Compiled 32 to 36 computations (-12.5% saved)

regimes44.0ms (2%)

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

6 calls:

5.0ms
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
5.0ms
(/.f64 angle #s(literal 180 binary64))
5.0ms
angle
5.0ms
a
5.0ms
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
Results
AccuracySegmentsBranch
64.4%3a
70.0%3b
55.8%2(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
60.7%4angle
60.7%4(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
60.7%4(/.f64 angle #s(literal 180 binary64))
Compiler

Compiled 32 to 36 computations (-12.5% saved)

regimes6.0ms (0.2%)

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

1 calls:

5.0ms
b
Results
AccuracySegmentsBranch
70.0%3b
Compiler

Compiled 1 to 3 computations (-200% saved)

regimes5.0ms (0.2%)

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

1 calls:

4.0ms
b
Results
AccuracySegmentsBranch
69.7%3b
Compiler

Compiled 1 to 3 computations (-200% saved)

regimes24.0ms (1%)

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

6 calls:

4.0ms
(/.f64 angle #s(literal 180 binary64))
4.0ms
(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
4.0ms
angle
4.0ms
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
3.0ms
b
Results
AccuracySegmentsBranch
41.0%1(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
43.0%2angle
43.0%2(*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))
43.0%2(/.f64 angle #s(literal 180 binary64))
41.0%1a
45.7%3b
Compiler

Compiled 32 to 36 computations (-12.5% saved)

regimes21.0ms (0.9%)

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

6 calls:

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

Compiled 32 to 36 computations (-12.5% saved)

regimes14.0ms (0.6%)

Memory
-5.8MiB live, 33.6MiB allocated
Accuracy

Total -1.4b remaining (-2.3%)

Threshold costs -1.4b (-2.3%)

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

6 calls:

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

Compiled 32 to 36 computations (-12.5% saved)

bsearch42.0ms (1.9%)

Memory
-8.1MiB live, 72.2MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
16.0ms
4.7810241843119367e+24
6.823178050669073e+25
24.0ms
-3.5877793120718546e-24
-1.9593213032238677e-29
Samples
29.0ms240×0valid
Compiler

Compiled 978 to 733 computations (25.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 23.0ms
ival-sinu: 7.0ms (30.4% of total)
ival-cosu: 6.0ms (26% of total)
ival-pow2: 5.0ms (21.7% of total)
ival-mult: 4.0ms (17.4% of total)
ival-add: 1.0ms (4.3% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch5.0ms (0.2%)

Memory
10.0MiB live, 10.0MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
4.7810241843119367e+24
6.823178050669073e+25
4.0ms
-3.5877793120718546e-24
-1.9593213032238677e-29
Samples
2.0ms16×0valid
Compiler

Compiled 1 059 to 751 computations (29.1% saved)

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

bsearch19.0ms (0.8%)

Memory
-8.1MiB live, 30.9MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
16.0ms
9.62383066584695e+105
8.220856577283062e+106
1.0ms
-3.5877793120718546e-24
-1.9593213032238677e-29
Samples
12.0ms96×0valid
Compiler

Compiled 1 044 to 736 computations (29.5% saved)

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

bsearch56.0ms (2.4%)

Memory
-5.4MiB live, 73.7MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
24.0ms
1.3092159824363726e+192
4.1047004906250497e+198
28.0ms
-1.2903600920992634e+133
-1.6567813220225662e+111
Samples
39.0ms320×0valid
Compiler

Compiled 1 424 to 996 computations (30.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 28.0ms
ival-sinu: 8.0ms (28.3% of total)
ival-cosu: 7.0ms (24.8% of total)
ival-pow2: 7.0ms (24.8% of total)
ival-mult: 4.0ms (14.1% of total)
ival-add: 1.0ms (3.5% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify6.0ms (0.3%)

Memory
11.0MiB live, 11.0MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(if (<=.f64 b #s(literal -7136238463529799/22300745198530623141535718272648361505980416 binary64)) (+.f64 (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 7199999999999999664455680 binary64)) #s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))))
(if (<=.f64 b #s(literal -7247742189522453/22300745198530623141535718272648361505980416 binary64)) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 7199999999999999664455680 binary64)) #s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))))
(if (<=.f64 b #s(literal -3679622957757553/11150372599265311570767859136324180752990208 binary64)) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 10000000000000000910359990503684350104604539951754865571545457374840902895351334152154180097541612190564352 binary64)) #s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))))
(if (<=.f64 b #s(literal -23000000000000002113798415841583634489255369458070367475338738167367743897258102483121572000025882191942560861254112410265809059840 binary64)) #s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 1699999999999999980888280466933711594902130021611151919940961394977237502736196833148049929533995641693659404791680958589168166652522100874767102421917987763369560829412492974571045111572987904 binary64)) #s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) #s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (PI.f64))
Outputs
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))
(if (<=.f64 b #s(literal -7136238463529799/22300745198530623141535718272648361505980416 binary64)) (+.f64 (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 7199999999999999664455680 binary64)) #s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))))
(if (<=.f64 b #s(literal -7247742189522453/22300745198530623141535718272648361505980416 binary64)) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 7199999999999999664455680 binary64)) #s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))))
(if (<=.f64 b #s(literal -3679622957757553/11150372599265311570767859136324180752990208 binary64)) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 10000000000000000910359990503684350104604539951754865571545457374840902895351334152154180097541612190564352 binary64)) #s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) (+.f64 #s(approx (pow (* a (sin (* (/ angle 180) (PI)))) 2) #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)))))
(if (<=.f64 b #s(literal -23000000000000002113798415841583634489255369458070367475338738167367743897258102483121572000025882191942560861254112410265809059840 binary64)) #s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64))) (if (<=.f64 b #s(literal 1699999999999999980888280466933711594902130021611151919940961394977237502736196833148049929533995641693659404791680958589168166652522100874767102421917987763369560829412492974571045111572987904 binary64)) #s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) #s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64)))))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (pow.f64 #s(approx (* a (sin (* (/ angle 180) (PI)))) (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64))) #s(literal 2 binary64)))
#s(approx (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) (PI.f64))

soundness2.0ms (0.1%)

Memory
4.0MiB live, 4.0MiB allocated
Stop Event
fuel
Compiler

Compiled 529 to 60 computations (88.7% saved)

preprocess48.0ms (2.1%)

Memory
-7.2MiB live, 67.4MiB allocated
Compiler

Compiled 1 100 to 150 computations (86.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...