UniformSampleCone, x

Time bar (total: 2.9s)

start0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated

analyze196.0ms (6.7%)

Memory
-8.6MiB live, 264.0MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0.1%99.9%0%0%0%0
0%0%0.1%99.9%0%0%0%1
0%0%0.1%99.9%0%0%0%2
0%0%0.1%99.9%0%0%0%3
12.5%0%0.1%99.9%0%0%0%4
18.7%0%0.1%99.9%0%0%0%5
28.1%0%0.1%99.9%0%0%0%6
42.2%0%0.1%99.9%0%0%0%7
49.2%0%0%99.9%0%0%0%8
57.4%0.1%0%99.9%0%0%0%9
67%0.1%0%99.9%0%0%0%10
71.8%0.1%0%99.9%0%0%0%11
76.9%0.1%0%99.9%0%0%0%12
Compiler

Compiled 49 to 28 computations (42.9% saved)

sample1.9s (65.5%)

Memory
126.7MiB live, 2 231.9MiB allocated
Samples
1.5s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 1.2s
const: 446.0ms (36.8% of total)
ival-mult: 231.0ms (19% of total)
ival-cosu: 150.0ms (12.4% of total)
ival-<=: 139.0ms (11.5% of total)
ival-sub: 86.0ms (7.1% of total)
ival-sqrt: 64.0ms (5.3% of total)
ival-add: 48.0ms (4% of total)
ival-and: 33.0ms (2.7% of total)
exact: 13.0ms (1.1% of total)
ival-assert: 4.0ms (0.3% of total)
Bogosity

explain185.0ms (6.3%)

Memory
-68.0MiB live, 288.4MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1984(0.0006231527077034116 0.11399776488542557 3.7864275257676097e-19)3(0.005767099559307098 0.48115333914756775 4.4334300675075156e-9)(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
30-2(9.409003354221568e-8 0.7593198418617249 1.9009273924267085e-24)(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
00-0-#s(literal 2 binary32)
00-0-(PI.f32)
00-0-#s(literal 1 binary32)
00-0-(sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))
00-0-(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
00-0-maxCos
00-0-(*.f32 ux maxCos)
00-0-ux
00-0-(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
00-0-(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
00-0-uy
00-0-(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
00-0-(*.f32 uy #s(literal 2 binary32))
00-0-(-.f32 #s(literal 1 binary32) ux)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
-.f32(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))cancellation19911
cos.f32(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))sensitivity12
Confusion
Predicted +Predicted -
+1942
-654
Precision
0.97
Recall
0.9897959183673469
Confusion?
Predicted +Predicted MaybePredicted -
+19420
-6945
Precision?
0.9289099526066351
Recall?
1.0
Freqs
test
numberfreq
056
1200
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
56.0ms508×0valid
1.0ms1valid
Compiler

Compiled 353 to 68 computations (80.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 39.0ms
ival-mult: 15.0ms (38.4% of total)
ival-cosu: 9.0ms (23% of total)
ival-sub: 5.0ms (12.8% of total)
ival-sqrt: 4.0ms (10.2% of total)
ival-add: 3.0ms (7.7% of total)
ival-pi: 2.0ms (5.1% of total)
exact: 1.0ms (2.6% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

preprocess3.0ms (0.1%)

Memory
6.3MiB live, 6.3MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
Outputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
Compiler

Compiled 25 to 16 computations (36% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
54.0%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
Compiler

Compiled 25 to 16 computations (36% saved)

simplify1.0ms (0%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f32 uy #s(literal 2 binary32))
cost-diff0
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
cost-diff0
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
cost-diff0
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
Calls
Call 1
Inputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))
(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
#s(literal 1 binary32)
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
ux
(*.f32 ux maxCos)
maxCos
Outputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))
(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
#s(literal 1 binary32)
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
ux
(*.f32 ux maxCos)
maxCos

localize39.0ms (1.3%)

Memory
16.0MiB live, 57.2MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.181972509768442
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
accuracy0.33984375
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
accuracy0.37890625
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
accuracy14.41851213129232
(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
Samples
29.0ms254×0valid
0.0ms1valid
Compiler

Compiled 218 to 34 computations (84.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
ival-mult: 7.0ms (38.7% of total)
ival-cosu: 4.0ms (22.1% of total)
ival-sub: 2.0ms (11.1% of total)
ival-sqrt: 2.0ms (11.1% of total)
ival-pi: 1.0ms (5.5% of total)
ival-add: 1.0ms (5.5% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series22.0ms (0.8%)

Memory
-8.0MiB live, 29.7MiB allocated
Counts
6 → 64
Calls
Call 1
Inputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
Outputs
(* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI)))))
(+ (* -1/2 (* (sqrt (/ (pow ux 3) (- 2 (* 2 maxCos)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* -1/8 (* (sqrt (/ ux (pow (- 2 (* 2 maxCos)) 3))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (pow ux 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow ux 3) (pow (- 2 (* 2 maxCos)) 3)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))) (* -1/16 (* (sqrt (/ 1 (* ux (pow (- 2 (* 2 maxCos)) 5)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 6)))))))))
(* ux (- 2 (* 2 maxCos)))
(* ux (- (+ 2 (* -1 (* ux (pow (- maxCos 1) 2)))) (* 2 maxCos)))
1
(+ 1 (* ux (- (* 2 maxCos) 2)))
(+ 1 (* ux (- (+ (* 2 maxCos) (* ux (pow (- maxCos 1) 2))) 2)))
(* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))
(* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 3)) (* (pow ux 3) (* (pow (sqrt -1) 5) (pow (- maxCos 1) 5))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))))
(* -1 (* (pow ux 2) (pow (- maxCos 1) 2)))
(* (pow ux 2) (- (* 2 (/ 1 ux)) (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2))))
(* (pow ux 2) (pow (- maxCos 1) 2))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2)) (* 2 (/ 1 ux))))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (+ (/ 1 (pow ux 2)) (pow (- maxCos 1) 2))) (* 2 (/ 1 ux))))
(* -1 (* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos))))))
(* -1 (* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* ux (* (sqrt -1) (+ 1 (* -1 maxCos)))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos))))) (* 1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* ux (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))) (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 3)) (* ux (* (pow (sqrt -1) 5) (pow (+ 1 (* -1 maxCos)) 5)))))) ux)) (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (- (+ (* -2 (/ maxCos ux)) (* 2 (/ 1 ux))) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2))
(* (pow ux 2) (+ (* -1 (/ (+ 2 (* -2 maxCos)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (+ (* -1 (/ (- (+ 2 (* -2 maxCos)) (/ 1 ux)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2)))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* -2 (* (* (pow uy 2) (pow (PI) 2)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (* (pow uy 2) (pow (PI) 4)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* (pow uy 2) (+ (* -4/45 (* (* (pow uy 2) (pow (PI) 6)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (pow (PI) 4) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))))
(+ 1 (* -2 (* (pow uy 2) (pow (PI) 2))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* 2/3 (* (pow uy 2) (pow (PI) 4))))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* (pow uy 2) (+ (* -4/45 (* (pow uy 2) (pow (PI) 6))) (* 2/3 (pow (PI) 4)))))))
(* 2 (* uy (PI)))
(* 2 uy)
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))
(cos (* 2 (* uy (PI))))
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2))))
(+ (* -1 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* -1/2 (* (* maxCos (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* maxCos (+ (* -1/2 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (* (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)) (- 1 ux))))) (sqrt (/ 1 (pow (- 1 (pow (- 1 ux) 2)) 3))))) (* -1/2 (* (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(- 1 (pow (- 1 ux) 2))
(- (+ 1 (* -2 (* maxCos (* ux (- 1 ux))))) (pow (- 1 ux) 2))
(- (+ 1 (* maxCos (- (* -1 (* maxCos (pow ux 2))) (* 2 (* ux (- 1 ux)))))) (pow (- 1 ux) 2))
(pow (- 1 ux) 2)
(+ (* 2 (* maxCos (* ux (- 1 ux)))) (pow (- 1 ux) 2))
(+ (* maxCos (+ (* 2 (* ux (- 1 ux))) (* maxCos (pow ux 2)))) (pow (- 1 ux) 2))
(* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* (pow maxCos 3) (* (pow ux 2) (pow (sqrt -1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))))
(* -1 (* (pow maxCos 2) (pow ux 2)))
(* (pow maxCos 2) (- (* -2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (- (/ 1 (pow maxCos 2)) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2)))))
(* (pow maxCos 2) (pow ux 2))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2))))
(* -1 (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* -1 (* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* maxCos (* ux (sqrt -1))))) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* maxCos (* (pow ux 2) (pow (sqrt -1) 3))))) (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* ux (sqrt -1))))) maxCos)) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* (pow maxCos 2) (- (* -1 (/ (- (* -1 (/ (- 1 (pow (- 1 ux) 2)) maxCos)) (* -2 (* ux (- 1 ux)))) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (+ (* -1 (/ (+ (* -2 (* ux (- 1 ux))) (* -1 (/ (pow (- 1 ux) 2) maxCos))) maxCos)) (pow ux 2)))
Calls

9 calls:

TimeVariablePointExpression
5.0ms
uy
@0
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
3.0ms
uy
@inf
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
2.0ms
ux
@-inf
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
2.0ms
ux
@0
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
2.0ms
maxCos
@0
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))

simplify2.0ms (0.1%)

Memory
2.7MiB live, 2.7MiB allocated
Algorithm
egg-herbie
Counts
64 → 6
Calls
Call 1
Inputs
(* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI)))))
(+ (* -1/2 (* (sqrt (/ (pow ux 3) (- 2 (* 2 maxCos)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* -1/8 (* (sqrt (/ ux (pow (- 2 (* 2 maxCos)) 3))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (pow ux 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow ux 3) (pow (- 2 (* 2 maxCos)) 3)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))) (* -1/16 (* (sqrt (/ 1 (* ux (pow (- 2 (* 2 maxCos)) 5)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 6)))))))))
(* ux (- 2 (* 2 maxCos)))
(* ux (- (+ 2 (* -1 (* ux (pow (- maxCos 1) 2)))) (* 2 maxCos)))
1
(+ 1 (* ux (- (* 2 maxCos) 2)))
(+ 1 (* ux (- (+ (* 2 maxCos) (* ux (pow (- maxCos 1) 2))) 2)))
(* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))
(* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 3)) (* (pow ux 3) (* (pow (sqrt -1) 5) (pow (- maxCos 1) 5))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))))
(* -1 (* (pow ux 2) (pow (- maxCos 1) 2)))
(* (pow ux 2) (- (* 2 (/ 1 ux)) (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2))))
(* (pow ux 2) (pow (- maxCos 1) 2))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2)) (* 2 (/ 1 ux))))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (+ (/ 1 (pow ux 2)) (pow (- maxCos 1) 2))) (* 2 (/ 1 ux))))
(* -1 (* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos))))))
(* -1 (* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* ux (* (sqrt -1) (+ 1 (* -1 maxCos)))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos))))) (* 1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* ux (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))) (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 3)) (* ux (* (pow (sqrt -1) 5) (pow (+ 1 (* -1 maxCos)) 5)))))) ux)) (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (- (+ (* -2 (/ maxCos ux)) (* 2 (/ 1 ux))) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2))
(* (pow ux 2) (+ (* -1 (/ (+ 2 (* -2 maxCos)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (+ (* -1 (/ (- (+ 2 (* -2 maxCos)) (/ 1 ux)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2)))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* -2 (* (* (pow uy 2) (pow (PI) 2)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (* (pow uy 2) (pow (PI) 4)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* (pow uy 2) (+ (* -4/45 (* (* (pow uy 2) (pow (PI) 6)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (pow (PI) 4) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))))
(+ 1 (* -2 (* (pow uy 2) (pow (PI) 2))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* 2/3 (* (pow uy 2) (pow (PI) 4))))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* (pow uy 2) (+ (* -4/45 (* (pow uy 2) (pow (PI) 6))) (* 2/3 (pow (PI) 4)))))))
(* 2 (* uy (PI)))
(* 2 uy)
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))
(cos (* 2 (* uy (PI))))
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2))))
(+ (* -1 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* -1/2 (* (* maxCos (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* maxCos (+ (* -1/2 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (* (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)) (- 1 ux))))) (sqrt (/ 1 (pow (- 1 (pow (- 1 ux) 2)) 3))))) (* -1/2 (* (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(- 1 (pow (- 1 ux) 2))
(- (+ 1 (* -2 (* maxCos (* ux (- 1 ux))))) (pow (- 1 ux) 2))
(- (+ 1 (* maxCos (- (* -1 (* maxCos (pow ux 2))) (* 2 (* ux (- 1 ux)))))) (pow (- 1 ux) 2))
(pow (- 1 ux) 2)
(+ (* 2 (* maxCos (* ux (- 1 ux)))) (pow (- 1 ux) 2))
(+ (* maxCos (+ (* 2 (* ux (- 1 ux))) (* maxCos (pow ux 2)))) (pow (- 1 ux) 2))
(* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* (pow maxCos 3) (* (pow ux 2) (pow (sqrt -1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))))
(* -1 (* (pow maxCos 2) (pow ux 2)))
(* (pow maxCos 2) (- (* -2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (- (/ 1 (pow maxCos 2)) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2)))))
(* (pow maxCos 2) (pow ux 2))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2))))
(* -1 (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* -1 (* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* maxCos (* ux (sqrt -1))))) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* maxCos (* (pow ux 2) (pow (sqrt -1) 3))))) (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* ux (sqrt -1))))) maxCos)) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* (pow maxCos 2) (- (* -1 (/ (- (* -1 (/ (- 1 (pow (- 1 ux) 2)) maxCos)) (* -2 (* ux (- 1 ux)))) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (+ (* -1 (/ (+ (* -2 (* ux (- 1 ux))) (* -1 (/ (pow (- 1 ux) 2) maxCos))) maxCos)) (pow ux 2)))
Outputs
(* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI)))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(+ (* -1/2 (* (sqrt (/ (pow ux 3) (- 2 (* 2 maxCos)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* -1/8 (* (sqrt (/ ux (pow (- 2 (* 2 maxCos)) 3))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))))))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (pow ux 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow ux 3) (pow (- 2 (* 2 maxCos)) 3)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))) (* -1/16 (* (sqrt (/ 1 (* ux (pow (- 2 (* 2 maxCos)) 5)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 6)))))))))
(*.f32 uy #s(literal 2 binary32))
(* ux (- 2 (* 2 maxCos)))
(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(* ux (- (+ 2 (* -1 (* ux (pow (- maxCos 1) 2)))) (* 2 maxCos)))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))

rewrite0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Counts
6 → 6
Calls
Call 1
Inputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
Outputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))

eval1.0ms (0%)

Memory
1.9MiB live, 1.9MiB allocated
Compiler

Compiled 377 to 39 computations (89.7% saved)

prune3.0ms (0.1%)

Memory
4.7MiB live, 4.7MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New8412
Fresh000
Picked011
Done000
Total8513
Accuracy
58.0%
Counts
13 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
54.0%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
20.1%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
19.3%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
18.7%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
20.4%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
Compiler

Compiled 158 to 100 computations (36.7% saved)

simplify1.0ms (0%)

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

Found 14 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f32 uy #s(literal 2 binary32))
cost-diff0
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
cost-diff0
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
cost-diff0
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
cost-diff0
(PI.f32)
cost-diff0
(*.f32 uy #s(literal 2 binary32))
cost-diff0
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
cost-diff0
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
cost-diff0
(*.f32 uy #s(literal 2 binary32))
cost-diff0
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
cost-diff0
(*.f32 uy #s(literal 2 binary32))
cost-diff0
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
cost-diff0
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
cost-diff0
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
Calls
Call 1
Inputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
(*.f32 ux maxCos)
maxCos
Outputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
(*.f32 ux maxCos)
maxCos

localize46.0ms (1.6%)

Memory
-4.7MiB live, 70.9MiB allocated
Localize:

Found 14 expressions of interest:

NewMetricScoreProgram
accuracy0.181972509768442
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
accuracy0.33984375
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
accuracy0.37890625
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
accuracy26.560547880575584
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
accuracy0.0
(*.f32 uy #s(literal 2 binary32))
accuracy0.0
(PI.f32)
accuracy0.33984375
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
accuracy25.83622479183247
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
accuracy0.0
(*.f32 uy #s(literal 2 binary32))
accuracy26.008292656278243
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
accuracy0.0
(PI.f32)
accuracy0.13202143509326714
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
accuracy0.33984375
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
accuracy25.463814152697502
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
Samples
31.0ms254×0valid
0.0ms1valid
Compiler

Compiled 499 to 50 computations (90% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
ival-mult: 7.0ms (38% of total)
ival-cosu: 4.0ms (21.7% of total)
ival-sub: 2.0ms (10.9% of total)
ival-sqrt: 2.0ms (10.9% of total)
ival-pi: 1.0ms (5.4% of total)
ival-add: 1.0ms (5.4% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series13.0ms (0.4%)

Memory
-24.4MiB live, 18.3MiB allocated
Counts
10 → 64
Calls
Call 1
Inputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(PI.f32)
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
Outputs
(* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI)))))
(+ (* -1/2 (* (sqrt (/ (pow ux 3) (- 2 (* 2 maxCos)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* -1/8 (* (sqrt (/ ux (pow (- 2 (* 2 maxCos)) 3))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (pow ux 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow ux 3) (pow (- 2 (* 2 maxCos)) 3)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))) (* -1/16 (* (sqrt (/ 1 (* ux (pow (- 2 (* 2 maxCos)) 5)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 6)))))))))
(* ux (- 2 (* 2 maxCos)))
(* ux (- (+ 2 (* -1 (* ux (pow (- maxCos 1) 2)))) (* 2 maxCos)))
1
(+ 1 (* ux (- (* 2 maxCos) 2)))
(+ 1 (* ux (- (+ (* 2 maxCos) (* ux (pow (- maxCos 1) 2))) 2)))
(* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))
(* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 3)) (* (pow ux 3) (* (pow (sqrt -1) 5) (pow (- maxCos 1) 5))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))))
(* -1 (* (pow ux 2) (pow (- maxCos 1) 2)))
(* (pow ux 2) (- (* 2 (/ 1 ux)) (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2))))
(* (pow ux 2) (pow (- maxCos 1) 2))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2)) (* 2 (/ 1 ux))))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (+ (/ 1 (pow ux 2)) (pow (- maxCos 1) 2))) (* 2 (/ 1 ux))))
(* -1 (* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos))))))
(* -1 (* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* ux (* (sqrt -1) (+ 1 (* -1 maxCos)))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos))))) (* 1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* ux (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))) (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 3)) (* ux (* (pow (sqrt -1) 5) (pow (+ 1 (* -1 maxCos)) 5)))))) ux)) (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (- (+ (* -2 (/ maxCos ux)) (* 2 (/ 1 ux))) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2))
(* (pow ux 2) (+ (* -1 (/ (+ 2 (* -2 maxCos)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (+ (* -1 (/ (- (+ 2 (* -2 maxCos)) (/ 1 ux)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2)))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* -2 (* (* (pow uy 2) (pow (PI) 2)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (* (pow uy 2) (pow (PI) 4)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* (pow uy 2) (+ (* -4/45 (* (* (pow uy 2) (pow (PI) 6)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (pow (PI) 4) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))))
(+ 1 (* -2 (* (pow uy 2) (pow (PI) 2))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* 2/3 (* (pow uy 2) (pow (PI) 4))))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* (pow uy 2) (+ (* -4/45 (* (pow uy 2) (pow (PI) 6))) (* 2/3 (pow (PI) 4)))))))
(* 2 (* uy (PI)))
(* 2 uy)
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))
(cos (* 2 (* uy (PI))))
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2))))
(+ (* -1 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* -1/2 (* (* maxCos (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* maxCos (+ (* -1/2 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (* (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)) (- 1 ux))))) (sqrt (/ 1 (pow (- 1 (pow (- 1 ux) 2)) 3))))) (* -1/2 (* (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(- 1 (pow (- 1 ux) 2))
(- (+ 1 (* -2 (* maxCos (* ux (- 1 ux))))) (pow (- 1 ux) 2))
(- (+ 1 (* maxCos (- (* -1 (* maxCos (pow ux 2))) (* 2 (* ux (- 1 ux)))))) (pow (- 1 ux) 2))
(pow (- 1 ux) 2)
(+ (* 2 (* maxCos (* ux (- 1 ux)))) (pow (- 1 ux) 2))
(+ (* maxCos (+ (* 2 (* ux (- 1 ux))) (* maxCos (pow ux 2)))) (pow (- 1 ux) 2))
(* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* (pow maxCos 3) (* (pow ux 2) (pow (sqrt -1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))))
(* -1 (* (pow maxCos 2) (pow ux 2)))
(* (pow maxCos 2) (- (* -2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (- (/ 1 (pow maxCos 2)) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2)))))
(* (pow maxCos 2) (pow ux 2))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2))))
(* -1 (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* -1 (* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* maxCos (* ux (sqrt -1))))) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* maxCos (* (pow ux 2) (pow (sqrt -1) 3))))) (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* ux (sqrt -1))))) maxCos)) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* (pow maxCos 2) (- (* -1 (/ (- (* -1 (/ (- 1 (pow (- 1 ux) 2)) maxCos)) (* -2 (* ux (- 1 ux)))) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (+ (* -1 (/ (+ (* -2 (* ux (- 1 ux))) (* -1 (/ (pow (- 1 ux) 2) maxCos))) maxCos)) (pow ux 2)))
Calls

9 calls:

TimeVariablePointExpression
1.0ms
uy
@inf
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (PI) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
1.0ms
uy
@-inf
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (PI) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
1.0ms
uy
@0
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (PI) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
1.0ms
ux
@-inf
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (PI) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
1.0ms
ux
@0
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (PI) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))

simplify2.0ms (0.1%)

Memory
3.1MiB live, 3.1MiB allocated
Algorithm
egg-herbie
Counts
64 → 10
Calls
Call 1
Inputs
(* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI)))))
(+ (* -1/2 (* (sqrt (/ (pow ux 3) (- 2 (* 2 maxCos)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* -1/8 (* (sqrt (/ ux (pow (- 2 (* 2 maxCos)) 3))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (pow ux 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow ux 3) (pow (- 2 (* 2 maxCos)) 3)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))) (* -1/16 (* (sqrt (/ 1 (* ux (pow (- 2 (* 2 maxCos)) 5)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 6)))))))))
(* ux (- 2 (* 2 maxCos)))
(* ux (- (+ 2 (* -1 (* ux (pow (- maxCos 1) 2)))) (* 2 maxCos)))
1
(+ 1 (* ux (- (* 2 maxCos) 2)))
(+ 1 (* ux (- (+ (* 2 maxCos) (* ux (pow (- maxCos 1) 2))) 2)))
(* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))
(* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 3)) (* (pow ux 3) (* (pow (sqrt -1) 5) (pow (- maxCos 1) 5))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))))
(* -1 (* (pow ux 2) (pow (- maxCos 1) 2)))
(* (pow ux 2) (- (* 2 (/ 1 ux)) (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2))))
(* (pow ux 2) (pow (- maxCos 1) 2))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2)) (* 2 (/ 1 ux))))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (+ (/ 1 (pow ux 2)) (pow (- maxCos 1) 2))) (* 2 (/ 1 ux))))
(* -1 (* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos))))))
(* -1 (* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* ux (* (sqrt -1) (+ 1 (* -1 maxCos)))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos))))) (* 1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* ux (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))) (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 3)) (* ux (* (pow (sqrt -1) 5) (pow (+ 1 (* -1 maxCos)) 5)))))) ux)) (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (- (+ (* -2 (/ maxCos ux)) (* 2 (/ 1 ux))) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2))
(* (pow ux 2) (+ (* -1 (/ (+ 2 (* -2 maxCos)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (+ (* -1 (/ (- (+ 2 (* -2 maxCos)) (/ 1 ux)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2)))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* -2 (* (* (pow uy 2) (pow (PI) 2)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (* (pow uy 2) (pow (PI) 4)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* (pow uy 2) (+ (* -4/45 (* (* (pow uy 2) (pow (PI) 6)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (pow (PI) 4) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))))
(+ 1 (* -2 (* (pow uy 2) (pow (PI) 2))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* 2/3 (* (pow uy 2) (pow (PI) 4))))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* (pow uy 2) (+ (* -4/45 (* (pow uy 2) (pow (PI) 6))) (* 2/3 (pow (PI) 4)))))))
(* 2 (* uy (PI)))
(* 2 uy)
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))
(cos (* 2 (* uy (PI))))
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2))))
(+ (* -1 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* -1/2 (* (* maxCos (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* maxCos (+ (* -1/2 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (* (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)) (- 1 ux))))) (sqrt (/ 1 (pow (- 1 (pow (- 1 ux) 2)) 3))))) (* -1/2 (* (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(- 1 (pow (- 1 ux) 2))
(- (+ 1 (* -2 (* maxCos (* ux (- 1 ux))))) (pow (- 1 ux) 2))
(- (+ 1 (* maxCos (- (* -1 (* maxCos (pow ux 2))) (* 2 (* ux (- 1 ux)))))) (pow (- 1 ux) 2))
(pow (- 1 ux) 2)
(+ (* 2 (* maxCos (* ux (- 1 ux)))) (pow (- 1 ux) 2))
(+ (* maxCos (+ (* 2 (* ux (- 1 ux))) (* maxCos (pow ux 2)))) (pow (- 1 ux) 2))
(* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* (pow maxCos 3) (* (pow ux 2) (pow (sqrt -1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))))
(* -1 (* (pow maxCos 2) (pow ux 2)))
(* (pow maxCos 2) (- (* -2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (- (/ 1 (pow maxCos 2)) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2)))))
(* (pow maxCos 2) (pow ux 2))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2))))
(* -1 (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* -1 (* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* maxCos (* ux (sqrt -1))))) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* maxCos (* (pow ux 2) (pow (sqrt -1) 3))))) (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* ux (sqrt -1))))) maxCos)) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* (pow maxCos 2) (- (* -1 (/ (- (* -1 (/ (- 1 (pow (- 1 ux) 2)) maxCos)) (* -2 (* ux (- 1 ux)))) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (+ (* -1 (/ (+ (* -2 (* ux (- 1 ux))) (* -1 (/ (pow (- 1 ux) 2) maxCos))) maxCos)) (pow ux 2)))
Outputs
(* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI)))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
(+ (* -1/2 (* (sqrt (/ (pow ux 3) (- 2 (* 2 maxCos)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* -1/8 (* (sqrt (/ ux (pow (- 2 (* 2 maxCos)) 3))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))))))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (pow ux 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow ux 3) (pow (- 2 (* 2 maxCos)) 3)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))) (* -1/16 (* (sqrt (/ 1 (* ux (pow (- 2 (* 2 maxCos)) 5)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 6)))))))))
(*.f32 uy #s(literal 2 binary32))
(* ux (- 2 (* 2 maxCos)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
(* ux (- (+ 2 (* -1 (* ux (pow (- maxCos 1) 2)))) (* 2 maxCos)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
1
(PI.f32)
(+ 1 (* ux (- (* 2 maxCos) 2)))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(+ 1 (* ux (- (+ (* 2 maxCos) (* ux (pow (- maxCos 1) 2))) 2)))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))

rewrite1.0ms (0%)

Memory
1.6MiB live, 1.6MiB allocated
Counts
10 → 10
Calls
Call 1
Inputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(PI.f32)
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
Outputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(PI.f32)
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))

eval2.0ms (0.1%)

Memory
3.4MiB live, 3.4MiB allocated
Compiler

Compiled 1 041 to 52 computations (95% saved)

prune5.0ms (0.2%)

Memory
8.7MiB live, 8.7MiB allocated
Pruning

9 alts after pruning (4 fresh and 5 done)

PrunedKeptTotal
New21425
Fresh000
Picked044
Done011
Total21930
Accuracy
58.6%
Counts
30 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
54.0%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
20.1%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
19.3%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))))
22.2%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
22.2%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
19.4%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
19.3%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
18.7%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
20.4%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
Compiler

Compiled 394 to 198 computations (49.7% saved)

simplify2.0ms (0.1%)

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

Found 16 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f32 uy #s(literal 2 binary32))
cost-diff0
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
cost-diff0
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
cost-diff0
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))))
cost-diff0
(*.f32 uy #s(literal 2 binary32))
cost-diff0
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
cost-diff0
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
cost-diff0
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
cost-diff0
(*.f32 uy #s(literal 2 binary32))
cost-diff0
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
cost-diff0
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
cost-diff0
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
cost-diff0
(-.f32 #s(literal 1 binary32) ux)
cost-diff0
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
cost-diff0
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
cost-diff0
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
Calls
Call 1
Inputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
(*.f32 ux maxCos)
maxCos
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
(*.f32 ux maxCos)
maxCos
Outputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
(*.f32 ux maxCos)
maxCos
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
(*.f32 ux maxCos)
maxCos

localize53.0ms (1.8%)

Memory
13.2MiB live, 89.3MiB allocated
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
accuracy0.37890625
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
accuracy25.789407826298945
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))))
accuracy26.560547880575584
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
accuracy26.560547880575584
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))
accuracy0.181972509768442
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
accuracy0.33984375
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
accuracy25.669776546556847
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
accuracy25.83622479183247
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
accuracy0.181972509768442
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
accuracy0.33984375
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
accuracy25.669776546556847
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))
accuracy26.008292656278243
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
accuracy0.0
(*.f32 ux maxCos)
accuracy0.03125
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
accuracy0.37890625
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
accuracy25.789407826298945
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
Samples
35.0ms254×0valid
0.0ms1valid
Compiler

Compiled 1 364 to 60 computations (95.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 20.0ms
ival-mult: 9.0ms (45.5% of total)
ival-cosu: 4.0ms (20.2% of total)
ival-sub: 2.0ms (10.1% of total)
ival-sqrt: 2.0ms (10.1% of total)
ival-pi: 1.0ms (5.1% of total)
ival-add: 1.0ms (5.1% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series15.0ms (0.5%)

Memory
-13.1MiB live, 25.4MiB allocated
Counts
18 → 78
Calls
Call 1
Inputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))))
(*.f32 ux maxCos)
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))))
Outputs
(* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI)))))
(+ (* -1/2 (* (sqrt (/ (pow ux 3) (- 2 (* 2 maxCos)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* -1/8 (* (sqrt (/ ux (pow (- 2 (* 2 maxCos)) 3))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (pow ux 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow ux 3) (pow (- 2 (* 2 maxCos)) 3)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))) (* -1/16 (* (sqrt (/ 1 (* ux (pow (- 2 (* 2 maxCos)) 5)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 6)))))))))
1
(+ 1 (* ux (- (* 2 maxCos) 2)))
(+ 1 (* ux (- (+ (* 2 maxCos) (* ux (pow (- maxCos 1) 2))) 2)))
(+ 1 (* ux (- maxCos 1)))
(+ 1 (* -1 ux))
(* maxCos ux)
(* ux (- 2 (* 2 maxCos)))
(* ux (- (+ 2 (* -1 (* ux (pow (- maxCos 1) 2)))) (* 2 maxCos)))
(* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))
(* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 3)) (* (pow ux 3) (* (pow (sqrt -1) 5) (pow (- maxCos 1) 5))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))))
(* (pow ux 2) (pow (- maxCos 1) 2))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2)) (* 2 (/ 1 ux))))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (+ (/ 1 (pow ux 2)) (pow (- maxCos 1) 2))) (* 2 (/ 1 ux))))
(* ux (- maxCos 1))
(* ux (- (+ maxCos (/ 1 ux)) 1))
(* -1 ux)
(* ux (- (/ 1 ux) 1))
(* -1 (* (pow ux 2) (pow (- maxCos 1) 2)))
(* (pow ux 2) (- (* 2 (/ 1 ux)) (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2))))
(* -1 (* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos))))))
(* -1 (* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* ux (* (sqrt -1) (+ 1 (* -1 maxCos)))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos))))) (* 1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* ux (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))) (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 3)) (* ux (* (pow (sqrt -1) 5) (pow (+ 1 (* -1 maxCos)) 5)))))) ux)) (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2))
(* (pow ux 2) (+ (* -1 (/ (+ 2 (* -2 maxCos)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (+ (* -1 (/ (- (+ 2 (* -2 maxCos)) (/ 1 ux)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(* -1 (* ux (+ 1 (* -1 maxCos))))
(* -1 (* ux (- (+ 1 (* -1 maxCos)) (/ 1 ux))))
(* -1 (* ux (- 1 (/ 1 ux))))
(* -1 (* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (- (+ (* -2 (/ maxCos ux)) (* 2 (/ 1 ux))) (pow (+ 1 (* -1 maxCos)) 2)))
(sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2)))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* -2 (* (* (pow uy 2) (pow (PI) 2)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (* (pow uy 2) (pow (PI) 4)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* (pow uy 2) (+ (* -4/45 (* (* (pow uy 2) (pow (PI) 6)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (pow (PI) 4) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))))
(+ 1 (* -2 (* (pow uy 2) (pow (PI) 2))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* 2/3 (* (pow uy 2) (pow (PI) 4))))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* (pow uy 2) (+ (* -4/45 (* (pow uy 2) (pow (PI) 6))) (* 2/3 (pow (PI) 4)))))))
(* 2 (* uy (PI)))
(* 2 uy)
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))
(cos (* 2 (* uy (PI))))
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2))))
(+ (* -1 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* -1/2 (* (* maxCos (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* maxCos (+ (* -1/2 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (* (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)) (- 1 ux))))) (sqrt (/ 1 (pow (- 1 (pow (- 1 ux) 2)) 3))))) (* -1/2 (* (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(pow (- 1 ux) 2)
(+ (* 2 (* maxCos (* ux (- 1 ux)))) (pow (- 1 ux) 2))
(+ (* maxCos (+ (* 2 (* ux (- 1 ux))) (* maxCos (pow ux 2)))) (pow (- 1 ux) 2))
(- 1 ux)
(- (+ 1 (* maxCos ux)) ux)
(- 1 (pow (- 1 ux) 2))
(- (+ 1 (* -2 (* maxCos (* ux (- 1 ux))))) (pow (- 1 ux) 2))
(- (+ 1 (* maxCos (- (* -1 (* maxCos (pow ux 2))) (* 2 (* ux (- 1 ux)))))) (pow (- 1 ux) 2))
(* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* (pow maxCos 3) (* (pow ux 2) (pow (sqrt -1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))))
(* (pow maxCos 2) (pow ux 2))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2))))
(* maxCos (- (+ ux (/ 1 maxCos)) (/ ux maxCos)))
(* -1 (* (pow maxCos 2) (pow ux 2)))
(* (pow maxCos 2) (- (* -2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (- (/ 1 (pow maxCos 2)) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2)))))
(* -1 (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* -1 (* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* maxCos (* ux (sqrt -1))))) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* maxCos (* (pow ux 2) (pow (sqrt -1) 3))))) (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* ux (sqrt -1))))) maxCos)) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* (pow maxCos 2) (+ (* -1 (/ (+ (* -2 (* ux (- 1 ux))) (* -1 (/ (pow (- 1 ux) 2) maxCos))) maxCos)) (pow ux 2)))
(* -1 (* maxCos (+ (* -1 ux) (* -1 (/ (- 1 ux) maxCos)))))
(* (pow maxCos 2) (- (* -1 (/ (- (* -1 (/ (- 1 (pow (- 1 ux) 2)) maxCos)) (* -2 (* ux (- 1 ux)))) maxCos)) (pow ux 2)))
Calls

9 calls:

TimeVariablePointExpression
3.0ms
ux
@-inf
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (+ (- 1 ux) (* ux maxCos)) (- 1 ux) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* ux maxCos) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
1.0ms
ux
@inf
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (+ (- 1 ux) (* ux maxCos)) (- 1 ux) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* ux maxCos) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
1.0ms
ux
@0
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (+ (- 1 ux) (* ux maxCos)) (- 1 ux) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* ux maxCos) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
1.0ms
maxCos
@-inf
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (+ (- 1 ux) (* ux maxCos)) (- 1 ux) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* ux maxCos) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
1.0ms
uy
@inf
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (+ (- 1 ux) (* ux maxCos)) (- 1 ux) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* ux maxCos) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))

simplify2.0ms (0.1%)

Memory
3.5MiB live, 3.5MiB allocated
Algorithm
egg-herbie
Counts
78 → 18
Calls
Call 1
Inputs
(* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI)))))
(+ (* -1/2 (* (sqrt (/ (pow ux 3) (- 2 (* 2 maxCos)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* -1/8 (* (sqrt (/ ux (pow (- 2 (* 2 maxCos)) 3))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (pow ux 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow ux 3) (pow (- 2 (* 2 maxCos)) 3)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))) (* -1/16 (* (sqrt (/ 1 (* ux (pow (- 2 (* 2 maxCos)) 5)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 6)))))))))
1
(+ 1 (* ux (- (* 2 maxCos) 2)))
(+ 1 (* ux (- (+ (* 2 maxCos) (* ux (pow (- maxCos 1) 2))) 2)))
(+ 1 (* ux (- maxCos 1)))
(+ 1 (* -1 ux))
(* maxCos ux)
(* ux (- 2 (* 2 maxCos)))
(* ux (- (+ 2 (* -1 (* ux (pow (- maxCos 1) 2)))) (* 2 maxCos)))
(* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))
(* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 3)) (* (pow ux 3) (* (pow (sqrt -1) 5) (pow (- maxCos 1) 5))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))))
(* (pow ux 2) (pow (- maxCos 1) 2))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2)) (* 2 (/ 1 ux))))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (+ (/ 1 (pow ux 2)) (pow (- maxCos 1) 2))) (* 2 (/ 1 ux))))
(* ux (- maxCos 1))
(* ux (- (+ maxCos (/ 1 ux)) 1))
(* -1 ux)
(* ux (- (/ 1 ux) 1))
(* -1 (* (pow ux 2) (pow (- maxCos 1) 2)))
(* (pow ux 2) (- (* 2 (/ 1 ux)) (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2))))
(* -1 (* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos))))))
(* -1 (* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* ux (* (sqrt -1) (+ 1 (* -1 maxCos)))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos))))) (* 1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* ux (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))) (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 3)) (* ux (* (pow (sqrt -1) 5) (pow (+ 1 (* -1 maxCos)) 5)))))) ux)) (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2))
(* (pow ux 2) (+ (* -1 (/ (+ 2 (* -2 maxCos)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (+ (* -1 (/ (- (+ 2 (* -2 maxCos)) (/ 1 ux)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(* -1 (* ux (+ 1 (* -1 maxCos))))
(* -1 (* ux (- (+ 1 (* -1 maxCos)) (/ 1 ux))))
(* -1 (* ux (- 1 (/ 1 ux))))
(* -1 (* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (- (+ (* -2 (/ maxCos ux)) (* 2 (/ 1 ux))) (pow (+ 1 (* -1 maxCos)) 2)))
(sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2)))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* -2 (* (* (pow uy 2) (pow (PI) 2)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (* (pow uy 2) (pow (PI) 4)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* (pow uy 2) (+ (* -4/45 (* (* (pow uy 2) (pow (PI) 6)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (pow (PI) 4) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))))
(+ 1 (* -2 (* (pow uy 2) (pow (PI) 2))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* 2/3 (* (pow uy 2) (pow (PI) 4))))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* (pow uy 2) (+ (* -4/45 (* (pow uy 2) (pow (PI) 6))) (* 2/3 (pow (PI) 4)))))))
(* 2 (* uy (PI)))
(* 2 uy)
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))
(cos (* 2 (* uy (PI))))
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2))))
(+ (* -1 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* -1/2 (* (* maxCos (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* maxCos (+ (* -1/2 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (* (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)) (- 1 ux))))) (sqrt (/ 1 (pow (- 1 (pow (- 1 ux) 2)) 3))))) (* -1/2 (* (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(pow (- 1 ux) 2)
(+ (* 2 (* maxCos (* ux (- 1 ux)))) (pow (- 1 ux) 2))
(+ (* maxCos (+ (* 2 (* ux (- 1 ux))) (* maxCos (pow ux 2)))) (pow (- 1 ux) 2))
(- 1 ux)
(- (+ 1 (* maxCos ux)) ux)
(- 1 (pow (- 1 ux) 2))
(- (+ 1 (* -2 (* maxCos (* ux (- 1 ux))))) (pow (- 1 ux) 2))
(- (+ 1 (* maxCos (- (* -1 (* maxCos (pow ux 2))) (* 2 (* ux (- 1 ux)))))) (pow (- 1 ux) 2))
(* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* (pow maxCos 3) (* (pow ux 2) (pow (sqrt -1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))))
(* (pow maxCos 2) (pow ux 2))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2))))
(* maxCos (- (+ ux (/ 1 maxCos)) (/ ux maxCos)))
(* -1 (* (pow maxCos 2) (pow ux 2)))
(* (pow maxCos 2) (- (* -2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (- (/ 1 (pow maxCos 2)) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2)))))
(* -1 (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* -1 (* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* maxCos (* ux (sqrt -1))))) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* maxCos (* (pow ux 2) (pow (sqrt -1) 3))))) (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* ux (sqrt -1))))) maxCos)) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* (pow maxCos 2) (+ (* -1 (/ (+ (* -2 (* ux (- 1 ux))) (* -1 (/ (pow (- 1 ux) 2) maxCos))) maxCos)) (pow ux 2)))
(* -1 (* maxCos (+ (* -1 ux) (* -1 (/ (- 1 ux) maxCos)))))
(* (pow maxCos 2) (- (* -1 (/ (- (* -1 (/ (- 1 (pow (- 1 ux) 2)) maxCos)) (* -2 (* ux (- 1 ux)))) maxCos)) (pow ux 2)))
Outputs
(* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI)))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(+ (* -1/2 (* (sqrt (/ (pow ux 3) (- 2 (* 2 maxCos)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* -1/8 (* (sqrt (/ ux (pow (- 2 (* 2 maxCos)) 3))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))))))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (pow ux 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow ux 3) (pow (- 2 (* 2 maxCos)) 3)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))) (* -1/16 (* (sqrt (/ 1 (* ux (pow (- 2 (* 2 maxCos)) 5)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 6)))))))))
(-.f32 #s(literal 1 binary32) ux)
1
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
(+ 1 (* ux (- (* 2 maxCos) 2)))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(+ 1 (* ux (- (+ (* 2 maxCos) (* ux (pow (- maxCos 1) 2))) 2)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(+ 1 (* ux (- maxCos 1)))
(*.f32 uy #s(literal 2 binary32))
(+ 1 (* -1 ux))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
(* maxCos ux)
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))))
(* ux (- 2 (* 2 maxCos)))
(*.f32 ux maxCos)
(* ux (- (+ 2 (* -1 (* ux (pow (- maxCos 1) 2)))) (* 2 maxCos)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
(* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))
(* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 3)) (* (pow ux 3) (* (pow (sqrt -1) 5) (pow (- maxCos 1) 5))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))
(* (pow ux 2) (pow (- maxCos 1) 2))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2)) (* 2 (/ 1 ux))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))))

rewrite2.0ms (0.1%)

Memory
2.9MiB live, 2.9MiB allocated
Counts
18 → 18
Calls
Call 1
Inputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))))
(*.f32 ux maxCos)
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))))
Outputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))))
(*.f32 ux maxCos)
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))))

eval5.0ms (0.2%)

Memory
10.3MiB live, 10.3MiB allocated
Compiler

Compiled 5 314 to 156 computations (97.1% saved)

prune19.0ms (0.7%)

Memory
-19.6MiB live, 23.3MiB allocated
Pruning

16 alts after pruning (7 fresh and 9 done)

PrunedKeptTotal
New63770
Fresh000
Picked044
Done055
Total631679
Accuracy
58.6%
Counts
79 → 16
Alt Table
Click to see full alt table
StatusAccuracyProgram
54.0%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
20.1%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
13.4%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
19.3%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))))
21.5%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))))
21.3%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))))
20.4%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))))))))))
19.5%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))))))))
22.2%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
22.2%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
19.3%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
19.4%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
18.7%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
19.3%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
18.7%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
20.4%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
Compiler

Compiled 1 410 to 530 computations (62.4% saved)

simplify3.0ms (0.1%)

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

Found 18 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f32 uy #s(literal 2 binary32))
cost-diff0
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
cost-diff0
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
cost-diff0
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))))
cost-diff0
(*.f32 uy #s(literal 2 binary32))
cost-diff0
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
cost-diff0
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
cost-diff0
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
cost-diff0
(-.f32 #s(literal 1 binary32) ux)
cost-diff0
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
cost-diff0
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))
cost-diff0
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
cost-diff0
(-.f32 #s(literal 1 binary32) ux)
cost-diff0
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
cost-diff0
(*.f32 uy #s(literal 2 binary32))
cost-diff0
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
cost-diff0
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
cost-diff0
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))))
Calls
Call 1
Inputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
(*.f32 ux maxCos)
maxCos
#s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
(*.f32 ux maxCos)
maxCos
#s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos)))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))
(*.f32 ux maxCos)
ux
maxCos
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
Outputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
(*.f32 ux maxCos)
maxCos
#s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
(*.f32 ux maxCos)
maxCos
#s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos)))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))
(*.f32 ux maxCos)
ux
maxCos
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
uy
#s(literal 2 binary32)
(PI.f32)
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
(sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))

localize60.0ms (2%)

Memory
-7.9MiB live, 107.3MiB allocated
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
accuracy25.789407826298945
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))))
accuracy26.277881218867027
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
accuracy26.560547880575584
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
accuracy26.560547880575584
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))
accuracy0.13202143509326714
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
accuracy0.181972509768442
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
accuracy0.33984375
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
accuracy28.681819656016344
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))
accuracy0.03125
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
accuracy0.37890625
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))
accuracy25.789407826298945
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
accuracy26.39260386358296
#s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))
accuracy0.0
(-.f32 #s(literal 1 binary32) ux)
accuracy25.811046760053685
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
accuracy25.789407826298945
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))))
accuracy26.39260386358296
#s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))
accuracy26.560547880575584
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
accuracy26.560547880575584
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))
Samples
35.0ms254×0valid
0.0ms1valid
Compiler

Compiled 1 732 to 65 computations (96.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 19.0ms
ival-mult: 7.0ms (36.3% of total)
ival-cosu: 4.0ms (20.8% of total)
ival-pi: 2.0ms (10.4% of total)
ival-sub: 2.0ms (10.4% of total)
ival-sqrt: 2.0ms (10.4% of total)
ival-add: 1.0ms (5.2% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series12.0ms (0.4%)

Memory
23.8MiB live, 23.8MiB allocated
Counts
20 → 78
Calls
Call 1
Inputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
(-.f32 #s(literal 1 binary32) ux)
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
#s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))))
Outputs
(* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI)))))
(+ (* -1/2 (* (sqrt (/ (pow ux 3) (- 2 (* 2 maxCos)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* -1/8 (* (sqrt (/ ux (pow (- 2 (* 2 maxCos)) 3))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (pow ux 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow ux 3) (pow (- 2 (* 2 maxCos)) 3)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))) (* -1/16 (* (sqrt (/ 1 (* ux (pow (- 2 (* 2 maxCos)) 5)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 6)))))))))
1
(+ 1 (* -1 ux))
(+ 1 (* ux (- (* 2 maxCos) 2)))
(+ 1 (* ux (- (+ (* 2 maxCos) (* ux (pow (- maxCos 1) 2))) 2)))
(+ 1 (* ux (- maxCos 1)))
(* ux (- 2 (* 2 maxCos)))
(* ux (- (+ 2 (* -1 (* ux (pow (- maxCos 1) 2)))) (* 2 maxCos)))
(* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))
(* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 3)) (* (pow ux 3) (* (pow (sqrt -1) 5) (pow (- maxCos 1) 5))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))))
(* -1 ux)
(* ux (- (/ 1 ux) 1))
(* (pow ux 2) (pow (- maxCos 1) 2))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2)) (* 2 (/ 1 ux))))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (+ (/ 1 (pow ux 2)) (pow (- maxCos 1) 2))) (* 2 (/ 1 ux))))
(* ux (- maxCos 1))
(* ux (- (+ maxCos (/ 1 ux)) 1))
(* -1 (* (pow ux 2) (pow (- maxCos 1) 2)))
(* (pow ux 2) (- (* 2 (/ 1 ux)) (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2))))
(* -1 (* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos))))))
(* -1 (* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* ux (* (sqrt -1) (+ 1 (* -1 maxCos)))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos))))) (* 1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* ux (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))) (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 3)) (* ux (* (pow (sqrt -1) 5) (pow (+ 1 (* -1 maxCos)) 5)))))) ux)) (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (- 1 (/ 1 ux))))
(* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2))
(* (pow ux 2) (+ (* -1 (/ (+ 2 (* -2 maxCos)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (+ (* -1 (/ (- (+ 2 (* -2 maxCos)) (/ 1 ux)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(* -1 (* ux (+ 1 (* -1 maxCos))))
(* -1 (* ux (- (+ 1 (* -1 maxCos)) (/ 1 ux))))
(* -1 (* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (- (+ (* -2 (/ maxCos ux)) (* 2 (/ 1 ux))) (pow (+ 1 (* -1 maxCos)) 2)))
(sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2)))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* -2 (* (* (pow uy 2) (pow (PI) 2)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (* (pow uy 2) (pow (PI) 4)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* (pow uy 2) (+ (* -4/45 (* (* (pow uy 2) (pow (PI) 6)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (pow (PI) 4) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))))
(+ 1 (* -2 (* (pow uy 2) (pow (PI) 2))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* 2/3 (* (pow uy 2) (pow (PI) 4))))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* (pow uy 2) (+ (* -4/45 (* (pow uy 2) (pow (PI) 6))) (* 2/3 (pow (PI) 4)))))))
(* 2 (* uy (PI)))
(* 2 uy)
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))
(cos (* 2 (* uy (PI))))
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2))))
(+ (* -1 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* -1/2 (* (* maxCos (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* maxCos (+ (* -1/2 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (* (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)) (- 1 ux))))) (sqrt (/ 1 (pow (- 1 (pow (- 1 ux) 2)) 3))))) (* -1/2 (* (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(pow (- 1 ux) 2)
(+ (* 2 (* maxCos (* ux (- 1 ux)))) (pow (- 1 ux) 2))
(+ (* maxCos (+ (* 2 (* ux (- 1 ux))) (* maxCos (pow ux 2)))) (pow (- 1 ux) 2))
(- 1 ux)
(- (+ 1 (* maxCos ux)) ux)
(- 1 (pow (- 1 ux) 2))
(- (+ 1 (* -2 (* maxCos (* ux (- 1 ux))))) (pow (- 1 ux) 2))
(- (+ 1 (* maxCos (- (* -1 (* maxCos (pow ux 2))) (* 2 (* ux (- 1 ux)))))) (pow (- 1 ux) 2))
(* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* (pow maxCos 3) (* (pow ux 2) (pow (sqrt -1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))))
(* (pow maxCos 2) (pow ux 2))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2))))
(* maxCos ux)
(* maxCos (- (+ ux (/ 1 maxCos)) (/ ux maxCos)))
(* -1 (* (pow maxCos 2) (pow ux 2)))
(* (pow maxCos 2) (- (* -2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (- (/ 1 (pow maxCos 2)) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2)))))
(* -1 (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* -1 (* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* maxCos (* ux (sqrt -1))))) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* maxCos (* (pow ux 2) (pow (sqrt -1) 3))))) (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* ux (sqrt -1))))) maxCos)) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* (pow maxCos 2) (+ (* -1 (/ (+ (* -2 (* ux (- 1 ux))) (* -1 (/ (pow (- 1 ux) 2) maxCos))) maxCos)) (pow ux 2)))
(* -1 (* maxCos (+ (* -1 ux) (* -1 (/ (- 1 ux) maxCos)))))
(* (pow maxCos 2) (- (* -1 (/ (- (* -1 (/ (- 1 (pow (- 1 ux) 2)) maxCos)) (* -2 (* ux (- 1 ux)))) maxCos)) (pow ux 2)))
Calls

9 calls:

TimeVariablePointExpression
1.0ms
ux
@-inf
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 ux) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (+ (- 1 ux) (* ux maxCos)) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (+ (- 1 ux) (* ux maxCos)) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
1.0ms
uy
@inf
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 ux) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (+ (- 1 ux) (* ux maxCos)) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (+ (- 1 ux) (* ux maxCos)) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
1.0ms
ux
@inf
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 ux) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (+ (- 1 ux) (* ux maxCos)) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (+ (- 1 ux) (* ux maxCos)) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
1.0ms
uy
@-inf
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 ux) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (+ (- 1 ux) (* ux maxCos)) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (+ (- 1 ux) (* ux maxCos)) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))
1.0ms
ux
@0
((* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos (* (* uy 2) (PI))) (* (* uy 2) (PI)) (* uy 2) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 ux) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (+ (- 1 ux) (* ux maxCos)) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (+ (- 1 ux) (* ux maxCos)) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))))

simplify2.0ms (0.1%)

Memory
4.9MiB live, 4.9MiB allocated
Algorithm
egg-herbie
Counts
78 → 20
Calls
Call 1
Inputs
(* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI)))))
(+ (* -1/2 (* (sqrt (/ (pow ux 3) (- 2 (* 2 maxCos)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* -1/8 (* (sqrt (/ ux (pow (- 2 (* 2 maxCos)) 3))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))))))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (pow ux 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow ux 3) (pow (- 2 (* 2 maxCos)) 3)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))) (* -1/16 (* (sqrt (/ 1 (* ux (pow (- 2 (* 2 maxCos)) 5)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 6)))))))))
1
(+ 1 (* -1 ux))
(+ 1 (* ux (- (* 2 maxCos) 2)))
(+ 1 (* ux (- (+ (* 2 maxCos) (* ux (pow (- maxCos 1) 2))) 2)))
(+ 1 (* ux (- maxCos 1)))
(* ux (- 2 (* 2 maxCos)))
(* ux (- (+ 2 (* -1 (* ux (pow (- maxCos 1) 2)))) (* 2 maxCos)))
(* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))
(* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 3)) (* (pow ux 3) (* (pow (sqrt -1) 5) (pow (- maxCos 1) 5))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))))
(* -1 ux)
(* ux (- (/ 1 ux) 1))
(* (pow ux 2) (pow (- maxCos 1) 2))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2)) (* 2 (/ 1 ux))))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (+ (/ 1 (pow ux 2)) (pow (- maxCos 1) 2))) (* 2 (/ 1 ux))))
(* ux (- maxCos 1))
(* ux (- (+ maxCos (/ 1 ux)) 1))
(* -1 (* (pow ux 2) (pow (- maxCos 1) 2)))
(* (pow ux 2) (- (* 2 (/ 1 ux)) (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2))))
(* -1 (* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos))))))
(* -1 (* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* ux (* (sqrt -1) (+ 1 (* -1 maxCos)))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos))))) (* 1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* ux (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 2)) (* (pow (sqrt -1) 3) (pow (+ 1 (* -1 maxCos)) 3)))) (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (+ 2 (* -2 maxCos)) 3)) (* ux (* (pow (sqrt -1) 5) (pow (+ 1 (* -1 maxCos)) 5)))))) ux)) (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (+ 2 (* -2 maxCos))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))) ux)) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (+ 1 (* -1 maxCos)))))))
(* -1 (* ux (- 1 (/ 1 ux))))
(* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2))
(* (pow ux 2) (+ (* -1 (/ (+ 2 (* -2 maxCos)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (+ (* -1 (/ (- (+ 2 (* -2 maxCos)) (/ 1 ux)) ux)) (pow (+ 1 (* -1 maxCos)) 2)))
(* -1 (* ux (+ 1 (* -1 maxCos))))
(* -1 (* ux (- (+ 1 (* -1 maxCos)) (/ 1 ux))))
(* -1 (* (pow ux 2) (pow (+ 1 (* -1 maxCos)) 2)))
(* (pow ux 2) (- (+ (* -2 (/ maxCos ux)) (* 2 (/ 1 ux))) (pow (+ 1 (* -1 maxCos)) 2)))
(sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2)))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* -2 (* (* (pow uy 2) (pow (PI) 2)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (* (pow uy 2) (pow (PI) 4)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))
(+ (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))) (* (pow uy 2) (+ (* -2 (* (pow (PI) 2) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* (pow uy 2) (+ (* -4/45 (* (* (pow uy 2) (pow (PI) 6)) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))) (* 2/3 (* (pow (PI) 4) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))))))))
(+ 1 (* -2 (* (pow uy 2) (pow (PI) 2))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* 2/3 (* (pow uy 2) (pow (PI) 4))))))
(+ 1 (* (pow uy 2) (+ (* -2 (pow (PI) 2)) (* (pow uy 2) (+ (* -4/45 (* (pow uy 2) (pow (PI) 6))) (* 2/3 (pow (PI) 4)))))))
(* 2 (* uy (PI)))
(* 2 uy)
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- (+ 1 (* maxCos ux)) ux) 2))))
(cos (* 2 (* uy (PI))))
(* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2))))
(+ (* -1 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* -1/2 (* (* maxCos (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(+ (* maxCos (+ (* -1 (* (* ux (* (cos (* 2 (* uy (PI)))) (- 1 ux))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))) (* maxCos (+ (* -1/2 (* (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (* (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2)) (- 1 ux))))) (sqrt (/ 1 (pow (- 1 (pow (- 1 ux) 2)) 3))))) (* -1/2 (* (* (cos (* 2 (* uy (PI)))) (+ (/ (* (pow ux 2) (pow (- 1 ux) 2)) (- 1 (pow (- 1 ux) 2))) (pow ux 2))) (sqrt (/ 1 (- 1 (pow (- 1 ux) 2)))))))))) (* (cos (* 2 (* uy (PI)))) (sqrt (- 1 (pow (- 1 ux) 2)))))
(pow (- 1 ux) 2)
(+ (* 2 (* maxCos (* ux (- 1 ux)))) (pow (- 1 ux) 2))
(+ (* maxCos (+ (* 2 (* ux (- 1 ux))) (* maxCos (pow ux 2)))) (pow (- 1 ux) 2))
(- 1 ux)
(- (+ 1 (* maxCos ux)) ux)
(- 1 (pow (- 1 ux) 2))
(- (+ 1 (* -2 (* maxCos (* ux (- 1 ux))))) (pow (- 1 ux) 2))
(- (+ 1 (* maxCos (- (* -1 (* maxCos (pow ux 2))) (* 2 (* ux (- 1 ux)))))) (pow (- 1 ux) 2))
(* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* (pow maxCos 3) (* (pow ux 2) (pow (sqrt -1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* (pow maxCos 2) (* ux (sqrt -1))))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))))
(* (pow maxCos 2) (pow ux 2))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2))))
(* maxCos ux)
(* maxCos (- (+ ux (/ 1 maxCos)) (/ ux maxCos)))
(* -1 (* (pow maxCos 2) (pow ux 2)))
(* (pow maxCos 2) (- (* -2 (/ (* ux (- 1 ux)) maxCos)) (pow ux 2)))
(* (pow maxCos 2) (- (/ 1 (pow maxCos 2)) (+ (* 2 (/ (* ux (- 1 ux)) maxCos)) (+ (/ (pow (- 1 ux) 2) (pow maxCos 2)) (pow ux 2)))))
(* -1 (* maxCos (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1)))))
(* -1 (* maxCos (+ (* -1 (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (* maxCos (sqrt -1)))) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* maxCos (* ux (sqrt -1))))) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* -1 (* maxCos (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (* (- 1 ux) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2))))) (* maxCos (* (pow ux 2) (pow (sqrt -1) 3))))) (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 1 (+ (/ (pow (- 1 ux) 2) (pow (sqrt -1) 2)) (pow (- 1 ux) 2)))) (* ux (sqrt -1))))) maxCos)) (/ (* (cos (* 2 (* uy (PI)))) (- 1 ux)) (sqrt -1))) maxCos)) (* ux (* (cos (* 2 (* uy (PI)))) (sqrt -1))))))
(* (pow maxCos 2) (+ (* -1 (/ (+ (* -2 (* ux (- 1 ux))) (* -1 (/ (pow (- 1 ux) 2) maxCos))) maxCos)) (pow ux 2)))
(* -1 (* maxCos (+ (* -1 ux) (* -1 (/ (- 1 ux) maxCos)))))
(* (pow maxCos 2) (- (* -1 (/ (- (* -1 (/ (- 1 (pow (- 1 ux) 2)) maxCos)) (* -2 (* ux (- 1 ux)))) maxCos)) (pow ux 2)))
Outputs
(* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI)))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))))
(+ (* -1/2 (* (sqrt (/ (pow ux 3) (- 2 (* 2 maxCos)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* -1/8 (* (sqrt (/ ux (pow (- 2 (* 2 maxCos)) 3))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))))))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(+ (* (sqrt (* ux (- 2 (* 2 maxCos)))) (cos (* 2 (* uy (PI))))) (* (pow ux 2) (+ (* -1/2 (* (sqrt (/ 1 (* ux (- 2 (* 2 maxCos))))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 2)))) (* (pow ux 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow ux 3) (pow (- 2 (* 2 maxCos)) 3)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 4)))) (* -1/16 (* (sqrt (/ 1 (* ux (pow (- 2 (* 2 maxCos)) 5)))) (* (cos (* 2 (* uy (PI)))) (pow (- maxCos 1) 6)))))))))
(*.f32 uy #s(literal 2 binary32))
1
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
(+ 1 (* -1 ux))
(-.f32 #s(literal 1 binary32) ux)
(+ 1 (* ux (- (* 2 maxCos) 2)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
(+ 1 (* ux (- (+ (* 2 maxCos) (* ux (pow (- maxCos 1) 2))) 2)))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))
(+ 1 (* ux (- maxCos 1)))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(* ux (- 2 (* 2 maxCos)))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
(* ux (- (+ 2 (* -1 (* ux (pow (- maxCos 1) 2)))) (* 2 maxCos)))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))))
(* ux (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))
(* ux (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1))))))
#s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))
(* ux (+ (* -1/8 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 2)) (* (pow ux 2) (* (pow (sqrt -1) 3) (pow (- maxCos 1) 3))))) (+ (* 1/16 (/ (* (cos (* 2 (* uy (PI)))) (pow (- 2 (* 2 maxCos)) 3)) (* (pow ux 3) (* (pow (sqrt -1) 5) (pow (- maxCos 1) 5))))) (+ (* 1/2 (/ (* (cos (* 2 (* uy (PI)))) (- 2 (* 2 maxCos))) (* ux (* (sqrt -1) (- maxCos 1))))) (* (cos (* 2 (* uy (PI)))) (* (sqrt -1) (- maxCos 1)))))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))))
(* -1 ux)
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))
(* ux (- (/ 1 ux) 1))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))
(* (pow ux 2) (pow (- maxCos 1) 2))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (pow (- maxCos 1) 2)) (* 2 (/ 1 ux))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(* (pow ux 2) (- (+ (* 2 (/ maxCos ux)) (+ (/ 1 (pow ux 2)) (pow (- maxCos 1) 2))) (* 2 (/ 1 ux))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))))

rewrite4.0ms (0.2%)

Memory
-38.6MiB live, 3.4MiB allocated
Counts
20 → 20
Calls
Call 1
Inputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
(-.f32 #s(literal 1 binary32) ux)
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
#s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))))
Outputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))))
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
(*.f32 uy #s(literal 2 binary32))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
(-.f32 #s(literal 1 binary32) ux)
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
#s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))
#s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
#s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))))

eval5.0ms (0.2%)

Memory
12.5MiB live, 12.5MiB allocated
Compiler

Compiled 5 812 to 164 computations (97.2% saved)

prune13.0ms (0.5%)

Memory
-10.4MiB live, 28.7MiB allocated
Pruning

16 alts after pruning (5 fresh and 11 done)

PrunedKeptTotal
New70575
Fresh202
Picked235
Done189
Total751691
Accuracy
59.0%
Counts
91 → 16
Alt Table
Click to see full alt table
StatusAccuracyProgram
54.0%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
20.1%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
17.3%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos)))))))
13.4%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
15.4%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 #s(approx (- 1 ux) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))))
22.2%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
22.2%
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
19.3%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
19.4%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
18.7%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
17.3%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 #s(approx (- 1 ux) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
19.3%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
18.7%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
20.4%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
22.1%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))))))
9.4%
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) #s(approx (- 1 ux) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
Compiler

Compiled 2 210 to 471 computations (78.7% saved)

regimes72.0ms (2.5%)

Memory
19.5MiB live, 137.8MiB allocated
Counts
21 → 2
Calls
Call 1
Inputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) #s(approx (- 1 ux) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 #s(approx (- 1 ux) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos)))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 #s(approx (- 1 ux) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))))))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))))))))))
Outputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
Calls

11 calls:

8.0ms
uy
7.0ms
(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
6.0ms
(*.f32 uy #s(literal 2 binary32))
6.0ms
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
6.0ms
(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
Results
AccuracySegmentsBranch
57.7%2ux
54.0%1uy
54.0%1maxCos
54.0%1(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
54.0%1(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
54.0%1(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
54.0%1(*.f32 uy #s(literal 2 binary32))
57.7%2(sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))
57.7%2(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
57.7%2(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
57.7%2(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
Compiler

Compiled 99 to 79 computations (20.2% saved)

regimes50.0ms (1.7%)

Memory
-12.9MiB live, 103.7MiB allocated
Counts
13 → 1
Calls
Call 1
Inputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) #s(approx (- 1 ux) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32))))))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 #s(approx (- 1 ux) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))))) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
Outputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
Calls

11 calls:

6.0ms
maxCos
5.0ms
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
5.0ms
(*.f32 uy #s(literal 2 binary32))
4.0ms
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
4.0ms
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
Results
AccuracySegmentsBranch
22.2%1maxCos
22.2%1(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
22.2%1(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
22.2%1uy
22.2%1(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
22.2%1(*.f32 uy #s(literal 2 binary32))
22.2%1ux
22.2%1(sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))
22.2%1(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
22.2%1(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
22.2%1(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
Compiler

Compiled 99 to 79 computations (20.2% saved)

regimes39.0ms (1.3%)

Memory
-1.9MiB live, 77.3MiB allocated
Counts
9 → 1
Calls
Call 1
Inputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) #s(approx (- 1 ux) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
Outputs
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
Calls

11 calls:

5.0ms
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
4.0ms
ux
3.0ms
(*.f32 uy #s(literal 2 binary32))
3.0ms
maxCos
3.0ms
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
Results
AccuracySegmentsBranch
22.2%1ux
22.2%1(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
22.2%1(sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))
22.2%1(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
22.2%1maxCos
22.2%1uy
22.2%1(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
22.2%1(*.f32 uy #s(literal 2 binary32))
22.2%1(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
22.2%1(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
22.2%1(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
Compiler

Compiled 99 to 79 computations (20.2% saved)

regimes31.0ms (1.1%)

Memory
24.4MiB live, 63.6MiB allocated
Counts
7 → 1
Calls
Call 1
Inputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) #s(approx (- 1 ux) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
Outputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
Calls

11 calls:

4.0ms
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
3.0ms
(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
3.0ms
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
3.0ms
(*.f32 uy #s(literal 2 binary32))
3.0ms
maxCos
Results
AccuracySegmentsBranch
20.4%1uy
20.4%1(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
20.4%1(*.f32 uy #s(literal 2 binary32))
20.4%1(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
20.4%1(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
20.4%1ux
20.4%1maxCos
20.4%1(sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))
20.4%1(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
20.4%1(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
20.4%1(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
Compiler

Compiled 99 to 79 computations (20.2% saved)

regimes34.0ms (1.2%)

Memory
-19.7MiB live, 60.4MiB allocated
Counts
6 → 1
Calls
Call 1
Inputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) #s(approx (- 1 ux) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
Outputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
Calls

11 calls:

9.0ms
ux
3.0ms
(*.f32 uy #s(literal 2 binary32))
3.0ms
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
2.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
2.0ms
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
Results
AccuracySegmentsBranch
19.4%1(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
19.4%1ux
19.4%1(sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))
19.4%1(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
19.4%1(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
19.4%1uy
19.4%1maxCos
19.4%1(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
19.4%1(*.f32 uy #s(literal 2 binary32))
19.4%1(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
19.4%1(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
Compiler

Compiled 99 to 79 computations (20.2% saved)

regimes25.0ms (0.9%)

Memory
16.3MiB live, 55.5MiB allocated
Accuracy

Total -3.2b remaining (-12.5%)

Threshold costs -3.2b (-12.5%)

Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) #s(approx (- 1 ux) #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) (*.f32 ux maxCos))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(approx (+ (- 1 ux) (* ux maxCos)) (*.f32 uy #s(literal 2 binary32)))))
Outputs
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
Calls

11 calls:

3.0ms
(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
2.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
2.0ms
(*.f32 uy #s(literal 2 binary32))
2.0ms
uy
2.0ms
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
Results
AccuracySegmentsBranch
19.3%1maxCos
19.3%1(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))))
19.3%1ux
19.3%1uy
19.3%1(*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))
19.3%1(*.f32 uy #s(literal 2 binary32))
19.3%1(sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))
19.3%1(-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
19.3%1(cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)))
19.3%1(*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))
19.3%1(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
Compiler

Compiled 99 to 79 computations (20.2% saved)

bsearch1.0ms (0%)

Memory
1.1MiB live, 1.1MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999999403953552
1.0
Compiler

Compiled 22 to 21 computations (4.5% saved)

simplify5.0ms (0.2%)

Memory
12.4MiB live, 12.4MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(if (<=.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(literal 16777215/16777216 binary32)) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))
Outputs
(if (<=.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #s(literal 16777215/16777216 binary32)) (*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)))))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))))
(*.f32 (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))) (sqrt.f32 #s(approx (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))) #s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 uy #s(literal 2 binary32))))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (cos.f32 (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (*.f32 (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))))
#s(approx (* (cos (* (* uy 2) (PI))) (sqrt (- 1 (* (+ (- 1 ux) (* ux maxCos)) (+ (- 1 ux) (* ux maxCos)))))) (-.f32 #s(literal 1 binary32) ux))

soundness1.0ms (0%)

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

Compiled 280 to 43 computations (84.6% saved)

preprocess27.0ms (0.9%)

Memory
-19.9MiB live, 57.4MiB allocated
Compiler

Compiled 610 to 118 computations (80.7% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...