AcosLookupTable.cs 10 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045
  1. using System;
  2. public static class AcosLookupTable
  3. {
  4. public static readonly int COUNT;
  5. public static readonly int HALF_COUNT;
  6. public static readonly int[] table;
  7. static AcosLookupTable()
  8. {
  9. AcosLookupTable.COUNT = 1024;
  10. AcosLookupTable.HALF_COUNT = AcosLookupTable.COUNT >> 1;
  11. AcosLookupTable.table = new int[]
  12. {
  13. 31416,
  14. 30791,
  15. 30532,
  16. 30333,
  17. 30165,
  18. 30017,
  19. 29883,
  20. 29760,
  21. 29646,
  22. 29538,
  23. 29436,
  24. 29339,
  25. 29247,
  26. 29158,
  27. 29072,
  28. 28989,
  29. 28909,
  30. 28832,
  31. 28756,
  32. 28683,
  33. 28612,
  34. 28542,
  35. 28474,
  36. 28407,
  37. 28342,
  38. 28278,
  39. 28215,
  40. 28154,
  41. 28093,
  42. 28034,
  43. 27976,
  44. 27918,
  45. 27862,
  46. 27806,
  47. 27751,
  48. 27697,
  49. 27644,
  50. 27591,
  51. 27539,
  52. 27488,
  53. 27437,
  54. 27387,
  55. 27337,
  56. 27288,
  57. 27240,
  58. 27192,
  59. 27145,
  60. 27098,
  61. 27051,
  62. 27005,
  63. 26960,
  64. 26915,
  65. 26870,
  66. 26826,
  67. 26782,
  68. 26738,
  69. 26695,
  70. 26652,
  71. 26610,
  72. 26568,
  73. 26526,
  74. 26485,
  75. 26444,
  76. 26403,
  77. 26362,
  78. 26322,
  79. 26282,
  80. 26243,
  81. 26203,
  82. 26164,
  83. 26125,
  84. 26087,
  85. 26048,
  86. 26010,
  87. 25973,
  88. 25935,
  89. 25898,
  90. 25860,
  91. 25823,
  92. 25787,
  93. 25750,
  94. 25714,
  95. 25678,
  96. 25642,
  97. 25606,
  98. 25571,
  99. 25536,
  100. 25500,
  101. 25466,
  102. 25431,
  103. 25396,
  104. 25362,
  105. 25328,
  106. 25293,
  107. 25260,
  108. 25226,
  109. 25192,
  110. 25159,
  111. 25126,
  112. 25092,
  113. 25059,
  114. 25027,
  115. 24994,
  116. 24961,
  117. 24929,
  118. 24897,
  119. 24865,
  120. 24833,
  121. 24801,
  122. 24769,
  123. 24737,
  124. 24706,
  125. 24675,
  126. 24643,
  127. 24612,
  128. 24581,
  129. 24550,
  130. 24520,
  131. 24489,
  132. 24459,
  133. 24428,
  134. 24398,
  135. 24368,
  136. 24337,
  137. 24308,
  138. 24278,
  139. 24248,
  140. 24218,
  141. 24189,
  142. 24159,
  143. 24130,
  144. 24100,
  145. 24071,
  146. 24042,
  147. 24013,
  148. 23984,
  149. 23955,
  150. 23927,
  151. 23898,
  152. 23869,
  153. 23841,
  154. 23813,
  155. 23784,
  156. 23756,
  157. 23728,
  158. 23700,
  159. 23672,
  160. 23644,
  161. 23616,
  162. 23589,
  163. 23561,
  164. 23533,
  165. 23506,
  166. 23478,
  167. 23451,
  168. 23424,
  169. 23397,
  170. 23369,
  171. 23342,
  172. 23315,
  173. 23288,
  174. 23262,
  175. 23235,
  176. 23208,
  177. 23181,
  178. 23155,
  179. 23128,
  180. 23102,
  181. 23075,
  182. 23049,
  183. 23023,
  184. 22997,
  185. 22970,
  186. 22944,
  187. 22918,
  188. 22892,
  189. 22866,
  190. 22840,
  191. 22815,
  192. 22789,
  193. 22763,
  194. 22738,
  195. 22712,
  196. 22687,
  197. 22661,
  198. 22636,
  199. 22610,
  200. 22585,
  201. 22560,
  202. 22535,
  203. 22509,
  204. 22484,
  205. 22459,
  206. 22434,
  207. 22409,
  208. 22384,
  209. 22360,
  210. 22335,
  211. 22310,
  212. 22285,
  213. 22261,
  214. 22236,
  215. 22212,
  216. 22187,
  217. 22163,
  218. 22138,
  219. 22114,
  220. 22089,
  221. 22065,
  222. 22041,
  223. 22017,
  224. 21992,
  225. 21968,
  226. 21944,
  227. 21920,
  228. 21896,
  229. 21872,
  230. 21848,
  231. 21824,
  232. 21801,
  233. 21777,
  234. 21753,
  235. 21729,
  236. 21706,
  237. 21682,
  238. 21658,
  239. 21635,
  240. 21611,
  241. 21588,
  242. 21564,
  243. 21541,
  244. 21518,
  245. 21494,
  246. 21471,
  247. 21448,
  248. 21424,
  249. 21401,
  250. 21378,
  251. 21355,
  252. 21332,
  253. 21309,
  254. 21286,
  255. 21263,
  256. 21240,
  257. 21217,
  258. 21194,
  259. 21171,
  260. 21148,
  261. 21125,
  262. 21103,
  263. 21080,
  264. 21057,
  265. 21034,
  266. 21012,
  267. 20989,
  268. 20967,
  269. 20944,
  270. 20921,
  271. 20899,
  272. 20876,
  273. 20854,
  274. 20832,
  275. 20809,
  276. 20787,
  277. 20764,
  278. 20742,
  279. 20720,
  280. 20698,
  281. 20675,
  282. 20653,
  283. 20631,
  284. 20609,
  285. 20587,
  286. 20565,
  287. 20543,
  288. 20520,
  289. 20498,
  290. 20476,
  291. 20455,
  292. 20433,
  293. 20411,
  294. 20389,
  295. 20367,
  296. 20345,
  297. 20323,
  298. 20301,
  299. 20280,
  300. 20258,
  301. 20236,
  302. 20214,
  303. 20193,
  304. 20171,
  305. 20149,
  306. 20128,
  307. 20106,
  308. 20085,
  309. 20063,
  310. 20042,
  311. 20020,
  312. 19999,
  313. 19977,
  314. 19956,
  315. 19934,
  316. 19913,
  317. 19891,
  318. 19870,
  319. 19849,
  320. 19827,
  321. 19806,
  322. 19785,
  323. 19764,
  324. 19742,
  325. 19721,
  326. 19700,
  327. 19679,
  328. 19658,
  329. 19636,
  330. 19615,
  331. 19594,
  332. 19573,
  333. 19552,
  334. 19531,
  335. 19510,
  336. 19489,
  337. 19468,
  338. 19447,
  339. 19426,
  340. 19405,
  341. 19384,
  342. 19363,
  343. 19342,
  344. 19321,
  345. 19300,
  346. 19280,
  347. 19259,
  348. 19238,
  349. 19217,
  350. 19196,
  351. 19175,
  352. 19155,
  353. 19134,
  354. 19113,
  355. 19093,
  356. 19072,
  357. 19051,
  358. 19030,
  359. 19010,
  360. 18989,
  361. 18969,
  362. 18948,
  363. 18927,
  364. 18907,
  365. 18886,
  366. 18866,
  367. 18845,
  368. 18825,
  369. 18804,
  370. 18784,
  371. 18763,
  372. 18743,
  373. 18722,
  374. 18702,
  375. 18681,
  376. 18661,
  377. 18640,
  378. 18620,
  379. 18600,
  380. 18579,
  381. 18559,
  382. 18539,
  383. 18518,
  384. 18498,
  385. 18478,
  386. 18457,
  387. 18437,
  388. 18417,
  389. 18396,
  390. 18376,
  391. 18356,
  392. 18336,
  393. 18316,
  394. 18295,
  395. 18275,
  396. 18255,
  397. 18235,
  398. 18215,
  399. 18194,
  400. 18174,
  401. 18154,
  402. 18134,
  403. 18114,
  404. 18094,
  405. 18074,
  406. 18054,
  407. 18034,
  408. 18013,
  409. 17993,
  410. 17973,
  411. 17953,
  412. 17933,
  413. 17913,
  414. 17893,
  415. 17873,
  416. 17853,
  417. 17833,
  418. 17813,
  419. 17793,
  420. 17773,
  421. 17753,
  422. 17734,
  423. 17714,
  424. 17694,
  425. 17674,
  426. 17654,
  427. 17634,
  428. 17614,
  429. 17594,
  430. 17574,
  431. 17554,
  432. 17535,
  433. 17515,
  434. 17495,
  435. 17475,
  436. 17455,
  437. 17435,
  438. 17415,
  439. 17396,
  440. 17376,
  441. 17356,
  442. 17336,
  443. 17316,
  444. 17297,
  445. 17277,
  446. 17257,
  447. 17237,
  448. 17218,
  449. 17198,
  450. 17178,
  451. 17158,
  452. 17139,
  453. 17119,
  454. 17099,
  455. 17079,
  456. 17060,
  457. 17040,
  458. 17020,
  459. 17001,
  460. 16981,
  461. 16961,
  462. 16942,
  463. 16922,
  464. 16902,
  465. 16883,
  466. 16863,
  467. 16843,
  468. 16824,
  469. 16804,
  470. 16784,
  471. 16765,
  472. 16745,
  473. 16725,
  474. 16706,
  475. 16686,
  476. 16666,
  477. 16647,
  478. 16627,
  479. 16608,
  480. 16588,
  481. 16568,
  482. 16549,
  483. 16529,
  484. 16510,
  485. 16490,
  486. 16470,
  487. 16451,
  488. 16431,
  489. 16412,
  490. 16392,
  491. 16373,
  492. 16353,
  493. 16333,
  494. 16314,
  495. 16294,
  496. 16275,
  497. 16255,
  498. 16236,
  499. 16216,
  500. 16196,
  501. 16177,
  502. 16157,
  503. 16138,
  504. 16118,
  505. 16099,
  506. 16079,
  507. 16060,
  508. 16040,
  509. 16021,
  510. 16001,
  511. 15981,
  512. 15962,
  513. 15942,
  514. 15923,
  515. 15903,
  516. 15884,
  517. 15864,
  518. 15845,
  519. 15825,
  520. 15806,
  521. 15786,
  522. 15767,
  523. 15747,
  524. 15727,
  525. 15708,
  526. 15688,
  527. 15669,
  528. 15649,
  529. 15630,
  530. 15610,
  531. 15591,
  532. 15571,
  533. 15552,
  534. 15532,
  535. 15513,
  536. 15493,
  537. 15474,
  538. 15454,
  539. 15434,
  540. 15415,
  541. 15395,
  542. 15376,
  543. 15356,
  544. 15337,
  545. 15317,
  546. 15298,
  547. 15278,
  548. 15259,
  549. 15239,
  550. 15219,
  551. 15200,
  552. 15180,
  553. 15161,
  554. 15141,
  555. 15122,
  556. 15102,
  557. 15083,
  558. 15063,
  559. 15043,
  560. 15024,
  561. 15004,
  562. 14985,
  563. 14965,
  564. 14946,
  565. 14926,
  566. 14906,
  567. 14887,
  568. 14867,
  569. 14848,
  570. 14828,
  571. 14808,
  572. 14789,
  573. 14769,
  574. 14749,
  575. 14730,
  576. 14710,
  577. 14691,
  578. 14671,
  579. 14651,
  580. 14632,
  581. 14612,
  582. 14592,
  583. 14573,
  584. 14553,
  585. 14533,
  586. 14514,
  587. 14494,
  588. 14474,
  589. 14455,
  590. 14435,
  591. 14415,
  592. 14396,
  593. 14376,
  594. 14356,
  595. 14336,
  596. 14317,
  597. 14297,
  598. 14277,
  599. 14258,
  600. 14238,
  601. 14218,
  602. 14198,
  603. 14179,
  604. 14159,
  605. 14139,
  606. 14119,
  607. 14099,
  608. 14080,
  609. 14060,
  610. 14040,
  611. 14020,
  612. 14000,
  613. 13981,
  614. 13961,
  615. 13941,
  616. 13921,
  617. 13901,
  618. 13881,
  619. 13862,
  620. 13842,
  621. 13822,
  622. 13802,
  623. 13782,
  624. 13762,
  625. 13742,
  626. 13722,
  627. 13702,
  628. 13682,
  629. 13662,
  630. 13643,
  631. 13623,
  632. 13603,
  633. 13583,
  634. 13563,
  635. 13543,
  636. 13523,
  637. 13503,
  638. 13483,
  639. 13463,
  640. 13443,
  641. 13422,
  642. 13402,
  643. 13382,
  644. 13362,
  645. 13342,
  646. 13322,
  647. 13302,
  648. 13282,
  649. 13262,
  650. 13242,
  651. 13221,
  652. 13201,
  653. 13181,
  654. 13161,
  655. 13141,
  656. 13121,
  657. 13100,
  658. 13080,
  659. 13060,
  660. 13040,
  661. 13019,
  662. 12999,
  663. 12979,
  664. 12959,
  665. 12938,
  666. 12918,
  667. 12898,
  668. 12877,
  669. 12857,
  670. 12837,
  671. 12816,
  672. 12796,
  673. 12775,
  674. 12755,
  675. 12735,
  676. 12714,
  677. 12694,
  678. 12673,
  679. 12653,
  680. 12632,
  681. 12612,
  682. 12591,
  683. 12571,
  684. 12550,
  685. 12530,
  686. 12509,
  687. 12489,
  688. 12468,
  689. 12447,
  690. 12427,
  691. 12406,
  692. 12385,
  693. 12365,
  694. 12344,
  695. 12323,
  696. 12303,
  697. 12282,
  698. 12261,
  699. 12240,
  700. 12220,
  701. 12199,
  702. 12178,
  703. 12157,
  704. 12136,
  705. 12116,
  706. 12095,
  707. 12074,
  708. 12053,
  709. 12032,
  710. 12011,
  711. 11990,
  712. 11969,
  713. 11948,
  714. 11927,
  715. 11906,
  716. 11885,
  717. 11864,
  718. 11843,
  719. 11822,
  720. 11801,
  721. 11780,
  722. 11758,
  723. 11737,
  724. 11716,
  725. 11695,
  726. 11674,
  727. 11652,
  728. 11631,
  729. 11610,
  730. 11589,
  731. 11567,
  732. 11546,
  733. 11524,
  734. 11503,
  735. 11482,
  736. 11460,
  737. 11439,
  738. 11417,
  739. 11396,
  740. 11374,
  741. 11353,
  742. 11331,
  743. 11310,
  744. 11288,
  745. 11266,
  746. 11245,
  747. 11223,
  748. 11202,
  749. 11180,
  750. 11158,
  751. 11136,
  752. 11115,
  753. 11093,
  754. 11071,
  755. 11049,
  756. 11027,
  757. 11005,
  758. 10983,
  759. 10961,
  760. 10939,
  761. 10917,
  762. 10895,
  763. 10873,
  764. 10851,
  765. 10829,
  766. 10807,
  767. 10785,
  768. 10763,
  769. 10741,
  770. 10718,
  771. 10696,
  772. 10674,
  773. 10651,
  774. 10629,
  775. 10607,
  776. 10584,
  777. 10562,
  778. 10540,
  779. 10517,
  780. 10495,
  781. 10472,
  782. 10449,
  783. 10427,
  784. 10404,
  785. 10382,
  786. 10359,
  787. 10336,
  788. 10313,
  789. 10291,
  790. 10268,
  791. 10245,
  792. 10222,
  793. 10199,
  794. 10176,
  795. 10153,
  796. 10130,
  797. 10107,
  798. 10084,
  799. 10061,
  800. 10038,
  801. 10015,
  802. 9992,
  803. 9968,
  804. 9945,
  805. 9922,
  806. 9898,
  807. 9875,
  808. 9852,
  809. 9828,
  810. 9805,
  811. 9781,
  812. 9758,
  813. 9734,
  814. 9710,
  815. 9687,
  816. 9663,
  817. 9639,
  818. 9615,
  819. 9591,
  820. 9568,
  821. 9544,
  822. 9520,
  823. 9496,
  824. 9472,
  825. 9448,
  826. 9423,
  827. 9399,
  828. 9375,
  829. 9351,
  830. 9327,
  831. 9302,
  832. 9278,
  833. 9253,
  834. 9229,
  835. 9204,
  836. 9180,
  837. 9155,
  838. 9131,
  839. 9106,
  840. 9081,
  841. 9056,
  842. 9031,
  843. 9007,
  844. 8982,
  845. 8957,
  846. 8932,
  847. 8907,
  848. 8881,
  849. 8856,
  850. 8831,
  851. 8806,
  852. 8780,
  853. 8755,
  854. 8729,
  855. 8704,
  856. 8678,
  857. 8653,
  858. 8627,
  859. 8601,
  860. 8575,
  861. 8550,
  862. 8524,
  863. 8498,
  864. 8472,
  865. 8446,
  866. 8419,
  867. 8393,
  868. 8367,
  869. 8341,
  870. 8314,
  871. 8288,
  872. 8261,
  873. 8235,
  874. 8208,
  875. 8181,
  876. 8154,
  877. 8128,
  878. 8101,
  879. 8074,
  880. 8047,
  881. 8019,
  882. 7992,
  883. 7965,
  884. 7938,
  885. 7910,
  886. 7883,
  887. 7855,
  888. 7827,
  889. 7800,
  890. 7772,
  891. 7744,
  892. 7716,
  893. 7688,
  894. 7660,
  895. 7632,
  896. 7603,
  897. 7575,
  898. 7546,
  899. 7518,
  900. 7489,
  901. 7461,
  902. 7432,
  903. 7403,
  904. 7374,
  905. 7345,
  906. 7315,
  907. 7286,
  908. 7257,
  909. 7227,
  910. 7198,
  911. 7168,
  912. 7138,
  913. 7108,
  914. 7078,
  915. 7048,
  916. 7018,
  917. 6988,
  918. 6957,
  919. 6927,
  920. 6896,
  921. 6865,
  922. 6835,
  923. 6804,
  924. 6773,
  925. 6741,
  926. 6710,
  927. 6678,
  928. 6647,
  929. 6615,
  930. 6583,
  931. 6551,
  932. 6519,
  933. 6487,
  934. 6455,
  935. 6422,
  936. 6389,
  937. 6356,
  938. 6324,
  939. 6290,
  940. 6257,
  941. 6224,
  942. 6190,
  943. 6156,
  944. 6122,
  945. 6088,
  946. 6054,
  947. 6020,
  948. 5985,
  949. 5950,
  950. 5915,
  951. 5880,
  952. 5845,
  953. 5810,
  954. 5774,
  955. 5738,
  956. 5702,
  957. 5666,
  958. 5629,
  959. 5592,
  960. 5556,
  961. 5518,
  962. 5481,
  963. 5443,
  964. 5406,
  965. 5368,
  966. 5329,
  967. 5291,
  968. 5252,
  969. 5213,
  970. 5173,
  971. 5134,
  972. 5094,
  973. 5054,
  974. 5013,
  975. 4972,
  976. 4931,
  977. 4890,
  978. 4848,
  979. 4806,
  980. 4764,
  981. 4721,
  982. 4678,
  983. 4634,
  984. 4590,
  985. 4546,
  986. 4501,
  987. 4456,
  988. 4411,
  989. 4365,
  990. 4318,
  991. 4271,
  992. 4224,
  993. 4176,
  994. 4128,
  995. 4079,
  996. 4029,
  997. 3979,
  998. 3928,
  999. 3877,
  1000. 3825,
  1001. 3772,
  1002. 3719,
  1003. 3665,
  1004. 3610,
  1005. 3554,
  1006. 3498,
  1007. 3440,
  1008. 3382,
  1009. 3322,
  1010. 3262,
  1011. 3201,
  1012. 3138,
  1013. 3074,
  1014. 3009,
  1015. 2942,
  1016. 2874,
  1017. 2804,
  1018. 2733,
  1019. 2659,
  1020. 2584,
  1021. 2507,
  1022. 2427,
  1023. 2344,
  1024. 2258,
  1025. 2169,
  1026. 2077,
  1027. 1980,
  1028. 1878,
  1029. 1770,
  1030. 1655,
  1031. 1532,
  1032. 1399,
  1033. 1251,
  1034. 1083,
  1035. 884,
  1036. 625,
  1037. 0
  1038. };
  1039. /* DebugHelper.Assert(AcosLookupTable.table.Length == AcosLookupTable.COUNT + 1);*/
  1040. }
  1041. }