clojure 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ }