clojure 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1378) hide show
  1. data/.document +5 -0
  2. data/.gitignore +21 -0
  3. data/LICENSE +23 -0
  4. data/README.rdoc +18 -0
  5. data/Rakefile +18 -0
  6. data/VERSION +1 -0
  7. data/bin/clj +13 -0
  8. data/epl-v10.html +261 -0
  9. data/lib/clojure/asm/AnnotationVisitor.class +0 -0
  10. data/lib/clojure/asm/AnnotationWriter.class +0 -0
  11. data/lib/clojure/asm/Attribute.class +0 -0
  12. data/lib/clojure/asm/ByteVector.class +0 -0
  13. data/lib/clojure/asm/ClassAdapter.class +0 -0
  14. data/lib/clojure/asm/ClassReader.class +0 -0
  15. data/lib/clojure/asm/ClassVisitor.class +0 -0
  16. data/lib/clojure/asm/ClassWriter.class +0 -0
  17. data/lib/clojure/asm/Edge.class +0 -0
  18. data/lib/clojure/asm/FieldVisitor.class +0 -0
  19. data/lib/clojure/asm/FieldWriter.class +0 -0
  20. data/lib/clojure/asm/Frame.class +0 -0
  21. data/lib/clojure/asm/Handler.class +0 -0
  22. data/lib/clojure/asm/Item.class +0 -0
  23. data/lib/clojure/asm/Label.class +0 -0
  24. data/lib/clojure/asm/MethodAdapter.class +0 -0
  25. data/lib/clojure/asm/MethodVisitor.class +0 -0
  26. data/lib/clojure/asm/MethodWriter.class +0 -0
  27. data/lib/clojure/asm/Opcodes.class +0 -0
  28. data/lib/clojure/asm/Type.class +0 -0
  29. data/lib/clojure/asm/commons/AdviceAdapter.class +0 -0
  30. data/lib/clojure/asm/commons/AnalyzerAdapter.class +0 -0
  31. data/lib/clojure/asm/commons/CodeSizeEvaluator.class +0 -0
  32. data/lib/clojure/asm/commons/EmptyVisitor.class +0 -0
  33. data/lib/clojure/asm/commons/GeneratorAdapter.class +0 -0
  34. data/lib/clojure/asm/commons/LocalVariablesSorter.class +0 -0
  35. data/lib/clojure/asm/commons/Method.class +0 -0
  36. data/lib/clojure/asm/commons/SerialVersionUIDAdder$Item.class +0 -0
  37. data/lib/clojure/asm/commons/SerialVersionUIDAdder.class +0 -0
  38. data/lib/clojure/asm/commons/StaticInitMerger.class +0 -0
  39. data/lib/clojure/asm/commons/TableSwitchGenerator.class +0 -0
  40. data/lib/clojure/core$_DOT__DOT___3630.class +0 -0
  41. data/lib/clojure/core$_EQ__EQ___3398.class +0 -0
  42. data/lib/clojure/core$_EQ___3291.class +0 -0
  43. data/lib/clojure/core$_GT__EQ___3390.class +0 -0
  44. data/lib/clojure/core$_GT___3382.class +0 -0
  45. data/lib/clojure/core$_LT__EQ___3374.class +0 -0
  46. data/lib/clojure/core$_LT___3366.class +0 -0
  47. data/lib/clojure/core$_PLUS___3332.class +0 -0
  48. data/lib/clojure/core$_SLASH___3350.class +0 -0
  49. data/lib/clojure/core$_STAR___3341.class +0 -0
  50. data/lib/clojure/core$__GT___3634.class +0 -0
  51. data/lib/clojure/core$___3358.class +0 -0
  52. data/lib/clojure/core$accessor__4294.class +0 -0
  53. data/lib/clojure/core$aclone__4211.class +0 -0
  54. data/lib/clojure/core$add_classpath__4707.class +0 -0
  55. data/lib/clojure/core$add_doc__5153.class +0 -0
  56. data/lib/clojure/core$add_watch__3697.class +0 -0
  57. data/lib/clojure/core$add_watcher__3703$fn__3705.class +0 -0
  58. data/lib/clojure/core$add_watcher__3703.class +0 -0
  59. data/lib/clojure/core$agent__3684.class +0 -0
  60. data/lib/clojure/core$agent_errors__3712.class +0 -0
  61. data/lib/clojure/core$aget__4217.class +0 -0
  62. data/lib/clojure/core$alength__4205.class +0 -0
  63. data/lib/clojure/core$alias__4367.class +0 -0
  64. data/lib/clojure/core$all_ns__4318.class +0 -0
  65. data/lib/clojure/core$alter__3759.class +0 -0
  66. data/lib/clojure/core$alter_meta_BANG___3750.class +0 -0
  67. data/lib/clojure/core$alter_var_root__4827.class +0 -0
  68. data/lib/clojure/core$amap__4725.class +0 -0
  69. data/lib/clojure/core$ancestors__4866$fn__4869.class +0 -0
  70. data/lib/clojure/core$ancestors__4866.class +0 -0
  71. data/lib/clojure/core$and__3308.class +0 -0
  72. data/lib/clojure/core$apply__3243.class +0 -0
  73. data/lib/clojure/core$areduce__4729.class +0 -0
  74. data/lib/clojure/core$array__4040.class +0 -0
  75. data/lib/clojure/core$array_map__4401.class +0 -0
  76. data/lib/clojure/core$aset__4224.class +0 -0
  77. data/lib/clojure/core$aset_boolean__4244.class +0 -0
  78. data/lib/clojure/core$aset_byte__4260.class +0 -0
  79. data/lib/clojure/core$aset_char__4264.class +0 -0
  80. data/lib/clojure/core$aset_double__4252.class +0 -0
  81. data/lib/clojure/core$aset_float__4248.class +0 -0
  82. data/lib/clojure/core$aset_int__4236.class +0 -0
  83. data/lib/clojure/core$aset_long__4240.class +0 -0
  84. data/lib/clojure/core$aset_short__4256.class +0 -0
  85. data/lib/clojure/core$asm_type__5683.class +0 -0
  86. data/lib/clojure/core$assert__4528.class +0 -0
  87. data/lib/clojure/core$assert_args__3659.class +0 -0
  88. data/lib/clojure/core$assoc__3148.class +0 -0
  89. data/lib/clojure/core$assoc_in__5075.class +0 -0
  90. data/lib/clojure/core$associative_QMARK___5102.class +0 -0
  91. data/lib/clojure/core$atom__3728.class +0 -0
  92. data/lib/clojure/core$await1__4014.class +0 -0
  93. data/lib/clojure/core$await__4007$count_down__4009.class +0 -0
  94. data/lib/clojure/core$await__4007.class +0 -0
  95. data/lib/clojure/core$await_for__4017$count_down__4019.class +0 -0
  96. data/lib/clojure/core$await_for__4017.class +0 -0
  97. data/lib/clojure/core$bases__4836.class +0 -0
  98. data/lib/clojure/core$bean__5303$fn__5305$fn__5307.class +0 -0
  99. data/lib/clojure/core$bean__5303$fn__5305.class +0 -0
  100. data/lib/clojure/core$bean__5303$fn__5321$thisfn__5323$fn__5324.class +0 -0
  101. data/lib/clojure/core$bean__5303$fn__5321$thisfn__5323.class +0 -0
  102. data/lib/clojure/core$bean__5303$fn__5321.class +0 -0
  103. data/lib/clojure/core$bean__5303$fn__5330.class +0 -0
  104. data/lib/clojure/core$bean__5303$fn__5333.class +0 -0
  105. data/lib/clojure/core$bean__5303$fn__5336.class +0 -0
  106. data/lib/clojure/core$bean__5303$fn__5339.class +0 -0
  107. data/lib/clojure/core$bean__5303$fn__5342.class +0 -0
  108. data/lib/clojure/core$bean__5303$fn__5346.class +0 -0
  109. data/lib/clojure/core$bean__5303$fn__5349.class +0 -0
  110. data/lib/clojure/core$bean__5303$snapshot__5315$fn__5317.class +0 -0
  111. data/lib/clojure/core$bean__5303$snapshot__5315.class +0 -0
  112. data/lib/clojure/core$bean__5303$v__5312.class +0 -0
  113. data/lib/clojure/core$bean__5303.class +0 -0
  114. data/lib/clojure/core$bigdec__4136.class +0 -0
  115. data/lib/clojure/core$bigint__4133.class +0 -0
  116. data/lib/clojure/core$binding__3672$var_ize__3674.class +0 -0
  117. data/lib/clojure/core$binding__3672.class +0 -0
  118. data/lib/clojure/core$bit_and__3509.class +0 -0
  119. data/lib/clojure/core$bit_and_not__3524.class +0 -0
  120. data/lib/clojure/core$bit_clear__3527.class +0 -0
  121. data/lib/clojure/core$bit_flip__3533.class +0 -0
  122. data/lib/clojure/core$bit_not__3503.class +0 -0
  123. data/lib/clojure/core$bit_or__3515.class +0 -0
  124. data/lib/clojure/core$bit_set__3530.class +0 -0
  125. data/lib/clojure/core$bit_shift_left__3539.class +0 -0
  126. data/lib/clojure/core$bit_shift_right__3542.class +0 -0
  127. data/lib/clojure/core$bit_test__3536.class +0 -0
  128. data/lib/clojure/core$bit_xor__3521.class +0 -0
  129. data/lib/clojure/core$boolean__4101.class +0 -0
  130. data/lib/clojure/core$bound_fn__4679$fn__4681.class +0 -0
  131. data/lib/clojure/core$bound_fn__4679.class +0 -0
  132. data/lib/clojure/core$butlast__3156.class +0 -0
  133. data/lib/clojure/core$byte__4089.class +0 -0
  134. data/lib/clojure/core$cast__3160.class +0 -0
  135. data/lib/clojure/core$char__4095.class +0 -0
  136. data/lib/clojure/core$class_QMARK___4824.class +0 -0
  137. data/lib/clojure/core$class__4043.class +0 -0
  138. data/lib/clojure/core$clear_agent_errors__3715.class +0 -0
  139. data/lib/clojure/core$clojure_version__5781.class +0 -0
  140. data/lib/clojure/core$coll_QMARK___5087.class +0 -0
  141. data/lib/clojure/core$comment__4501.class +0 -0
  142. data/lib/clojure/core$commute__3756.class +0 -0
  143. data/lib/clojure/core$comp__3775$fn__3777.class +0 -0
  144. data/lib/clojure/core$comp__3775.class +0 -0
  145. data/lib/clojure/core$comparator__3965$fn__3967.class +0 -0
  146. data/lib/clojure/core$comparator__3965.class +0 -0
  147. data/lib/clojure/core$compare__3304.class +0 -0
  148. data/lib/clojure/core$compare_and_set_BANG___3738.class +0 -0
  149. data/lib/clojure/core$compile__5065$fn__5067.class +0 -0
  150. data/lib/clojure/core$compile__5065.class +0 -0
  151. data/lib/clojure/core$complement__3551$fn__3553.class +0 -0
  152. data/lib/clojure/core$complement__3551.class +0 -0
  153. data/lib/clojure/core$concat__3255$cat__3269$fn__3270.class +0 -0
  154. data/lib/clojure/core$concat__3255$cat__3269.class +0 -0
  155. data/lib/clojure/core$concat__3255$fn__3257.class +0 -0
  156. data/lib/clojure/core$concat__3255$fn__3261.class +0 -0
  157. data/lib/clojure/core$concat__3255$fn__3265.class +0 -0
  158. data/lib/clojure/core$concat__3255.class +0 -0
  159. data/lib/clojure/core$cond__3237.class +0 -0
  160. data/lib/clojure/core$condp__5146$emit__5148.class +0 -0
  161. data/lib/clojure/core$condp__5146.class +0 -0
  162. data/lib/clojure/core$conj__3121.class +0 -0
  163. data/lib/clojure/core$cons__3107.class +0 -0
  164. data/lib/clojure/core$constantly__3560$fn__3562.class +0 -0
  165. data/lib/clojure/core$constantly__3560.class +0 -0
  166. data/lib/clojure/core$construct_proxy__5265.class +0 -0
  167. data/lib/clojure/core$contains_QMARK___3582.class +0 -0
  168. data/lib/clojure/core$count__3569.class +0 -0
  169. data/lib/clojure/core$counted_QMARK___5111.class +0 -0
  170. data/lib/clojure/core$create_ns__4312.class +0 -0
  171. data/lib/clojure/core$create_struct__4282.class +0 -0
  172. data/lib/clojure/core$ctor_sigs__5565$iter__5567__5569$fn__5570.class +0 -0
  173. data/lib/clojure/core$ctor_sigs__5565$iter__5567__5569.class +0 -0
  174. data/lib/clojure/core$ctor_sigs__5565.class +0 -0
  175. data/lib/clojure/core$cycle__3899$fn__3901.class +0 -0
  176. data/lib/clojure/core$cycle__3899.class +0 -0
  177. data/lib/clojure/core$dec__3422.class +0 -0
  178. data/lib/clojure/core$decimal_QMARK___4121.class +0 -0
  179. data/lib/clojure/core$declare__5118$fn__5120.class +0 -0
  180. data/lib/clojure/core$declare__5118.class +0 -0
  181. data/lib/clojure/core$def_aset__4233.class +0 -0
  182. data/lib/clojure/core$definline__4716.class +0 -0
  183. data/lib/clojure/core$defmacro__3190.class +0 -0
  184. data/lib/clojure/core$defmethod__3641.class +0 -0
  185. data/lib/clojure/core$defmulti__3638.class +0 -0
  186. data/lib/clojure/core$defn__3158.class +0 -0
  187. data/lib/clojure/core$defn___4565.class +0 -0
  188. data/lib/clojure/core$defonce__4973.class +0 -0
  189. data/lib/clojure/core$defstruct__4285.class +0 -0
  190. data/lib/clojure/core$delay_QMARK___3278.class +0 -0
  191. data/lib/clojure/core$delay__3275.class +0 -0
  192. data/lib/clojure/core$deref__3725.class +0 -0
  193. data/lib/clojure/core$derive__4877$tf__4880$fn__4882.class +0 -0
  194. data/lib/clojure/core$derive__4877$tf__4880.class +0 -0
  195. data/lib/clojure/core$derive__4877.class +0 -0
  196. data/lib/clojure/core$descendants__4873.class +0 -0
  197. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419$fn__4421$fn__4423.class +0 -0
  198. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419$fn__4421.class +0 -0
  199. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419$fn__4427.class +0 -0
  200. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419$fn__4430.class +0 -0
  201. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419.class +0 -0
  202. data/lib/clojure/core$destructure__4413$pb__4415$pvec__4416.class +0 -0
  203. data/lib/clojure/core$destructure__4413$pb__4415.class +0 -0
  204. data/lib/clojure/core$destructure__4413$process_entry__4436.class +0 -0
  205. data/lib/clojure/core$destructure__4413.class +0 -0
  206. data/lib/clojure/core$disj__3594.class +0 -0
  207. data/lib/clojure/core$dissoc__3589.class +0 -0
  208. data/lib/clojure/core$distinct_QMARK___4901.class +0 -0
  209. data/lib/clojure/core$distinct__4646$step__4648$fn__4649$fn__4652.class +0 -0
  210. data/lib/clojure/core$distinct__4646$step__4648$fn__4649.class +0 -0
  211. data/lib/clojure/core$distinct__4646$step__4648.class +0 -0
  212. data/lib/clojure/core$distinct__4646.class +0 -0
  213. data/lib/clojure/core$doall__4003.class +0 -0
  214. data/lib/clojure/core$doc__4590.class +0 -0
  215. data/lib/clojure/core$dorun__3998.class +0 -0
  216. data/lib/clojure/core$doseq__3993$step__3995.class +0 -0
  217. data/lib/clojure/core$doseq__3993.class +0 -0
  218. data/lib/clojure/core$dosync__4672.class +0 -0
  219. data/lib/clojure/core$dotimes__4025.class +0 -0
  220. data/lib/clojure/core$doto__4187$fn__4189.class +0 -0
  221. data/lib/clojure/core$doto__4187.class +0 -0
  222. data/lib/clojure/core$double__4077.class +0 -0
  223. data/lib/clojure/core$double_array__4742.class +0 -0
  224. data/lib/clojure/core$doubles__4790.class +0 -0
  225. data/lib/clojure/core$drop__3872$fn__3878.class +0 -0
  226. data/lib/clojure/core$drop__3872$step__3874.class +0 -0
  227. data/lib/clojure/core$drop__3872.class +0 -0
  228. data/lib/clojure/core$drop_last__3882$fn__3885.class +0 -0
  229. data/lib/clojure/core$drop_last__3882.class +0 -0
  230. data/lib/clojure/core$drop_while__3889$fn__3895.class +0 -0
  231. data/lib/clojure/core$drop_while__3889$step__3891.class +0 -0
  232. data/lib/clojure/core$drop_while__3889.class +0 -0
  233. data/lib/clojure/core$empty_QMARK___5084.class +0 -0
  234. data/lib/clojure/core$empty__4721.class +0 -0
  235. data/lib/clojure/core$ensure__3765.class +0 -0
  236. data/lib/clojure/core$enumeration_seq__4935.class +0 -0
  237. data/lib/clojure/core$escape_class_name__5576.class +0 -0
  238. data/lib/clojure/core$eval__3990.class +0 -0
  239. data/lib/clojure/core$eval__4760$fn__4762.class +0 -0
  240. data/lib/clojure/core$eval__4760.class +0 -0
  241. data/lib/clojure/core$eval__4772$fn__4774.class +0 -0
  242. data/lib/clojure/core$eval__4772.class +0 -0
  243. data/lib/clojure/core$eval__4784$fn__4786.class +0 -0
  244. data/lib/clojure/core$eval__4784.class +0 -0
  245. data/lib/clojure/core$eval__4796$fn__4798.class +0 -0
  246. data/lib/clojure/core$eval__4796.class +0 -0
  247. data/lib/clojure/core$even_QMARK___3545.class +0 -0
  248. data/lib/clojure/core$every_QMARK___3806.class +0 -0
  249. data/lib/clojure/core$false_QMARK___3202.class +0 -0
  250. data/lib/clojure/core$ffirst__3125.class +0 -0
  251. data/lib/clojure/core$file_seq__4601$fn__4603.class +0 -0
  252. data/lib/clojure/core$file_seq__4601$fn__4606.class +0 -0
  253. data/lib/clojure/core$file_seq__4601.class +0 -0
  254. data/lib/clojure/core$filter__3845$fn__3851.class +0 -0
  255. data/lib/clojure/core$filter__3845$step__3847.class +0 -0
  256. data/lib/clojure/core$filter__3845.class +0 -0
  257. data/lib/clojure/core$filter_key__4306.class +0 -0
  258. data/lib/clojure/core$find__3599.class +0 -0
  259. data/lib/clojure/core$find_doc__4571.class +0 -0
  260. data/lib/clojure/core$find_field__5583$fn__5585.class +0 -0
  261. data/lib/clojure/core$find_field__5583.class +0 -0
  262. data/lib/clojure/core$find_ns__4309.class +0 -0
  263. data/lib/clojure/core$find_var__3678.class +0 -0
  264. data/lib/clojure/core$first__3115.class +0 -0
  265. data/lib/clojure/core$float_QMARK___4124.class +0 -0
  266. data/lib/clojure/core$float__4071.class +0 -0
  267. data/lib/clojure/core$float_array__4735.class +0 -0
  268. data/lib/clojure/core$floats__4766.class +0 -0
  269. data/lib/clojure/core$flush__4156.class +0 -0
  270. data/lib/clojure/core$fn_QMARK___5099.class +0 -0
  271. data/lib/clojure/core$fn__3113.class +0 -0
  272. data/lib/clojure/core$fn__3288.class +0 -0
  273. data/lib/clojure/core$fn__3301.class +0 -0
  274. data/lib/clojure/core$fn__3329.class +0 -0
  275. data/lib/clojure/core$fn__3338.class +0 -0
  276. data/lib/clojure/core$fn__3347.class +0 -0
  277. data/lib/clojure/core$fn__3355.class +0 -0
  278. data/lib/clojure/core$fn__3363.class +0 -0
  279. data/lib/clojure/core$fn__3371.class +0 -0
  280. data/lib/clojure/core$fn__3379.class +0 -0
  281. data/lib/clojure/core$fn__3387.class +0 -0
  282. data/lib/clojure/core$fn__3395.class +0 -0
  283. data/lib/clojure/core$fn__3413.class +0 -0
  284. data/lib/clojure/core$fn__3419.class +0 -0
  285. data/lib/clojure/core$fn__3425.class +0 -0
  286. data/lib/clojure/core$fn__3431.class +0 -0
  287. data/lib/clojure/core$fn__3437.class +0 -0
  288. data/lib/clojure/core$fn__3443.class +0 -0
  289. data/lib/clojure/core$fn__3449.class +0 -0
  290. data/lib/clojure/core$fn__3455.class +0 -0
  291. data/lib/clojure/core$fn__3461.class +0 -0
  292. data/lib/clojure/core$fn__3467.class +0 -0
  293. data/lib/clojure/core$fn__3473.class +0 -0
  294. data/lib/clojure/core$fn__3479.class +0 -0
  295. data/lib/clojure/core$fn__3485.class +0 -0
  296. data/lib/clojure/core$fn__3500.class +0 -0
  297. data/lib/clojure/core$fn__3506.class +0 -0
  298. data/lib/clojure/core$fn__3512.class +0 -0
  299. data/lib/clojure/core$fn__3518.class +0 -0
  300. data/lib/clojure/core$fn__4050.class +0 -0
  301. data/lib/clojure/core$fn__4056.class +0 -0
  302. data/lib/clojure/core$fn__4062.class +0 -0
  303. data/lib/clojure/core$fn__4068.class +0 -0
  304. data/lib/clojure/core$fn__4074.class +0 -0
  305. data/lib/clojure/core$fn__4080.class +0 -0
  306. data/lib/clojure/core$fn__4086.class +0 -0
  307. data/lib/clojure/core$fn__4092.class +0 -0
  308. data/lib/clojure/core$fn__4098.class +0 -0
  309. data/lib/clojure/core$fn__4139.class +0 -0
  310. data/lib/clojure/core$fn__4142.class +0 -0
  311. data/lib/clojure/core$fn__4202.class +0 -0
  312. data/lib/clojure/core$fn__4208.class +0 -0
  313. data/lib/clojure/core$fn__4214.class +0 -0
  314. data/lib/clojure/core$fn__4221.class +0 -0
  315. data/lib/clojure/core$fn__4443$psig__4445.class +0 -0
  316. data/lib/clojure/core$fn__4443.class +0 -0
  317. data/lib/clojure/core$fn__4732.class +0 -0
  318. data/lib/clojure/core$fn__4739.class +0 -0
  319. data/lib/clojure/core$fn__4746.class +0 -0
  320. data/lib/clojure/core$fn__4753.class +0 -0
  321. data/lib/clojure/core$fn__4769.class +0 -0
  322. data/lib/clojure/core$fn__4781.class +0 -0
  323. data/lib/clojure/core$fn__4793.class +0 -0
  324. data/lib/clojure/core$fn__4805.class +0 -0
  325. data/lib/clojure/core$fn__4976.class +0 -0
  326. data/lib/clojure/core$fn__4980.class +0 -0
  327. data/lib/clojure/core$fn__4984.class +0 -0
  328. data/lib/clojure/core$fn__5379$fn__5381.class +0 -0
  329. data/lib/clojure/core$fn__5379.class +0 -0
  330. data/lib/clojure/core$fn__5385.class +0 -0
  331. data/lib/clojure/core$fn__5388.class +0 -0
  332. data/lib/clojure/core$fn__5394.class +0 -0
  333. data/lib/clojure/core$fn__5397.class +0 -0
  334. data/lib/clojure/core$fn__5400.class +0 -0
  335. data/lib/clojure/core$fn__5403.class +0 -0
  336. data/lib/clojure/core$fn__5406$fn__5408.class +0 -0
  337. data/lib/clojure/core$fn__5406.class +0 -0
  338. data/lib/clojure/core$fn__5412$fn__5414.class +0 -0
  339. data/lib/clojure/core$fn__5412.class +0 -0
  340. data/lib/clojure/core$fn__5418.class +0 -0
  341. data/lib/clojure/core$fn__5421.class +0 -0
  342. data/lib/clojure/core$fn__5427.class +0 -0
  343. data/lib/clojure/core$fn__5430.class +0 -0
  344. data/lib/clojure/core$fn__5433.class +0 -0
  345. data/lib/clojure/core$fn__5436.class +0 -0
  346. data/lib/clojure/core$fn__5439.class +0 -0
  347. data/lib/clojure/core$fn__5442.class +0 -0
  348. data/lib/clojure/core$fn__5445.class +0 -0
  349. data/lib/clojure/core$fn__5448.class +0 -0
  350. data/lib/clojure/core$fn__5453$fn__5455.class +0 -0
  351. data/lib/clojure/core$fn__5453.class +0 -0
  352. data/lib/clojure/core$fn__5459.class +0 -0
  353. data/lib/clojure/core$fn__5462.class +0 -0
  354. data/lib/clojure/core$fn__5467.class +0 -0
  355. data/lib/clojure/core$fn__5470.class +0 -0
  356. data/lib/clojure/core$fn__5479.class +0 -0
  357. data/lib/clojure/core$fn__5484$fn__5486.class +0 -0
  358. data/lib/clojure/core$fn__5484.class +0 -0
  359. data/lib/clojure/core$fn__5490.class +0 -0
  360. data/lib/clojure/core$fn__5493.class +0 -0
  361. data/lib/clojure/core$fn__5496.class +0 -0
  362. data/lib/clojure/core$fn__5500.class +0 -0
  363. data/lib/clojure/core$fn__5503.class +0 -0
  364. data/lib/clojure/core$fn__5506.class +0 -0
  365. data/lib/clojure/core$fn__5509.class +0 -0
  366. data/lib/clojure/core$fn__5512.class +0 -0
  367. data/lib/clojure/core$fn__5515.class +0 -0
  368. data/lib/clojure/core$fn__5518.class +0 -0
  369. data/lib/clojure/core$fn__5521.class +0 -0
  370. data/lib/clojure/core$fn__5524.class +0 -0
  371. data/lib/clojure/core$fn__5527.class +0 -0
  372. data/lib/clojure/core$fn__5530.class +0 -0
  373. data/lib/clojure/core$fn__5533.class +0 -0
  374. data/lib/clojure/core$fn__5536.class +0 -0
  375. data/lib/clojure/core$fn__5544.class +0 -0
  376. data/lib/clojure/core$fn__5547.class +0 -0
  377. data/lib/clojure/core$fn__5550.class +0 -0
  378. data/lib/clojure/core$fn__5774$prop__5777.class +0 -0
  379. data/lib/clojure/core$fn__5774.class +0 -0
  380. data/lib/clojure/core$fnext__3129.class +0 -0
  381. data/lib/clojure/core$for__4475$emit_bind__4489$do_mod__4495.class +0 -0
  382. data/lib/clojure/core$for__4475$emit_bind__4489.class +0 -0
  383. data/lib/clojure/core$for__4475$err__4485.class +0 -0
  384. data/lib/clojure/core$for__4475$to_groups__4477$fn__4480.class +0 -0
  385. data/lib/clojure/core$for__4475$to_groups__4477.class +0 -0
  386. data/lib/clojure/core$for__4475.class +0 -0
  387. data/lib/clojure/core$force__3281.class +0 -0
  388. data/lib/clojure/core$format__4938.class +0 -0
  389. data/lib/clojure/core$future__5722.class +0 -0
  390. data/lib/clojure/core$future_call__5702$fn__5704.class +0 -0
  391. data/lib/clojure/core$future_call__5702$fn__5707.class +0 -0
  392. data/lib/clojure/core$future_call__5702$fn__5710.class +0 -0
  393. data/lib/clojure/core$future_call__5702$fn__5713.class +0 -0
  394. data/lib/clojure/core$future_call__5702$fn__5717.class +0 -0
  395. data/lib/clojure/core$future_call__5702.class +0 -0
  396. data/lib/clojure/core$gen_class__5679.class +0 -0
  397. data/lib/clojure/core$gen_interface__5698.class +0 -0
  398. data/lib/clojure/core$generate_class__5596$arg_types__5608.class +0 -0
  399. data/lib/clojure/core$generate_class__5596$emit_forwarding_method__5642.class +0 -0
  400. data/lib/clojure/core$generate_class__5596$emit_get_var__5636.class +0 -0
  401. data/lib/clojure/core$generate_class__5596$emit_unsupported__5639.class +0 -0
  402. data/lib/clojure/core$generate_class__5596$fn__5614.class +0 -0
  403. data/lib/clojure/core$generate_class__5596$fn__5619.class +0 -0
  404. data/lib/clojure/core$generate_class__5596$fn__5624.class +0 -0
  405. data/lib/clojure/core$generate_class__5596$fn__5629$fn__5632.class +0 -0
  406. data/lib/clojure/core$generate_class__5596$fn__5629.class +0 -0
  407. data/lib/clojure/core$generate_class__5596$fn__5651.class +0 -0
  408. data/lib/clojure/core$generate_class__5596$fn__5654.class +0 -0
  409. data/lib/clojure/core$generate_class__5596$fn__5657.class +0 -0
  410. data/lib/clojure/core$generate_class__5596$fn__5664.class +0 -0
  411. data/lib/clojure/core$generate_class__5596$iname__5599.class +0 -0
  412. data/lib/clojure/core$generate_class__5596$to_types__5605.class +0 -0
  413. data/lib/clojure/core$generate_class__5596$totype__5602.class +0 -0
  414. data/lib/clojure/core$generate_class__5596$var_name__5611.class +0 -0
  415. data/lib/clojure/core$generate_class__5596.class +0 -0
  416. data/lib/clojure/core$generate_interface__5689$fn__5692.class +0 -0
  417. data/lib/clojure/core$generate_interface__5689.class +0 -0
  418. data/lib/clojure/core$generate_proxy__5188$fn__5209$fn__5212.class +0 -0
  419. data/lib/clojure/core$generate_proxy__5188$fn__5209.class +0 -0
  420. data/lib/clojure/core$generate_proxy__5188$fn__5237.class +0 -0
  421. data/lib/clojure/core$generate_proxy__5188$fn__5240.class +0 -0
  422. data/lib/clojure/core$generate_proxy__5188$fn__5247.class +0 -0
  423. data/lib/clojure/core$generate_proxy__5188$fn__5251.class +0 -0
  424. data/lib/clojure/core$generate_proxy__5188$gen_bridge__5199.class +0 -0
  425. data/lib/clojure/core$generate_proxy__5188$gen_method__5203.class +0 -0
  426. data/lib/clojure/core$generate_proxy__5188$iname__5190.class +0 -0
  427. data/lib/clojure/core$generate_proxy__5188$iter__5221__5225$fn__5226$iter__5223__5228$fn__5229.class +0 -0
  428. data/lib/clojure/core$generate_proxy__5188$iter__5221__5225$fn__5226$iter__5223__5228.class +0 -0
  429. data/lib/clojure/core$generate_proxy__5188$iter__5221__5225$fn__5226.class +0 -0
  430. data/lib/clojure/core$generate_proxy__5188$iter__5221__5225.class +0 -0
  431. data/lib/clojure/core$generate_proxy__5188$to_types__5196.class +0 -0
  432. data/lib/clojure/core$generate_proxy__5188$totype__5193.class +0 -0
  433. data/lib/clojure/core$generate_proxy__5188.class +0 -0
  434. data/lib/clojure/core$gensym__3233.class +0 -0
  435. data/lib/clojure/core$get__3585.class +0 -0
  436. data/lib/clojure/core$get_in__5071.class +0 -0
  437. data/lib/clojure/core$get_method__3653.class +0 -0
  438. data/lib/clojure/core$get_proxy_class__5259.class +0 -0
  439. data/lib/clojure/core$get_super_and_interfaces__5256.class +0 -0
  440. data/lib/clojure/core$get_validator__3747.class +0 -0
  441. data/lib/clojure/core$group_by_sig__5170$fn__5173.class +0 -0
  442. data/lib/clojure/core$group_by_sig__5170.class +0 -0
  443. data/lib/clojure/core$hash__4710.class +0 -0
  444. data/lib/clojure/core$hash_map__3173.class +0 -0
  445. data/lib/clojure/core$hash_set__3177.class +0 -0
  446. data/lib/clojure/core$identity__3566.class +0 -0
  447. data/lib/clojure/core$if_let__3663.class +0 -0
  448. data/lib/clojure/core$if_not__3284.class +0 -0
  449. data/lib/clojure/core$ifn_QMARK___5096.class +0 -0
  450. data/lib/clojure/core$import__4028.class +0 -0
  451. data/lib/clojure/core$inc__3416.class +0 -0
  452. data/lib/clojure/core$init_proxy__5268.class +0 -0
  453. data/lib/clojure/core$instance_QMARK___3135.class +0 -0
  454. data/lib/clojure/core$int__4059.class +0 -0
  455. data/lib/clojure/core$int_array__4749.class +0 -0
  456. data/lib/clojure/core$integer_QMARK___4107.class +0 -0
  457. data/lib/clojure/core$interleave__4383.class +0 -0
  458. data/lib/clojure/core$intern__5131.class +0 -0
  459. data/lib/clojure/core$interpose__4713.class +0 -0
  460. data/lib/clojure/core$into__4037.class +0 -0
  461. data/lib/clojure/core$into_array__4033.class +0 -0
  462. data/lib/clojure/core$ints__4778.class +0 -0
  463. data/lib/clojure/core$io_BANG___3771.class +0 -0
  464. data/lib/clojure/core$isa_QMARK___4843$fn__4846.class +0 -0
  465. data/lib/clojure/core$isa_QMARK___4843.class +0 -0
  466. data/lib/clojure/core$iterate__3922$fn__3924.class +0 -0
  467. data/lib/clojure/core$iterate__3922.class +0 -0
  468. data/lib/clojure/core$iterator_seq__4932.class +0 -0
  469. data/lib/clojure/core$key__3611.class +0 -0
  470. data/lib/clojure/core$keys__3605.class +0 -0
  471. data/lib/clojure/core$keyword_QMARK___3222.class +0 -0
  472. data/lib/clojure/core$keyword__3229.class +0 -0
  473. data/lib/clojure/core$last__3154.class +0 -0
  474. data/lib/clojure/core$lazy_cat__4466$fn__4468.class +0 -0
  475. data/lib/clojure/core$lazy_cat__4466.class +0 -0
  476. data/lib/clojure/core$lazy_seq__3252.class +0 -0
  477. data/lib/clojure/core$let__3109.class +0 -0
  478. data/lib/clojure/core$let__4440.class +0 -0
  479. data/lib/clojure/core$letfn__5768$fn__5770.class +0 -0
  480. data/lib/clojure/core$letfn__5768.class +0 -0
  481. data/lib/clojure/core$libspec_QMARK___4995.class +0 -0
  482. data/lib/clojure/core$line_seq__3959$fn__3961.class +0 -0
  483. data/lib/clojure/core$line_seq__3959.class +0 -0
  484. data/lib/clojure/core$list_QMARK___5090.class +0 -0
  485. data/lib/clojure/core$list_STAR___3249.class +0 -0
  486. data/lib/clojure/core$load__5058$fn__5061.class +0 -0
  487. data/lib/clojure/core$load__5058.class +0 -0
  488. data/lib/clojure/core$load_all__5019$fn__5021$fn__5023.class +0 -0
  489. data/lib/clojure/core$load_all__5019$fn__5021$fn__5026.class +0 -0
  490. data/lib/clojure/core$load_all__5019$fn__5021.class +0 -0
  491. data/lib/clojure/core$load_all__5019.class +0 -0
  492. data/lib/clojure/core$load_lib__5031.class +0 -0
  493. data/lib/clojure/core$load_libs__5043.class +0 -0
  494. data/lib/clojure/core$load_one__5010$fn__5012.class +0 -0
  495. data/lib/clojure/core$load_one__5010.class +0 -0
  496. data/lib/clojure/core$load_reader__4297.class +0 -0
  497. data/lib/clojure/core$load_string__4300.class +0 -0
  498. data/lib/clojure/core$loaded_libs__5055.class +0 -0
  499. data/lib/clojure/core$locking__3627.class +0 -0
  500. data/lib/clojure/core$long__4065.class +0 -0
  501. data/lib/clojure/core$long_array__4756.class +0 -0
  502. data/lib/clojure/core$longs__4802.class +0 -0
  503. data/lib/clojure/core$loop__3111.class +0 -0
  504. data/lib/clojure/core$loop__4450$fn__4452.class +0 -0
  505. data/lib/clojure/core$loop__4450$fn__4456.class +0 -0
  506. data/lib/clojure/core$loop__4450.class +0 -0
  507. data/lib/clojure/core$macroexpand_1__4276.class +0 -0
  508. data/lib/clojure/core$macroexpand__4279.class +0 -0
  509. data/lib/clojure/core$make_array__4268.class +0 -0
  510. data/lib/clojure/core$make_hierarchy__4830.class +0 -0
  511. data/lib/clojure/core$map_QMARK___3141.class +0 -0
  512. data/lib/clojure/core$map__3815$fn__3817.class +0 -0
  513. data/lib/clojure/core$map__3815$fn__3822.class +0 -0
  514. data/lib/clojure/core$map__3815$fn__3827.class +0 -0
  515. data/lib/clojure/core$map__3815$fn__3838.class +0 -0
  516. data/lib/clojure/core$map__3815$step__3833$fn__3834.class +0 -0
  517. data/lib/clojure/core$map__3815$step__3833.class +0 -0
  518. data/lib/clojure/core$map__3815.class +0 -0
  519. data/lib/clojure/core$mapcat__3842.class +0 -0
  520. data/lib/clojure/core$max__3403.class +0 -0
  521. data/lib/clojure/core$max_key__4628$fn__4632.class +0 -0
  522. data/lib/clojure/core$max_key__4628.class +0 -0
  523. data/lib/clojure/core$memfn__4194.class +0 -0
  524. data/lib/clojure/core$memoize__5138$fn__5140.class +0 -0
  525. data/lib/clojure/core$memoize__5138.class +0 -0
  526. data/lib/clojure/core$merge__3938$fn__3940.class +0 -0
  527. data/lib/clojure/core$merge__3938.class +0 -0
  528. data/lib/clojure/core$merge_with__3945$merge2__3950.class +0 -0
  529. data/lib/clojure/core$merge_with__3945$merge_entry__3947.class +0 -0
  530. data/lib/clojure/core$merge_with__3945.class +0 -0
  531. data/lib/clojure/core$meta__3150.class +0 -0
  532. data/lib/clojure/core$method_sig__5156.class +0 -0
  533. data/lib/clojure/core$methods__3650.class +0 -0
  534. data/lib/clojure/core$min__3408.class +0 -0
  535. data/lib/clojure/core$min_key__4638$fn__4642.class +0 -0
  536. data/lib/clojure/core$min_key__4638.class +0 -0
  537. data/lib/clojure/core$mod__4114.class +0 -0
  538. data/lib/clojure/core$most_specific__5160$fn__5162$fn__5164.class +0 -0
  539. data/lib/clojure/core$most_specific__5160$fn__5162.class +0 -0
  540. data/lib/clojure/core$most_specific__5160.class +0 -0
  541. data/lib/clojure/core$name__3620.class +0 -0
  542. data/lib/clojure/core$namespace__3623.class +0 -0
  543. data/lib/clojure/core$neg_QMARK___3482.class +0 -0
  544. data/lib/clojure/core$newline__4153.class +0 -0
  545. data/lib/clojure/core$next__3117.class +0 -0
  546. data/lib/clojure/core$nfirst__3127.class +0 -0
  547. data/lib/clojure/core$nil_QMARK___3199.class +0 -0
  548. data/lib/clojure/core$nnext__3131.class +0 -0
  549. data/lib/clojure/core$non_private_methods__5553$fn__5556.class +0 -0
  550. data/lib/clojure/core$non_private_methods__5553.class +0 -0
  551. data/lib/clojure/core$not_EQ___3296.class +0 -0
  552. data/lib/clojure/core$not__3208.class +0 -0
  553. data/lib/clojure/core$not_empty__4833.class +0 -0
  554. data/lib/clojure/core$ns__4948$fn__4958.class +0 -0
  555. data/lib/clojure/core$ns__4948$fn__4961.class +0 -0
  556. data/lib/clojure/core$ns__4948$fn__4964.class +0 -0
  557. data/lib/clojure/core$ns__4948$process_reference__4951$fn__4954.class +0 -0
  558. data/lib/clojure/core$ns__4948$process_reference__4951.class +0 -0
  559. data/lib/clojure/core$ns__4948.class +0 -0
  560. data/lib/clojure/core$ns_aliases__4370.class +0 -0
  561. data/lib/clojure/core$ns_imports__4342.class +0 -0
  562. data/lib/clojure/core$ns_interns__4360$fn__4362.class +0 -0
  563. data/lib/clojure/core$ns_interns__4360.class +0 -0
  564. data/lib/clojure/core$ns_map__4328.class +0 -0
  565. data/lib/clojure/core$ns_name__4325.class +0 -0
  566. data/lib/clojure/core$ns_publics__4334$fn__4336.class +0 -0
  567. data/lib/clojure/core$ns_publics__4334.class +0 -0
  568. data/lib/clojure/core$ns_refers__4353$fn__4355.class +0 -0
  569. data/lib/clojure/core$ns_refers__4353.class +0 -0
  570. data/lib/clojure/core$ns_resolve__4395.class +0 -0
  571. data/lib/clojure/core$ns_unalias__4373.class +0 -0
  572. data/lib/clojure/core$ns_unmap__4331.class +0 -0
  573. data/lib/clojure/core$nth__3578.class +0 -0
  574. data/lib/clojure/core$nthnext__4405.class +0 -0
  575. data/lib/clojure/core$num__4053.class +0 -0
  576. data/lib/clojure/core$number_QMARK___4104.class +0 -0
  577. data/lib/clojure/core$odd_QMARK___3548.class +0 -0
  578. data/lib/clojure/core$or__3314.class +0 -0
  579. data/lib/clojure/core$overload_name__5579.class +0 -0
  580. data/lib/clojure/core$parents__4861.class +0 -0
  581. data/lib/clojure/core$partial__3781$fn__3783.class +0 -0
  582. data/lib/clojure/core$partial__3781$fn__3787.class +0 -0
  583. data/lib/clojure/core$partial__3781$fn__3791.class +0 -0
  584. data/lib/clojure/core$partial__3781$fn__3795.class +0 -0
  585. data/lib/clojure/core$partial__3781.class +0 -0
  586. data/lib/clojure/core$partition__3982$fn__3985.class +0 -0
  587. data/lib/clojure/core$partition__3982.class +0 -0
  588. data/lib/clojure/core$pcalls__5754$fn__5756.class +0 -0
  589. data/lib/clojure/core$pcalls__5754.class +0 -0
  590. data/lib/clojure/core$peek__3572.class +0 -0
  591. data/lib/clojure/core$pmap__5727$fn__5729$fn__5731.class +0 -0
  592. data/lib/clojure/core$pmap__5727$fn__5729.class +0 -0
  593. data/lib/clojure/core$pmap__5727$fn__5749.class +0 -0
  594. data/lib/clojure/core$pmap__5727$step__5736$fn__5738.class +0 -0
  595. data/lib/clojure/core$pmap__5727$step__5736.class +0 -0
  596. data/lib/clojure/core$pmap__5727$step__5744$fn__5745.class +0 -0
  597. data/lib/clojure/core$pmap__5727$step__5744.class +0 -0
  598. data/lib/clojure/core$pmap__5727.class +0 -0
  599. data/lib/clojure/core$pop__3575.class +0 -0
  600. data/lib/clojure/core$pos_QMARK___3476.class +0 -0
  601. data/lib/clojure/core$pr__4148.class +0 -0
  602. data/lib/clojure/core$pr_on__4145.class +0 -0
  603. data/lib/clojure/core$pr_str__4512.class +0 -0
  604. data/lib/clojure/core$prefer_method__3647.class +0 -0
  605. data/lib/clojure/core$prefers__3656.class +0 -0
  606. data/lib/clojure/core$prependss__5001.class +0 -0
  607. data/lib/clojure/core$print__4162.class +0 -0
  608. data/lib/clojure/core$print_ctor__5391.class +0 -0
  609. data/lib/clojure/core$print_doc__4568.class +0 -0
  610. data/lib/clojure/core$print_map__5473$fn__5475.class +0 -0
  611. data/lib/clojure/core$print_map__5473.class +0 -0
  612. data/lib/clojure/core$print_meta__5370.class +0 -0
  613. data/lib/clojure/core$print_namespace_doc__4587.class +0 -0
  614. data/lib/clojure/core$print_sequential__5354.class +0 -0
  615. data/lib/clojure/core$print_simple__5424.class +0 -0
  616. data/lib/clojure/core$print_special_doc__4584.class +0 -0
  617. data/lib/clojure/core$print_str__4520.class +0 -0
  618. data/lib/clojure/core$printf__4941.class +0 -0
  619. data/lib/clojure/core$println__4165.class +0 -0
  620. data/lib/clojure/core$println_str__4524.class +0 -0
  621. data/lib/clojure/core$prn__4159.class +0 -0
  622. data/lib/clojure/core$prn_str__4516.class +0 -0
  623. data/lib/clojure/core$proxy__5279$fn__5282.class +0 -0
  624. data/lib/clojure/core$proxy__5279$fn__5287$fn__5291.class +0 -0
  625. data/lib/clojure/core$proxy__5279$fn__5287.class +0 -0
  626. data/lib/clojure/core$proxy__5279.class +0 -0
  627. data/lib/clojure/core$proxy_call_with_super__5297.class +0 -0
  628. data/lib/clojure/core$proxy_mappings__5274.class +0 -0
  629. data/lib/clojure/core$proxy_name__5179$fn__5181.class +0 -0
  630. data/lib/clojure/core$proxy_name__5179.class +0 -0
  631. data/lib/clojure/core$proxy_super__5300.class +0 -0
  632. data/lib/clojure/core$pvalues__5761$fn__5763.class +0 -0
  633. data/lib/clojure/core$pvalues__5761.class +0 -0
  634. data/lib/clojure/core$quot__3491.class +0 -0
  635. data/lib/clojure/core$rand__4558.class +0 -0
  636. data/lib/clojure/core$rand_int__4562.class +0 -0
  637. data/lib/clojure/core$range__3928.class +0 -0
  638. data/lib/clojure/core$ratio_QMARK___4118.class +0 -0
  639. data/lib/clojure/core$rational_QMARK___4128.class +0 -0
  640. data/lib/clojure/core$rationalize__3497.class +0 -0
  641. data/lib/clojure/core$re_find__4554.class +0 -0
  642. data/lib/clojure/core$re_groups__4540.class +0 -0
  643. data/lib/clojure/core$re_matcher__4537.class +0 -0
  644. data/lib/clojure/core$re_matches__4551.class +0 -0
  645. data/lib/clojure/core$re_pattern__4534.class +0 -0
  646. data/lib/clojure/core$re_seq__4543$step__4545$fn__4546.class +0 -0
  647. data/lib/clojure/core$re_seq__4543$step__4545.class +0 -0
  648. data/lib/clojure/core$re_seq__4543.class +0 -0
  649. data/lib/clojure/core$read__4168.class +0 -0
  650. data/lib/clojure/core$read_line__4174.class +0 -0
  651. data/lib/clojure/core$read_string__4177.class +0 -0
  652. data/lib/clojure/core$reduce__3319$fn__3322.class +0 -0
  653. data/lib/clojure/core$reduce__3319.class +0 -0
  654. data/lib/clojure/core$ref__3721.class +0 -0
  655. data/lib/clojure/core$ref_set__3762.class +0 -0
  656. data/lib/clojure/core$refer__4345.class +0 -0
  657. data/lib/clojure/core$refer_clojure__4969.class +0 -0
  658. data/lib/clojure/core$release_pending_sends__3694.class +0 -0
  659. data/lib/clojure/core$rem__3494.class +0 -0
  660. data/lib/clojure/core$remove__3855.class +0 -0
  661. data/lib/clojure/core$remove_method__3644.class +0 -0
  662. data/lib/clojure/core$remove_ns__4315.class +0 -0
  663. data/lib/clojure/core$remove_watch__3700.class +0 -0
  664. data/lib/clojure/core$remove_watcher__3709.class +0 -0
  665. data/lib/clojure/core$repeat__3912$fn__3914.class +0 -0
  666. data/lib/clojure/core$repeat__3912.class +0 -0
  667. data/lib/clojure/core$repeatedly__4701$fn__4703.class +0 -0
  668. data/lib/clojure/core$repeatedly__4701.class +0 -0
  669. data/lib/clojure/core$replace__4661$fn__4663.class +0 -0
  670. data/lib/clojure/core$replace__4661$fn__4667.class +0 -0
  671. data/lib/clojure/core$replace__4661.class +0 -0
  672. data/lib/clojure/core$replicate__3919.class +0 -0
  673. data/lib/clojure/core$require__5049.class +0 -0
  674. data/lib/clojure/core$reset_BANG___3741.class +0 -0
  675. data/lib/clojure/core$reset_meta_BANG___3753.class +0 -0
  676. data/lib/clojure/core$resolve__4398.class +0 -0
  677. data/lib/clojure/core$rest__3119.class +0 -0
  678. data/lib/clojure/core$resultset_seq__4911$fn__4913.class +0 -0
  679. data/lib/clojure/core$resultset_seq__4911$fn__4916.class +0 -0
  680. data/lib/clojure/core$resultset_seq__4911$row_values__4919$fn__4921.class +0 -0
  681. data/lib/clojure/core$resultset_seq__4911$row_values__4919.class +0 -0
  682. data/lib/clojure/core$resultset_seq__4911$thisfn__4925$fn__4926.class +0 -0
  683. data/lib/clojure/core$resultset_seq__4911$thisfn__4925.class +0 -0
  684. data/lib/clojure/core$resultset_seq__4911.class +0 -0
  685. data/lib/clojure/core$reverse__3326.class +0 -0
  686. data/lib/clojure/core$reversible_QMARK___5114.class +0 -0
  687. data/lib/clojure/core$root_directory__5007.class +0 -0
  688. data/lib/clojure/core$root_resource__5004.class +0 -0
  689. data/lib/clojure/core$rseq__3617.class +0 -0
  690. data/lib/clojure/core$rsubseq__4693.class +0 -0
  691. data/lib/clojure/core$second__3123.class +0 -0
  692. data/lib/clojure/core$select_keys__3602.class +0 -0
  693. data/lib/clojure/core$send__3688.class +0 -0
  694. data/lib/clojure/core$send_off__3691.class +0 -0
  695. data/lib/clojure/core$seq_QMARK___3137.class +0 -0
  696. data/lib/clojure/core$seq__3133.class +0 -0
  697. data/lib/clojure/core$seque__4808$drain__4818$fn__4819.class +0 -0
  698. data/lib/clojure/core$seque__4808$drain__4818.class +0 -0
  699. data/lib/clojure/core$seque__4808$fill__4811.class +0 -0
  700. data/lib/clojure/core$seque__4808.class +0 -0
  701. data/lib/clojure/core$sequence__3802.class +0 -0
  702. data/lib/clojure/core$sequential_QMARK___5105.class +0 -0
  703. data/lib/clojure/core$set_QMARK___5093.class +0 -0
  704. data/lib/clojure/core$set__4303.class +0 -0
  705. data/lib/clojure/core$set_validator_BANG___3744.class +0 -0
  706. data/lib/clojure/core$setup_reference__3681.class +0 -0
  707. data/lib/clojure/core$short__4083.class +0 -0
  708. data/lib/clojure/core$shutdown_agents__3718.class +0 -0
  709. data/lib/clojure/core$sigs__3145.class +0 -0
  710. data/lib/clojure/core$slurp__4619.class +0 -0
  711. data/lib/clojure/core$some__3810.class +0 -0
  712. data/lib/clojure/core$sort__3971.class +0 -0
  713. data/lib/clojure/core$sort_by__3975$fn__3978.class +0 -0
  714. data/lib/clojure/core$sort_by__3975.class +0 -0
  715. data/lib/clojure/core$sorted_QMARK___5108.class +0 -0
  716. data/lib/clojure/core$sorted_map__3181.class +0 -0
  717. data/lib/clojure/core$sorted_map_by__3187.class +0 -0
  718. data/lib/clojure/core$sorted_set__3184.class +0 -0
  719. data/lib/clojure/core$special_form_anchor__4578.class +0 -0
  720. data/lib/clojure/core$special_symbol_QMARK___4613.class +0 -0
  721. data/lib/clojure/core$split_at__3906.class +0 -0
  722. data/lib/clojure/core$split_with__3909.class +0 -0
  723. data/lib/clojure/core$spread__3240.class +0 -0
  724. data/lib/clojure/core$str__3211$fn__3215.class +0 -0
  725. data/lib/clojure/core$str__3211.class +0 -0
  726. data/lib/clojure/core$stream_QMARK___3799.class +0 -0
  727. data/lib/clojure/core$string_QMARK___3139.class +0 -0
  728. data/lib/clojure/core$struct__4291.class +0 -0
  729. data/lib/clojure/core$struct_map__4288.class +0 -0
  730. data/lib/clojure/core$subs__4622.class +0 -0
  731. data/lib/clojure/core$subseq__4685.class +0 -0
  732. data/lib/clojure/core$subvec__4180.class +0 -0
  733. data/lib/clojure/core$supers__4839.class +0 -0
  734. data/lib/clojure/core$swap_BANG___3732.class +0 -0
  735. data/lib/clojure/core$symbol_QMARK___3219.class +0 -0
  736. data/lib/clojure/core$symbol__3225.class +0 -0
  737. data/lib/clojure/core$sync__3768.class +0 -0
  738. data/lib/clojure/core$syntax_symbol_anchor__4581.class +0 -0
  739. data/lib/clojure/core$take__3858$fn__3860.class +0 -0
  740. data/lib/clojure/core$take__3858.class +0 -0
  741. data/lib/clojure/core$take_nth__4376$fn__4378.class +0 -0
  742. data/lib/clojure/core$take_nth__4376.class +0 -0
  743. data/lib/clojure/core$take_while__3865$fn__3867.class +0 -0
  744. data/lib/clojure/core$take_while__3865.class +0 -0
  745. data/lib/clojure/core$test__4531.class +0 -0
  746. data/lib/clojure/core$the_class__5590.class +0 -0
  747. data/lib/clojure/core$the_ns__4321.class +0 -0
  748. data/lib/clojure/core$throw_if__4989$boring_QMARK___4991.class +0 -0
  749. data/lib/clojure/core$throw_if__4989.class +0 -0
  750. data/lib/clojure/core$time__4199.class +0 -0
  751. data/lib/clojure/core$to_array_2d__4273.class +0 -0
  752. data/lib/clojure/core$to_array__3163.class +0 -0
  753. data/lib/clojure/core$trampoline__5124$fn__5127.class +0 -0
  754. data/lib/clojure/core$trampoline__5124.class +0 -0
  755. data/lib/clojure/core$tree_seq__4593$walk__4595$fn__4596.class +0 -0
  756. data/lib/clojure/core$tree_seq__4593$walk__4595.class +0 -0
  757. data/lib/clojure/core$tree_seq__4593.class +0 -0
  758. data/lib/clojure/core$true_QMARK___3205.class +0 -0
  759. data/lib/clojure/core$type__4046.class +0 -0
  760. data/lib/clojure/core$unchecked_add__3446.class +0 -0
  761. data/lib/clojure/core$unchecked_dec__3434.class +0 -0
  762. data/lib/clojure/core$unchecked_divide__3464.class +0 -0
  763. data/lib/clojure/core$unchecked_inc__3428.class +0 -0
  764. data/lib/clojure/core$unchecked_multiply__3458.class +0 -0
  765. data/lib/clojure/core$unchecked_negate__3440.class +0 -0
  766. data/lib/clojure/core$unchecked_remainder__3470.class +0 -0
  767. data/lib/clojure/core$unchecked_subtract__3452.class +0 -0
  768. data/lib/clojure/core$underive__4891$tf__4894$fn__4896.class +0 -0
  769. data/lib/clojure/core$underive__4891$tf__4894.class +0 -0
  770. data/lib/clojure/core$underive__4891.class +0 -0
  771. data/lib/clojure/core$update_in__5080.class +0 -0
  772. data/lib/clojure/core$update_proxy__5271.class +0 -0
  773. data/lib/clojure/core$use__5052.class +0 -0
  774. data/lib/clojure/core$val__3614.class +0 -0
  775. data/lib/clojure/core$vals__3608.class +0 -0
  776. data/lib/clojure/core$var_QMARK___4616.class +0 -0
  777. data/lib/clojure/core$var_get__4386.class +0 -0
  778. data/lib/clojure/core$var_set__4389.class +0 -0
  779. data/lib/clojure/core$vary_meta__3246.class +0 -0
  780. data/lib/clojure/core$vec__3170.class +0 -0
  781. data/lib/clojure/core$vector_QMARK___3143.class +0 -0
  782. data/lib/clojure/core$vector__3166.class +0 -0
  783. data/lib/clojure/core$when__3193.class +0 -0
  784. data/lib/clojure/core$when_first__4461.class +0 -0
  785. data/lib/clojure/core$when_let__3669.class +0 -0
  786. data/lib/clojure/core$when_not__3196.class +0 -0
  787. data/lib/clojure/core$while__5135.class +0 -0
  788. data/lib/clojure/core$with_in_str__4509.class +0 -0
  789. data/lib/clojure/core$with_local_vars__4392.class +0 -0
  790. data/lib/clojure/core$with_meta__3152.class +0 -0
  791. data/lib/clojure/core$with_open__4184.class +0 -0
  792. data/lib/clojure/core$with_out_str__4505.class +0 -0
  793. data/lib/clojure/core$with_precision__4675.class +0 -0
  794. data/lib/clojure/core$xml_seq__4610.class +0 -0
  795. data/lib/clojure/core$zero_QMARK___3488.class +0 -0
  796. data/lib/clojure/core$zipmap__3955.class +0 -0
  797. data/lib/clojure/core.clj +4121 -0
  798. data/lib/clojure/core__init.class +0 -0
  799. data/lib/clojure/core_print.clj +317 -0
  800. data/lib/clojure/core_print__init.class +0 -0
  801. data/lib/clojure/core_proxy.clj +394 -0
  802. data/lib/clojure/core_proxy__init.class +0 -0
  803. data/lib/clojure/genclass.clj +683 -0
  804. data/lib/clojure/genclass__init.class +0 -0
  805. data/lib/clojure/inspector$atom_QMARK___6181.class +0 -0
  806. data/lib/clojure/inspector$collection_tag__6184.class +0 -0
  807. data/lib/clojure/inspector$fn__6187.class +0 -0
  808. data/lib/clojure/inspector$fn__6190.class +0 -0
  809. data/lib/clojure/inspector$fn__6193.class +0 -0
  810. data/lib/clojure/inspector$fn__6196.class +0 -0
  811. data/lib/clojure/inspector$fn__6199.class +0 -0
  812. data/lib/clojure/inspector$fn__6202.class +0 -0
  813. data/lib/clojure/inspector$fn__6205.class +0 -0
  814. data/lib/clojure/inspector$fn__6208.class +0 -0
  815. data/lib/clojure/inspector$fn__6211.class +0 -0
  816. data/lib/clojure/inspector$fn__6278$fn__6280.class +0 -0
  817. data/lib/clojure/inspector$fn__6278$fn__6283.class +0 -0
  818. data/lib/clojure/inspector$fn__6278.class +0 -0
  819. data/lib/clojure/inspector$fn__6287$fn__6289.class +0 -0
  820. data/lib/clojure/inspector$fn__6287$fn__6292.class +0 -0
  821. data/lib/clojure/inspector$fn__6287.class +0 -0
  822. data/lib/clojure/inspector$fn__6296$fn__6299.class +0 -0
  823. data/lib/clojure/inspector$fn__6296$fn__6303.class +0 -0
  824. data/lib/clojure/inspector$fn__6296$fn__6306.class +0 -0
  825. data/lib/clojure/inspector$fn__6296.class +0 -0
  826. data/lib/clojure/inspector$fn__6324$fn__6326.class +0 -0
  827. data/lib/clojure/inspector$fn__6324$fn__6329.class +0 -0
  828. data/lib/clojure/inspector$fn__6324$fn__6332.class +0 -0
  829. data/lib/clojure/inspector$fn__6324.class +0 -0
  830. data/lib/clojure/inspector$inspect__6337.class +0 -0
  831. data/lib/clojure/inspector$inspect_table__6274.class +0 -0
  832. data/lib/clojure/inspector$inspect_tree__6270.class +0 -0
  833. data/lib/clojure/inspector$list_model__6310$fn__6313.class +0 -0
  834. data/lib/clojure/inspector$list_model__6310$fn__6316.class +0 -0
  835. data/lib/clojure/inspector$list_model__6310$fn__6319.class +0 -0
  836. data/lib/clojure/inspector$list_model__6310.class +0 -0
  837. data/lib/clojure/inspector$old_table_model__6242$fn__6244.class +0 -0
  838. data/lib/clojure/inspector$old_table_model__6242$fn__6247.class +0 -0
  839. data/lib/clojure/inspector$old_table_model__6242$fn__6250.class +0 -0
  840. data/lib/clojure/inspector$old_table_model__6242$fn__6253.class +0 -0
  841. data/lib/clojure/inspector$old_table_model__6242$fn__6256.class +0 -0
  842. data/lib/clojure/inspector$old_table_model__6242$fn__6259.class +0 -0
  843. data/lib/clojure/inspector$old_table_model__6242$fn__6262.class +0 -0
  844. data/lib/clojure/inspector$old_table_model__6242$fn__6265.class +0 -0
  845. data/lib/clojure/inspector$old_table_model__6242.class +0 -0
  846. data/lib/clojure/inspector$tree_model__6214$fn__6216.class +0 -0
  847. data/lib/clojure/inspector$tree_model__6214$fn__6219.class +0 -0
  848. data/lib/clojure/inspector$tree_model__6214$fn__6222.class +0 -0
  849. data/lib/clojure/inspector$tree_model__6214$fn__6225.class +0 -0
  850. data/lib/clojure/inspector$tree_model__6214$fn__6228.class +0 -0
  851. data/lib/clojure/inspector$tree_model__6214$fn__6231.class +0 -0
  852. data/lib/clojure/inspector$tree_model__6214$fn__6234.class +0 -0
  853. data/lib/clojure/inspector$tree_model__6214$fn__6237.class +0 -0
  854. data/lib/clojure/inspector$tree_model__6214.class +0 -0
  855. data/lib/clojure/inspector.clj +180 -0
  856. data/lib/clojure/inspector__init.class +0 -0
  857. data/lib/clojure/lang/AFn.class +0 -0
  858. data/lib/clojure/lang/AFunction.class +0 -0
  859. data/lib/clojure/lang/AMapEntry.class +0 -0
  860. data/lib/clojure/lang/APersistentMap$1.class +0 -0
  861. data/lib/clojure/lang/APersistentMap$2$1.class +0 -0
  862. data/lib/clojure/lang/APersistentMap$2.class +0 -0
  863. data/lib/clojure/lang/APersistentMap$3$1.class +0 -0
  864. data/lib/clojure/lang/APersistentMap$3.class +0 -0
  865. data/lib/clojure/lang/APersistentMap$KeySeq.class +0 -0
  866. data/lib/clojure/lang/APersistentMap$ValSeq.class +0 -0
  867. data/lib/clojure/lang/APersistentMap.class +0 -0
  868. data/lib/clojure/lang/APersistentSet.class +0 -0
  869. data/lib/clojure/lang/APersistentVector$1.class +0 -0
  870. data/lib/clojure/lang/APersistentVector$2.class +0 -0
  871. data/lib/clojure/lang/APersistentVector$RSeq.class +0 -0
  872. data/lib/clojure/lang/APersistentVector$Seq.class +0 -0
  873. data/lib/clojure/lang/APersistentVector$Src.class +0 -0
  874. data/lib/clojure/lang/APersistentVector$SubVector.class +0 -0
  875. data/lib/clojure/lang/APersistentVector.class +0 -0
  876. data/lib/clojure/lang/ARef.class +0 -0
  877. data/lib/clojure/lang/AReference.class +0 -0
  878. data/lib/clojure/lang/ASeq$Src.class +0 -0
  879. data/lib/clojure/lang/ASeq.class +0 -0
  880. data/lib/clojure/lang/Agent$Action.class +0 -0
  881. data/lib/clojure/lang/Agent.class +0 -0
  882. data/lib/clojure/lang/ArraySeq$ArraySeq_double.class +0 -0
  883. data/lib/clojure/lang/ArraySeq$ArraySeq_float.class +0 -0
  884. data/lib/clojure/lang/ArraySeq$ArraySeq_int.class +0 -0
  885. data/lib/clojure/lang/ArraySeq$ArraySeq_long.class +0 -0
  886. data/lib/clojure/lang/ArraySeq.class +0 -0
  887. data/lib/clojure/lang/ArrayStream$ArrayStream_boolean.class +0 -0
  888. data/lib/clojure/lang/ArrayStream$ArrayStream_byte.class +0 -0
  889. data/lib/clojure/lang/ArrayStream$ArrayStream_char.class +0 -0
  890. data/lib/clojure/lang/ArrayStream$ArrayStream_double.class +0 -0
  891. data/lib/clojure/lang/ArrayStream$ArrayStream_float.class +0 -0
  892. data/lib/clojure/lang/ArrayStream$ArrayStream_int.class +0 -0
  893. data/lib/clojure/lang/ArrayStream$ArrayStream_long.class +0 -0
  894. data/lib/clojure/lang/ArrayStream$ArrayStream_short.class +0 -0
  895. data/lib/clojure/lang/ArrayStream.class +0 -0
  896. data/lib/clojure/lang/Associative.class +0 -0
  897. data/lib/clojure/lang/Atom.class +0 -0
  898. data/lib/clojure/lang/Binding.class +0 -0
  899. data/lib/clojure/lang/Box.class +0 -0
  900. data/lib/clojure/lang/Compile.class +0 -0
  901. data/lib/clojure/lang/Compiler$1.class +0 -0
  902. data/lib/clojure/lang/Compiler$AssignExpr$Parser.class +0 -0
  903. data/lib/clojure/lang/Compiler$AssignExpr.class +0 -0
  904. data/lib/clojure/lang/Compiler$AssignableExpr.class +0 -0
  905. data/lib/clojure/lang/Compiler$BindingInit.class +0 -0
  906. data/lib/clojure/lang/Compiler$BodyExpr$Parser.class +0 -0
  907. data/lib/clojure/lang/Compiler$BodyExpr.class +0 -0
  908. data/lib/clojure/lang/Compiler$BooleanExpr.class +0 -0
  909. data/lib/clojure/lang/Compiler$C.class +0 -0
  910. data/lib/clojure/lang/Compiler$CompilerException.class +0 -0
  911. data/lib/clojure/lang/Compiler$ConstantExpr$Parser.class +0 -0
  912. data/lib/clojure/lang/Compiler$ConstantExpr.class +0 -0
  913. data/lib/clojure/lang/Compiler$DefExpr$Parser.class +0 -0
  914. data/lib/clojure/lang/Compiler$DefExpr.class +0 -0
  915. data/lib/clojure/lang/Compiler$EmptyExpr.class +0 -0
  916. data/lib/clojure/lang/Compiler$Expr.class +0 -0
  917. data/lib/clojure/lang/Compiler$FieldExpr.class +0 -0
  918. data/lib/clojure/lang/Compiler$FnExpr.class +0 -0
  919. data/lib/clojure/lang/Compiler$FnLoaderThunk.class +0 -0
  920. data/lib/clojure/lang/Compiler$FnMethod.class +0 -0
  921. data/lib/clojure/lang/Compiler$HostExpr$Parser.class +0 -0
  922. data/lib/clojure/lang/Compiler$HostExpr.class +0 -0
  923. data/lib/clojure/lang/Compiler$IParser.class +0 -0
  924. data/lib/clojure/lang/Compiler$IfExpr$Parser.class +0 -0
  925. data/lib/clojure/lang/Compiler$IfExpr.class +0 -0
  926. data/lib/clojure/lang/Compiler$InstanceFieldExpr.class +0 -0
  927. data/lib/clojure/lang/Compiler$InstanceMethodExpr.class +0 -0
  928. data/lib/clojure/lang/Compiler$InvokeExpr.class +0 -0
  929. data/lib/clojure/lang/Compiler$KeywordExpr.class +0 -0
  930. data/lib/clojure/lang/Compiler$LetExpr$Parser.class +0 -0
  931. data/lib/clojure/lang/Compiler$LetExpr.class +0 -0
  932. data/lib/clojure/lang/Compiler$LetFnExpr$Parser.class +0 -0
  933. data/lib/clojure/lang/Compiler$LetFnExpr.class +0 -0
  934. data/lib/clojure/lang/Compiler$ListExpr.class +0 -0
  935. data/lib/clojure/lang/Compiler$LiteralExpr.class +0 -0
  936. data/lib/clojure/lang/Compiler$LocalBinding.class +0 -0
  937. data/lib/clojure/lang/Compiler$LocalBindingExpr.class +0 -0
  938. data/lib/clojure/lang/Compiler$MapExpr.class +0 -0
  939. data/lib/clojure/lang/Compiler$MaybePrimitiveExpr.class +0 -0
  940. data/lib/clojure/lang/Compiler$MetaExpr.class +0 -0
  941. data/lib/clojure/lang/Compiler$MethodExpr.class +0 -0
  942. data/lib/clojure/lang/Compiler$MonitorEnterExpr$Parser.class +0 -0
  943. data/lib/clojure/lang/Compiler$MonitorEnterExpr.class +0 -0
  944. data/lib/clojure/lang/Compiler$MonitorExitExpr$Parser.class +0 -0
  945. data/lib/clojure/lang/Compiler$MonitorExitExpr.class +0 -0
  946. data/lib/clojure/lang/Compiler$NewExpr$Parser.class +0 -0
  947. data/lib/clojure/lang/Compiler$NewExpr.class +0 -0
  948. data/lib/clojure/lang/Compiler$NilExpr.class +0 -0
  949. data/lib/clojure/lang/Compiler$PSTATE.class +0 -0
  950. data/lib/clojure/lang/Compiler$RecurExpr$Parser.class +0 -0
  951. data/lib/clojure/lang/Compiler$RecurExpr.class +0 -0
  952. data/lib/clojure/lang/Compiler$SetExpr.class +0 -0
  953. data/lib/clojure/lang/Compiler$SourceDebugExtensionAttribute.class +0 -0
  954. data/lib/clojure/lang/Compiler$StaticFieldExpr.class +0 -0
  955. data/lib/clojure/lang/Compiler$StaticMethodExpr.class +0 -0
  956. data/lib/clojure/lang/Compiler$StringExpr.class +0 -0
  957. data/lib/clojure/lang/Compiler$TheVarExpr$Parser.class +0 -0
  958. data/lib/clojure/lang/Compiler$TheVarExpr.class +0 -0
  959. data/lib/clojure/lang/Compiler$ThrowExpr$Parser.class +0 -0
  960. data/lib/clojure/lang/Compiler$ThrowExpr.class +0 -0
  961. data/lib/clojure/lang/Compiler$TryExpr$CatchClause.class +0 -0
  962. data/lib/clojure/lang/Compiler$TryExpr$Parser.class +0 -0
  963. data/lib/clojure/lang/Compiler$TryExpr.class +0 -0
  964. data/lib/clojure/lang/Compiler$UnresolvedVarExpr.class +0 -0
  965. data/lib/clojure/lang/Compiler$UntypedExpr.class +0 -0
  966. data/lib/clojure/lang/Compiler$VarExpr.class +0 -0
  967. data/lib/clojure/lang/Compiler$VectorExpr.class +0 -0
  968. data/lib/clojure/lang/Compiler.class +0 -0
  969. data/lib/clojure/lang/Cons.class +0 -0
  970. data/lib/clojure/lang/Counted.class +0 -0
  971. data/lib/clojure/lang/Delay.class +0 -0
  972. data/lib/clojure/lang/DynamicClassLoader.class +0 -0
  973. data/lib/clojure/lang/EnumerationSeq$State.class +0 -0
  974. data/lib/clojure/lang/EnumerationSeq.class +0 -0
  975. data/lib/clojure/lang/Fn.class +0 -0
  976. data/lib/clojure/lang/IDeref.class +0 -0
  977. data/lib/clojure/lang/IFn.class +0 -0
  978. data/lib/clojure/lang/IMapEntry.class +0 -0
  979. data/lib/clojure/lang/IMeta.class +0 -0
  980. data/lib/clojure/lang/IObj.class +0 -0
  981. data/lib/clojure/lang/IPersistentCollection.class +0 -0
  982. data/lib/clojure/lang/IPersistentList.class +0 -0
  983. data/lib/clojure/lang/IPersistentMap.class +0 -0
  984. data/lib/clojure/lang/IPersistentSet.class +0 -0
  985. data/lib/clojure/lang/IPersistentStack.class +0 -0
  986. data/lib/clojure/lang/IPersistentVector.class +0 -0
  987. data/lib/clojure/lang/IProxy.class +0 -0
  988. data/lib/clojure/lang/IReduce.class +0 -0
  989. data/lib/clojure/lang/IRef.class +0 -0
  990. data/lib/clojure/lang/IReference.class +0 -0
  991. data/lib/clojure/lang/ISeq.class +0 -0
  992. data/lib/clojure/lang/IndexedSeq.class +0 -0
  993. data/lib/clojure/lang/IteratorSeq$State.class +0 -0
  994. data/lib/clojure/lang/IteratorSeq.class +0 -0
  995. data/lib/clojure/lang/IteratorStream.class +0 -0
  996. data/lib/clojure/lang/Keyword.class +0 -0
  997. data/lib/clojure/lang/LazilyPersistentVector.class +0 -0
  998. data/lib/clojure/lang/LazySeq.class +0 -0
  999. data/lib/clojure/lang/LineNumberingPushbackReader.class +0 -0
  1000. data/lib/clojure/lang/LispReader$ArgReader.class +0 -0
  1001. data/lib/clojure/lang/LispReader$CharacterReader.class +0 -0
  1002. data/lib/clojure/lang/LispReader$CommentReader.class +0 -0
  1003. data/lib/clojure/lang/LispReader$CtorReader.class +0 -0
  1004. data/lib/clojure/lang/LispReader$DiscardReader.class +0 -0
  1005. data/lib/clojure/lang/LispReader$DispatchReader.class +0 -0
  1006. data/lib/clojure/lang/LispReader$EvalReader.class +0 -0
  1007. data/lib/clojure/lang/LispReader$FnReader.class +0 -0
  1008. data/lib/clojure/lang/LispReader$ListReader.class +0 -0
  1009. data/lib/clojure/lang/LispReader$MapReader.class +0 -0
  1010. data/lib/clojure/lang/LispReader$MetaReader.class +0 -0
  1011. data/lib/clojure/lang/LispReader$ReaderException.class +0 -0
  1012. data/lib/clojure/lang/LispReader$RegexReader.class +0 -0
  1013. data/lib/clojure/lang/LispReader$SetReader.class +0 -0
  1014. data/lib/clojure/lang/LispReader$StringReader.class +0 -0
  1015. data/lib/clojure/lang/LispReader$SyntaxQuoteReader.class +0 -0
  1016. data/lib/clojure/lang/LispReader$UnmatchedDelimiterReader.class +0 -0
  1017. data/lib/clojure/lang/LispReader$UnquoteReader.class +0 -0
  1018. data/lib/clojure/lang/LispReader$UnreadableReader.class +0 -0
  1019. data/lib/clojure/lang/LispReader$VarReader.class +0 -0
  1020. data/lib/clojure/lang/LispReader$VectorReader.class +0 -0
  1021. data/lib/clojure/lang/LispReader$WrappingReader.class +0 -0
  1022. data/lib/clojure/lang/LispReader.class +0 -0
  1023. data/lib/clojure/lang/LockingTransaction$AbortException.class +0 -0
  1024. data/lib/clojure/lang/LockingTransaction$CFn.class +0 -0
  1025. data/lib/clojure/lang/LockingTransaction$Info.class +0 -0
  1026. data/lib/clojure/lang/LockingTransaction$Notify.class +0 -0
  1027. data/lib/clojure/lang/LockingTransaction$RetryEx.class +0 -0
  1028. data/lib/clojure/lang/LockingTransaction.class +0 -0
  1029. data/lib/clojure/lang/MapEntry.class +0 -0
  1030. data/lib/clojure/lang/MultiFn.class +0 -0
  1031. data/lib/clojure/lang/Named.class +0 -0
  1032. data/lib/clojure/lang/Namespace.class +0 -0
  1033. data/lib/clojure/lang/Numbers$BigDecimalOps.class +0 -0
  1034. data/lib/clojure/lang/Numbers$BigIntegerBitOps.class +0 -0
  1035. data/lib/clojure/lang/Numbers$BigIntegerOps.class +0 -0
  1036. data/lib/clojure/lang/Numbers$BitOps.class +0 -0
  1037. data/lib/clojure/lang/Numbers$DoubleOps.class +0 -0
  1038. data/lib/clojure/lang/Numbers$FloatOps.class +0 -0
  1039. data/lib/clojure/lang/Numbers$IntegerBitOps.class +0 -0
  1040. data/lib/clojure/lang/Numbers$IntegerOps.class +0 -0
  1041. data/lib/clojure/lang/Numbers$LongBitOps.class +0 -0
  1042. data/lib/clojure/lang/Numbers$LongOps.class +0 -0
  1043. data/lib/clojure/lang/Numbers$Ops.class +0 -0
  1044. data/lib/clojure/lang/Numbers$RatioOps.class +0 -0
  1045. data/lib/clojure/lang/Numbers.class +0 -0
  1046. data/lib/clojure/lang/Obj.class +0 -0
  1047. data/lib/clojure/lang/PersistentArrayMap$Iter.class +0 -0
  1048. data/lib/clojure/lang/PersistentArrayMap$Seq.class +0 -0
  1049. data/lib/clojure/lang/PersistentArrayMap.class +0 -0
  1050. data/lib/clojure/lang/PersistentHashMap$BitmapIndexedNode$Seq.class +0 -0
  1051. data/lib/clojure/lang/PersistentHashMap$BitmapIndexedNode.class +0 -0
  1052. data/lib/clojure/lang/PersistentHashMap$EmptyNode.class +0 -0
  1053. data/lib/clojure/lang/PersistentHashMap$FullNode$Seq.class +0 -0
  1054. data/lib/clojure/lang/PersistentHashMap$FullNode.class +0 -0
  1055. data/lib/clojure/lang/PersistentHashMap$HashCollisionNode.class +0 -0
  1056. data/lib/clojure/lang/PersistentHashMap$INode.class +0 -0
  1057. data/lib/clojure/lang/PersistentHashMap$LeafNode.class +0 -0
  1058. data/lib/clojure/lang/PersistentHashMap.class +0 -0
  1059. data/lib/clojure/lang/PersistentHashSet.class +0 -0
  1060. data/lib/clojure/lang/PersistentList$1.class +0 -0
  1061. data/lib/clojure/lang/PersistentList$EmptyList$1.class +0 -0
  1062. data/lib/clojure/lang/PersistentList$EmptyList.class +0 -0
  1063. data/lib/clojure/lang/PersistentList.class +0 -0
  1064. data/lib/clojure/lang/PersistentQueue$Seq.class +0 -0
  1065. data/lib/clojure/lang/PersistentQueue.class +0 -0
  1066. data/lib/clojure/lang/PersistentStructMap$1.class +0 -0
  1067. data/lib/clojure/lang/PersistentStructMap$Def.class +0 -0
  1068. data/lib/clojure/lang/PersistentStructMap$Seq.class +0 -0
  1069. data/lib/clojure/lang/PersistentStructMap.class +0 -0
  1070. data/lib/clojure/lang/PersistentTreeMap$Black.class +0 -0
  1071. data/lib/clojure/lang/PersistentTreeMap$BlackBranch.class +0 -0
  1072. data/lib/clojure/lang/PersistentTreeMap$BlackBranchVal.class +0 -0
  1073. data/lib/clojure/lang/PersistentTreeMap$BlackVal.class +0 -0
  1074. data/lib/clojure/lang/PersistentTreeMap$KeyIterator.class +0 -0
  1075. data/lib/clojure/lang/PersistentTreeMap$Node.class +0 -0
  1076. data/lib/clojure/lang/PersistentTreeMap$NodeIterator.class +0 -0
  1077. data/lib/clojure/lang/PersistentTreeMap$Red.class +0 -0
  1078. data/lib/clojure/lang/PersistentTreeMap$RedBranch.class +0 -0
  1079. data/lib/clojure/lang/PersistentTreeMap$RedBranchVal.class +0 -0
  1080. data/lib/clojure/lang/PersistentTreeMap$RedVal.class +0 -0
  1081. data/lib/clojure/lang/PersistentTreeMap$Seq.class +0 -0
  1082. data/lib/clojure/lang/PersistentTreeMap$ValIterator.class +0 -0
  1083. data/lib/clojure/lang/PersistentTreeMap.class +0 -0
  1084. data/lib/clojure/lang/PersistentTreeSet.class +0 -0
  1085. data/lib/clojure/lang/PersistentVector.class +0 -0
  1086. data/lib/clojure/lang/ProxyHandler.class +0 -0
  1087. data/lib/clojure/lang/RT$1.class +0 -0
  1088. data/lib/clojure/lang/RT$2.class +0 -0
  1089. data/lib/clojure/lang/RT$3.class +0 -0
  1090. data/lib/clojure/lang/RT$4.class +0 -0
  1091. data/lib/clojure/lang/RT$5.class +0 -0
  1092. data/lib/clojure/lang/RT$6.class +0 -0
  1093. data/lib/clojure/lang/RT.class +0 -0
  1094. data/lib/clojure/lang/Range$Src.class +0 -0
  1095. data/lib/clojure/lang/Range.class +0 -0
  1096. data/lib/clojure/lang/Ratio.class +0 -0
  1097. data/lib/clojure/lang/Ref$TVal.class +0 -0
  1098. data/lib/clojure/lang/Ref.class +0 -0
  1099. data/lib/clojure/lang/Reflector.class +0 -0
  1100. data/lib/clojure/lang/Repl.class +0 -0
  1101. data/lib/clojure/lang/RestFn.class +0 -0
  1102. data/lib/clojure/lang/Reversible.class +0 -0
  1103. data/lib/clojure/lang/Script.class +0 -0
  1104. data/lib/clojure/lang/SeqEnumeration.class +0 -0
  1105. data/lib/clojure/lang/SeqIterator.class +0 -0
  1106. data/lib/clojure/lang/Seqable.class +0 -0
  1107. data/lib/clojure/lang/Sequential.class +0 -0
  1108. data/lib/clojure/lang/Settable.class +0 -0
  1109. data/lib/clojure/lang/Sorted.class +0 -0
  1110. data/lib/clojure/lang/Stream$1.class +0 -0
  1111. data/lib/clojure/lang/Stream$2.class +0 -0
  1112. data/lib/clojure/lang/Stream.class +0 -0
  1113. data/lib/clojure/lang/Streamable.class +0 -0
  1114. data/lib/clojure/lang/StringSeq.class +0 -0
  1115. data/lib/clojure/lang/Symbol.class +0 -0
  1116. data/lib/clojure/lang/TransactionalHashMap$1.class +0 -0
  1117. data/lib/clojure/lang/TransactionalHashMap.class +0 -0
  1118. data/lib/clojure/lang/Util.class +0 -0
  1119. data/lib/clojure/lang/Var$1.class +0 -0
  1120. data/lib/clojure/lang/Var$2.class +0 -0
  1121. data/lib/clojure/lang/Var$Frame.class +0 -0
  1122. data/lib/clojure/lang/Var.class +0 -0
  1123. data/lib/clojure/lang/XMLHandler.class +0 -0
  1124. data/lib/clojure/main$eval_opt__5839.class +0 -0
  1125. data/lib/clojure/main$help_opt__5871.class +0 -0
  1126. data/lib/clojure/main$init_dispatch__5843.class +0 -0
  1127. data/lib/clojure/main$init_opt__5836.class +0 -0
  1128. data/lib/clojure/main$initialize__5846.class +0 -0
  1129. data/lib/clojure/main$legacy_repl__5878.class +0 -0
  1130. data/lib/clojure/main$legacy_script__5883.class +0 -0
  1131. data/lib/clojure/main$load_script__5833.class +0 -0
  1132. data/lib/clojure/main$main__5888.class +0 -0
  1133. data/lib/clojure/main$main_dispatch__5874.class +0 -0
  1134. data/lib/clojure/main$null_opt__5868.class +0 -0
  1135. data/lib/clojure/main$repl__5813$fn__5816.class +0 -0
  1136. data/lib/clojure/main$repl__5813$fn__5819.class +0 -0
  1137. data/lib/clojure/main$repl__5813$fn__5822.class +0 -0
  1138. data/lib/clojure/main$repl__5813$fn__5829.class +0 -0
  1139. data/lib/clojure/main$repl__5813$read_eval_print__5825.class +0 -0
  1140. data/lib/clojure/main$repl__5813.class +0 -0
  1141. data/lib/clojure/main$repl_caught__5810.class +0 -0
  1142. data/lib/clojure/main$repl_exception__5807.class +0 -0
  1143. data/lib/clojure/main$repl_opt__5853$fn__5856.class +0 -0
  1144. data/lib/clojure/main$repl_opt__5853$fn__5859.class +0 -0
  1145. data/lib/clojure/main$repl_opt__5853.class +0 -0
  1146. data/lib/clojure/main$repl_prompt__5789.class +0 -0
  1147. data/lib/clojure/main$repl_read__5799.class +0 -0
  1148. data/lib/clojure/main$root_cause__5803.class +0 -0
  1149. data/lib/clojure/main$script_opt__5864.class +0 -0
  1150. data/lib/clojure/main$skip_if_eol__5792.class +0 -0
  1151. data/lib/clojure/main$skip_whitespace__5795.class +0 -0
  1152. data/lib/clojure/main$with_bindings__5786.class +0 -0
  1153. data/lib/clojure/main.class +0 -0
  1154. data/lib/clojure/main.clj +337 -0
  1155. data/lib/clojure/main__init.class +0 -0
  1156. data/lib/clojure/parallel.clj +248 -0
  1157. data/lib/clojure/proxy/clojure/lang/APersistentMap.class +0 -0
  1158. data/lib/clojure/proxy/java/lang/Object$ContentHandler.class +0 -0
  1159. data/lib/clojure/proxy/java/lang/Object$Future$IDeref.class +0 -0
  1160. data/lib/clojure/proxy/java/lang/Object$TableModel.class +0 -0
  1161. data/lib/clojure/proxy/java/lang/Object$TreeModel.class +0 -0
  1162. data/lib/clojure/proxy/javax/swing/table/AbstractTableModel.class +0 -0
  1163. data/lib/clojure/set$bubble_max_key__5896$fn__5898.class +0 -0
  1164. data/lib/clojure/set$bubble_max_key__5896.class +0 -0
  1165. data/lib/clojure/set$difference__5920$fn__5923.class +0 -0
  1166. data/lib/clojure/set$difference__5920.class +0 -0
  1167. data/lib/clojure/set$index__5956$fn__5958.class +0 -0
  1168. data/lib/clojure/set$index__5956.class +0 -0
  1169. data/lib/clojure/set$intersection__5909$fn__5912.class +0 -0
  1170. data/lib/clojure/set$intersection__5909$fn__5916.class +0 -0
  1171. data/lib/clojure/set$intersection__5909.class +0 -0
  1172. data/lib/clojure/set$join__5974$fn__5977$fn__5979.class +0 -0
  1173. data/lib/clojure/set$join__5974$fn__5977.class +0 -0
  1174. data/lib/clojure/set$join__5974$fn__5985$fn__5987.class +0 -0
  1175. data/lib/clojure/set$join__5974$fn__5985.class +0 -0
  1176. data/lib/clojure/set$join__5974.class +0 -0
  1177. data/lib/clojure/set$map_invert__5962$fn__5965.class +0 -0
  1178. data/lib/clojure/set$map_invert__5962.class +0 -0
  1179. data/lib/clojure/set$project__5935$fn__5937.class +0 -0
  1180. data/lib/clojure/set$project__5935.class +0 -0
  1181. data/lib/clojure/set$rename__5950$fn__5952.class +0 -0
  1182. data/lib/clojure/set$rename__5950.class +0 -0
  1183. data/lib/clojure/set$rename_keys__5941$fn__5944.class +0 -0
  1184. data/lib/clojure/set$rename_keys__5941.class +0 -0
  1185. data/lib/clojure/set$select__5928$fn__5930.class +0 -0
  1186. data/lib/clojure/set$select__5928.class +0 -0
  1187. data/lib/clojure/set$union__5902.class +0 -0
  1188. data/lib/clojure/set.clj +148 -0
  1189. data/lib/clojure/set__init.class +0 -0
  1190. data/lib/clojure/version.properties +5 -0
  1191. data/lib/clojure/xml$emit__6057.class +0 -0
  1192. data/lib/clojure/xml$emit_element__6052.class +0 -0
  1193. data/lib/clojure/xml$fn__5994$fn__6007.class +0 -0
  1194. data/lib/clojure/xml$fn__5994$fn__6010.class +0 -0
  1195. data/lib/clojure/xml$fn__5994$fn__6013.class +0 -0
  1196. data/lib/clojure/xml$fn__5994$fn__6016.class +0 -0
  1197. data/lib/clojure/xml$fn__5994$fn__6019.class +0 -0
  1198. data/lib/clojure/xml$fn__5994$fn__6022.class +0 -0
  1199. data/lib/clojure/xml$fn__5994$fn__6025.class +0 -0
  1200. data/lib/clojure/xml$fn__5994$fn__6028$attrs__6030.class +0 -0
  1201. data/lib/clojure/xml$fn__5994$fn__6028.class +0 -0
  1202. data/lib/clojure/xml$fn__5994$fn__6034.class +0 -0
  1203. data/lib/clojure/xml$fn__5994$fn__6037.class +0 -0
  1204. data/lib/clojure/xml$fn__5994$fn__6040.class +0 -0
  1205. data/lib/clojure/xml$fn__5994$push_chars__6000$fn__6002.class +0 -0
  1206. data/lib/clojure/xml$fn__5994$push_chars__6000.class +0 -0
  1207. data/lib/clojure/xml$fn__5994$push_content__5996.class +0 -0
  1208. data/lib/clojure/xml$fn__5994.class +0 -0
  1209. data/lib/clojure/xml$parse__6048.class +0 -0
  1210. data/lib/clojure/xml$startparse_sax__6045.class +0 -0
  1211. data/lib/clojure/xml.clj +115 -0
  1212. data/lib/clojure/xml__init.class +0 -0
  1213. data/lib/clojure/zip$append_child__6155.class +0 -0
  1214. data/lib/clojure/zip$branch_QMARK___6085.class +0 -0
  1215. data/lib/clojure/zip$children__6088.class +0 -0
  1216. data/lib/clojure/zip$down__6103.class +0 -0
  1217. data/lib/clojure/zip$edit__6149.class +0 -0
  1218. data/lib/clojure/zip$end_QMARK___6171.class +0 -0
  1219. data/lib/clojure/zip$insert_child__6152.class +0 -0
  1220. data/lib/clojure/zip$insert_left__6137.class +0 -0
  1221. data/lib/clojure/zip$insert_right__6141.class +0 -0
  1222. data/lib/clojure/zip$left__6127.class +0 -0
  1223. data/lib/clojure/zip$leftmost__6132.class +0 -0
  1224. data/lib/clojure/zip$lefts__6097.class +0 -0
  1225. data/lib/clojure/zip$make_node__6091.class +0 -0
  1226. data/lib/clojure/zip$next__6158.class +0 -0
  1227. data/lib/clojure/zip$node__6082.class +0 -0
  1228. data/lib/clojure/zip$path__6094.class +0 -0
  1229. data/lib/clojure/zip$prev__6165.class +0 -0
  1230. data/lib/clojure/zip$remove__6174.class +0 -0
  1231. data/lib/clojure/zip$replace__6145.class +0 -0
  1232. data/lib/clojure/zip$right__6116.class +0 -0
  1233. data/lib/clojure/zip$rightmost__6122.class +0 -0
  1234. data/lib/clojure/zip$rights__6100.class +0 -0
  1235. data/lib/clojure/zip$root__6113.class +0 -0
  1236. data/lib/clojure/zip$seq_zip__6063$fn__6065.class +0 -0
  1237. data/lib/clojure/zip$seq_zip__6063.class +0 -0
  1238. data/lib/clojure/zip$up__6108.class +0 -0
  1239. data/lib/clojure/zip$vector_zip__6069$fn__6071.class +0 -0
  1240. data/lib/clojure/zip$vector_zip__6069.class +0 -0
  1241. data/lib/clojure/zip$xml_zip__6075$fn__6077.class +0 -0
  1242. data/lib/clojure/zip$xml_zip__6075.class +0 -0
  1243. data/lib/clojure/zip$zipper__6060.class +0 -0
  1244. data/lib/clojure/zip.clj +278 -0
  1245. data/lib/clojure/zip__init.class +0 -0
  1246. data/src/clj/clojure/core.clj +4121 -0
  1247. data/src/clj/clojure/core_print.clj +317 -0
  1248. data/src/clj/clojure/core_proxy.clj +394 -0
  1249. data/src/clj/clojure/genclass.clj +683 -0
  1250. data/src/clj/clojure/inspector.clj +180 -0
  1251. data/src/clj/clojure/main.clj +337 -0
  1252. data/src/clj/clojure/parallel.clj +248 -0
  1253. data/src/clj/clojure/set.clj +148 -0
  1254. data/src/clj/clojure/version.properties +5 -0
  1255. data/src/clj/clojure/xml.clj +115 -0
  1256. data/src/clj/clojure/zip.clj +278 -0
  1257. data/src/jvm/clojure/asm/AnnotationVisitor.java +97 -0
  1258. data/src/jvm/clojure/asm/AnnotationWriter.java +357 -0
  1259. data/src/jvm/clojure/asm/Attribute.java +253 -0
  1260. data/src/jvm/clojure/asm/ByteVector.java +318 -0
  1261. data/src/jvm/clojure/asm/ClassAdapter.java +115 -0
  1262. data/src/jvm/clojure/asm/ClassReader.java +2224 -0
  1263. data/src/jvm/clojure/asm/ClassVisitor.java +196 -0
  1264. data/src/jvm/clojure/asm/ClassWriter.java +1415 -0
  1265. data/src/jvm/clojure/asm/Edge.java +75 -0
  1266. data/src/jvm/clojure/asm/FieldVisitor.java +64 -0
  1267. data/src/jvm/clojure/asm/FieldWriter.java +290 -0
  1268. data/src/jvm/clojure/asm/Frame.java +1506 -0
  1269. data/src/jvm/clojure/asm/Handler.java +70 -0
  1270. data/src/jvm/clojure/asm/Item.java +258 -0
  1271. data/src/jvm/clojure/asm/Label.java +437 -0
  1272. data/src/jvm/clojure/asm/MethodAdapter.java +186 -0
  1273. data/src/jvm/clojure/asm/MethodVisitor.java +396 -0
  1274. data/src/jvm/clojure/asm/MethodWriter.java +3029 -0
  1275. data/src/jvm/clojure/asm/Opcodes.java +341 -0
  1276. data/src/jvm/clojure/asm/Type.java +872 -0
  1277. data/src/jvm/clojure/asm/commons/AdviceAdapter.java +681 -0
  1278. data/src/jvm/clojure/asm/commons/AnalyzerAdapter.java +938 -0
  1279. data/src/jvm/clojure/asm/commons/CodeSizeEvaluator.java +234 -0
  1280. data/src/jvm/clojure/asm/commons/EmptyVisitor.java +221 -0
  1281. data/src/jvm/clojure/asm/commons/GeneratorAdapter.java +1533 -0
  1282. data/src/jvm/clojure/asm/commons/LocalVariablesSorter.java +330 -0
  1283. data/src/jvm/clojure/asm/commons/Method.java +267 -0
  1284. data/src/jvm/clojure/asm/commons/SerialVersionUIDAdder.java +508 -0
  1285. data/src/jvm/clojure/asm/commons/StaticInitMerger.java +102 -0
  1286. data/src/jvm/clojure/asm/commons/TableSwitchGenerator.java +55 -0
  1287. data/src/jvm/clojure/asm/commons/package.html +48 -0
  1288. data/src/jvm/clojure/asm/package.html +87 -0
  1289. data/src/jvm/clojure/lang/AFn.java +452 -0
  1290. data/src/jvm/clojure/lang/AFunction.java +47 -0
  1291. data/src/jvm/clojure/lang/AMapEntry.java +149 -0
  1292. data/src/jvm/clojure/lang/APersistentMap.java +382 -0
  1293. data/src/jvm/clojure/lang/APersistentSet.java +159 -0
  1294. data/src/jvm/clojure/lang/APersistentVector.java +579 -0
  1295. data/src/jvm/clojure/lang/ARef.java +107 -0
  1296. data/src/jvm/clojure/lang/AReference.java +40 -0
  1297. data/src/jvm/clojure/lang/ASeq.java +282 -0
  1298. data/src/jvm/clojure/lang/Agent.java +194 -0
  1299. data/src/jvm/clojure/lang/ArraySeq.java +316 -0
  1300. data/src/jvm/clojure/lang/ArrayStream.java +184 -0
  1301. data/src/jvm/clojure/lang/Associative.java +22 -0
  1302. data/src/jvm/clojure/lang/Atom.java +104 -0
  1303. data/src/jvm/clojure/lang/Binding.java +26 -0
  1304. data/src/jvm/clojure/lang/Box.java +22 -0
  1305. data/src/jvm/clojure/lang/Compile.java +73 -0
  1306. data/src/jvm/clojure/lang/Compiler.java +5017 -0
  1307. data/src/jvm/clojure/lang/Cons.java +53 -0
  1308. data/src/jvm/clojure/lang/Counted.java +18 -0
  1309. data/src/jvm/clojure/lang/Delay.java +38 -0
  1310. data/src/jvm/clojure/lang/DynamicClassLoader.java +71 -0
  1311. data/src/jvm/clojure/lang/EnumerationSeq.java +71 -0
  1312. data/src/jvm/clojure/lang/Fn.java +16 -0
  1313. data/src/jvm/clojure/lang/IDeref.java +17 -0
  1314. data/src/jvm/clojure/lang/IFn.java +90 -0
  1315. data/src/jvm/clojure/lang/IMapEntry.java +19 -0
  1316. data/src/jvm/clojure/lang/IMeta.java +17 -0
  1317. data/src/jvm/clojure/lang/IObj.java +18 -0
  1318. data/src/jvm/clojure/lang/IPersistentCollection.java +23 -0
  1319. data/src/jvm/clojure/lang/IPersistentList.java +16 -0
  1320. data/src/jvm/clojure/lang/IPersistentMap.java +23 -0
  1321. data/src/jvm/clojure/lang/IPersistentSet.java +19 -0
  1322. data/src/jvm/clojure/lang/IPersistentStack.java +19 -0
  1323. data/src/jvm/clojure/lang/IPersistentVector.java +22 -0
  1324. data/src/jvm/clojure/lang/IProxy.java +21 -0
  1325. data/src/jvm/clojure/lang/IReduce.java +19 -0
  1326. data/src/jvm/clojure/lang/IRef.java +27 -0
  1327. data/src/jvm/clojure/lang/IReference.java +18 -0
  1328. data/src/jvm/clojure/lang/ISeq.java +29 -0
  1329. data/src/jvm/clojure/lang/IndexedSeq.java +16 -0
  1330. data/src/jvm/clojure/lang/IteratorSeq.java +69 -0
  1331. data/src/jvm/clojure/lang/IteratorStream.java +29 -0
  1332. data/src/jvm/clojure/lang/Keyword.java +199 -0
  1333. data/src/jvm/clojure/lang/LazilyPersistentVector.java +79 -0
  1334. data/src/jvm/clojure/lang/LazySeq.java +233 -0
  1335. data/src/jvm/clojure/lang/LineNumberingPushbackReader.java +75 -0
  1336. data/src/jvm/clojure/lang/LispReader.java +1063 -0
  1337. data/src/jvm/clojure/lang/LockingTransaction.java +583 -0
  1338. data/src/jvm/clojure/lang/MapEntry.java +40 -0
  1339. data/src/jvm/clojure/lang/MultiFn.java +308 -0
  1340. data/src/jvm/clojure/lang/Named.java +19 -0
  1341. data/src/jvm/clojure/lang/Namespace.java +178 -0
  1342. data/src/jvm/clojure/lang/Numbers.java +4371 -0
  1343. data/src/jvm/clojure/lang/Obj.java +33 -0
  1344. data/src/jvm/clojure/lang/PersistentArrayMap.java +263 -0
  1345. data/src/jvm/clojure/lang/PersistentHashMap.java +746 -0
  1346. data/src/jvm/clojure/lang/PersistentHashSet.java +72 -0
  1347. data/src/jvm/clojure/lang/PersistentList.java +298 -0
  1348. data/src/jvm/clojure/lang/PersistentQueue.java +304 -0
  1349. data/src/jvm/clojure/lang/PersistentStructMap.java +225 -0
  1350. data/src/jvm/clojure/lang/PersistentTreeMap.java +998 -0
  1351. data/src/jvm/clojure/lang/PersistentTreeSet.java +94 -0
  1352. data/src/jvm/clojure/lang/PersistentVector.java +320 -0
  1353. data/src/jvm/clojure/lang/ProxyHandler.java +72 -0
  1354. data/src/jvm/clojure/lang/RT.java +1676 -0
  1355. data/src/jvm/clojure/lang/Range.java +85 -0
  1356. data/src/jvm/clojure/lang/Ratio.java +74 -0
  1357. data/src/jvm/clojure/lang/Ref.java +335 -0
  1358. data/src/jvm/clojure/lang/Reflector.java +448 -0
  1359. data/src/jvm/clojure/lang/Repl.java +22 -0
  1360. data/src/jvm/clojure/lang/RestFn.java +1335 -0
  1361. data/src/jvm/clojure/lang/Reversible.java +17 -0
  1362. data/src/jvm/clojure/lang/Script.java +22 -0
  1363. data/src/jvm/clojure/lang/SeqEnumeration.java +33 -0
  1364. data/src/jvm/clojure/lang/SeqIterator.java +41 -0
  1365. data/src/jvm/clojure/lang/Seqable.java +17 -0
  1366. data/src/jvm/clojure/lang/Sequential.java +13 -0
  1367. data/src/jvm/clojure/lang/Settable.java +18 -0
  1368. data/src/jvm/clojure/lang/Sorted.java +25 -0
  1369. data/src/jvm/clojure/lang/Stream.java +88 -0
  1370. data/src/jvm/clojure/lang/Streamable.java +17 -0
  1371. data/src/jvm/clojure/lang/StringSeq.java +50 -0
  1372. data/src/jvm/clojure/lang/Symbol.java +121 -0
  1373. data/src/jvm/clojure/lang/TransactionalHashMap.java +197 -0
  1374. data/src/jvm/clojure/lang/Util.java +74 -0
  1375. data/src/jvm/clojure/lang/Var.java +472 -0
  1376. data/src/jvm/clojure/lang/XMLHandler.java +89 -0
  1377. data/src/jvm/clojure/main.java +41 -0
  1378. metadata +1433 -0
@@ -0,0 +1,4371 @@
1
+ /**
2
+ * Copyright (c) Rich Hickey. All rights reserved.
3
+ * The use and distribution terms for this software are covered by the
4
+ * Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
5
+ * which can be found in the file epl-v10.html at the root of this distribution.
6
+ * By using this software in any fashion, you are agreeing to be bound by
7
+ * the terms of this license.
8
+ * You must not remove this notice, or any other, from this software.
9
+ **/
10
+
11
+ /* rich Mar 31, 2008 */
12
+
13
+ package clojure.lang;
14
+
15
+ import java.math.BigInteger;
16
+ import java.math.BigDecimal;
17
+ import java.math.MathContext;
18
+
19
+ public class Numbers{
20
+
21
+ static interface Ops{
22
+ Ops combine(Ops y);
23
+
24
+ Ops opsWith(IntegerOps x);
25
+
26
+ Ops opsWith(LongOps x);
27
+
28
+ Ops opsWith(FloatOps x);
29
+
30
+ Ops opsWith(DoubleOps x);
31
+
32
+ Ops opsWith(RatioOps x);
33
+
34
+ Ops opsWith(BigIntegerOps x);
35
+
36
+ Ops opsWith(BigDecimalOps x);
37
+
38
+ public boolean isZero(Number x);
39
+
40
+ public boolean isPos(Number x);
41
+
42
+ public boolean isNeg(Number x);
43
+
44
+ public Number add(Number x, Number y);
45
+
46
+ public Number multiply(Number x, Number y);
47
+
48
+ public Number divide(Number x, Number y);
49
+
50
+ public Number quotient(Number x, Number y);
51
+
52
+ public Number remainder(Number x, Number y);
53
+
54
+ public boolean equiv(Number x, Number y);
55
+
56
+ public boolean lt(Number x, Number y);
57
+
58
+ public Number negate(Number x);
59
+
60
+ public Number inc(Number x);
61
+
62
+ public Number dec(Number x);
63
+ }
64
+
65
+ static interface BitOps{
66
+ BitOps combine(BitOps y);
67
+
68
+ BitOps bitOpsWith(IntegerBitOps x);
69
+
70
+ BitOps bitOpsWith(LongBitOps x);
71
+
72
+ BitOps bitOpsWith(BigIntegerBitOps x);
73
+
74
+ public Number not(Number x);
75
+
76
+ public Number and(Number x, Number y);
77
+
78
+ public Number or(Number x, Number y);
79
+
80
+ public Number xor(Number x, Number y);
81
+
82
+ public Number andNot(Number x, Number y);
83
+
84
+ public Number clearBit(Number x, int n);
85
+
86
+ public Number setBit(Number x, int n);
87
+
88
+ public Number flipBit(Number x, int n);
89
+
90
+ public boolean testBit(Number x, int n);
91
+
92
+ public Number shiftLeft(Number x, int n);
93
+
94
+ public Number shiftRight(Number x, int n);
95
+ }
96
+
97
+
98
+ static public boolean isZero(Object x){
99
+ return ops(x).isZero((Number)x);
100
+ }
101
+
102
+ static public boolean isPos(Object x){
103
+ return ops(x).isPos((Number)x);
104
+ }
105
+
106
+ static public boolean isNeg(Object x){
107
+ return ops(x).isNeg((Number)x);
108
+ }
109
+
110
+ static public Number minus(Object x){
111
+ return ops(x).negate((Number)x);
112
+ }
113
+
114
+ static public Number inc(Object x){
115
+ return ops(x).inc((Number)x);
116
+ }
117
+
118
+ static public Number dec(Object x){
119
+ return ops(x).dec((Number)x);
120
+ }
121
+
122
+ static public Number add(Object x, Object y){
123
+ return ops(x).combine(ops(y)).add((Number)x, (Number)y);
124
+ }
125
+
126
+ static public Number minus(Object x, Object y){
127
+ Ops yops = ops(y);
128
+ return ops(x).combine(yops).add((Number)x, yops.negate((Number)y));
129
+ }
130
+
131
+ static public Number multiply(Object x, Object y){
132
+ return ops(x).combine(ops(y)).multiply((Number)x, (Number)y);
133
+ }
134
+
135
+ static public Number divide(Object x, Object y){
136
+ Ops yops = ops(y);
137
+ if(yops.isZero((Number)y))
138
+ throw new ArithmeticException("Divide by zero");
139
+ return ops(x).combine(yops).divide((Number)x, (Number)y);
140
+ }
141
+
142
+ static public Number quotient(Number x, Number y){
143
+ Ops yops = ops(y);
144
+ if(yops.isZero(y))
145
+ throw new ArithmeticException("Divide by zero");
146
+ return ops(x).combine(yops).quotient(x, y);
147
+ }
148
+
149
+ static public Number remainder(Number x, Number y){
150
+ Ops yops = ops(y);
151
+ if(yops.isZero(y))
152
+ throw new ArithmeticException("Divide by zero");
153
+ return ops(x).combine(yops).remainder(x, y);
154
+ }
155
+
156
+ static Number quotient(double n, double d){
157
+ double q = n / d;
158
+ if(q <= Integer.MAX_VALUE && q >= Integer.MIN_VALUE)
159
+ {
160
+ return (int) q;
161
+ }
162
+ else
163
+ { //bigint quotient
164
+ return reduce(new BigDecimal(q).toBigInteger());
165
+ }
166
+ }
167
+
168
+ static Number remainder(double n, double d){
169
+ double q = n / d;
170
+ if(q <= Integer.MAX_VALUE && q >= Integer.MIN_VALUE)
171
+ {
172
+ return (n - ((int) q) * d);
173
+ }
174
+ else
175
+ { //bigint quotient
176
+ Number bq = reduce(new BigDecimal(q).toBigInteger());
177
+ return (n - bq.doubleValue() * d);
178
+ }
179
+ }
180
+
181
+ static public boolean equiv(Object x, Object y){
182
+ return y instanceof Number && x instanceof Number
183
+ && equiv((Number) x, (Number) y);
184
+ }
185
+
186
+ static public boolean equiv(Number x, Number y){
187
+ return ops(x).combine(ops(y)).equiv(x, y);
188
+ }
189
+
190
+ static public boolean lt(Object x, Object y){
191
+ return ops(x).combine(ops(y)).lt((Number)x, (Number)y);
192
+ }
193
+
194
+ static public boolean lte(Object x, Object y){
195
+ return !ops(x).combine(ops(y)).lt((Number)y, (Number)x);
196
+ }
197
+
198
+ static public boolean gt(Object x, Object y){
199
+ return ops(x).combine(ops(y)).lt((Number)y, (Number)x);
200
+ }
201
+
202
+ static public boolean gte(Object x, Object y){
203
+ return !ops(x).combine(ops(y)).lt((Number)x, (Number)y);
204
+ }
205
+
206
+ static public int compare(Number x, Number y){
207
+ Ops ops = ops(x).combine(ops(y));
208
+ if(ops.lt(x, y))
209
+ return -1;
210
+ else if(ops.lt(y, x))
211
+ return 1;
212
+ return 0;
213
+ }
214
+
215
+ static BigInteger toBigInteger(Object x){
216
+ if(x instanceof BigInteger)
217
+ return (BigInteger) x;
218
+ else
219
+ return BigInteger.valueOf(((Number) x).longValue());
220
+ }
221
+
222
+ static BigDecimal toBigDecimal(Object x){
223
+ if(x instanceof BigDecimal)
224
+ return (BigDecimal) x;
225
+ else if(x instanceof BigInteger)
226
+ return new BigDecimal((BigInteger) x);
227
+ else
228
+ return BigDecimal.valueOf(((Number) x).longValue());
229
+ }
230
+
231
+ static Ratio toRatio(Object x){
232
+ if(x instanceof Ratio)
233
+ return (Ratio) x;
234
+ else if(x instanceof BigDecimal)
235
+ {
236
+ BigDecimal bx = (BigDecimal) x;
237
+ BigInteger bv = bx.unscaledValue();
238
+ int scale = bx.scale();
239
+ if(scale < 0)
240
+ return new Ratio(bv.multiply(BigInteger.TEN.pow(-scale)), BigInteger.ONE);
241
+ else
242
+ return new Ratio(bv, BigInteger.TEN.pow(scale));
243
+ }
244
+ return new Ratio(toBigInteger(x), BigInteger.ONE);
245
+ }
246
+
247
+ static public Number rationalize(Number x){
248
+ if(x instanceof Float || x instanceof Double)
249
+ return rationalize(BigDecimal.valueOf(x.doubleValue()));
250
+ else if(x instanceof BigDecimal)
251
+ {
252
+ BigDecimal bx = (BigDecimal) x;
253
+ BigInteger bv = bx.unscaledValue();
254
+ int scale = bx.scale();
255
+ if(scale < 0)
256
+ return bv.multiply(BigInteger.TEN.pow(-scale));
257
+ else
258
+ return divide(bv, BigInteger.TEN.pow(scale));
259
+ }
260
+ return x;
261
+ }
262
+
263
+ static public Number reduce(BigInteger val){
264
+ int bitLength = val.bitLength();
265
+ if(bitLength < 32)
266
+ return val.intValue();
267
+ else if(bitLength < 64)
268
+ return val.longValue();
269
+ else
270
+ return val;
271
+ }
272
+
273
+ static public Number reduce(long val){
274
+ if(val >= Integer.MIN_VALUE && val <= Integer.MAX_VALUE)
275
+ return (int) val;
276
+ else
277
+ return val;
278
+ }
279
+
280
+ static public Number divide(BigInteger n, BigInteger d){
281
+ if(d.equals(BigInteger.ZERO))
282
+ throw new ArithmeticException("Divide by zero");
283
+ BigInteger gcd = n.gcd(d);
284
+ if(gcd.equals(BigInteger.ZERO))
285
+ return 0;
286
+ n = n.divide(gcd);
287
+ d = d.divide(gcd);
288
+ if(d.equals(BigInteger.ONE))
289
+ return reduce(n);
290
+ return new Ratio((d.signum() < 0 ? n.negate() : n),
291
+ (d.signum() < 0 ? d.negate() : d));
292
+ }
293
+
294
+ static public Number not(Object x){
295
+ return bitOps(x).not((Number)x);
296
+ }
297
+
298
+
299
+ static public Number and(Object x, Object y){
300
+ return bitOps(x).combine(bitOps(y)).and((Number)x, (Number)y);
301
+ }
302
+
303
+ static public Number or(Object x, Object y){
304
+ return bitOps(x).combine(bitOps(y)).or((Number)x, (Number)y);
305
+ }
306
+
307
+ static public Number xor(Object x, Object y){
308
+ return bitOps(x).combine(bitOps(y)).xor((Number)x, (Number)y);
309
+ }
310
+
311
+ static public Number andNot(Number x, Number y){
312
+ return bitOps(x).combine(bitOps(y)).andNot(x, y);
313
+ }
314
+
315
+ static public Number clearBit(Number x, int n){
316
+ if(n < 0)
317
+ throw new ArithmeticException("Negative bit index");
318
+ return bitOps(x).clearBit(x, n);
319
+ }
320
+
321
+ static public Number setBit(Number x, int n){
322
+ if(n < 0)
323
+ throw new ArithmeticException("Negative bit index");
324
+ return bitOps(x).setBit(x, n);
325
+ }
326
+
327
+ static public Number flipBit(Number x, int n){
328
+ if(n < 0)
329
+ throw new ArithmeticException("Negative bit index");
330
+ return bitOps(x).flipBit(x, n);
331
+ }
332
+
333
+ static public boolean testBit(Number x, int n){
334
+ if(n < 0)
335
+ throw new ArithmeticException("Negative bit index");
336
+ return bitOps(x).testBit(x, n);
337
+ }
338
+
339
+ static public Number shiftLeft(Number x, int n){
340
+ return bitOps(x).shiftLeft(x, n);
341
+ }
342
+
343
+ static public Number shiftRight(Number x, int n){
344
+ return bitOps(x).shiftRight(x, n);
345
+ }
346
+
347
+
348
+ final static class IntegerOps implements Ops{
349
+ public Ops combine(Ops y){
350
+ return y.opsWith(this);
351
+ }
352
+
353
+ final public Ops opsWith(IntegerOps x){
354
+ return this;
355
+ }
356
+
357
+ final public Ops opsWith(LongOps x){
358
+ return LONG_OPS;
359
+ }
360
+
361
+ final public Ops opsWith(FloatOps x){
362
+ return FLOAT_OPS;
363
+ }
364
+
365
+ final public Ops opsWith(DoubleOps x){
366
+ return DOUBLE_OPS;
367
+ }
368
+
369
+ final public Ops opsWith(RatioOps x){
370
+ return RATIO_OPS;
371
+ }
372
+
373
+ final public Ops opsWith(BigIntegerOps x){
374
+ return BIGINTEGER_OPS;
375
+ }
376
+
377
+ final public Ops opsWith(BigDecimalOps x){
378
+ return BIGDECIMAL_OPS;
379
+ }
380
+
381
+ public boolean isZero(Number x){
382
+ return x.intValue() == 0;
383
+ }
384
+
385
+ public boolean isPos(Number x){
386
+ return x.intValue() > 0;
387
+ }
388
+
389
+ public boolean isNeg(Number x){
390
+ return x.intValue() < 0;
391
+ }
392
+
393
+ final public Number add(Number x, Number y){
394
+ long ret = x.longValue() + y.longValue();
395
+ if(ret <= Integer.MAX_VALUE && ret >= Integer.MIN_VALUE)
396
+ return (int) ret;
397
+ return ret;
398
+ }
399
+
400
+ final public Number multiply(Number x, Number y){
401
+ long ret = x.longValue() * y.longValue();
402
+ if(ret <= Integer.MAX_VALUE && ret >= Integer.MIN_VALUE)
403
+ return (int) ret;
404
+ return ret;
405
+ }
406
+
407
+ static int gcd(int u, int v){
408
+ while(v != 0)
409
+ {
410
+ int r = u % v;
411
+ u = v;
412
+ v = r;
413
+ }
414
+ return u;
415
+ }
416
+
417
+ public Number divide(Number x, Number y){
418
+ int n = x.intValue();
419
+ int val = y.intValue();
420
+ int gcd = gcd(n, val);
421
+ if(gcd == 0)
422
+ return 0;
423
+
424
+ n = n / gcd;
425
+ int d = val / gcd;
426
+ if(d == 1)
427
+ return n;
428
+ if(d < 0)
429
+ {
430
+ n = -n;
431
+ d = -d;
432
+ }
433
+ return new Ratio(BigInteger.valueOf(n), BigInteger.valueOf(d));
434
+ }
435
+
436
+ public Number quotient(Number x, Number y){
437
+ return x.intValue() / y.intValue();
438
+ }
439
+
440
+ public Number remainder(Number x, Number y){
441
+ return x.intValue() % y.intValue();
442
+ }
443
+
444
+ public boolean equiv(Number x, Number y){
445
+ return x.intValue() == y.intValue();
446
+ }
447
+
448
+ public boolean lt(Number x, Number y){
449
+ return x.intValue() < y.intValue();
450
+ }
451
+
452
+ //public Number subtract(Number x, Number y);
453
+ final public Number negate(Number x){
454
+ int val = x.intValue();
455
+ if(val > Integer.MIN_VALUE)
456
+ return -val;
457
+ return -((long) val);
458
+ }
459
+
460
+ public Number inc(Number x){
461
+ int val = x.intValue();
462
+ if(val < Integer.MAX_VALUE)
463
+ return val + 1;
464
+ return BigInteger.valueOf((long) val + 1);
465
+ }
466
+
467
+ public Number dec(Number x){
468
+ int val = x.intValue();
469
+ if(val > Integer.MIN_VALUE)
470
+ return val - 1;
471
+ return BigInteger.valueOf((long) val - 1);
472
+ }
473
+ }
474
+
475
+ final static class LongOps implements Ops{
476
+ public Ops combine(Ops y){
477
+ return y.opsWith(this);
478
+ }
479
+
480
+ final public Ops opsWith(IntegerOps x){
481
+ return this;
482
+ }
483
+
484
+ final public Ops opsWith(LongOps x){
485
+ return this;
486
+ }
487
+
488
+ final public Ops opsWith(FloatOps x){
489
+ return FLOAT_OPS;
490
+ }
491
+
492
+ final public Ops opsWith(DoubleOps x){
493
+ return DOUBLE_OPS;
494
+ }
495
+
496
+ final public Ops opsWith(RatioOps x){
497
+ return RATIO_OPS;
498
+ }
499
+
500
+ final public Ops opsWith(BigIntegerOps x){
501
+ return BIGINTEGER_OPS;
502
+ }
503
+
504
+ final public Ops opsWith(BigDecimalOps x){
505
+ return BIGDECIMAL_OPS;
506
+ }
507
+
508
+ public boolean isZero(Number x){
509
+ return x.longValue() == 0;
510
+ }
511
+
512
+ public boolean isPos(Number x){
513
+ return x.longValue() > 0;
514
+ }
515
+
516
+ public boolean isNeg(Number x){
517
+ return x.longValue() < 0;
518
+ }
519
+
520
+ final public Number add(Number x, Number y){
521
+ long lx = x.longValue(), ly = y.longValue();
522
+ long ret = lx + ly;
523
+ if ((ret ^ lx) < 0 && (ret ^ ly) < 0)
524
+ return BIGINTEGER_OPS.add(x, y);
525
+ return ret;
526
+ }
527
+
528
+ final public Number multiply(Number x, Number y){
529
+ long lx = x.longValue(), ly = y.longValue();
530
+ long ret = lx * ly;
531
+ if (ly != 0 && ret/ly != lx)
532
+ return BIGINTEGER_OPS.multiply(x, y);
533
+ return ret;
534
+ }
535
+
536
+ static long gcd(long u, long v){
537
+ while(v != 0)
538
+ {
539
+ long r = u % v;
540
+ u = v;
541
+ v = r;
542
+ }
543
+ return u;
544
+ }
545
+
546
+ public Number divide(Number x, Number y){
547
+ long n = x.longValue();
548
+ long val = y.longValue();
549
+ long gcd = gcd(n, val);
550
+ if(gcd == 0)
551
+ return 0;
552
+
553
+ n = n / gcd;
554
+ long d = val / gcd;
555
+ if(d == 1)
556
+ return n;
557
+ if(d < 0)
558
+ {
559
+ n = -n;
560
+ d = -d;
561
+ }
562
+ return new Ratio(BigInteger.valueOf(n), BigInteger.valueOf(d));
563
+ }
564
+
565
+ public Number quotient(Number x, Number y){
566
+ return x.longValue() / y.longValue();
567
+ }
568
+
569
+ public Number remainder(Number x, Number y){
570
+ return x.longValue() % y.longValue();
571
+ }
572
+
573
+ public boolean equiv(Number x, Number y){
574
+ return x.longValue() == y.longValue();
575
+ }
576
+
577
+ public boolean lt(Number x, Number y){
578
+ return x.longValue() < y.longValue();
579
+ }
580
+
581
+ //public Number subtract(Number x, Number y);
582
+ final public Number negate(Number x){
583
+ long val = x.longValue();
584
+ if(val > Long.MIN_VALUE)
585
+ return -val;
586
+ return BigInteger.valueOf(val).negate();
587
+ }
588
+
589
+ public Number inc(Number x){
590
+ long val = x.longValue();
591
+ if(val < Long.MAX_VALUE)
592
+ return val + 1;
593
+ return BIGINTEGER_OPS.inc(x);
594
+ }
595
+
596
+ public Number dec(Number x){
597
+ long val = x.longValue();
598
+ if(val > Long.MIN_VALUE)
599
+ return val - 1;
600
+ return BIGINTEGER_OPS.dec(x);
601
+ }
602
+ }
603
+
604
+ final static class FloatOps implements Ops{
605
+ public Ops combine(Ops y){
606
+ return y.opsWith(this);
607
+ }
608
+
609
+ final public Ops opsWith(IntegerOps x){
610
+ return this;
611
+ }
612
+
613
+ final public Ops opsWith(LongOps x){
614
+ return this;
615
+ }
616
+
617
+ final public Ops opsWith(FloatOps x){
618
+ return this;
619
+ }
620
+
621
+ final public Ops opsWith(DoubleOps x){
622
+ return DOUBLE_OPS;
623
+ }
624
+
625
+ final public Ops opsWith(RatioOps x){
626
+ return this;
627
+ }
628
+
629
+ final public Ops opsWith(BigIntegerOps x){
630
+ return this;
631
+ }
632
+
633
+ final public Ops opsWith(BigDecimalOps x){
634
+ return this;
635
+ }
636
+
637
+ public boolean isZero(Number x){
638
+ return x.floatValue() == 0;
639
+ }
640
+
641
+ public boolean isPos(Number x){
642
+ return x.floatValue() > 0;
643
+ }
644
+
645
+ public boolean isNeg(Number x){
646
+ return x.floatValue() < 0;
647
+ }
648
+
649
+ final public Number add(Number x, Number y){
650
+ return x.floatValue() + y.floatValue();
651
+ }
652
+
653
+ final public Number multiply(Number x, Number y){
654
+ return x.floatValue() * y.floatValue();
655
+ }
656
+
657
+ public Number divide(Number x, Number y){
658
+ return x.floatValue() / y.floatValue();
659
+ }
660
+
661
+ public Number quotient(Number x, Number y){
662
+ return Numbers.quotient(x.doubleValue(), y.doubleValue());
663
+ }
664
+
665
+ public Number remainder(Number x, Number y){
666
+ return Numbers.remainder(x.doubleValue(), y.doubleValue());
667
+ }
668
+
669
+ public boolean equiv(Number x, Number y){
670
+ return x.floatValue() == y.floatValue();
671
+ }
672
+
673
+ public boolean lt(Number x, Number y){
674
+ return x.floatValue() < y.floatValue();
675
+ }
676
+
677
+ //public Number subtract(Number x, Number y);
678
+ final public Number negate(Number x){
679
+ return -x.floatValue();
680
+ }
681
+
682
+ public Number inc(Number x){
683
+ return x.floatValue() + 1;
684
+ }
685
+
686
+ public Number dec(Number x){
687
+ return x.floatValue() - 1;
688
+ }
689
+ }
690
+
691
+ final static class DoubleOps implements Ops{
692
+ public Ops combine(Ops y){
693
+ return y.opsWith(this);
694
+ }
695
+
696
+ final public Ops opsWith(IntegerOps x){
697
+ return this;
698
+ }
699
+
700
+ final public Ops opsWith(LongOps x){
701
+ return this;
702
+ }
703
+
704
+ final public Ops opsWith(FloatOps x){
705
+ return this;
706
+ }
707
+
708
+ final public Ops opsWith(DoubleOps x){
709
+ return this;
710
+ }
711
+
712
+ final public Ops opsWith(RatioOps x){
713
+ return this;
714
+ }
715
+
716
+ final public Ops opsWith(BigIntegerOps x){
717
+ return this;
718
+ }
719
+
720
+ final public Ops opsWith(BigDecimalOps x){
721
+ return this;
722
+ }
723
+
724
+ public boolean isZero(Number x){
725
+ return x.doubleValue() == 0;
726
+ }
727
+
728
+ public boolean isPos(Number x){
729
+ return x.doubleValue() > 0;
730
+ }
731
+
732
+ public boolean isNeg(Number x){
733
+ return x.doubleValue() < 0;
734
+ }
735
+
736
+ final public Number add(Number x, Number y){
737
+ return x.doubleValue() + y.doubleValue();
738
+ }
739
+
740
+ final public Number multiply(Number x, Number y){
741
+ return x.doubleValue() * y.doubleValue();
742
+ }
743
+
744
+ public Number divide(Number x, Number y){
745
+ return x.doubleValue() / y.doubleValue();
746
+ }
747
+
748
+ public Number quotient(Number x, Number y){
749
+ return Numbers.quotient(x.doubleValue(), y.doubleValue());
750
+ }
751
+
752
+ public Number remainder(Number x, Number y){
753
+ return Numbers.remainder(x.doubleValue(), y.doubleValue());
754
+ }
755
+
756
+ public boolean equiv(Number x, Number y){
757
+ return x.doubleValue() == y.doubleValue();
758
+ }
759
+
760
+ public boolean lt(Number x, Number y){
761
+ return x.doubleValue() < y.doubleValue();
762
+ }
763
+
764
+ //public Number subtract(Number x, Number y);
765
+ final public Number negate(Number x){
766
+ return -x.doubleValue();
767
+ }
768
+
769
+ public Number inc(Number x){
770
+ return x.doubleValue() + 1;
771
+ }
772
+
773
+ public Number dec(Number x){
774
+ return x.doubleValue() - 1;
775
+ }
776
+ }
777
+
778
+ final static class RatioOps implements Ops{
779
+ public Ops combine(Ops y){
780
+ return y.opsWith(this);
781
+ }
782
+
783
+ final public Ops opsWith(IntegerOps x){
784
+ return this;
785
+ }
786
+
787
+ final public Ops opsWith(LongOps x){
788
+ return this;
789
+ }
790
+
791
+ final public Ops opsWith(FloatOps x){
792
+ return FLOAT_OPS;
793
+ }
794
+
795
+ final public Ops opsWith(DoubleOps x){
796
+ return DOUBLE_OPS;
797
+ }
798
+
799
+ final public Ops opsWith(RatioOps x){
800
+ return this;
801
+ }
802
+
803
+ final public Ops opsWith(BigIntegerOps x){
804
+ return this;
805
+ }
806
+
807
+ final public Ops opsWith(BigDecimalOps x){
808
+ return this;
809
+ }
810
+
811
+ public boolean isZero(Number x){
812
+ Ratio r = (Ratio) x;
813
+ return r.numerator.signum() == 0;
814
+ }
815
+
816
+ public boolean isPos(Number x){
817
+ Ratio r = (Ratio) x;
818
+ return r.numerator.signum() > 0;
819
+ }
820
+
821
+ public boolean isNeg(Number x){
822
+ Ratio r = (Ratio) x;
823
+ return r.numerator.signum() < 0;
824
+ }
825
+
826
+ final public Number add(Number x, Number y){
827
+ Ratio rx = toRatio(x);
828
+ Ratio ry = toRatio(y);
829
+ return divide(ry.numerator.multiply(rx.denominator)
830
+ .add(rx.numerator.multiply(ry.denominator))
831
+ , ry.denominator.multiply(rx.denominator));
832
+ }
833
+
834
+ final public Number multiply(Number x, Number y){
835
+ Ratio rx = toRatio(x);
836
+ Ratio ry = toRatio(y);
837
+ return Numbers.divide(ry.numerator.multiply(rx.numerator)
838
+ , ry.denominator.multiply(rx.denominator));
839
+ }
840
+
841
+ public Number divide(Number x, Number y){
842
+ Ratio rx = toRatio(x);
843
+ Ratio ry = toRatio(y);
844
+ return Numbers.divide(ry.denominator.multiply(rx.numerator)
845
+ , ry.numerator.multiply(rx.denominator));
846
+ }
847
+
848
+ public Number quotient(Number x, Number y){
849
+ Ratio rx = toRatio(x);
850
+ Ratio ry = toRatio(y);
851
+ BigInteger q = rx.numerator.multiply(ry.denominator).divide(
852
+ rx.denominator.multiply(ry.numerator));
853
+ return reduce(q);
854
+ }
855
+
856
+ public Number remainder(Number x, Number y){
857
+ Ratio rx = toRatio(x);
858
+ Ratio ry = toRatio(y);
859
+ BigInteger q = rx.numerator.multiply(ry.denominator).divide(
860
+ rx.denominator.multiply(ry.numerator));
861
+ return Numbers.minus(x, Numbers.multiply(q, y));
862
+ }
863
+
864
+ public boolean equiv(Number x, Number y){
865
+ Ratio rx = toRatio(x);
866
+ Ratio ry = toRatio(y);
867
+ return rx.numerator.equals(ry.numerator)
868
+ && rx.denominator.equals(ry.denominator);
869
+ }
870
+
871
+ public boolean lt(Number x, Number y){
872
+ Ratio rx = toRatio(x);
873
+ Ratio ry = toRatio(y);
874
+ return Numbers.lt(rx.numerator.multiply(ry.denominator), ry.numerator.multiply(rx.denominator));
875
+ }
876
+
877
+ //public Number subtract(Number x, Number y);
878
+ final public Number negate(Number x){
879
+ Ratio r = (Ratio) x;
880
+ return new Ratio(r.numerator.negate(), r.denominator);
881
+ }
882
+
883
+ public Number inc(Number x){
884
+ return Numbers.add(x, 1);
885
+ }
886
+
887
+ public Number dec(Number x){
888
+ return Numbers.add(x, -1);
889
+ }
890
+
891
+ }
892
+
893
+ final static class BigIntegerOps implements Ops{
894
+ public Ops combine(Ops y){
895
+ return y.opsWith(this);
896
+ }
897
+
898
+ final public Ops opsWith(IntegerOps x){
899
+ return this;
900
+ }
901
+
902
+ final public Ops opsWith(LongOps x){
903
+ return this;
904
+ }
905
+
906
+ final public Ops opsWith(FloatOps x){
907
+ return FLOAT_OPS;
908
+ }
909
+
910
+ final public Ops opsWith(DoubleOps x){
911
+ return DOUBLE_OPS;
912
+ }
913
+
914
+ final public Ops opsWith(RatioOps x){
915
+ return RATIO_OPS;
916
+ }
917
+
918
+ final public Ops opsWith(BigIntegerOps x){
919
+ return this;
920
+ }
921
+
922
+ final public Ops opsWith(BigDecimalOps x){
923
+ return BIGDECIMAL_OPS;
924
+ }
925
+
926
+ public boolean isZero(Number x){
927
+ BigInteger bx = toBigInteger(x);
928
+ return bx.signum() == 0;
929
+ }
930
+
931
+ public boolean isPos(Number x){
932
+ BigInteger bx = toBigInteger(x);
933
+ return bx.signum() > 0;
934
+ }
935
+
936
+ public boolean isNeg(Number x){
937
+ BigInteger bx = toBigInteger(x);
938
+ return bx.signum() < 0;
939
+ }
940
+
941
+ final public Number add(Number x, Number y){
942
+ return reduce(toBigInteger(x).add(toBigInteger(y)));
943
+ }
944
+
945
+ final public Number multiply(Number x, Number y){
946
+ return reduce(toBigInteger(x).multiply(toBigInteger(y)));
947
+ }
948
+
949
+ public Number divide(Number x, Number y){
950
+ return Numbers.divide(toBigInteger(x), toBigInteger(y));
951
+ }
952
+
953
+ public Number quotient(Number x, Number y){
954
+ return toBigInteger(x).divide(toBigInteger(y));
955
+ }
956
+
957
+ public Number remainder(Number x, Number y){
958
+ return toBigInteger(x).remainder(toBigInteger(y));
959
+ }
960
+
961
+ public boolean equiv(Number x, Number y){
962
+ return toBigInteger(x).equals(toBigInteger(y));
963
+ }
964
+
965
+ public boolean lt(Number x, Number y){
966
+ return toBigInteger(x).compareTo(toBigInteger(y)) < 0;
967
+ }
968
+
969
+ //public Number subtract(Number x, Number y);
970
+ final public Number negate(Number x){
971
+ return toBigInteger(x).negate();
972
+ }
973
+
974
+ public Number inc(Number x){
975
+ BigInteger bx = toBigInteger(x);
976
+ return reduce(bx.add(BigInteger.ONE));
977
+ }
978
+
979
+ public Number dec(Number x){
980
+ BigInteger bx = toBigInteger(x);
981
+ return reduce(bx.subtract(BigInteger.ONE));
982
+ }
983
+ }
984
+
985
+ final static class BigDecimalOps implements Ops{
986
+ final static Var MATH_CONTEXT = RT.MATH_CONTEXT;
987
+
988
+ public Ops combine(Ops y){
989
+ return y.opsWith(this);
990
+ }
991
+
992
+ final public Ops opsWith(IntegerOps x){
993
+ return this;
994
+ }
995
+
996
+ final public Ops opsWith(LongOps x){
997
+ return this;
998
+ }
999
+
1000
+ final public Ops opsWith(FloatOps x){
1001
+ return FLOAT_OPS;
1002
+ }
1003
+
1004
+ final public Ops opsWith(DoubleOps x){
1005
+ return DOUBLE_OPS;
1006
+ }
1007
+
1008
+ final public Ops opsWith(RatioOps x){
1009
+ return RATIO_OPS;
1010
+ }
1011
+
1012
+ final public Ops opsWith(BigIntegerOps x){
1013
+ return this;
1014
+ }
1015
+
1016
+ final public Ops opsWith(BigDecimalOps x){
1017
+ return this;
1018
+ }
1019
+
1020
+ public boolean isZero(Number x){
1021
+ BigDecimal bx = (BigDecimal) x;
1022
+ return bx.signum() == 0;
1023
+ }
1024
+
1025
+ public boolean isPos(Number x){
1026
+ BigDecimal bx = (BigDecimal) x;
1027
+ return bx.signum() > 0;
1028
+ }
1029
+
1030
+ public boolean isNeg(Number x){
1031
+ BigDecimal bx = (BigDecimal) x;
1032
+ return bx.signum() < 0;
1033
+ }
1034
+
1035
+ final public Number add(Number x, Number y){
1036
+ MathContext mc = (MathContext) MATH_CONTEXT.deref();
1037
+ return mc == null
1038
+ ? toBigDecimal(x).add(toBigDecimal(y))
1039
+ : toBigDecimal(x).add(toBigDecimal(y), mc);
1040
+ }
1041
+
1042
+ final public Number multiply(Number x, Number y){
1043
+ MathContext mc = (MathContext) MATH_CONTEXT.deref();
1044
+ return mc == null
1045
+ ? toBigDecimal(x).multiply(toBigDecimal(y))
1046
+ : toBigDecimal(x).multiply(toBigDecimal(y), mc);
1047
+ }
1048
+
1049
+ public Number divide(Number x, Number y){
1050
+ MathContext mc = (MathContext) MATH_CONTEXT.deref();
1051
+ return mc == null
1052
+ ? toBigDecimal(x).divide(toBigDecimal(y))
1053
+ : toBigDecimal(x).divide(toBigDecimal(y), mc);
1054
+ }
1055
+
1056
+ public Number quotient(Number x, Number y){
1057
+ MathContext mc = (MathContext) MATH_CONTEXT.deref();
1058
+ return mc == null
1059
+ ? toBigDecimal(x).divideToIntegralValue(toBigDecimal(y))
1060
+ : toBigDecimal(x).divideToIntegralValue(toBigDecimal(y), mc);
1061
+ }
1062
+
1063
+ public Number remainder(Number x, Number y){
1064
+ MathContext mc = (MathContext) MATH_CONTEXT.deref();
1065
+ return mc == null
1066
+ ? toBigDecimal(x).remainder(toBigDecimal(y))
1067
+ : toBigDecimal(x).remainder(toBigDecimal(y), mc);
1068
+ }
1069
+
1070
+ public boolean equiv(Number x, Number y){
1071
+ return toBigDecimal(x).equals(toBigDecimal(y));
1072
+ }
1073
+
1074
+ public boolean lt(Number x, Number y){
1075
+ return toBigDecimal(x).compareTo(toBigDecimal(y)) < 0;
1076
+ }
1077
+
1078
+ //public Number subtract(Number x, Number y);
1079
+ final public Number negate(Number x){
1080
+ MathContext mc = (MathContext) MATH_CONTEXT.deref();
1081
+ return mc == null
1082
+ ? ((BigDecimal) x).negate()
1083
+ : ((BigDecimal) x).negate(mc);
1084
+ }
1085
+
1086
+ public Number inc(Number x){
1087
+ MathContext mc = (MathContext) MATH_CONTEXT.deref();
1088
+ BigDecimal bx = (BigDecimal) x;
1089
+ return mc == null
1090
+ ? bx.add(BigDecimal.ONE)
1091
+ : bx.add(BigDecimal.ONE, mc);
1092
+ }
1093
+
1094
+ public Number dec(Number x){
1095
+ MathContext mc = (MathContext) MATH_CONTEXT.deref();
1096
+ BigDecimal bx = (BigDecimal) x;
1097
+ return mc == null
1098
+ ? bx.subtract(BigDecimal.ONE)
1099
+ : bx.subtract(BigDecimal.ONE, mc);
1100
+ }
1101
+ }
1102
+
1103
+ final static class IntegerBitOps implements BitOps{
1104
+ public BitOps combine(BitOps y){
1105
+ return y.bitOpsWith(this);
1106
+ }
1107
+
1108
+ final public BitOps bitOpsWith(IntegerBitOps x){
1109
+ return this;
1110
+ }
1111
+
1112
+ final public BitOps bitOpsWith(LongBitOps x){
1113
+ return LONG_BITOPS;
1114
+ }
1115
+
1116
+ final public BitOps bitOpsWith(BigIntegerBitOps x){
1117
+ return BIGINTEGER_BITOPS;
1118
+ }
1119
+
1120
+
1121
+ public Number not(Number x){
1122
+ return ~x.intValue();
1123
+ }
1124
+
1125
+ public Number and(Number x, Number y){
1126
+ return x.intValue() & y.intValue();
1127
+ }
1128
+
1129
+ public Number or(Number x, Number y){
1130
+ return x.intValue() | y.intValue();
1131
+ }
1132
+
1133
+ public Number xor(Number x, Number y){
1134
+ return x.intValue() ^ y.intValue();
1135
+ }
1136
+
1137
+ public Number andNot(Number x, Number y){
1138
+ return x.intValue() & ~y.intValue();
1139
+ }
1140
+
1141
+ public Number clearBit(Number x, int n){
1142
+ if(n < 31)
1143
+ return x.intValue() & ~(1 << n);
1144
+ else if(n < 63)
1145
+ return x.longValue() & ~(1L << n);
1146
+ else
1147
+ return toBigInteger(x).clearBit(n);
1148
+ }
1149
+
1150
+ public Number setBit(Number x, int n){
1151
+ if(n < 31)
1152
+ return x.intValue() | (1 << n);
1153
+ else if(n < 63)
1154
+ return x.longValue() | (1L << n);
1155
+ else
1156
+ return toBigInteger(x).setBit(n);
1157
+ }
1158
+
1159
+ public Number flipBit(Number x, int n){
1160
+ if(n < 31)
1161
+ return x.intValue() ^ (1 << n);
1162
+ else if(n < 63)
1163
+ return x.longValue() ^ (1L << n);
1164
+ else
1165
+ return toBigInteger(x).flipBit(n);
1166
+ }
1167
+
1168
+ public boolean testBit(Number x, int n){
1169
+ if(n < 32)
1170
+ return (x.intValue() & (1 << n)) != 0;
1171
+ else if(n < 64)
1172
+ return (x.longValue() & (1L << n)) != 0;
1173
+ else
1174
+ return toBigInteger(x).testBit(n);
1175
+ }
1176
+
1177
+ public Number shiftLeft(Number x, int n){
1178
+ if(n < 32)
1179
+ {
1180
+ if(n < 0)
1181
+ return shiftRight(x, -n);
1182
+ return reduce(x.longValue() << n);
1183
+ }
1184
+ else
1185
+ return reduce(toBigInteger(x).shiftLeft(n));
1186
+ }
1187
+
1188
+ public Number shiftRight(Number x, int n){
1189
+ if(n < 0)
1190
+ return shiftLeft(x, -n);
1191
+ return x.intValue() >> n;
1192
+ }
1193
+ }
1194
+
1195
+ final static class LongBitOps implements BitOps{
1196
+ public BitOps combine(BitOps y){
1197
+ return y.bitOpsWith(this);
1198
+ }
1199
+
1200
+ final public BitOps bitOpsWith(IntegerBitOps x){
1201
+ return this;
1202
+ }
1203
+
1204
+ final public BitOps bitOpsWith(LongBitOps x){
1205
+ return this;
1206
+ }
1207
+
1208
+ final public BitOps bitOpsWith(BigIntegerBitOps x){
1209
+ return BIGINTEGER_BITOPS;
1210
+ }
1211
+
1212
+ public Number not(Number x){
1213
+ return ~x.longValue();
1214
+ }
1215
+
1216
+ public Number and(Number x, Number y){
1217
+ return x.longValue() & y.longValue();
1218
+ }
1219
+
1220
+ public Number or(Number x, Number y){
1221
+ return x.longValue() | y.longValue();
1222
+ }
1223
+
1224
+ public Number xor(Number x, Number y){
1225
+ return x.longValue() ^ y.longValue();
1226
+ }
1227
+
1228
+ public Number andNot(Number x, Number y){
1229
+ return x.longValue() & ~y.longValue();
1230
+ }
1231
+
1232
+ public Number clearBit(Number x, int n){
1233
+ if(n < 63)
1234
+ return x.longValue() & ~(1L << n);
1235
+ else
1236
+ return toBigInteger(x).clearBit(n);
1237
+ }
1238
+
1239
+ public Number setBit(Number x, int n){
1240
+ if(n < 63)
1241
+ return x.longValue() | (1L << n);
1242
+ else
1243
+ return toBigInteger(x).setBit(n);
1244
+ }
1245
+
1246
+ public Number flipBit(Number x, int n){
1247
+ if(n < 63)
1248
+ return x.longValue() ^ (1L << n);
1249
+ else
1250
+ return toBigInteger(x).flipBit(n);
1251
+ }
1252
+
1253
+ public boolean testBit(Number x, int n){
1254
+ if(n < 64)
1255
+ return (x.longValue() & (1L << n)) != 0;
1256
+ else
1257
+ return toBigInteger(x).testBit(n);
1258
+ }
1259
+
1260
+ public Number shiftLeft(Number x, int n){
1261
+ if(n < 0)
1262
+ return shiftRight(x, -n);
1263
+ return reduce(toBigInteger(x).shiftLeft(n));
1264
+ }
1265
+
1266
+ public Number shiftRight(Number x, int n){
1267
+ if(n < 0)
1268
+ return shiftLeft(x, -n);
1269
+ return x.longValue() >> n;
1270
+ }
1271
+ }
1272
+
1273
+ final static class BigIntegerBitOps implements BitOps{
1274
+ public BitOps combine(BitOps y){
1275
+ return y.bitOpsWith(this);
1276
+ }
1277
+
1278
+ final public BitOps bitOpsWith(IntegerBitOps x){
1279
+ return this;
1280
+ }
1281
+
1282
+ final public BitOps bitOpsWith(LongBitOps x){
1283
+ return this;
1284
+ }
1285
+
1286
+ final public BitOps bitOpsWith(BigIntegerBitOps x){
1287
+ return this;
1288
+ }
1289
+
1290
+ public Number not(Number x){
1291
+ return toBigInteger(x).not();
1292
+ }
1293
+
1294
+ public Number and(Number x, Number y){
1295
+ return toBigInteger(x).and(toBigInteger(y));
1296
+ }
1297
+
1298
+ public Number or(Number x, Number y){
1299
+ return toBigInteger(x).or(toBigInteger(y));
1300
+ }
1301
+
1302
+ public Number xor(Number x, Number y){
1303
+ return toBigInteger(x).xor(toBigInteger(y));
1304
+ }
1305
+
1306
+ public Number andNot(Number x, Number y){
1307
+ return toBigInteger(x).andNot(toBigInteger(y));
1308
+ }
1309
+
1310
+ public Number clearBit(Number x, int n){
1311
+ return toBigInteger(x).clearBit(n);
1312
+ }
1313
+
1314
+ public Number setBit(Number x, int n){
1315
+ return toBigInteger(x).setBit(n);
1316
+ }
1317
+
1318
+ public Number flipBit(Number x, int n){
1319
+ return toBigInteger(x).flipBit(n);
1320
+ }
1321
+
1322
+ public boolean testBit(Number x, int n){
1323
+ return toBigInteger(x).testBit(n);
1324
+ }
1325
+
1326
+ public Number shiftLeft(Number x, int n){
1327
+ return toBigInteger(x).shiftLeft(n);
1328
+ }
1329
+
1330
+ public Number shiftRight(Number x, int n){
1331
+ return toBigInteger(x).shiftRight(n);
1332
+ }
1333
+ }
1334
+
1335
+ static final IntegerOps INTEGER_OPS = new IntegerOps();
1336
+ static final LongOps LONG_OPS = new LongOps();
1337
+ static final FloatOps FLOAT_OPS = new FloatOps();
1338
+ static final DoubleOps DOUBLE_OPS = new DoubleOps();
1339
+ static final RatioOps RATIO_OPS = new RatioOps();
1340
+ static final BigIntegerOps BIGINTEGER_OPS = new BigIntegerOps();
1341
+ static final BigDecimalOps BIGDECIMAL_OPS = new BigDecimalOps();
1342
+
1343
+ static final IntegerBitOps INTEGER_BITOPS = new IntegerBitOps();
1344
+ static final LongBitOps LONG_BITOPS = new LongBitOps();
1345
+ static final BigIntegerBitOps BIGINTEGER_BITOPS = new BigIntegerBitOps();
1346
+
1347
+ static Ops ops(Object x){
1348
+ Class xc = x.getClass();
1349
+
1350
+ if(xc == Integer.class)
1351
+ return INTEGER_OPS;
1352
+ else if(xc == Double.class)
1353
+ return DOUBLE_OPS;
1354
+ else if(xc == Float.class)
1355
+ return FLOAT_OPS;
1356
+ else if(xc == BigInteger.class)
1357
+ return BIGINTEGER_OPS;
1358
+ else if(xc == Long.class)
1359
+ return LONG_OPS;
1360
+ else if(xc == Ratio.class)
1361
+ return RATIO_OPS;
1362
+ else if(xc == BigDecimal.class)
1363
+ return BIGDECIMAL_OPS;
1364
+ else
1365
+ return INTEGER_OPS;
1366
+ }
1367
+
1368
+ static BitOps bitOps(Object x){
1369
+ Class xc = x.getClass();
1370
+
1371
+ if(xc == Integer.class)
1372
+ return INTEGER_BITOPS;
1373
+ else if(xc == Long.class)
1374
+ return LONG_BITOPS;
1375
+ else if(xc == BigInteger.class)
1376
+ return BIGINTEGER_BITOPS;
1377
+ else if(xc == Double.class || xc == Float.class || xc == BigDecimalOps.class || xc == Ratio.class)
1378
+ throw new ArithmeticException("bit operation on non integer type: " + xc);
1379
+ else
1380
+ return INTEGER_BITOPS;
1381
+ }
1382
+
1383
+ //final static ExecutorService executor = Executors.newCachedThreadPool();
1384
+ //static public int minChunk = 100;
1385
+ //static int chunkSize(int alength){
1386
+ // return Math.max(alength / Runtime.getRuntime().availableProcessors(), minChunk);
1387
+ //}
1388
+
1389
+ // }
1390
+ // else
1391
+ // {
1392
+ // LinkedList<Callable<Float>> ops = new LinkedList<Callable<Float>>();
1393
+ // for(int offset = 0;offset < xs.length;offset+=chunk)
1394
+ // {
1395
+ // final int start = offset;
1396
+ // final int end = Math.min(xs.length, start + chunk);
1397
+ // ops.add(new Callable<Float>(){
1398
+ // public Float call() throws Exception{
1399
+ // for(int i=start;i<end;i++)
1400
+ // xs[i] += ys[i];
1401
+ // return null;
1402
+ // }});
1403
+ // }
1404
+ // executor.invokeAll(ops);
1405
+ // }
1406
+
1407
+
1408
+ static public float[] float_array(int size, Object init){
1409
+ float[] ret = new float[size];
1410
+ if(init instanceof Number)
1411
+ {
1412
+ float f = ((Number) init).floatValue();
1413
+ for(int i = 0; i < ret.length; i++)
1414
+ ret[i] = f;
1415
+ }
1416
+ else
1417
+ {
1418
+ ISeq s = RT.seq(init);
1419
+ for(int i = 0; i < size && s != null; i++, s = s.next())
1420
+ ret[i] = ((Number) s.first()).floatValue();
1421
+ }
1422
+ return ret;
1423
+ }
1424
+
1425
+ static public float[] float_array(Object sizeOrSeq){
1426
+ if(sizeOrSeq instanceof Number)
1427
+ return new float[((Number) sizeOrSeq).intValue()];
1428
+ else
1429
+ {
1430
+ ISeq s = RT.seq(sizeOrSeq);
1431
+ int size = s.count();
1432
+ float[] ret = new float[size];
1433
+ for(int i = 0; i < size && s != null; i++, s = s.next())
1434
+ ret[i] = ((Number) s.first()).floatValue();
1435
+ return ret;
1436
+ }
1437
+ }
1438
+
1439
+ static public double[] double_array(int size, Object init){
1440
+ double[] ret = new double[size];
1441
+ if(init instanceof Number)
1442
+ {
1443
+ double f = ((Number) init).doubleValue();
1444
+ for(int i = 0; i < ret.length; i++)
1445
+ ret[i] = f;
1446
+ }
1447
+ else
1448
+ {
1449
+ ISeq s = RT.seq(init);
1450
+ for(int i = 0; i < size && s != null; i++, s = s.next())
1451
+ ret[i] = ((Number) s.first()).doubleValue();
1452
+ }
1453
+ return ret;
1454
+ }
1455
+
1456
+ static public double[] double_array(Object sizeOrSeq){
1457
+ if(sizeOrSeq instanceof Number)
1458
+ return new double[((Number) sizeOrSeq).intValue()];
1459
+ else
1460
+ {
1461
+ ISeq s = RT.seq(sizeOrSeq);
1462
+ int size = s.count();
1463
+ double[] ret = new double[size];
1464
+ for(int i = 0; i < size && s != null; i++, s = s.next())
1465
+ ret[i] = ((Number) s.first()).doubleValue();
1466
+ return ret;
1467
+ }
1468
+ }
1469
+
1470
+ static public int[] int_array(int size, Object init){
1471
+ int[] ret = new int[size];
1472
+ if(init instanceof Number)
1473
+ {
1474
+ int f = ((Number) init).intValue();
1475
+ for(int i = 0; i < ret.length; i++)
1476
+ ret[i] = f;
1477
+ }
1478
+ else
1479
+ {
1480
+ ISeq s = RT.seq(init);
1481
+ for(int i = 0; i < size && s != null; i++, s = s.next())
1482
+ ret[i] = ((Number) s.first()).intValue();
1483
+ }
1484
+ return ret;
1485
+ }
1486
+
1487
+ static public int[] int_array(Object sizeOrSeq){
1488
+ if(sizeOrSeq instanceof Number)
1489
+ return new int[((Number) sizeOrSeq).intValue()];
1490
+ else
1491
+ {
1492
+ ISeq s = RT.seq(sizeOrSeq);
1493
+ int size = s.count();
1494
+ int[] ret = new int[size];
1495
+ for(int i = 0; i < size && s != null; i++, s = s.next())
1496
+ ret[i] = ((Number) s.first()).intValue();
1497
+ return ret;
1498
+ }
1499
+ }
1500
+
1501
+ static public long[] long_array(int size, Object init){
1502
+ long[] ret = new long[size];
1503
+ if(init instanceof Number)
1504
+ {
1505
+ long f = ((Number) init).longValue();
1506
+ for(int i = 0; i < ret.length; i++)
1507
+ ret[i] = f;
1508
+ }
1509
+ else
1510
+ {
1511
+ ISeq s = RT.seq(init);
1512
+ for(int i = 0; i < size && s != null; i++, s = s.next())
1513
+ ret[i] = ((Number) s.first()).longValue();
1514
+ }
1515
+ return ret;
1516
+ }
1517
+
1518
+ static public long[] long_array(Object sizeOrSeq){
1519
+ if(sizeOrSeq instanceof Number)
1520
+ return new long[((Number) sizeOrSeq).intValue()];
1521
+ else
1522
+ {
1523
+ ISeq s = RT.seq(sizeOrSeq);
1524
+ int size = s.count();
1525
+ long[] ret = new long[size];
1526
+ for(int i = 0; i < size && s != null; i++, s = s.next())
1527
+ ret[i] = ((Number) s.first()).longValue();
1528
+ return ret;
1529
+ }
1530
+ }
1531
+
1532
+ static public float[] floats(Object array){
1533
+ return (float[]) array;
1534
+ }
1535
+
1536
+ static public double[] doubles(Object array){
1537
+ return (double[]) array;
1538
+ }
1539
+
1540
+ static public int[] ints(Object array){
1541
+ return (int[]) array;
1542
+ }
1543
+
1544
+ static public long[] longs(Object array){
1545
+ return (long[]) array;
1546
+ }
1547
+
1548
+ static public Number num(Object x){
1549
+ return (Number) x;
1550
+ }
1551
+
1552
+ static public Number num(float x){
1553
+ return x;
1554
+ }
1555
+
1556
+ static public float add(float x, float y){
1557
+ return x + y;
1558
+ }
1559
+
1560
+ static public float minus(float x, float y){
1561
+ return x - y;
1562
+ }
1563
+
1564
+ static public float minus(float x){
1565
+ return -x;
1566
+ }
1567
+
1568
+ static public float inc(float x){
1569
+ return x + 1;
1570
+ }
1571
+
1572
+ static public float dec(float x){
1573
+ return x - 1;
1574
+ }
1575
+
1576
+ static public float multiply(float x, float y){
1577
+ return x * y;
1578
+ }
1579
+
1580
+ static public float divide(float x, float y){
1581
+ return x / y;
1582
+ }
1583
+
1584
+ static public boolean equiv(float x, float y){
1585
+ return x == y;
1586
+ }
1587
+
1588
+ static public boolean lt(float x, float y){
1589
+ return x < y;
1590
+ }
1591
+
1592
+ static public boolean lte(float x, float y){
1593
+ return x <= y;
1594
+ }
1595
+
1596
+ static public boolean gt(float x, float y){
1597
+ return x > y;
1598
+ }
1599
+
1600
+ static public boolean gte(float x, float y){
1601
+ return x >= y;
1602
+ }
1603
+
1604
+ static public boolean isPos(float x){
1605
+ return x > 0;
1606
+ }
1607
+
1608
+ static public boolean isNeg(float x){
1609
+ return x < 0;
1610
+ }
1611
+
1612
+ static public boolean isZero(float x){
1613
+ return x == 0;
1614
+ }
1615
+
1616
+ static public Number num(double x){
1617
+ return x;
1618
+ }
1619
+
1620
+ static public double add(double x, double y){
1621
+ return x + y;
1622
+ }
1623
+
1624
+ static public double minus(double x, double y){
1625
+ return x - y;
1626
+ }
1627
+
1628
+ static public double minus(double x){
1629
+ return -x;
1630
+ }
1631
+
1632
+ static public double inc(double x){
1633
+ return x + 1;
1634
+ }
1635
+
1636
+ static public double dec(double x){
1637
+ return x - 1;
1638
+ }
1639
+
1640
+ static public double multiply(double x, double y){
1641
+ return x * y;
1642
+ }
1643
+
1644
+ static public double divide(double x, double y){
1645
+ return x / y;
1646
+ }
1647
+
1648
+ static public boolean equiv(double x, double y){
1649
+ return x == y;
1650
+ }
1651
+
1652
+ static public boolean lt(double x, double y){
1653
+ return x < y;
1654
+ }
1655
+
1656
+ static public boolean lte(double x, double y){
1657
+ return x <= y;
1658
+ }
1659
+
1660
+ static public boolean gt(double x, double y){
1661
+ return x > y;
1662
+ }
1663
+
1664
+ static public boolean gte(double x, double y){
1665
+ return x >= y;
1666
+ }
1667
+
1668
+ static public boolean isPos(double x){
1669
+ return x > 0;
1670
+ }
1671
+
1672
+ static public boolean isNeg(double x){
1673
+ return x < 0;
1674
+ }
1675
+
1676
+ static public boolean isZero(double x){
1677
+ return x == 0;
1678
+ }
1679
+
1680
+ static int throwIntOverflow(){
1681
+ throw new ArithmeticException("integer overflow");
1682
+ }
1683
+
1684
+ static public Number num(int x){
1685
+ return x;
1686
+ }
1687
+
1688
+ static public int unchecked_add(int x, int y){
1689
+ return x + y;
1690
+ }
1691
+
1692
+ static public int unchecked_subtract(int x, int y){
1693
+ return x - y;
1694
+ }
1695
+
1696
+ static public int unchecked_negate(int x){
1697
+ return -x;
1698
+ }
1699
+
1700
+ static public int unchecked_inc(int x){
1701
+ return x + 1;
1702
+ }
1703
+
1704
+ static public int unchecked_dec(int x){
1705
+ return x - 1;
1706
+ }
1707
+
1708
+ static public int unchecked_multiply(int x, int y){
1709
+ return x * y;
1710
+ }
1711
+
1712
+ static public int add(int x, int y){
1713
+ int ret = x + y;
1714
+ if ((ret ^ x) < 0 && (ret ^ y) < 0)
1715
+ return throwIntOverflow();
1716
+ return ret;
1717
+ }
1718
+
1719
+ static public int not(int x){
1720
+ return ~x;
1721
+ }
1722
+
1723
+ static public int and(int x, int y){
1724
+ return x & y;
1725
+ }
1726
+
1727
+ static public int or(int x, int y){
1728
+ return x | y;
1729
+ }
1730
+
1731
+ static public int xor(int x, int y){
1732
+ return x ^ y;
1733
+ }
1734
+
1735
+ static public int minus(int x, int y){
1736
+ int ret = x - y;
1737
+ if (((ret ^ x) < 0 && (ret ^ ~y) < 0))
1738
+ return throwIntOverflow();
1739
+ return ret;
1740
+ }
1741
+
1742
+ static public int minus(int x){
1743
+ if(x == Integer.MIN_VALUE)
1744
+ return throwIntOverflow();
1745
+ return -x;
1746
+ }
1747
+
1748
+ static public int inc(int x){
1749
+ if(x == Integer.MAX_VALUE)
1750
+ return throwIntOverflow();
1751
+ return x + 1;
1752
+ }
1753
+
1754
+ static public int dec(int x){
1755
+ if(x == Integer.MIN_VALUE)
1756
+ return throwIntOverflow();
1757
+ return x - 1;
1758
+ }
1759
+
1760
+ static public int multiply(int x, int y){
1761
+ int ret = x * y;
1762
+ if (y != 0 && ret/y != x)
1763
+ return throwIntOverflow();
1764
+ return ret;
1765
+ }
1766
+
1767
+ static public int unchecked_divide(int x, int y){
1768
+ return x / y;
1769
+ }
1770
+
1771
+ static public int unchecked_remainder(int x, int y){
1772
+ return x % y;
1773
+ }
1774
+
1775
+ static public boolean equiv(int x, int y){
1776
+ return x == y;
1777
+ }
1778
+
1779
+ static public boolean lt(int x, int y){
1780
+ return x < y;
1781
+ }
1782
+
1783
+ static public boolean lte(int x, int y){
1784
+ return x <= y;
1785
+ }
1786
+
1787
+ static public boolean gt(int x, int y){
1788
+ return x > y;
1789
+ }
1790
+
1791
+ static public boolean gte(int x, int y){
1792
+ return x >= y;
1793
+ }
1794
+
1795
+ static public boolean isPos(int x){
1796
+ return x > 0;
1797
+ }
1798
+
1799
+ static public boolean isNeg(int x){
1800
+ return x < 0;
1801
+ }
1802
+
1803
+ static public boolean isZero(int x){
1804
+ return x == 0;
1805
+ }
1806
+
1807
+ static public Number num(long x){
1808
+ return x;
1809
+ }
1810
+
1811
+ static public long unchecked_add(long x, long y){
1812
+ return x + y;
1813
+ }
1814
+
1815
+ static public long unchecked_subtract(long x, long y){
1816
+ return x - y;
1817
+ }
1818
+
1819
+ static public long unchecked_negate(long x){
1820
+ return -x;
1821
+ }
1822
+
1823
+ static public long unchecked_inc(long x){
1824
+ return x + 1;
1825
+ }
1826
+
1827
+ static public long unchecked_dec(long x){
1828
+ return x - 1;
1829
+ }
1830
+
1831
+ static public long unchecked_multiply(long x, long y){
1832
+ return x * y;
1833
+ }
1834
+
1835
+ static public long add(long x, long y){
1836
+ long ret = x + y;
1837
+ if ((ret ^ x) < 0 && (ret ^ y) < 0)
1838
+ return throwIntOverflow();
1839
+ return ret;
1840
+ }
1841
+
1842
+ static public long minus(long x, long y){
1843
+ long ret = x - y;
1844
+ if (((ret ^ x) < 0 && (ret ^ ~y) < 0))
1845
+ return throwIntOverflow();
1846
+ return ret;
1847
+ }
1848
+
1849
+ static public long minus(long x){
1850
+ if(x == Long.MIN_VALUE)
1851
+ return throwIntOverflow();
1852
+ return -x;
1853
+ }
1854
+
1855
+ static public long inc(long x){
1856
+ if(x == Long.MAX_VALUE)
1857
+ return throwIntOverflow();
1858
+ return x + 1;
1859
+ }
1860
+
1861
+ static public long dec(long x){
1862
+ if(x == Long.MIN_VALUE)
1863
+ return throwIntOverflow();
1864
+ return x - 1;
1865
+ }
1866
+
1867
+ static public long multiply(long x, long y){
1868
+ long ret = x * y;
1869
+ if (y != 0 && ret/y != x)
1870
+ return throwIntOverflow();
1871
+ return ret;
1872
+ }
1873
+
1874
+ static public long unchecked_divide(long x, long y){
1875
+ return x / y;
1876
+ }
1877
+
1878
+ static public long unchecked_remainder(long x, long y){
1879
+ return x % y;
1880
+ }
1881
+
1882
+ static public boolean equiv(long x, long y){
1883
+ return x == y;
1884
+ }
1885
+
1886
+ static public boolean lt(long x, long y){
1887
+ return x < y;
1888
+ }
1889
+
1890
+ static public boolean lte(long x, long y){
1891
+ return x <= y;
1892
+ }
1893
+
1894
+ static public boolean gt(long x, long y){
1895
+ return x > y;
1896
+ }
1897
+
1898
+ static public boolean gte(long x, long y){
1899
+ return x >= y;
1900
+ }
1901
+
1902
+ static public boolean isPos(long x){
1903
+ return x > 0;
1904
+ }
1905
+
1906
+ static public boolean isNeg(long x){
1907
+ return x < 0;
1908
+ }
1909
+
1910
+ static public boolean isZero(long x){
1911
+ return x == 0;
1912
+ }
1913
+
1914
+ /*
1915
+ static public class F{
1916
+ static public float add(float x, float y){
1917
+ return x + y;
1918
+ }
1919
+
1920
+ static public float subtract(float x, float y){
1921
+ return x - y;
1922
+ }
1923
+
1924
+ static public float negate(float x){
1925
+ return -x;
1926
+ }
1927
+
1928
+ static public float inc(float x){
1929
+ return x + 1;
1930
+ }
1931
+
1932
+ static public float dec(float x){
1933
+ return x - 1;
1934
+ }
1935
+
1936
+ static public float multiply(float x, float y){
1937
+ return x * y;
1938
+ }
1939
+
1940
+ static public float divide(float x, float y){
1941
+ return x / y;
1942
+ }
1943
+
1944
+ static public boolean equiv(float x, float y){
1945
+ return x == y;
1946
+ }
1947
+
1948
+ static public boolean lt(float x, float y){
1949
+ return x < y;
1950
+ }
1951
+
1952
+ static public boolean lte(float x, float y){
1953
+ return x <= y;
1954
+ }
1955
+
1956
+ static public boolean gt(float x, float y){
1957
+ return x > y;
1958
+ }
1959
+
1960
+ static public boolean gte(float x, float y){
1961
+ return x >= y;
1962
+ }
1963
+
1964
+ static public boolean pos(float x){
1965
+ return x > 0;
1966
+ }
1967
+
1968
+ static public boolean neg(float x){
1969
+ return x < 0;
1970
+ }
1971
+
1972
+ static public boolean zero(float x){
1973
+ return x == 0;
1974
+ }
1975
+
1976
+ static public float aget(float[] xs, int i){
1977
+ return xs[i];
1978
+ }
1979
+
1980
+ static public float aset(float[] xs, int i, float v){
1981
+ xs[i] = v;
1982
+ return v;
1983
+ }
1984
+
1985
+ static public int alength(float[] xs){
1986
+ return xs.length;
1987
+ }
1988
+
1989
+ static public float[] aclone(float[] xs){
1990
+ return xs.clone();
1991
+ }
1992
+
1993
+ static public float[] vec(int size, Object init){
1994
+ float[] ret = new float[size];
1995
+ if(init instanceof Number)
1996
+ {
1997
+ float f = ((Number) init).floatValue();
1998
+ for(int i = 0; i < ret.length; i++)
1999
+ ret[i] = f;
2000
+ }
2001
+ else
2002
+ {
2003
+ ISeq s = RT.seq(init);
2004
+ for(int i = 0; i < size && s != null; i++, s = s.rest())
2005
+ ret[i] = ((Number) s.first()).floatValue();
2006
+ }
2007
+ return ret;
2008
+ }
2009
+
2010
+ static public float[] vec(Object sizeOrSeq){
2011
+ if(sizeOrSeq instanceof Number)
2012
+ return new float[((Number) sizeOrSeq).intValue()];
2013
+ else
2014
+ {
2015
+ ISeq s = RT.seq(sizeOrSeq);
2016
+ int size = s.count();
2017
+ float[] ret = new float[size];
2018
+ for(int i = 0; i < size && s != null; i++, s = s.rest())
2019
+ ret[i] = ((Number) s.first()).intValue();
2020
+ return ret;
2021
+ }
2022
+ }
2023
+
2024
+
2025
+ static public float[] vsadd(float[] x, float y){
2026
+ final float[] xs = x.clone();
2027
+ for(int i = 0; i < xs.length; i++)
2028
+ xs[i] += y;
2029
+ return xs;
2030
+ }
2031
+
2032
+ static public float[] vssub(float[] x, float y){
2033
+ final float[] xs = x.clone();
2034
+ for(int i = 0; i < xs.length; i++)
2035
+ xs[i] -= y;
2036
+ return xs;
2037
+ }
2038
+
2039
+ static public float[] vsdiv(float[] x, float y){
2040
+ final float[] xs = x.clone();
2041
+ for(int i = 0; i < xs.length; i++)
2042
+ xs[i] /= y;
2043
+ return xs;
2044
+ }
2045
+
2046
+ static public float[] vsmul(float[] x, float y){
2047
+ final float[] xs = x.clone();
2048
+ for(int i = 0; i < xs.length; i++)
2049
+ xs[i] *= y;
2050
+ return xs;
2051
+ }
2052
+
2053
+ static public float[] svdiv(float y, float[] x){
2054
+ final float[] xs = x.clone();
2055
+ for(int i = 0; i < xs.length; i++)
2056
+ xs[i] = y / xs[i];
2057
+ return xs;
2058
+ }
2059
+
2060
+ static public float[] vsmuladd(float[] x, float y, float[] zs){
2061
+ final float[] xs = x.clone();
2062
+ for(int i = 0; i < xs.length; i++)
2063
+ xs[i] = xs[i] * y + zs[i];
2064
+ return xs;
2065
+ }
2066
+
2067
+ static public float[] vsmulsub(float[] x, float y, float[] zs){
2068
+ final float[] xs = x.clone();
2069
+ for(int i = 0; i < xs.length; i++)
2070
+ xs[i] = xs[i] * y - zs[i];
2071
+ return xs;
2072
+ }
2073
+
2074
+ static public float[] vsmulsadd(float[] x, float y, float z){
2075
+ final float[] xs = x.clone();
2076
+ for(int i = 0; i < xs.length; i++)
2077
+ xs[i] = xs[i] * y + z;
2078
+ return xs;
2079
+ }
2080
+
2081
+ static public float[] vsmulssub(float[] x, float y, float z){
2082
+ final float[] xs = x.clone();
2083
+ for(int i = 0; i < xs.length; i++)
2084
+ xs[i] = xs[i] * y - z;
2085
+ return xs;
2086
+ }
2087
+
2088
+ static public float[] vabs(float[] x){
2089
+ final float[] xs = x.clone();
2090
+ for(int i = 0; i < xs.length; i++)
2091
+ xs[i] = Math.abs(xs[i]);
2092
+ return xs;
2093
+ }
2094
+
2095
+ static public float[] vnegabs(float[] x){
2096
+ final float[] xs = x.clone();
2097
+ for(int i = 0; i < xs.length; i++)
2098
+ xs[i] = -Math.abs(xs[i]);
2099
+ return xs;
2100
+ }
2101
+
2102
+ static public float[] vneg(float[] x){
2103
+ final float[] xs = x.clone();
2104
+ for(int i = 0; i < xs.length; i++)
2105
+ xs[i] = -xs[i];
2106
+ return xs;
2107
+ }
2108
+
2109
+ static public float[] vsqr(float[] x){
2110
+ final float[] xs = x.clone();
2111
+ for(int i = 0; i < xs.length; i++)
2112
+ xs[i] *= xs[i];
2113
+ return xs;
2114
+ }
2115
+
2116
+ static public float[] vsignedsqr(float[] x){
2117
+ final float[] xs = x.clone();
2118
+ for(int i = 0; i < xs.length; i++)
2119
+ xs[i] *= Math.abs(xs[i]);
2120
+ return xs;
2121
+ }
2122
+
2123
+ static public float[] vclip(float[] x, float low, float high){
2124
+ final float[] xs = x.clone();
2125
+ for(int i = 0; i < xs.length; i++)
2126
+ {
2127
+ if(xs[i] < low)
2128
+ xs[i] = low;
2129
+ else if(xs[i] > high)
2130
+ xs[i] = high;
2131
+ }
2132
+ return xs;
2133
+ }
2134
+
2135
+ static public IPersistentVector vclipcounts(float[] x, float low, float high){
2136
+ final float[] xs = x.clone();
2137
+ int lowc = 0;
2138
+ int highc = 0;
2139
+
2140
+ for(int i = 0; i < xs.length; i++)
2141
+ {
2142
+ if(xs[i] < low)
2143
+ {
2144
+ ++lowc;
2145
+ xs[i] = low;
2146
+ }
2147
+ else if(xs[i] > high)
2148
+ {
2149
+ ++highc;
2150
+ xs[i] = high;
2151
+ }
2152
+ }
2153
+ return RT.vector(xs, lowc, highc);
2154
+ }
2155
+
2156
+ static public float[] vthresh(float[] x, float thresh, float otherwise){
2157
+ final float[] xs = x.clone();
2158
+ for(int i = 0; i < xs.length; i++)
2159
+ {
2160
+ if(xs[i] < thresh)
2161
+ xs[i] = otherwise;
2162
+ }
2163
+ return xs;
2164
+ }
2165
+
2166
+ static public float[] vreverse(float[] x){
2167
+ final float[] xs = x.clone();
2168
+ for(int i = 0; i < xs.length; i++)
2169
+ xs[i] = xs[xs.length - i - 1];
2170
+ return xs;
2171
+ }
2172
+
2173
+ static public float[] vrunningsum(float[] x){
2174
+ final float[] xs = x.clone();
2175
+ for(int i = 1; i < xs.length; i++)
2176
+ xs[i] = xs[i - 1] + xs[i];
2177
+ return xs;
2178
+ }
2179
+
2180
+ static public float[] vsort(float[] x){
2181
+ final float[] xs = x.clone();
2182
+ Arrays.sort(xs);
2183
+ return xs;
2184
+ }
2185
+
2186
+ static public float vdot(float[] xs, float[] ys){
2187
+ float ret = 0;
2188
+ for(int i = 0; i < xs.length; i++)
2189
+ ret += xs[i] * ys[i];
2190
+ return ret;
2191
+ }
2192
+
2193
+ static public float vmax(float[] xs){
2194
+ if(xs.length == 0)
2195
+ return 0;
2196
+ float ret = xs[0];
2197
+ for(int i = 0; i < xs.length; i++)
2198
+ ret = Math.max(ret, xs[i]);
2199
+ return ret;
2200
+ }
2201
+
2202
+ static public float vmin(float[] xs){
2203
+ if(xs.length == 0)
2204
+ return 0;
2205
+ float ret = xs[0];
2206
+ for(int i = 0; i < xs.length; i++)
2207
+ ret = Math.min(ret, xs[i]);
2208
+ return ret;
2209
+ }
2210
+
2211
+ static public float vmean(float[] xs){
2212
+ if(xs.length == 0)
2213
+ return 0;
2214
+ return vsum(xs) / xs.length;
2215
+ }
2216
+
2217
+ static public double vrms(float[] xs){
2218
+ if(xs.length == 0)
2219
+ return 0;
2220
+ float ret = 0;
2221
+ for(int i = 0; i < xs.length; i++)
2222
+ ret += xs[i] * xs[i];
2223
+ return Math.sqrt(ret / xs.length);
2224
+ }
2225
+
2226
+ static public float vsum(float[] xs){
2227
+ float ret = 0;
2228
+ for(int i = 0; i < xs.length; i++)
2229
+ ret += xs[i];
2230
+ return ret;
2231
+ }
2232
+
2233
+ static public boolean vequiv(float[] xs, float[] ys){
2234
+ return Arrays.equals(xs, ys);
2235
+ }
2236
+
2237
+ static public float[] vadd(float[] x, float[] ys){
2238
+ final float[] xs = x.clone();
2239
+ for(int i = 0; i < xs.length; i++)
2240
+ xs[i] += ys[i];
2241
+ return xs;
2242
+ }
2243
+
2244
+ static public float[] vsub(float[] x, float[] ys){
2245
+ final float[] xs = x.clone();
2246
+ for(int i = 0; i < xs.length; i++)
2247
+ xs[i] -= ys[i];
2248
+ return xs;
2249
+ }
2250
+
2251
+ static public float[] vaddmul(float[] x, float[] ys, float[] zs){
2252
+ final float[] xs = x.clone();
2253
+ for(int i = 0; i < xs.length; i++)
2254
+ xs[i] = (xs[i] + ys[i]) * zs[i];
2255
+ return xs;
2256
+ }
2257
+
2258
+ static public float[] vsubmul(float[] x, float[] ys, float[] zs){
2259
+ final float[] xs = x.clone();
2260
+ for(int i = 0; i < xs.length; i++)
2261
+ xs[i] = (xs[i] - ys[i]) * zs[i];
2262
+ return xs;
2263
+ }
2264
+
2265
+ static public float[] vaddsmul(float[] x, float[] ys, float z){
2266
+ final float[] xs = x.clone();
2267
+ for(int i = 0; i < xs.length; i++)
2268
+ xs[i] = (xs[i] + ys[i]) * z;
2269
+ return xs;
2270
+ }
2271
+
2272
+ static public float[] vsubsmul(float[] x, float[] ys, float z){
2273
+ final float[] xs = x.clone();
2274
+ for(int i = 0; i < xs.length; i++)
2275
+ xs[i] = (xs[i] - ys[i]) * z;
2276
+ return xs;
2277
+ }
2278
+
2279
+ static public float[] vmulsadd(float[] x, float[] ys, float z){
2280
+ final float[] xs = x.clone();
2281
+ for(int i = 0; i < xs.length; i++)
2282
+ xs[i] = (xs[i] * ys[i]) + z;
2283
+ return xs;
2284
+ }
2285
+
2286
+ static public float[] vdiv(float[] x, float[] ys){
2287
+ final float[] xs = x.clone();
2288
+ for(int i = 0; i < xs.length; i++)
2289
+ xs[i] /= ys[i];
2290
+ return xs;
2291
+ }
2292
+
2293
+ static public float[] vmul(float[] x, float[] ys){
2294
+ final float[] xs = x.clone();
2295
+ for(int i = 0; i < xs.length; i++)
2296
+ xs[i] *= ys[i];
2297
+ return xs;
2298
+ }
2299
+
2300
+ static public float[] vmuladd(float[] x, float[] ys, float[] zs){
2301
+ final float[] xs = x.clone();
2302
+ for(int i = 0; i < xs.length; i++)
2303
+ xs[i] = (xs[i] * ys[i]) + zs[i];
2304
+ return xs;
2305
+ }
2306
+
2307
+ static public float[] vmulsub(float[] x, float[] ys, float[] zs){
2308
+ final float[] xs = x.clone();
2309
+ for(int i = 0; i < xs.length; i++)
2310
+ xs[i] = (xs[i] * ys[i]) - zs[i];
2311
+ return xs;
2312
+ }
2313
+
2314
+ static public float[] vmax(float[] x, float[] ys){
2315
+ final float[] xs = x.clone();
2316
+ for(int i = 0; i < xs.length; i++)
2317
+ xs[i] = Math.max(xs[i], ys[i]);
2318
+ return xs;
2319
+ }
2320
+
2321
+ static public float[] vmin(float[] x, float[] ys){
2322
+ final float[] xs = x.clone();
2323
+ for(int i = 0; i < xs.length; i++)
2324
+ xs[i] = Math.min(xs[i], ys[i]);
2325
+ return xs;
2326
+ }
2327
+
2328
+ static public float[] vmap(IFn fn, float[] x) throws Exception{
2329
+ float[] xs = x.clone();
2330
+ for(int i = 0; i < xs.length; i++)
2331
+ xs[i] = ((Number) fn.invoke(xs[i])).floatValue();
2332
+ return xs;
2333
+ }
2334
+
2335
+ static public float[] vmap(IFn fn, float[] x, float[] ys) throws Exception{
2336
+ float[] xs = x.clone();
2337
+ for(int i = 0; i < xs.length; i++)
2338
+ xs[i] = ((Number) fn.invoke(xs[i], ys[i])).floatValue();
2339
+ return xs;
2340
+ }
2341
+
2342
+ }
2343
+
2344
+ static public class D{
2345
+ static public double add(double x, double y){
2346
+ return x + y;
2347
+ }
2348
+
2349
+ static public double subtract(double x, double y){
2350
+ return x - y;
2351
+ }
2352
+
2353
+ static public double negate(double x){
2354
+ return -x;
2355
+ }
2356
+
2357
+ static public double inc(double x){
2358
+ return x + 1;
2359
+ }
2360
+
2361
+ static public double dec(double x){
2362
+ return x - 1;
2363
+ }
2364
+
2365
+ static public double multiply(double x, double y){
2366
+ return x * y;
2367
+ }
2368
+
2369
+ static public double divide(double x, double y){
2370
+ return x / y;
2371
+ }
2372
+
2373
+ static public boolean equiv(double x, double y){
2374
+ return x == y;
2375
+ }
2376
+
2377
+ static public boolean lt(double x, double y){
2378
+ return x < y;
2379
+ }
2380
+
2381
+ static public boolean lte(double x, double y){
2382
+ return x <= y;
2383
+ }
2384
+
2385
+ static public boolean gt(double x, double y){
2386
+ return x > y;
2387
+ }
2388
+
2389
+ static public boolean gte(double x, double y){
2390
+ return x >= y;
2391
+ }
2392
+
2393
+ static public boolean pos(double x){
2394
+ return x > 0;
2395
+ }
2396
+
2397
+ static public boolean neg(double x){
2398
+ return x < 0;
2399
+ }
2400
+
2401
+ static public boolean zero(double x){
2402
+ return x == 0;
2403
+ }
2404
+
2405
+ static public double aget(double[] xs, int i){
2406
+ return xs[i];
2407
+ }
2408
+
2409
+ static public double aset(double[] xs, int i, double v){
2410
+ xs[i] = v;
2411
+ return v;
2412
+ }
2413
+
2414
+ static public int alength(double[] xs){
2415
+ return xs.length;
2416
+ }
2417
+
2418
+ static public double[] aclone(double[] xs){
2419
+ return xs.clone();
2420
+ }
2421
+
2422
+ static public double[] vec(int size, Object init){
2423
+ double[] ret = new double[size];
2424
+ if(init instanceof Number)
2425
+ {
2426
+ double f = ((Number) init).doubleValue();
2427
+ for(int i = 0; i < ret.length; i++)
2428
+ ret[i] = f;
2429
+ }
2430
+ else
2431
+ {
2432
+ ISeq s = RT.seq(init);
2433
+ for(int i = 0; i < size && s != null; i++, s = s.rest())
2434
+ ret[i] = ((Number) s.first()).doubleValue();
2435
+ }
2436
+ return ret;
2437
+ }
2438
+
2439
+ static public double[] vec(Object sizeOrSeq){
2440
+ if(sizeOrSeq instanceof Number)
2441
+ return new double[((Number) sizeOrSeq).intValue()];
2442
+ else
2443
+ {
2444
+ ISeq s = RT.seq(sizeOrSeq);
2445
+ int size = s.count();
2446
+ double[] ret = new double[size];
2447
+ for(int i = 0; i < size && s != null; i++, s = s.rest())
2448
+ ret[i] = ((Number) s.first()).intValue();
2449
+ return ret;
2450
+ }
2451
+ }
2452
+
2453
+ static public double[] vsadd(double[] x, double y){
2454
+ final double[] xs = x.clone();
2455
+ for(int i = 0; i < xs.length; i++)
2456
+ xs[i] += y;
2457
+ return xs;
2458
+ }
2459
+
2460
+ static public double[] vssub(double[] x, double y){
2461
+ final double[] xs = x.clone();
2462
+ for(int i = 0; i < xs.length; i++)
2463
+ xs[i] -= y;
2464
+ return xs;
2465
+ }
2466
+
2467
+ static public double[] vsdiv(double[] x, double y){
2468
+ final double[] xs = x.clone();
2469
+ for(int i = 0; i < xs.length; i++)
2470
+ xs[i] /= y;
2471
+ return xs;
2472
+ }
2473
+
2474
+ static public double[] vsmul(double[] x, double y){
2475
+ final double[] xs = x.clone();
2476
+ for(int i = 0; i < xs.length; i++)
2477
+ xs[i] *= y;
2478
+ return xs;
2479
+ }
2480
+
2481
+ static public double[] svdiv(double y, double[] x){
2482
+ final double[] xs = x.clone();
2483
+ for(int i = 0; i < xs.length; i++)
2484
+ xs[i] = y / xs[i];
2485
+ return xs;
2486
+ }
2487
+
2488
+ static public double[] vsmuladd(double[] x, double y, double[] zs){
2489
+ final double[] xs = x.clone();
2490
+ for(int i = 0; i < xs.length; i++)
2491
+ xs[i] = xs[i] * y + zs[i];
2492
+ return xs;
2493
+ }
2494
+
2495
+ static public double[] vsmulsub(double[] x, double y, double[] zs){
2496
+ final double[] xs = x.clone();
2497
+ for(int i = 0; i < xs.length; i++)
2498
+ xs[i] = xs[i] * y - zs[i];
2499
+ return xs;
2500
+ }
2501
+
2502
+ static public double[] vsmulsadd(double[] x, double y, double z){
2503
+ final double[] xs = x.clone();
2504
+ for(int i = 0; i < xs.length; i++)
2505
+ xs[i] = xs[i] * y + z;
2506
+ return xs;
2507
+ }
2508
+
2509
+ static public double[] vsmulssub(double[] x, double y, double z){
2510
+ final double[] xs = x.clone();
2511
+ for(int i = 0; i < xs.length; i++)
2512
+ xs[i] = xs[i] * y - z;
2513
+ return xs;
2514
+ }
2515
+
2516
+ static public double[] vabs(double[] x){
2517
+ final double[] xs = x.clone();
2518
+ for(int i = 0; i < xs.length; i++)
2519
+ xs[i] = Math.abs(xs[i]);
2520
+ return xs;
2521
+ }
2522
+
2523
+ static public double[] vnegabs(double[] x){
2524
+ final double[] xs = x.clone();
2525
+ for(int i = 0; i < xs.length; i++)
2526
+ xs[i] = -Math.abs(xs[i]);
2527
+ return xs;
2528
+ }
2529
+
2530
+ static public double[] vneg(double[] x){
2531
+ final double[] xs = x.clone();
2532
+ for(int i = 0; i < xs.length; i++)
2533
+ xs[i] = -xs[i];
2534
+ return xs;
2535
+ }
2536
+
2537
+ static public double[] vsqr(double[] x){
2538
+ final double[] xs = x.clone();
2539
+ for(int i = 0; i < xs.length; i++)
2540
+ xs[i] *= xs[i];
2541
+ return xs;
2542
+ }
2543
+
2544
+ static public double[] vsignedsqr(double[] x){
2545
+ final double[] xs = x.clone();
2546
+ for(int i = 0; i < xs.length; i++)
2547
+ xs[i] *= Math.abs(xs[i]);
2548
+ return xs;
2549
+ }
2550
+
2551
+ static public double[] vclip(double[] x, double low, double high){
2552
+ final double[] xs = x.clone();
2553
+ for(int i = 0; i < xs.length; i++)
2554
+ {
2555
+ if(xs[i] < low)
2556
+ xs[i] = low;
2557
+ else if(xs[i] > high)
2558
+ xs[i] = high;
2559
+ }
2560
+ return xs;
2561
+ }
2562
+
2563
+ static public IPersistentVector vclipcounts(double[] x, double low, double high){
2564
+ final double[] xs = x.clone();
2565
+ int lowc = 0;
2566
+ int highc = 0;
2567
+
2568
+ for(int i = 0; i < xs.length; i++)
2569
+ {
2570
+ if(xs[i] < low)
2571
+ {
2572
+ ++lowc;
2573
+ xs[i] = low;
2574
+ }
2575
+ else if(xs[i] > high)
2576
+ {
2577
+ ++highc;
2578
+ xs[i] = high;
2579
+ }
2580
+ }
2581
+ return RT.vector(xs, lowc, highc);
2582
+ }
2583
+
2584
+ static public double[] vthresh(double[] x, double thresh, double otherwise){
2585
+ final double[] xs = x.clone();
2586
+ for(int i = 0; i < xs.length; i++)
2587
+ {
2588
+ if(xs[i] < thresh)
2589
+ xs[i] = otherwise;
2590
+ }
2591
+ return xs;
2592
+ }
2593
+
2594
+ static public double[] vreverse(double[] x){
2595
+ final double[] xs = x.clone();
2596
+ for(int i = 0; i < xs.length; i++)
2597
+ xs[i] = xs[xs.length - i - 1];
2598
+ return xs;
2599
+ }
2600
+
2601
+ static public double[] vrunningsum(double[] x){
2602
+ final double[] xs = x.clone();
2603
+ for(int i = 1; i < xs.length; i++)
2604
+ xs[i] = xs[i - 1] + xs[i];
2605
+ return xs;
2606
+ }
2607
+
2608
+ static public double[] vsort(double[] x){
2609
+ final double[] xs = x.clone();
2610
+ Arrays.sort(xs);
2611
+ return xs;
2612
+ }
2613
+
2614
+ static public double vdot(double[] xs, double[] ys){
2615
+ double ret = 0;
2616
+ for(int i = 0; i < xs.length; i++)
2617
+ ret += xs[i] * ys[i];
2618
+ return ret;
2619
+ }
2620
+
2621
+ static public double vmax(double[] xs){
2622
+ if(xs.length == 0)
2623
+ return 0;
2624
+ double ret = xs[0];
2625
+ for(int i = 0; i < xs.length; i++)
2626
+ ret = Math.max(ret, xs[i]);
2627
+ return ret;
2628
+ }
2629
+
2630
+ static public double vmin(double[] xs){
2631
+ if(xs.length == 0)
2632
+ return 0;
2633
+ double ret = xs[0];
2634
+ for(int i = 0; i < xs.length; i++)
2635
+ ret = Math.min(ret, xs[i]);
2636
+ return ret;
2637
+ }
2638
+
2639
+ static public double vmean(double[] xs){
2640
+ if(xs.length == 0)
2641
+ return 0;
2642
+ return vsum(xs) / xs.length;
2643
+ }
2644
+
2645
+ static public double vrms(double[] xs){
2646
+ if(xs.length == 0)
2647
+ return 0;
2648
+ double ret = 0;
2649
+ for(int i = 0; i < xs.length; i++)
2650
+ ret += xs[i] * xs[i];
2651
+ return Math.sqrt(ret / xs.length);
2652
+ }
2653
+
2654
+ static public double vsum(double[] xs){
2655
+ double ret = 0;
2656
+ for(int i = 0; i < xs.length; i++)
2657
+ ret += xs[i];
2658
+ return ret;
2659
+ }
2660
+
2661
+ static public boolean vequiv(double[] xs, double[] ys){
2662
+ return Arrays.equals(xs, ys);
2663
+ }
2664
+
2665
+ static public double[] vadd(double[] x, double[] ys){
2666
+ final double[] xs = x.clone();
2667
+ for(int i = 0; i < xs.length; i++)
2668
+ xs[i] += ys[i];
2669
+ return xs;
2670
+ }
2671
+
2672
+ static public double[] vsub(double[] x, double[] ys){
2673
+ final double[] xs = x.clone();
2674
+ for(int i = 0; i < xs.length; i++)
2675
+ xs[i] -= ys[i];
2676
+ return xs;
2677
+ }
2678
+
2679
+ static public double[] vaddmul(double[] x, double[] ys, double[] zs){
2680
+ final double[] xs = x.clone();
2681
+ for(int i = 0; i < xs.length; i++)
2682
+ xs[i] = (xs[i] + ys[i]) * zs[i];
2683
+ return xs;
2684
+ }
2685
+
2686
+ static public double[] vsubmul(double[] x, double[] ys, double[] zs){
2687
+ final double[] xs = x.clone();
2688
+ for(int i = 0; i < xs.length; i++)
2689
+ xs[i] = (xs[i] - ys[i]) * zs[i];
2690
+ return xs;
2691
+ }
2692
+
2693
+ static public double[] vaddsmul(double[] x, double[] ys, double z){
2694
+ final double[] xs = x.clone();
2695
+ for(int i = 0; i < xs.length; i++)
2696
+ xs[i] = (xs[i] + ys[i]) * z;
2697
+ return xs;
2698
+ }
2699
+
2700
+ static public double[] vsubsmul(double[] x, double[] ys, double z){
2701
+ final double[] xs = x.clone();
2702
+ for(int i = 0; i < xs.length; i++)
2703
+ xs[i] = (xs[i] - ys[i]) * z;
2704
+ return xs;
2705
+ }
2706
+
2707
+ static public double[] vmulsadd(double[] x, double[] ys, double z){
2708
+ final double[] xs = x.clone();
2709
+ for(int i = 0; i < xs.length; i++)
2710
+ xs[i] = (xs[i] * ys[i]) + z;
2711
+ return xs;
2712
+ }
2713
+
2714
+ static public double[] vdiv(double[] x, double[] ys){
2715
+ final double[] xs = x.clone();
2716
+ for(int i = 0; i < xs.length; i++)
2717
+ xs[i] /= ys[i];
2718
+ return xs;
2719
+ }
2720
+
2721
+ static public double[] vmul(double[] x, double[] ys){
2722
+ final double[] xs = x.clone();
2723
+ for(int i = 0; i < xs.length; i++)
2724
+ xs[i] *= ys[i];
2725
+ return xs;
2726
+ }
2727
+
2728
+ static public double[] vmuladd(double[] x, double[] ys, double[] zs){
2729
+ final double[] xs = x.clone();
2730
+ for(int i = 0; i < xs.length; i++)
2731
+ xs[i] = (xs[i] * ys[i]) + zs[i];
2732
+ return xs;
2733
+ }
2734
+
2735
+ static public double[] vmulsub(double[] x, double[] ys, double[] zs){
2736
+ final double[] xs = x.clone();
2737
+ for(int i = 0; i < xs.length; i++)
2738
+ xs[i] = (xs[i] * ys[i]) - zs[i];
2739
+ return xs;
2740
+ }
2741
+
2742
+ static public double[] vmax(double[] x, double[] ys){
2743
+ final double[] xs = x.clone();
2744
+ for(int i = 0; i < xs.length; i++)
2745
+ xs[i] = Math.max(xs[i], ys[i]);
2746
+ return xs;
2747
+ }
2748
+
2749
+ static public double[] vmin(double[] x, double[] ys){
2750
+ final double[] xs = x.clone();
2751
+ for(int i = 0; i < xs.length; i++)
2752
+ xs[i] = Math.min(xs[i], ys[i]);
2753
+ return xs;
2754
+ }
2755
+
2756
+ static public double[] vmap(IFn fn, double[] x) throws Exception{
2757
+ double[] xs = x.clone();
2758
+ for(int i = 0; i < xs.length; i++)
2759
+ xs[i] = ((Number) fn.invoke(xs[i])).doubleValue();
2760
+ return xs;
2761
+ }
2762
+
2763
+ static public double[] vmap(IFn fn, double[] x, double[] ys) throws Exception{
2764
+ double[] xs = x.clone();
2765
+ for(int i = 0; i < xs.length; i++)
2766
+ xs[i] = ((Number) fn.invoke(xs[i], ys[i])).doubleValue();
2767
+ return xs;
2768
+ }
2769
+ }
2770
+
2771
+ static public class I{
2772
+ static public int add(int x, int y){
2773
+ return x + y;
2774
+ }
2775
+
2776
+ static public int subtract(int x, int y){
2777
+ return x - y;
2778
+ }
2779
+
2780
+ static public int negate(int x){
2781
+ return -x;
2782
+ }
2783
+
2784
+ static public int inc(int x){
2785
+ return x + 1;
2786
+ }
2787
+
2788
+ static public int dec(int x){
2789
+ return x - 1;
2790
+ }
2791
+
2792
+ static public int multiply(int x, int y){
2793
+ return x * y;
2794
+ }
2795
+
2796
+ static public int divide(int x, int y){
2797
+ return x / y;
2798
+ }
2799
+
2800
+ static public boolean equiv(int x, int y){
2801
+ return x == y;
2802
+ }
2803
+
2804
+ static public boolean lt(int x, int y){
2805
+ return x < y;
2806
+ }
2807
+
2808
+ static public boolean lte(int x, int y){
2809
+ return x <= y;
2810
+ }
2811
+
2812
+ static public boolean gt(int x, int y){
2813
+ return x > y;
2814
+ }
2815
+
2816
+ static public boolean gte(int x, int y){
2817
+ return x >= y;
2818
+ }
2819
+
2820
+ static public boolean pos(int x){
2821
+ return x > 0;
2822
+ }
2823
+
2824
+ static public boolean neg(int x){
2825
+ return x < 0;
2826
+ }
2827
+
2828
+ static public boolean zero(int x){
2829
+ return x == 0;
2830
+ }
2831
+
2832
+ static public int aget(int[] xs, int i){
2833
+ return xs[i];
2834
+ }
2835
+
2836
+ static public int aset(int[] xs, int i, int v){
2837
+ xs[i] = v;
2838
+ return v;
2839
+ }
2840
+
2841
+ static public int alength(int[] xs){
2842
+ return xs.length;
2843
+ }
2844
+
2845
+ static public int[] aclone(int[] xs){
2846
+ return xs.clone();
2847
+ }
2848
+
2849
+ static public int[] vec(int size, Object init){
2850
+ int[] ret = new int[size];
2851
+ if(init instanceof Number)
2852
+ {
2853
+ int f = ((Number) init).intValue();
2854
+ for(int i = 0; i < ret.length; i++)
2855
+ ret[i] = f;
2856
+ }
2857
+ else
2858
+ {
2859
+ ISeq s = RT.seq(init);
2860
+ for(int i = 0; i < size && s != null; i++, s = s.rest())
2861
+ ret[i] = ((Number) s.first()).intValue();
2862
+ }
2863
+ return ret;
2864
+ }
2865
+
2866
+ static public int[] vec(Object sizeOrSeq){
2867
+ if(sizeOrSeq instanceof Number)
2868
+ return new int[((Number) sizeOrSeq).intValue()];
2869
+ else
2870
+ {
2871
+ ISeq s = RT.seq(sizeOrSeq);
2872
+ int size = s.count();
2873
+ int[] ret = new int[size];
2874
+ for(int i = 0; i < size && s != null; i++, s = s.rest())
2875
+ ret[i] = ((Number) s.first()).intValue();
2876
+ return ret;
2877
+ }
2878
+ }
2879
+
2880
+ static public int[] vsadd(int[] x, int y){
2881
+ final int[] xs = x.clone();
2882
+ for(int i = 0; i < xs.length; i++)
2883
+ xs[i] += y;
2884
+ return xs;
2885
+ }
2886
+
2887
+ static public int[] vssub(int[] x, int y){
2888
+ final int[] xs = x.clone();
2889
+ for(int i = 0; i < xs.length; i++)
2890
+ xs[i] -= y;
2891
+ return xs;
2892
+ }
2893
+
2894
+ static public int[] vsdiv(int[] x, int y){
2895
+ final int[] xs = x.clone();
2896
+ for(int i = 0; i < xs.length; i++)
2897
+ xs[i] /= y;
2898
+ return xs;
2899
+ }
2900
+
2901
+ static public int[] vsmul(int[] x, int y){
2902
+ final int[] xs = x.clone();
2903
+ for(int i = 0; i < xs.length; i++)
2904
+ xs[i] *= y;
2905
+ return xs;
2906
+ }
2907
+
2908
+ static public int[] svdiv(int y, int[] x){
2909
+ final int[] xs = x.clone();
2910
+ for(int i = 0; i < xs.length; i++)
2911
+ xs[i] = y / xs[i];
2912
+ return xs;
2913
+ }
2914
+
2915
+ static public int[] vsmuladd(int[] x, int y, int[] zs){
2916
+ final int[] xs = x.clone();
2917
+ for(int i = 0; i < xs.length; i++)
2918
+ xs[i] = xs[i] * y + zs[i];
2919
+ return xs;
2920
+ }
2921
+
2922
+ static public int[] vsmulsub(int[] x, int y, int[] zs){
2923
+ final int[] xs = x.clone();
2924
+ for(int i = 0; i < xs.length; i++)
2925
+ xs[i] = xs[i] * y - zs[i];
2926
+ return xs;
2927
+ }
2928
+
2929
+ static public int[] vsmulsadd(int[] x, int y, int z){
2930
+ final int[] xs = x.clone();
2931
+ for(int i = 0; i < xs.length; i++)
2932
+ xs[i] = xs[i] * y + z;
2933
+ return xs;
2934
+ }
2935
+
2936
+ static public int[] vsmulssub(int[] x, int y, int z){
2937
+ final int[] xs = x.clone();
2938
+ for(int i = 0; i < xs.length; i++)
2939
+ xs[i] = xs[i] * y - z;
2940
+ return xs;
2941
+ }
2942
+
2943
+ static public int[] vabs(int[] x){
2944
+ final int[] xs = x.clone();
2945
+ for(int i = 0; i < xs.length; i++)
2946
+ xs[i] = Math.abs(xs[i]);
2947
+ return xs;
2948
+ }
2949
+
2950
+ static public int[] vnegabs(int[] x){
2951
+ final int[] xs = x.clone();
2952
+ for(int i = 0; i < xs.length; i++)
2953
+ xs[i] = -Math.abs(xs[i]);
2954
+ return xs;
2955
+ }
2956
+
2957
+ static public int[] vneg(int[] x){
2958
+ final int[] xs = x.clone();
2959
+ for(int i = 0; i < xs.length; i++)
2960
+ xs[i] = -xs[i];
2961
+ return xs;
2962
+ }
2963
+
2964
+ static public int[] vsqr(int[] x){
2965
+ final int[] xs = x.clone();
2966
+ for(int i = 0; i < xs.length; i++)
2967
+ xs[i] *= xs[i];
2968
+ return xs;
2969
+ }
2970
+
2971
+ static public int[] vsignedsqr(int[] x){
2972
+ final int[] xs = x.clone();
2973
+ for(int i = 0; i < xs.length; i++)
2974
+ xs[i] *= Math.abs(xs[i]);
2975
+ return xs;
2976
+ }
2977
+
2978
+ static public int[] vclip(int[] x, int low, int high){
2979
+ final int[] xs = x.clone();
2980
+ for(int i = 0; i < xs.length; i++)
2981
+ {
2982
+ if(xs[i] < low)
2983
+ xs[i] = low;
2984
+ else if(xs[i] > high)
2985
+ xs[i] = high;
2986
+ }
2987
+ return xs;
2988
+ }
2989
+
2990
+ static public IPersistentVector vclipcounts(int[] x, int low, int high){
2991
+ final int[] xs = x.clone();
2992
+ int lowc = 0;
2993
+ int highc = 0;
2994
+
2995
+ for(int i = 0; i < xs.length; i++)
2996
+ {
2997
+ if(xs[i] < low)
2998
+ {
2999
+ ++lowc;
3000
+ xs[i] = low;
3001
+ }
3002
+ else if(xs[i] > high)
3003
+ {
3004
+ ++highc;
3005
+ xs[i] = high;
3006
+ }
3007
+ }
3008
+ return RT.vector(xs, lowc, highc);
3009
+ }
3010
+
3011
+ static public int[] vthresh(int[] x, int thresh, int otherwise){
3012
+ final int[] xs = x.clone();
3013
+ for(int i = 0; i < xs.length; i++)
3014
+ {
3015
+ if(xs[i] < thresh)
3016
+ xs[i] = otherwise;
3017
+ }
3018
+ return xs;
3019
+ }
3020
+
3021
+ static public int[] vreverse(int[] x){
3022
+ final int[] xs = x.clone();
3023
+ for(int i = 0; i < xs.length; i++)
3024
+ xs[i] = xs[xs.length - i - 1];
3025
+ return xs;
3026
+ }
3027
+
3028
+ static public int[] vrunningsum(int[] x){
3029
+ final int[] xs = x.clone();
3030
+ for(int i = 1; i < xs.length; i++)
3031
+ xs[i] = xs[i - 1] + xs[i];
3032
+ return xs;
3033
+ }
3034
+
3035
+ static public int[] vsort(int[] x){
3036
+ final int[] xs = x.clone();
3037
+ Arrays.sort(xs);
3038
+ return xs;
3039
+ }
3040
+
3041
+ static public int vdot(int[] xs, int[] ys){
3042
+ int ret = 0;
3043
+ for(int i = 0; i < xs.length; i++)
3044
+ ret += xs[i] * ys[i];
3045
+ return ret;
3046
+ }
3047
+
3048
+ static public int vmax(int[] xs){
3049
+ if(xs.length == 0)
3050
+ return 0;
3051
+ int ret = xs[0];
3052
+ for(int i = 0; i < xs.length; i++)
3053
+ ret = Math.max(ret, xs[i]);
3054
+ return ret;
3055
+ }
3056
+
3057
+ static public int vmin(int[] xs){
3058
+ if(xs.length == 0)
3059
+ return 0;
3060
+ int ret = xs[0];
3061
+ for(int i = 0; i < xs.length; i++)
3062
+ ret = Math.min(ret, xs[i]);
3063
+ return ret;
3064
+ }
3065
+
3066
+ static public double vmean(int[] xs){
3067
+ if(xs.length == 0)
3068
+ return 0;
3069
+ return vsum(xs) / (double) xs.length;
3070
+ }
3071
+
3072
+ static public double vrms(int[] xs){
3073
+ if(xs.length == 0)
3074
+ return 0;
3075
+ int ret = 0;
3076
+ for(int i = 0; i < xs.length; i++)
3077
+ ret += xs[i] * xs[i];
3078
+ return Math.sqrt(ret / (double) xs.length);
3079
+ }
3080
+
3081
+ static public int vsum(int[] xs){
3082
+ int ret = 0;
3083
+ for(int i = 0; i < xs.length; i++)
3084
+ ret += xs[i];
3085
+ return ret;
3086
+ }
3087
+
3088
+ static public boolean vequiv(int[] xs, int[] ys){
3089
+ return Arrays.equals(xs, ys);
3090
+ }
3091
+
3092
+ static public int[] vadd(int[] x, int[] ys){
3093
+ final int[] xs = x.clone();
3094
+ for(int i = 0; i < xs.length; i++)
3095
+ xs[i] += ys[i];
3096
+ return xs;
3097
+ }
3098
+
3099
+ static public int[] vsub(int[] x, int[] ys){
3100
+ final int[] xs = x.clone();
3101
+ for(int i = 0; i < xs.length; i++)
3102
+ xs[i] -= ys[i];
3103
+ return xs;
3104
+ }
3105
+
3106
+ static public int[] vaddmul(int[] x, int[] ys, int[] zs){
3107
+ final int[] xs = x.clone();
3108
+ for(int i = 0; i < xs.length; i++)
3109
+ xs[i] = (xs[i] + ys[i]) * zs[i];
3110
+ return xs;
3111
+ }
3112
+
3113
+ static public int[] vsubmul(int[] x, int[] ys, int[] zs){
3114
+ final int[] xs = x.clone();
3115
+ for(int i = 0; i < xs.length; i++)
3116
+ xs[i] = (xs[i] - ys[i]) * zs[i];
3117
+ return xs;
3118
+ }
3119
+
3120
+ static public int[] vaddsmul(int[] x, int[] ys, int z){
3121
+ final int[] xs = x.clone();
3122
+ for(int i = 0; i < xs.length; i++)
3123
+ xs[i] = (xs[i] + ys[i]) * z;
3124
+ return xs;
3125
+ }
3126
+
3127
+ static public int[] vsubsmul(int[] x, int[] ys, int z){
3128
+ final int[] xs = x.clone();
3129
+ for(int i = 0; i < xs.length; i++)
3130
+ xs[i] = (xs[i] - ys[i]) * z;
3131
+ return xs;
3132
+ }
3133
+
3134
+ static public int[] vmulsadd(int[] x, int[] ys, int z){
3135
+ final int[] xs = x.clone();
3136
+ for(int i = 0; i < xs.length; i++)
3137
+ xs[i] = (xs[i] * ys[i]) + z;
3138
+ return xs;
3139
+ }
3140
+
3141
+ static public int[] vdiv(int[] x, int[] ys){
3142
+ final int[] xs = x.clone();
3143
+ for(int i = 0; i < xs.length; i++)
3144
+ xs[i] /= ys[i];
3145
+ return xs;
3146
+ }
3147
+
3148
+ static public int[] vmul(int[] x, int[] ys){
3149
+ final int[] xs = x.clone();
3150
+ for(int i = 0; i < xs.length; i++)
3151
+ xs[i] *= ys[i];
3152
+ return xs;
3153
+ }
3154
+
3155
+ static public int[] vmuladd(int[] x, int[] ys, int[] zs){
3156
+ final int[] xs = x.clone();
3157
+ for(int i = 0; i < xs.length; i++)
3158
+ xs[i] = (xs[i] * ys[i]) + zs[i];
3159
+ return xs;
3160
+ }
3161
+
3162
+ static public int[] vmulsub(int[] x, int[] ys, int[] zs){
3163
+ final int[] xs = x.clone();
3164
+ for(int i = 0; i < xs.length; i++)
3165
+ xs[i] = (xs[i] * ys[i]) - zs[i];
3166
+ return xs;
3167
+ }
3168
+
3169
+ static public int[] vmax(int[] x, int[] ys){
3170
+ final int[] xs = x.clone();
3171
+ for(int i = 0; i < xs.length; i++)
3172
+ xs[i] = Math.max(xs[i], ys[i]);
3173
+ return xs;
3174
+ }
3175
+
3176
+ static public int[] vmin(int[] x, int[] ys){
3177
+ final int[] xs = x.clone();
3178
+ for(int i = 0; i < xs.length; i++)
3179
+ xs[i] = Math.min(xs[i], ys[i]);
3180
+ return xs;
3181
+ }
3182
+
3183
+ static public int[] vmap(IFn fn, int[] x) throws Exception{
3184
+ int[] xs = x.clone();
3185
+ for(int i = 0; i < xs.length; i++)
3186
+ xs[i] = ((Number) fn.invoke(xs[i])).intValue();
3187
+ return xs;
3188
+ }
3189
+
3190
+ static public int[] vmap(IFn fn, int[] x, int[] ys) throws Exception{
3191
+ int[] xs = x.clone();
3192
+ for(int i = 0; i < xs.length; i++)
3193
+ xs[i] = ((Number) fn.invoke(xs[i], ys[i])).intValue();
3194
+ return xs;
3195
+ }
3196
+
3197
+ }
3198
+
3199
+ static public class L{
3200
+ static public long add(long x, long y){
3201
+ return x + y;
3202
+ }
3203
+
3204
+ static public long subtract(long x, long y){
3205
+ return x - y;
3206
+ }
3207
+
3208
+ static public long negate(long x){
3209
+ return -x;
3210
+ }
3211
+
3212
+ static public long inc(long x){
3213
+ return x + 1;
3214
+ }
3215
+
3216
+ static public long dec(long x){
3217
+ return x - 1;
3218
+ }
3219
+
3220
+ static public long multiply(long x, long y){
3221
+ return x * y;
3222
+ }
3223
+
3224
+ static public long divide(long x, long y){
3225
+ return x / y;
3226
+ }
3227
+
3228
+ static public boolean equiv(long x, long y){
3229
+ return x == y;
3230
+ }
3231
+
3232
+ static public boolean lt(long x, long y){
3233
+ return x < y;
3234
+ }
3235
+
3236
+ static public boolean lte(long x, long y){
3237
+ return x <= y;
3238
+ }
3239
+
3240
+ static public boolean gt(long x, long y){
3241
+ return x > y;
3242
+ }
3243
+
3244
+ static public boolean gte(long x, long y){
3245
+ return x >= y;
3246
+ }
3247
+
3248
+ static public boolean pos(long x){
3249
+ return x > 0;
3250
+ }
3251
+
3252
+ static public boolean neg(long x){
3253
+ return x < 0;
3254
+ }
3255
+
3256
+ static public boolean zero(long x){
3257
+ return x == 0;
3258
+ }
3259
+
3260
+ static public long aget(long[] xs, int i){
3261
+ return xs[i];
3262
+ }
3263
+
3264
+ static public long aset(long[] xs, int i, long v){
3265
+ xs[i] = v;
3266
+ return v;
3267
+ }
3268
+
3269
+ static public int alength(long[] xs){
3270
+ return xs.length;
3271
+ }
3272
+
3273
+ static public long[] aclone(long[] xs){
3274
+ return xs.clone();
3275
+ }
3276
+
3277
+ static public long[] vec(int size, Object init){
3278
+ long[] ret = new long[size];
3279
+ if(init instanceof Number)
3280
+ {
3281
+ long f = ((Number) init).longValue();
3282
+ for(int i = 0; i < ret.length; i++)
3283
+ ret[i] = f;
3284
+ }
3285
+ else
3286
+ {
3287
+ ISeq s = RT.seq(init);
3288
+ for(int i = 0; i < size && s != null; i++, s = s.rest())
3289
+ ret[i] = ((Number) s.first()).longValue();
3290
+ }
3291
+ return ret;
3292
+ }
3293
+
3294
+ static public long[] vec(Object sizeOrSeq){
3295
+ if(sizeOrSeq instanceof Number)
3296
+ return new long[((Number) sizeOrSeq).intValue()];
3297
+ else
3298
+ {
3299
+ ISeq s = RT.seq(sizeOrSeq);
3300
+ int size = s.count();
3301
+ long[] ret = new long[size];
3302
+ for(int i = 0; i < size && s != null; i++, s = s.rest())
3303
+ ret[i] = ((Number) s.first()).intValue();
3304
+ return ret;
3305
+ }
3306
+ }
3307
+
3308
+
3309
+ static public long[] vsadd(long[] x, long y){
3310
+ final long[] xs = x.clone();
3311
+ for(int i = 0; i < xs.length; i++)
3312
+ xs[i] += y;
3313
+ return xs;
3314
+ }
3315
+
3316
+ static public long[] vssub(long[] x, long y){
3317
+ final long[] xs = x.clone();
3318
+ for(int i = 0; i < xs.length; i++)
3319
+ xs[i] -= y;
3320
+ return xs;
3321
+ }
3322
+
3323
+ static public long[] vsdiv(long[] x, long y){
3324
+ final long[] xs = x.clone();
3325
+ for(int i = 0; i < xs.length; i++)
3326
+ xs[i] /= y;
3327
+ return xs;
3328
+ }
3329
+
3330
+ static public long[] vsmul(long[] x, long y){
3331
+ final long[] xs = x.clone();
3332
+ for(int i = 0; i < xs.length; i++)
3333
+ xs[i] *= y;
3334
+ return xs;
3335
+ }
3336
+
3337
+ static public long[] svdiv(long y, long[] x){
3338
+ final long[] xs = x.clone();
3339
+ for(int i = 0; i < xs.length; i++)
3340
+ xs[i] = y / xs[i];
3341
+ return xs;
3342
+ }
3343
+
3344
+ static public long[] vsmuladd(long[] x, long y, long[] zs){
3345
+ final long[] xs = x.clone();
3346
+ for(int i = 0; i < xs.length; i++)
3347
+ xs[i] = xs[i] * y + zs[i];
3348
+ return xs;
3349
+ }
3350
+
3351
+ static public long[] vsmulsub(long[] x, long y, long[] zs){
3352
+ final long[] xs = x.clone();
3353
+ for(int i = 0; i < xs.length; i++)
3354
+ xs[i] = xs[i] * y - zs[i];
3355
+ return xs;
3356
+ }
3357
+
3358
+ static public long[] vsmulsadd(long[] x, long y, long z){
3359
+ final long[] xs = x.clone();
3360
+ for(int i = 0; i < xs.length; i++)
3361
+ xs[i] = xs[i] * y + z;
3362
+ return xs;
3363
+ }
3364
+
3365
+ static public long[] vsmulssub(long[] x, long y, long z){
3366
+ final long[] xs = x.clone();
3367
+ for(int i = 0; i < xs.length; i++)
3368
+ xs[i] = xs[i] * y - z;
3369
+ return xs;
3370
+ }
3371
+
3372
+ static public long[] vabs(long[] x){
3373
+ final long[] xs = x.clone();
3374
+ for(int i = 0; i < xs.length; i++)
3375
+ xs[i] = Math.abs(xs[i]);
3376
+ return xs;
3377
+ }
3378
+
3379
+ static public long[] vnegabs(long[] x){
3380
+ final long[] xs = x.clone();
3381
+ for(int i = 0; i < xs.length; i++)
3382
+ xs[i] = -Math.abs(xs[i]);
3383
+ return xs;
3384
+ }
3385
+
3386
+ static public long[] vneg(long[] x){
3387
+ final long[] xs = x.clone();
3388
+ for(int i = 0; i < xs.length; i++)
3389
+ xs[i] = -xs[i];
3390
+ return xs;
3391
+ }
3392
+
3393
+ static public long[] vsqr(long[] x){
3394
+ final long[] xs = x.clone();
3395
+ for(int i = 0; i < xs.length; i++)
3396
+ xs[i] *= xs[i];
3397
+ return xs;
3398
+ }
3399
+
3400
+ static public long[] vsignedsqr(long[] x){
3401
+ final long[] xs = x.clone();
3402
+ for(int i = 0; i < xs.length; i++)
3403
+ xs[i] *= Math.abs(xs[i]);
3404
+ return xs;
3405
+ }
3406
+
3407
+ static public long[] vclip(long[] x, long low, long high){
3408
+ final long[] xs = x.clone();
3409
+ for(int i = 0; i < xs.length; i++)
3410
+ {
3411
+ if(xs[i] < low)
3412
+ xs[i] = low;
3413
+ else if(xs[i] > high)
3414
+ xs[i] = high;
3415
+ }
3416
+ return xs;
3417
+ }
3418
+
3419
+ static public IPersistentVector vclipcounts(long[] x, long low, long high){
3420
+ final long[] xs = x.clone();
3421
+ int lowc = 0;
3422
+ int highc = 0;
3423
+
3424
+ for(int i = 0; i < xs.length; i++)
3425
+ {
3426
+ if(xs[i] < low)
3427
+ {
3428
+ ++lowc;
3429
+ xs[i] = low;
3430
+ }
3431
+ else if(xs[i] > high)
3432
+ {
3433
+ ++highc;
3434
+ xs[i] = high;
3435
+ }
3436
+ }
3437
+ return RT.vector(xs, lowc, highc);
3438
+ }
3439
+
3440
+ static public long[] vthresh(long[] x, long thresh, long otherwise){
3441
+ final long[] xs = x.clone();
3442
+ for(int i = 0; i < xs.length; i++)
3443
+ {
3444
+ if(xs[i] < thresh)
3445
+ xs[i] = otherwise;
3446
+ }
3447
+ return xs;
3448
+ }
3449
+
3450
+ static public long[] vreverse(long[] x){
3451
+ final long[] xs = x.clone();
3452
+ for(int i = 0; i < xs.length; i++)
3453
+ xs[i] = xs[xs.length - i - 1];
3454
+ return xs;
3455
+ }
3456
+
3457
+ static public long[] vrunningsum(long[] x){
3458
+ final long[] xs = x.clone();
3459
+ for(int i = 1; i < xs.length; i++)
3460
+ xs[i] = xs[i - 1] + xs[i];
3461
+ return xs;
3462
+ }
3463
+
3464
+ static public long[] vsort(long[] x){
3465
+ final long[] xs = x.clone();
3466
+ Arrays.sort(xs);
3467
+ return xs;
3468
+ }
3469
+
3470
+ static public long vdot(long[] xs, long[] ys){
3471
+ long ret = 0;
3472
+ for(int i = 0; i < xs.length; i++)
3473
+ ret += xs[i] * ys[i];
3474
+ return ret;
3475
+ }
3476
+
3477
+ static public long vmax(long[] xs){
3478
+ if(xs.length == 0)
3479
+ return 0;
3480
+ long ret = xs[0];
3481
+ for(int i = 0; i < xs.length; i++)
3482
+ ret = Math.max(ret, xs[i]);
3483
+ return ret;
3484
+ }
3485
+
3486
+ static public long vmin(long[] xs){
3487
+ if(xs.length == 0)
3488
+ return 0;
3489
+ long ret = xs[0];
3490
+ for(int i = 0; i < xs.length; i++)
3491
+ ret = Math.min(ret, xs[i]);
3492
+ return ret;
3493
+ }
3494
+
3495
+ static public double vmean(long[] xs){
3496
+ if(xs.length == 0)
3497
+ return 0;
3498
+ return vsum(xs) / (double) xs.length;
3499
+ }
3500
+
3501
+ static public double vrms(long[] xs){
3502
+ if(xs.length == 0)
3503
+ return 0;
3504
+ long ret = 0;
3505
+ for(int i = 0; i < xs.length; i++)
3506
+ ret += xs[i] * xs[i];
3507
+ return Math.sqrt(ret / (double) xs.length);
3508
+ }
3509
+
3510
+ static public long vsum(long[] xs){
3511
+ long ret = 0;
3512
+ for(int i = 0; i < xs.length; i++)
3513
+ ret += xs[i];
3514
+ return ret;
3515
+ }
3516
+
3517
+ static public boolean vequiv(long[] xs, long[] ys){
3518
+ return Arrays.equals(xs, ys);
3519
+ }
3520
+
3521
+ static public long[] vadd(long[] x, long[] ys){
3522
+ final long[] xs = x.clone();
3523
+ for(int i = 0; i < xs.length; i++)
3524
+ xs[i] += ys[i];
3525
+ return xs;
3526
+ }
3527
+
3528
+ static public long[] vsub(long[] x, long[] ys){
3529
+ final long[] xs = x.clone();
3530
+ for(int i = 0; i < xs.length; i++)
3531
+ xs[i] -= ys[i];
3532
+ return xs;
3533
+ }
3534
+
3535
+ static public long[] vaddmul(long[] x, long[] ys, long[] zs){
3536
+ final long[] xs = x.clone();
3537
+ for(int i = 0; i < xs.length; i++)
3538
+ xs[i] = (xs[i] + ys[i]) * zs[i];
3539
+ return xs;
3540
+ }
3541
+
3542
+ static public long[] vsubmul(long[] x, long[] ys, long[] zs){
3543
+ final long[] xs = x.clone();
3544
+ for(int i = 0; i < xs.length; i++)
3545
+ xs[i] = (xs[i] - ys[i]) * zs[i];
3546
+ return xs;
3547
+ }
3548
+
3549
+ static public long[] vaddsmul(long[] x, long[] ys, long z){
3550
+ final long[] xs = x.clone();
3551
+ for(int i = 0; i < xs.length; i++)
3552
+ xs[i] = (xs[i] + ys[i]) * z;
3553
+ return xs;
3554
+ }
3555
+
3556
+ static public long[] vsubsmul(long[] x, long[] ys, long z){
3557
+ final long[] xs = x.clone();
3558
+ for(int i = 0; i < xs.length; i++)
3559
+ xs[i] = (xs[i] - ys[i]) * z;
3560
+ return xs;
3561
+ }
3562
+
3563
+ static public long[] vmulsadd(long[] x, long[] ys, long z){
3564
+ final long[] xs = x.clone();
3565
+ for(int i = 0; i < xs.length; i++)
3566
+ xs[i] = (xs[i] * ys[i]) + z;
3567
+ return xs;
3568
+ }
3569
+
3570
+ static public long[] vdiv(long[] x, long[] ys){
3571
+ final long[] xs = x.clone();
3572
+ for(int i = 0; i < xs.length; i++)
3573
+ xs[i] /= ys[i];
3574
+ return xs;
3575
+ }
3576
+
3577
+ static public long[] vmul(long[] x, long[] ys){
3578
+ final long[] xs = x.clone();
3579
+ for(int i = 0; i < xs.length; i++)
3580
+ xs[i] *= ys[i];
3581
+ return xs;
3582
+ }
3583
+
3584
+ static public long[] vmuladd(long[] x, long[] ys, long[] zs){
3585
+ final long[] xs = x.clone();
3586
+ for(int i = 0; i < xs.length; i++)
3587
+ xs[i] = (xs[i] * ys[i]) + zs[i];
3588
+ return xs;
3589
+ }
3590
+
3591
+ static public long[] vmulsub(long[] x, long[] ys, long[] zs){
3592
+ final long[] xs = x.clone();
3593
+ for(int i = 0; i < xs.length; i++)
3594
+ xs[i] = (xs[i] * ys[i]) - zs[i];
3595
+ return xs;
3596
+ }
3597
+
3598
+ static public long[] vmax(long[] x, long[] ys){
3599
+ final long[] xs = x.clone();
3600
+ for(int i = 0; i < xs.length; i++)
3601
+ xs[i] = Math.max(xs[i], ys[i]);
3602
+ return xs;
3603
+ }
3604
+
3605
+ static public long[] vmin(long[] x, long[] ys){
3606
+ final long[] xs = x.clone();
3607
+ for(int i = 0; i < xs.length; i++)
3608
+ xs[i] = Math.min(xs[i], ys[i]);
3609
+ return xs;
3610
+ }
3611
+
3612
+ static public long[] vmap(IFn fn, long[] x) throws Exception{
3613
+ long[] xs = x.clone();
3614
+ for(int i = 0; i < xs.length; i++)
3615
+ xs[i] = ((Number) fn.invoke(xs[i])).longValue();
3616
+ return xs;
3617
+ }
3618
+
3619
+ static public long[] vmap(IFn fn, long[] x, long[] ys) throws Exception{
3620
+ long[] xs = x.clone();
3621
+ for(int i = 0; i < xs.length; i++)
3622
+ xs[i] = ((Number) fn.invoke(xs[i], ys[i])).longValue();
3623
+ return xs;
3624
+ }
3625
+
3626
+ }
3627
+ */
3628
+
3629
+
3630
+ //overload resolution
3631
+
3632
+ static public Number add(int x, Object y){
3633
+ return add((Object)x,y);
3634
+ }
3635
+
3636
+ static public Number add(Object x, int y){
3637
+ return add(x,(Object)y);
3638
+ }
3639
+
3640
+ static public Number and(int x, Object y){
3641
+ return and((Object)x,y);
3642
+ }
3643
+
3644
+ static public Number and(Object x, int y){
3645
+ return and(x,(Object)y);
3646
+ }
3647
+
3648
+ static public Number or(int x, Object y){
3649
+ return or((Object)x,y);
3650
+ }
3651
+
3652
+ static public Number or(Object x, int y){
3653
+ return or(x,(Object)y);
3654
+ }
3655
+
3656
+ static public Number xor(int x, Object y){
3657
+ return xor((Object)x,y);
3658
+ }
3659
+
3660
+ static public Number xor(Object x, int y){
3661
+ return xor(x,(Object)y);
3662
+ }
3663
+
3664
+ static public Number add(float x, Object y){
3665
+ return add((Object)x,y);
3666
+ }
3667
+
3668
+ static public Number add(Object x, float y){
3669
+ return add(x,(Object)y);
3670
+ }
3671
+
3672
+ static public Number add(long x, Object y){
3673
+ return add((Object)x,y);
3674
+ }
3675
+
3676
+ static public Number add(Object x, long y){
3677
+ return add(x,(Object)y);
3678
+ }
3679
+
3680
+ static public Number add(double x, Object y){
3681
+ return add((Object)x,y);
3682
+ }
3683
+
3684
+ static public Number add(Object x, double y){
3685
+ return add(x,(Object)y);
3686
+ }
3687
+
3688
+ static public Number minus(int x, Object y){
3689
+ return minus((Object)x,y);
3690
+ }
3691
+
3692
+ static public Number minus(Object x, int y){
3693
+ return minus(x,(Object)y);
3694
+ }
3695
+
3696
+ static public Number minus(float x, Object y){
3697
+ return minus((Object)x,y);
3698
+ }
3699
+
3700
+ static public Number minus(Object x, float y){
3701
+ return minus(x,(Object)y);
3702
+ }
3703
+
3704
+ static public Number minus(long x, Object y){
3705
+ return minus((Object)x,y);
3706
+ }
3707
+
3708
+ static public Number minus(Object x, long y){
3709
+ return minus(x,(Object)y);
3710
+ }
3711
+
3712
+ static public Number minus(double x, Object y){
3713
+ return minus((Object)x,y);
3714
+ }
3715
+
3716
+ static public Number minus(Object x, double y){
3717
+ return minus(x,(Object)y);
3718
+ }
3719
+
3720
+ static public Number multiply(int x, Object y){
3721
+ return multiply((Object)x,y);
3722
+ }
3723
+
3724
+ static public Number multiply(Object x, int y){
3725
+ return multiply(x,(Object)y);
3726
+ }
3727
+
3728
+ static public Number multiply(float x, Object y){
3729
+ return multiply((Object)x,y);
3730
+ }
3731
+
3732
+ static public Number multiply(Object x, float y){
3733
+ return multiply(x,(Object)y);
3734
+ }
3735
+
3736
+ static public Number multiply(long x, Object y){
3737
+ return multiply((Object)x,y);
3738
+ }
3739
+
3740
+ static public Number multiply(Object x, long y){
3741
+ return multiply(x,(Object)y);
3742
+ }
3743
+
3744
+ static public Number multiply(double x, Object y){
3745
+ return multiply((Object)x,y);
3746
+ }
3747
+
3748
+ static public Number multiply(Object x, double y){
3749
+ return multiply(x,(Object)y);
3750
+ }
3751
+
3752
+ static public Number divide(int x, Object y){
3753
+ return divide((Object)x,y);
3754
+ }
3755
+
3756
+ static public Number divide(Object x, int y){
3757
+ return divide(x,(Object)y);
3758
+ }
3759
+
3760
+ static public Number divide(float x, Object y){
3761
+ return divide((Object)x,y);
3762
+ }
3763
+
3764
+ static public Number divide(Object x, float y){
3765
+ return divide(x,(Object)y);
3766
+ }
3767
+
3768
+ static public Number divide(long x, Object y){
3769
+ return divide((Object)x,y);
3770
+ }
3771
+
3772
+ static public Number divide(Object x, long y){
3773
+ return divide(x,(Object)y);
3774
+ }
3775
+
3776
+ static public Number divide(double x, Object y){
3777
+ return divide((Object)x,y);
3778
+ }
3779
+
3780
+ static public Number divide(Object x, double y){
3781
+ return divide(x,(Object)y);
3782
+ }
3783
+
3784
+ static public boolean lt(int x, Object y){
3785
+ return lt((Object)x,y);
3786
+ }
3787
+
3788
+ static public boolean lt(Object x, int y){
3789
+ return lt(x,(Object)y);
3790
+ }
3791
+
3792
+ static public boolean lt(float x, Object y){
3793
+ return lt((Object)x,y);
3794
+ }
3795
+
3796
+ static public boolean lt(Object x, float y){
3797
+ return lt(x,(Object)y);
3798
+ }
3799
+
3800
+ static public boolean lt(long x, Object y){
3801
+ return lt((Object)x,y);
3802
+ }
3803
+
3804
+ static public boolean lt(Object x, long y){
3805
+ return lt(x,(Object)y);
3806
+ }
3807
+
3808
+ static public boolean lt(double x, Object y){
3809
+ return lt((Object)x,y);
3810
+ }
3811
+
3812
+ static public boolean lt(Object x, double y){
3813
+ return lt(x,(Object)y);
3814
+ }
3815
+
3816
+ static public boolean lte(int x, Object y){
3817
+ return lte((Object)x,y);
3818
+ }
3819
+
3820
+ static public boolean lte(Object x, int y){
3821
+ return lte(x,(Object)y);
3822
+ }
3823
+
3824
+ static public boolean lte(float x, Object y){
3825
+ return lte((Object)x,y);
3826
+ }
3827
+
3828
+ static public boolean lte(Object x, float y){
3829
+ return lte(x,(Object)y);
3830
+ }
3831
+
3832
+ static public boolean lte(long x, Object y){
3833
+ return lte((Object)x,y);
3834
+ }
3835
+
3836
+ static public boolean lte(Object x, long y){
3837
+ return lte(x,(Object)y);
3838
+ }
3839
+
3840
+ static public boolean lte(double x, Object y){
3841
+ return lte((Object)x,y);
3842
+ }
3843
+
3844
+ static public boolean lte(Object x, double y){
3845
+ return lte(x,(Object)y);
3846
+ }
3847
+
3848
+ static public boolean gt(int x, Object y){
3849
+ return gt((Object)x,y);
3850
+ }
3851
+
3852
+ static public boolean gt(Object x, int y){
3853
+ return gt(x,(Object)y);
3854
+ }
3855
+
3856
+ static public boolean gt(float x, Object y){
3857
+ return gt((Object)x,y);
3858
+ }
3859
+
3860
+ static public boolean gt(Object x, float y){
3861
+ return gt(x,(Object)y);
3862
+ }
3863
+
3864
+ static public boolean gt(long x, Object y){
3865
+ return gt((Object)x,y);
3866
+ }
3867
+
3868
+ static public boolean gt(Object x, long y){
3869
+ return gt(x,(Object)y);
3870
+ }
3871
+
3872
+ static public boolean gt(double x, Object y){
3873
+ return gt((Object)x,y);
3874
+ }
3875
+
3876
+ static public boolean gt(Object x, double y){
3877
+ return gt(x,(Object)y);
3878
+ }
3879
+
3880
+ static public boolean gte(int x, Object y){
3881
+ return gte((Object)x,y);
3882
+ }
3883
+
3884
+ static public boolean gte(Object x, int y){
3885
+ return gte(x,(Object)y);
3886
+ }
3887
+
3888
+ static public boolean gte(float x, Object y){
3889
+ return gte((Object)x,y);
3890
+ }
3891
+
3892
+ static public boolean gte(Object x, float y){
3893
+ return gte(x,(Object)y);
3894
+ }
3895
+
3896
+ static public boolean gte(long x, Object y){
3897
+ return gte((Object)x,y);
3898
+ }
3899
+
3900
+ static public boolean gte(Object x, long y){
3901
+ return gte(x,(Object)y);
3902
+ }
3903
+
3904
+ static public boolean gte(double x, Object y){
3905
+ return gte((Object)x,y);
3906
+ }
3907
+
3908
+ static public boolean gte(Object x, double y){
3909
+ return gte(x,(Object)y);
3910
+ }
3911
+
3912
+
3913
+ static public boolean equiv(int x, Object y){
3914
+ return equiv((Object)x,y);
3915
+ }
3916
+
3917
+ static public boolean equiv(Object x, int y){
3918
+ return equiv(x,(Object)y);
3919
+ }
3920
+
3921
+ static public boolean equiv(float x, Object y){
3922
+ return equiv((Object)x,y);
3923
+ }
3924
+
3925
+ static public boolean equiv(Object x, float y){
3926
+ return equiv(x,(Object)y);
3927
+ }
3928
+
3929
+ static public boolean equiv(long x, Object y){
3930
+ return equiv((Object)x,y);
3931
+ }
3932
+
3933
+ static public boolean equiv(Object x, long y){
3934
+ return equiv(x,(Object)y);
3935
+ }
3936
+
3937
+ static public boolean equiv(double x, Object y){
3938
+ return equiv((Object)x,y);
3939
+ }
3940
+
3941
+ static public boolean equiv(Object x, double y){
3942
+ return equiv(x,(Object)y);
3943
+ }
3944
+
3945
+
3946
+ static public float add(int x, float y){
3947
+ return add((float)x,y);
3948
+ }
3949
+
3950
+ static public float add(float x, int y){
3951
+ return add(x,(float)y);
3952
+ }
3953
+
3954
+ static public double add(int x, double y){
3955
+ return add((double)x,y);
3956
+ }
3957
+
3958
+ static public double add(double x, int y){
3959
+ return add(x,(double)y);
3960
+ }
3961
+
3962
+ static public long add(int x, long y){
3963
+ return add((long)x,y);
3964
+ }
3965
+
3966
+ static public long add(long x, int y){
3967
+ return add(x,(long)y);
3968
+ }
3969
+
3970
+ static public float add(long x, float y){
3971
+ return add((float)x,y);
3972
+ }
3973
+
3974
+ static public float add(float x, long y){
3975
+ return add(x,(float)y);
3976
+ }
3977
+
3978
+ static public double add(long x, double y){
3979
+ return add((double)x,y);
3980
+ }
3981
+
3982
+ static public double add(double x, long y){
3983
+ return add(x,(double)y);
3984
+ }
3985
+
3986
+ static public double add(float x, double y){
3987
+ return add((double)x,y);
3988
+ }
3989
+
3990
+ static public double add(double x, float y){
3991
+ return add(x,(double)y);
3992
+ }
3993
+
3994
+ static public float minus(int x, float y){
3995
+ return minus((float)x,y);
3996
+ }
3997
+
3998
+ static public float minus(float x, int y){
3999
+ return minus(x,(float)y);
4000
+ }
4001
+
4002
+ static public double minus(int x, double y){
4003
+ return minus((double)x,y);
4004
+ }
4005
+
4006
+ static public double minus(double x, int y){
4007
+ return minus(x,(double)y);
4008
+ }
4009
+
4010
+ static public long minus(int x, long y){
4011
+ return minus((long)x,y);
4012
+ }
4013
+
4014
+ static public long minus(long x, int y){
4015
+ return minus(x,(long)y);
4016
+ }
4017
+
4018
+ static public float minus(long x, float y){
4019
+ return minus((float)x,y);
4020
+ }
4021
+
4022
+ static public float minus(float x, long y){
4023
+ return minus(x,(float)y);
4024
+ }
4025
+
4026
+ static public double minus(long x, double y){
4027
+ return minus((double)x,y);
4028
+ }
4029
+
4030
+ static public double minus(double x, long y){
4031
+ return minus(x,(double)y);
4032
+ }
4033
+
4034
+ static public double minus(float x, double y){
4035
+ return minus((double)x,y);
4036
+ }
4037
+
4038
+ static public double minus(double x, float y){
4039
+ return minus(x,(double)y);
4040
+ }
4041
+
4042
+ static public float multiply(int x, float y){
4043
+ return multiply((float)x,y);
4044
+ }
4045
+
4046
+ static public float multiply(float x, int y){
4047
+ return multiply(x,(float)y);
4048
+ }
4049
+
4050
+ static public double multiply(int x, double y){
4051
+ return multiply((double)x,y);
4052
+ }
4053
+
4054
+ static public double multiply(double x, int y){
4055
+ return multiply(x,(double)y);
4056
+ }
4057
+
4058
+ static public long multiply(int x, long y){
4059
+ return multiply((long)x,y);
4060
+ }
4061
+
4062
+ static public long multiply(long x, int y){
4063
+ return multiply(x,(long)y);
4064
+ }
4065
+
4066
+ static public float multiply(long x, float y){
4067
+ return multiply((float)x,y);
4068
+ }
4069
+
4070
+ static public float multiply(float x, long y){
4071
+ return multiply(x,(float)y);
4072
+ }
4073
+
4074
+ static public double multiply(long x, double y){
4075
+ return multiply((double)x,y);
4076
+ }
4077
+
4078
+ static public double multiply(double x, long y){
4079
+ return multiply(x,(double)y);
4080
+ }
4081
+
4082
+ static public double multiply(float x, double y){
4083
+ return multiply((double)x,y);
4084
+ }
4085
+
4086
+ static public double multiply(double x, float y){
4087
+ return multiply(x,(double)y);
4088
+ }
4089
+
4090
+ static public float divide(int x, float y){
4091
+ return divide((float)x,y);
4092
+ }
4093
+
4094
+ static public float divide(float x, int y){
4095
+ return divide(x,(float)y);
4096
+ }
4097
+
4098
+ static public double divide(int x, double y){
4099
+ return divide((double)x,y);
4100
+ }
4101
+
4102
+ static public double divide(double x, int y){
4103
+ return divide(x,(double)y);
4104
+ }
4105
+
4106
+ static public float divide(long x, float y){
4107
+ return divide((float)x,y);
4108
+ }
4109
+
4110
+ static public float divide(float x, long y){
4111
+ return divide(x,(float)y);
4112
+ }
4113
+
4114
+ static public double divide(long x, double y){
4115
+ return divide((double)x,y);
4116
+ }
4117
+
4118
+ static public double divide(double x, long y){
4119
+ return divide(x,(double)y);
4120
+ }
4121
+
4122
+ static public double divide(float x, double y){
4123
+ return divide((double)x,y);
4124
+ }
4125
+
4126
+ static public double divide(double x, float y){
4127
+ return divide(x,(double)y);
4128
+ }
4129
+
4130
+ static public boolean lt(int x, float y){
4131
+ return lt((float)x,y);
4132
+ }
4133
+
4134
+ static public boolean lt(float x, int y){
4135
+ return lt(x,(float)y);
4136
+ }
4137
+
4138
+ static public boolean lt(int x, double y){
4139
+ return lt((double)x,y);
4140
+ }
4141
+
4142
+ static public boolean lt(double x, int y){
4143
+ return lt(x,(double)y);
4144
+ }
4145
+
4146
+ static public boolean lt(int x, long y){
4147
+ return lt((long)x,y);
4148
+ }
4149
+
4150
+ static public boolean lt(long x, int y){
4151
+ return lt(x,(long)y);
4152
+ }
4153
+
4154
+ static public boolean lt(long x, float y){
4155
+ return lt((float)x,y);
4156
+ }
4157
+
4158
+ static public boolean lt(float x, long y){
4159
+ return lt(x,(float)y);
4160
+ }
4161
+
4162
+ static public boolean lt(long x, double y){
4163
+ return lt((double)x,y);
4164
+ }
4165
+
4166
+ static public boolean lt(double x, long y){
4167
+ return lt(x,(double)y);
4168
+ }
4169
+
4170
+ static public boolean lt(float x, double y){
4171
+ return lt((double)x,y);
4172
+ }
4173
+
4174
+ static public boolean lt(double x, float y){
4175
+ return lt(x,(double)y);
4176
+ }
4177
+
4178
+
4179
+ static public boolean lte(int x, float y){
4180
+ return lte((float)x,y);
4181
+ }
4182
+
4183
+ static public boolean lte(float x, int y){
4184
+ return lte(x,(float)y);
4185
+ }
4186
+
4187
+ static public boolean lte(int x, double y){
4188
+ return lte((double)x,y);
4189
+ }
4190
+
4191
+ static public boolean lte(double x, int y){
4192
+ return lte(x,(double)y);
4193
+ }
4194
+
4195
+ static public boolean lte(int x, long y){
4196
+ return lte((long)x,y);
4197
+ }
4198
+
4199
+ static public boolean lte(long x, int y){
4200
+ return lte(x,(long)y);
4201
+ }
4202
+
4203
+ static public boolean lte(long x, float y){
4204
+ return lte((float)x,y);
4205
+ }
4206
+
4207
+ static public boolean lte(float x, long y){
4208
+ return lte(x,(float)y);
4209
+ }
4210
+
4211
+ static public boolean lte(long x, double y){
4212
+ return lte((double)x,y);
4213
+ }
4214
+
4215
+ static public boolean lte(double x, long y){
4216
+ return lte(x,(double)y);
4217
+ }
4218
+
4219
+ static public boolean lte(float x, double y){
4220
+ return lte((double)x,y);
4221
+ }
4222
+
4223
+ static public boolean lte(double x, float y){
4224
+ return lte(x,(double)y);
4225
+ }
4226
+
4227
+ static public boolean gt(int x, float y){
4228
+ return gt((float)x,y);
4229
+ }
4230
+
4231
+ static public boolean gt(float x, int y){
4232
+ return gt(x,(float)y);
4233
+ }
4234
+
4235
+ static public boolean gt(int x, double y){
4236
+ return gt((double)x,y);
4237
+ }
4238
+
4239
+ static public boolean gt(double x, int y){
4240
+ return gt(x,(double)y);
4241
+ }
4242
+
4243
+ static public boolean gt(int x, long y){
4244
+ return gt((long)x,y);
4245
+ }
4246
+
4247
+ static public boolean gt(long x, int y){
4248
+ return gt(x,(long)y);
4249
+ }
4250
+
4251
+ static public boolean gt(long x, float y){
4252
+ return gt((float)x,y);
4253
+ }
4254
+
4255
+ static public boolean gt(float x, long y){
4256
+ return gt(x,(float)y);
4257
+ }
4258
+
4259
+ static public boolean gt(long x, double y){
4260
+ return gt((double)x,y);
4261
+ }
4262
+
4263
+ static public boolean gt(double x, long y){
4264
+ return gt(x,(double)y);
4265
+ }
4266
+
4267
+ static public boolean gt(float x, double y){
4268
+ return gt((double)x,y);
4269
+ }
4270
+
4271
+ static public boolean gt(double x, float y){
4272
+ return gt(x,(double)y);
4273
+ }
4274
+
4275
+ static public boolean gte(int x, float y){
4276
+ return gte((float)x,y);
4277
+ }
4278
+
4279
+ static public boolean gte(float x, int y){
4280
+ return gte(x,(float)y);
4281
+ }
4282
+
4283
+ static public boolean gte(int x, double y){
4284
+ return gte((double)x,y);
4285
+ }
4286
+
4287
+ static public boolean gte(double x, int y){
4288
+ return gte(x,(double)y);
4289
+ }
4290
+
4291
+ static public boolean gte(int x, long y){
4292
+ return gte((long)x,y);
4293
+ }
4294
+
4295
+ static public boolean gte(long x, int y){
4296
+ return gte(x,(long)y);
4297
+ }
4298
+
4299
+ static public boolean gte(long x, float y){
4300
+ return gte((float)x,y);
4301
+ }
4302
+
4303
+ static public boolean gte(float x, long y){
4304
+ return gte(x,(float)y);
4305
+ }
4306
+
4307
+ static public boolean gte(long x, double y){
4308
+ return gte((double)x,y);
4309
+ }
4310
+
4311
+ static public boolean gte(double x, long y){
4312
+ return gte(x,(double)y);
4313
+ }
4314
+
4315
+ static public boolean gte(float x, double y){
4316
+ return gte((double)x,y);
4317
+ }
4318
+
4319
+ static public boolean gte(double x, float y){
4320
+ return gte(x,(double)y);
4321
+ }
4322
+
4323
+ static public boolean equiv(int x, float y){
4324
+ return equiv((float)x,y);
4325
+ }
4326
+
4327
+ static public boolean equiv(float x, int y){
4328
+ return equiv(x,(float)y);
4329
+ }
4330
+
4331
+ static public boolean equiv(int x, double y){
4332
+ return equiv((double)x,y);
4333
+ }
4334
+
4335
+ static public boolean equiv(double x, int y){
4336
+ return equiv(x,(double)y);
4337
+ }
4338
+
4339
+ static public boolean equiv(int x, long y){
4340
+ return equiv((long)x,y);
4341
+ }
4342
+
4343
+ static public boolean equiv(long x, int y){
4344
+ return equiv(x,(long)y);
4345
+ }
4346
+
4347
+ static public boolean equiv(long x, float y){
4348
+ return equiv((float)x,y);
4349
+ }
4350
+
4351
+ static public boolean equiv(float x, long y){
4352
+ return equiv(x,(float)y);
4353
+ }
4354
+
4355
+ static public boolean equiv(long x, double y){
4356
+ return equiv((double)x,y);
4357
+ }
4358
+
4359
+ static public boolean equiv(double x, long y){
4360
+ return equiv(x,(double)y);
4361
+ }
4362
+
4363
+ static public boolean equiv(float x, double y){
4364
+ return equiv((double)x,y);
4365
+ }
4366
+
4367
+ static public boolean equiv(double x, float y){
4368
+ return equiv(x,(double)y);
4369
+ }
4370
+
4371
+ }