cosineAndSine.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. //This file is automatically rebuilt by the Cesium build process.
  2. export default "vec2 cordic(float angle)\n\
  3. {\n\
  4. vec2 vector = vec2(6.0725293500888267e-1, 0.0);\n\
  5. float sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  6. mat2 rotation = mat2(1.0, sense, -sense, 1.0);\n\
  7. vector = rotation * vector;\n\
  8. angle -= sense * 7.8539816339744828e-1;\n\
  9. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  10. float factor = sense * 5.0e-1;\n\
  11. rotation[0][1] = factor;\n\
  12. rotation[1][0] = -factor;\n\
  13. vector = rotation * vector;\n\
  14. angle -= sense * 4.6364760900080609e-1;\n\
  15. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  16. factor = sense * 2.5e-1;\n\
  17. rotation[0][1] = factor;\n\
  18. rotation[1][0] = -factor;\n\
  19. vector = rotation * vector;\n\
  20. angle -= sense * 2.4497866312686414e-1;\n\
  21. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  22. factor = sense * 1.25e-1;\n\
  23. rotation[0][1] = factor;\n\
  24. rotation[1][0] = -factor;\n\
  25. vector = rotation * vector;\n\
  26. angle -= sense * 1.2435499454676144e-1;\n\
  27. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  28. factor = sense * 6.25e-2;\n\
  29. rotation[0][1] = factor;\n\
  30. rotation[1][0] = -factor;\n\
  31. vector = rotation * vector;\n\
  32. angle -= sense * 6.2418809995957350e-2;\n\
  33. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  34. factor = sense * 3.125e-2;\n\
  35. rotation[0][1] = factor;\n\
  36. rotation[1][0] = -factor;\n\
  37. vector = rotation * vector;\n\
  38. angle -= sense * 3.1239833430268277e-2;\n\
  39. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  40. factor = sense * 1.5625e-2;\n\
  41. rotation[0][1] = factor;\n\
  42. rotation[1][0] = -factor;\n\
  43. vector = rotation * vector;\n\
  44. angle -= sense * 1.5623728620476831e-2;\n\
  45. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  46. factor = sense * 7.8125e-3;\n\
  47. rotation[0][1] = factor;\n\
  48. rotation[1][0] = -factor;\n\
  49. vector = rotation * vector;\n\
  50. angle -= sense * 7.8123410601011111e-3;\n\
  51. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  52. factor = sense * 3.90625e-3;\n\
  53. rotation[0][1] = factor;\n\
  54. rotation[1][0] = -factor;\n\
  55. vector = rotation * vector;\n\
  56. angle -= sense * 3.9062301319669718e-3;\n\
  57. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  58. factor = sense * 1.953125e-3;\n\
  59. rotation[0][1] = factor;\n\
  60. rotation[1][0] = -factor;\n\
  61. vector = rotation * vector;\n\
  62. angle -= sense * 1.9531225164788188e-3;\n\
  63. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  64. factor = sense * 9.765625e-4;\n\
  65. rotation[0][1] = factor;\n\
  66. rotation[1][0] = -factor;\n\
  67. vector = rotation * vector;\n\
  68. angle -= sense * 9.7656218955931946e-4;\n\
  69. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  70. factor = sense * 4.8828125e-4;\n\
  71. rotation[0][1] = factor;\n\
  72. rotation[1][0] = -factor;\n\
  73. vector = rotation * vector;\n\
  74. angle -= sense * 4.8828121119489829e-4;\n\
  75. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  76. factor = sense * 2.44140625e-4;\n\
  77. rotation[0][1] = factor;\n\
  78. rotation[1][0] = -factor;\n\
  79. vector = rotation * vector;\n\
  80. angle -= sense * 2.4414062014936177e-4;\n\
  81. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  82. factor = sense * 1.220703125e-4;\n\
  83. rotation[0][1] = factor;\n\
  84. rotation[1][0] = -factor;\n\
  85. vector = rotation * vector;\n\
  86. angle -= sense * 1.2207031189367021e-4;\n\
  87. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  88. factor = sense * 6.103515625e-5;\n\
  89. rotation[0][1] = factor;\n\
  90. rotation[1][0] = -factor;\n\
  91. vector = rotation * vector;\n\
  92. angle -= sense * 6.1035156174208773e-5;\n\
  93. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  94. factor = sense * 3.0517578125e-5;\n\
  95. rotation[0][1] = factor;\n\
  96. rotation[1][0] = -factor;\n\
  97. vector = rotation * vector;\n\
  98. angle -= sense * 3.0517578115526096e-5;\n\
  99. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  100. factor = sense * 1.52587890625e-5;\n\
  101. rotation[0][1] = factor;\n\
  102. rotation[1][0] = -factor;\n\
  103. vector = rotation * vector;\n\
  104. angle -= sense * 1.5258789061315762e-5;\n\
  105. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  106. factor = sense * 7.62939453125e-6;\n\
  107. rotation[0][1] = factor;\n\
  108. rotation[1][0] = -factor;\n\
  109. vector = rotation * vector;\n\
  110. angle -= sense * 7.6293945311019700e-6;\n\
  111. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  112. factor = sense * 3.814697265625e-6;\n\
  113. rotation[0][1] = factor;\n\
  114. rotation[1][0] = -factor;\n\
  115. vector = rotation * vector;\n\
  116. angle -= sense * 3.8146972656064961e-6;\n\
  117. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  118. factor = sense * 1.9073486328125e-6;\n\
  119. rotation[0][1] = factor;\n\
  120. rotation[1][0] = -factor;\n\
  121. vector = rotation * vector;\n\
  122. angle -= sense * 1.9073486328101870e-6;\n\
  123. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  124. factor = sense * 9.5367431640625e-7;\n\
  125. rotation[0][1] = factor;\n\
  126. rotation[1][0] = -factor;\n\
  127. vector = rotation * vector;\n\
  128. angle -= sense * 9.5367431640596084e-7;\n\
  129. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  130. factor = sense * 4.76837158203125e-7;\n\
  131. rotation[0][1] = factor;\n\
  132. rotation[1][0] = -factor;\n\
  133. vector = rotation * vector;\n\
  134. angle -= sense * 4.7683715820308884e-7;\n\
  135. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  136. factor = sense * 2.384185791015625e-7;\n\
  137. rotation[0][1] = factor;\n\
  138. rotation[1][0] = -factor;\n\
  139. vector = rotation * vector;\n\
  140. angle -= sense * 2.3841857910155797e-7;\n\
  141. sense = (angle < 0.0) ? -1.0 : 1.0;\n\
  142. factor = sense * 1.1920928955078125e-7;\n\
  143. rotation[0][1] = factor;\n\
  144. rotation[1][0] = -factor;\n\
  145. vector = rotation * vector;\n\
  146. return vector;\n\
  147. }\n\
  148. vec2 czm_cosineAndSine(float angle)\n\
  149. {\n\
  150. if (angle < -czm_piOverTwo || angle > czm_piOverTwo)\n\
  151. {\n\
  152. if (angle < 0.0)\n\
  153. {\n\
  154. return -cordic(angle + czm_pi);\n\
  155. }\n\
  156. else\n\
  157. {\n\
  158. return -cordic(angle - czm_pi);\n\
  159. }\n\
  160. }\n\
  161. else\n\
  162. {\n\
  163. return cordic(angle);\n\
  164. }\n\
  165. }\n\
  166. ";