carray 2.0.1 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +6 -25
  3. data/CHANGELOG.md +338 -0
  4. data/{NEWS.md → CHANGELOG.v1.md} +3 -0
  5. data/LICENSE +1 -1
  6. data/README.md +120 -36
  7. data/carray.gemspec +32 -30
  8. data/ext/ca_array_pool.c +91 -0
  9. data/ext/ca_axis_descriptor.h +186 -0
  10. data/ext/ca_axis_dispatch.c +924 -0
  11. data/ext/ca_axis_group.c +1244 -0
  12. data/ext/ca_bincmp_dispatch.c +76 -0
  13. data/ext/ca_bincmp_dispatch.h +85 -0
  14. data/ext/ca_binop_dispatch.c +124 -0
  15. data/ext/ca_binop_dispatch.h +152 -0
  16. data/ext/ca_categorical_iterator.c +1375 -0
  17. data/ext/ca_compare.c +94 -0
  18. data/ext/ca_compare.h +26 -0
  19. data/ext/ca_composite_dispatch.c +414 -0
  20. data/ext/ca_composite_dispatch.h +116 -0
  21. data/ext/ca_for_buffer.h +96 -0
  22. data/ext/ca_for_each_element.h +239 -0
  23. data/ext/ca_group_iter.c +304 -0
  24. data/ext/ca_iter_substrate.h +325 -0
  25. data/ext/ca_kernel_iterator.c +4367 -0
  26. data/ext/ca_kernel_iterator.h +2596 -0
  27. data/ext/ca_moncmp_dispatch.c +37 -0
  28. data/ext/ca_moncmp_dispatch.h +62 -0
  29. data/ext/ca_monop_dispatch.c +200 -0
  30. data/ext/ca_monop_dispatch.h +235 -0
  31. data/ext/ca_obj_array.c +355 -359
  32. data/ext/ca_obj_bincmp.c +839 -0
  33. data/ext/ca_obj_binop.c +948 -0
  34. data/ext/ca_obj_bitarray.c +369 -164
  35. data/ext/ca_obj_bitfield.c +294 -234
  36. data/ext/ca_obj_block.c +189 -711
  37. data/ext/ca_obj_byte_swap.c +766 -0
  38. data/ext/ca_obj_const_string.c +967 -0
  39. data/ext/ca_obj_face.c +750 -0
  40. data/ext/ca_obj_face.h +279 -0
  41. data/ext/ca_obj_fake.c +239 -100
  42. data/ext/ca_obj_farray.c +54 -441
  43. data/ext/ca_obj_field.c +82 -529
  44. data/ext/ca_obj_fixlen_string.c +308 -0
  45. data/ext/ca_obj_grid.c +866 -440
  46. data/ext/ca_obj_meld.c +1039 -0
  47. data/ext/ca_obj_moncmp.c +588 -0
  48. data/ext/ca_obj_monop.c +1123 -0
  49. data/ext/ca_obj_object.c +866 -296
  50. data/ext/ca_obj_record.c +470 -0
  51. data/ext/ca_obj_reduce.c +97 -82
  52. data/ext/ca_obj_refer.c +593 -459
  53. data/ext/ca_obj_remap.c +475 -0
  54. data/ext/ca_obj_repeat.c +92 -477
  55. data/ext/ca_obj_roll.c +624 -0
  56. data/ext/ca_obj_select.c +344 -296
  57. data/ext/ca_obj_select_axis.c +1306 -0
  58. data/ext/ca_obj_shift.c +231 -793
  59. data/ext/ca_obj_source.c +78 -0
  60. data/ext/ca_obj_stack.c +1173 -0
  61. data/ext/ca_obj_stride.c +2584 -0
  62. data/ext/ca_obj_string.c +270 -0
  63. data/ext/ca_obj_tile.c +622 -0
  64. data/ext/ca_obj_time.c +548 -0
  65. data/ext/ca_obj_timedelta.c +437 -0
  66. data/ext/ca_obj_transpose.c +62 -516
  67. data/ext/ca_obj_triop.c +785 -0
  68. data/ext/ca_obj_window.c +1202 -565
  69. data/ext/ca_op_byte_swap.c +175 -0
  70. data/ext/ca_op_cmplx64.h +123 -0
  71. data/ext/ca_op_ipower.c +316 -0
  72. data/ext/ca_op_powi.h +88 -0
  73. data/ext/ca_sort_kernels.h +132 -0
  74. data/ext/ca_sweep_engine.c +473 -0
  75. data/ext/ca_sweep_engine.h +166 -0
  76. data/ext/ca_transform_common.c +235 -0
  77. data/ext/ca_triop_dispatch.c +55 -0
  78. data/ext/ca_triop_dispatch.h +62 -0
  79. data/ext/carray.h +810 -420
  80. data/ext/carray_access.c +873 -731
  81. data/ext/carray_attribute.c +98 -329
  82. data/ext/carray_bincount.c +255 -0
  83. data/ext/carray_broadcast.c +376 -0
  84. data/ext/carray_build_flags.h +3 -0
  85. data/ext/carray_call_cfunc.c +2897 -874
  86. data/ext/carray_call_cfunc.h +313 -0
  87. data/ext/carray_cast.c +1264 -315
  88. data/ext/carray_cast_func.rb +81 -40
  89. data/ext/carray_class.c +53 -63
  90. data/ext/carray_config.h +28 -0
  91. data/ext/carray_conversion.c +350 -346
  92. data/ext/carray_copy.c +168 -270
  93. data/ext/carray_core.c +1396 -206
  94. data/ext/carray_count.c +312 -0
  95. data/ext/carray_data_type.c +43 -19
  96. data/ext/carray_element.c +585 -213
  97. data/ext/carray_factorize.c +2542 -0
  98. data/ext/carray_generate.c +230 -559
  99. data/ext/carray_histogram.c +490 -0
  100. data/ext/carray_hold.c +228 -0
  101. data/ext/carray_index_classifier.c +1021 -0
  102. data/ext/carray_index_classifier.h +27 -0
  103. data/ext/carray_internal.h +136 -0
  104. data/ext/carray_kernels_bincmp.c +4446 -0
  105. data/ext/carray_kernels_binop.c +11001 -0
  106. data/ext/carray_kernels_init.c +1131 -0
  107. data/ext/carray_kernels_map.c +3467 -0
  108. data/ext/carray_kernels_moncmp.c +2097 -0
  109. data/ext/carray_kernels_monop.c +18313 -0
  110. data/ext/carray_kernels_reduce_aggregate.c +25837 -0
  111. data/ext/carray_kernels_reduce_boolean.c +330 -0
  112. data/ext/carray_kernels_reduce_cumulative.c +14593 -0
  113. data/ext/carray_kernels_reduce_extreme.c +16948 -0
  114. data/ext/carray_kernels_reduce_variance.c +3910 -0
  115. data/ext/carray_kernels_scan.c +3693 -0
  116. data/ext/carray_kernels_search.c +32138 -0
  117. data/ext/carray_kernels_sort.c +10626 -0
  118. data/ext/carray_kernels_triop.c +1392 -0
  119. data/ext/carray_lazy.c +737 -0
  120. data/ext/carray_loop.c +88 -200
  121. data/ext/carray_mask.c +853 -158
  122. data/ext/carray_math_kernel.h +120 -0
  123. data/ext/carray_mathfunc.c +10 -241
  124. data/ext/carray_median_percentile.c +1257 -0
  125. data/ext/carray_memory_view.c +1650 -0
  126. data/ext/carray_operator.c +1525 -320
  127. data/ext/carray_order.c +664 -1394
  128. data/ext/carray_partition.c +416 -0
  129. data/ext/carray_random.c +518 -0
  130. data/ext/carray_scatter.c +357 -0
  131. data/ext/carray_slab.c +1219 -0
  132. data/ext/carray_slab.h +84 -0
  133. data/ext/carray_sort.c +829 -0
  134. data/ext/carray_sort_kernel.c +620 -0
  135. data/ext/carray_struct.c +695 -0
  136. data/ext/carray_test.c +343 -229
  137. data/ext/carray_undef.c +34 -17
  138. data/ext/carray_utils.c +175 -74
  139. data/ext/extconf.rb +234 -55
  140. data/ext/mk_call_cfunc.rb +671 -0
  141. data/ext/mkkernel.rb +9096 -0
  142. data/ext/ruby_carray.c +211 -108
  143. data/ext/version.h +4 -14
  144. data/ext/version.rb +5 -13
  145. data/lib/carray/arrow_tensor.rb +401 -0
  146. data/lib/carray/attribute.rb +166 -0
  147. data/lib/carray/autoload_carray.rb +239 -0
  148. data/lib/carray/autoload_method_extension.rb +45 -0
  149. data/lib/carray/axis_group.rb +711 -0
  150. data/lib/carray/basics.rb +481 -0
  151. data/lib/carray/bincount_nd.rb +358 -0
  152. data/lib/carray/block_iterator.rb +614 -0
  153. data/lib/carray/boolean_reduce.rb +109 -0
  154. data/lib/carray/categorical.rb +561 -0
  155. data/lib/carray/categorical_iterator.rb +1084 -0
  156. data/lib/carray/complex.rb +150 -0
  157. data/lib/carray/conditional.rb +216 -0
  158. data/lib/carray/const_string.rb +228 -0
  159. data/lib/carray/construct.rb +160 -328
  160. data/lib/carray/core_extensions.rb +297 -0
  161. data/lib/carray/data_type_extension.rb +250 -0
  162. data/lib/carray/fixlen_string.rb +95 -0
  163. data/lib/carray/frame/concat.rb +132 -0
  164. data/lib/carray/frame/convert.rb +95 -0
  165. data/lib/carray/frame/csv_parser.rb +211 -0
  166. data/lib/carray/frame/frame.rb +642 -0
  167. data/lib/carray/frame/group.rb +186 -0
  168. data/lib/carray/frame/io.rb +321 -0
  169. data/lib/carray/frame/join.rb +248 -0
  170. data/lib/carray/frame/records.rb +99 -0
  171. data/lib/carray/frame/sort.rb +113 -0
  172. data/lib/carray/frame/verbs.rb +316 -0
  173. data/lib/carray/frame.rb +16 -0
  174. data/lib/carray/fuse_source.rb +123 -0
  175. data/lib/carray/fusion.rb +218 -0
  176. data/lib/carray/histogram.rb +512 -0
  177. data/lib/carray/inspect.rb +37 -26
  178. data/lib/carray/iterator.rb +58 -349
  179. data/lib/carray/lazy.rb +941 -0
  180. data/lib/carray/mask_gap_fill.rb +200 -0
  181. data/lib/carray/math.rb +78 -342
  182. data/lib/carray/meld_reduce.rb +289 -0
  183. data/lib/carray/methods/align_addr.rb +116 -0
  184. data/lib/carray/methods/bin.rb +128 -0
  185. data/lib/carray/methods/bincount.rb +87 -0
  186. data/lib/carray/methods/bit_string.rb +92 -0
  187. data/lib/carray/methods/broadcast.rb +63 -0
  188. data/lib/carray/methods/choose.rb +39 -0
  189. data/lib/carray/methods/composition.rb +280 -0
  190. data/lib/carray/methods/gather_nd.rb +206 -0
  191. data/lib/carray/methods/index.rb +39 -0
  192. data/lib/carray/methods/insert_block.rb +99 -0
  193. data/lib/carray/methods/is_in.rb +141 -0
  194. data/lib/carray/methods/join.rb +90 -0
  195. data/lib/carray/methods/locate_addr.rb +52 -0
  196. data/lib/carray/methods/mask_duplicates.rb +41 -0
  197. data/lib/carray/methods/meshgrid.rb +90 -0
  198. data/lib/carray/methods/mode.rb +126 -0
  199. data/lib/carray/methods/nunique.rb +46 -0
  200. data/lib/carray/methods/resize.rb +56 -0
  201. data/lib/carray/methods/snap.rb +161 -0
  202. data/lib/carray/methods/string_format.rb +57 -0
  203. data/lib/carray/methods/unique.rb +47 -0
  204. data/lib/carray/methods/value_counts.rb +71 -0
  205. data/lib/carray/mkmf.rb +124 -101
  206. data/lib/carray/runtime.rb +89 -0
  207. data/lib/carray/serialize.rb +478 -167
  208. data/lib/carray/slab_iterator.rb +305 -0
  209. data/lib/carray/stack.rb +291 -0
  210. data/lib/carray/string.rb +56 -180
  211. data/lib/carray/string_operation_extension.rb +289 -0
  212. data/lib/carray/struct.rb +335 -323
  213. data/lib/carray/struct_builder.rb +697 -0
  214. data/lib/carray/table.rb +41 -2
  215. data/lib/carray/time.rb +2654 -38
  216. data/lib/carray/window_iterator.rb +927 -0
  217. data/lib/carray.rb +55 -57
  218. data/yard-stubs/ca_obj_array.rb +385 -0
  219. data/yard-stubs/ca_obj_bitarray.rb +38 -0
  220. data/yard-stubs/ca_obj_bitfield.rb +43 -0
  221. data/yard-stubs/ca_obj_block.rb +73 -0
  222. data/yard-stubs/ca_obj_byte_swap.rb +56 -0
  223. data/yard-stubs/ca_obj_fake.rb +31 -0
  224. data/yard-stubs/ca_obj_farray.rb +32 -0
  225. data/yard-stubs/ca_obj_field.rb +45 -0
  226. data/yard-stubs/ca_obj_grid.rb +35 -0
  227. data/yard-stubs/ca_obj_refer.rb +72 -0
  228. data/yard-stubs/ca_obj_roll.rb +45 -0
  229. data/yard-stubs/ca_obj_shift.rb +43 -0
  230. data/yard-stubs/ca_obj_stride.rb +181 -0
  231. data/yard-stubs/ca_obj_tile.rb +29 -0
  232. data/yard-stubs/ca_obj_transpose.rb +40 -0
  233. data/yard-stubs/ca_obj_window.rb +49 -0
  234. data/yard-stubs/carray_access.rb +131 -0
  235. data/yard-stubs/carray_attribute.rb +246 -0
  236. data/yard-stubs/carray_broadcast.rb +37 -0
  237. data/yard-stubs/carray_cast.rb +489 -0
  238. data/yard-stubs/carray_class.rb +65 -0
  239. data/yard-stubs/carray_conversion.rb +76 -0
  240. data/yard-stubs/carray_copy.rb +79 -0
  241. data/yard-stubs/carray_core.rb +114 -0
  242. data/yard-stubs/carray_count.rb +79 -0
  243. data/yard-stubs/carray_element.rb +108 -0
  244. data/yard-stubs/carray_generate.rb +66 -0
  245. data/yard-stubs/carray_lazy.rb +23 -0
  246. data/yard-stubs/carray_loop.rb +140 -0
  247. data/yard-stubs/carray_mask.rb +259 -0
  248. data/yard-stubs/carray_math.rb +132 -0
  249. data/yard-stubs/carray_mathfunc.rb +45 -0
  250. data/yard-stubs/carray_median_percentile.rb +89 -0
  251. data/yard-stubs/carray_memory_view.rb +163 -0
  252. data/yard-stubs/carray_order.rb +312 -0
  253. data/yard-stubs/carray_random.rb +89 -0
  254. data/yard-stubs/carray_scatter.rb +106 -0
  255. data/yard-stubs/carray_slab.rb +57 -0
  256. data/yard-stubs/carray_sort.rb +163 -0
  257. data/yard-stubs/carray_test.rb +85 -0
  258. data/yard-stubs/carray_undef.rb +64 -0
  259. data/yard-stubs/carray_utils.rb +97 -0
  260. data/yard-stubs/ruby_carray.rb +193 -0
  261. metadata +220 -138
  262. data/Rakefile +0 -51
  263. data/TODO.md +0 -18
  264. data/ext/ca_iter_block.c +0 -257
  265. data/ext/ca_iter_dimension.c +0 -299
  266. data/ext/ca_iter_window.c +0 -214
  267. data/ext/ca_obj_mapping.c +0 -644
  268. data/ext/ca_obj_unbound_repeat.c +0 -529
  269. data/ext/carray_iterator.c +0 -641
  270. data/ext/carray_math.rb +0 -850
  271. data/ext/carray_numeric.c +0 -259
  272. data/ext/carray_sort_addr.c +0 -254
  273. data/ext/carray_stat.c +0 -2100
  274. data/ext/carray_stat_proc.rb +0 -1999
  275. data/ext/mkmath.rb +0 -741
  276. data/ext/ruby_ccomplex.c +0 -509
  277. data/ext/ruby_float_func.c +0 -86
  278. data/lib/carray/array.rb +0 -8
  279. data/lib/carray/autoload/autoload_base.rb +0 -19
  280. data/lib/carray/autoload/autoload_gem_cairo.rb +0 -9
  281. data/lib/carray/autoload/autoload_gem_ffi.rb +0 -9
  282. data/lib/carray/autoload/autoload_gem_gnuplot.rb +0 -2
  283. data/lib/carray/autoload/autoload_gem_io_csv.rb +0 -14
  284. data/lib/carray/autoload/autoload_gem_io_pg.rb +0 -6
  285. data/lib/carray/autoload/autoload_gem_io_sqlite3.rb +0 -12
  286. data/lib/carray/autoload/autoload_gem_narray.rb +0 -10
  287. data/lib/carray/autoload/autoload_gem_numo_narray.rb +0 -15
  288. data/lib/carray/autoload/autoload_gem_opencv.rb +0 -16
  289. data/lib/carray/autoload/autoload_gem_random.rb +0 -8
  290. data/lib/carray/autoload/autoload_gem_rmagick.rb +0 -23
  291. data/lib/carray/autoload/autoload_gem_zimg.rb +0 -3
  292. data/lib/carray/autoload/autoload_io_imagemagick.rb +0 -6
  293. data/lib/carray/autoload/autoload_math_histogram.rb +0 -5
  294. data/lib/carray/autoload/autoload_math_recurrence.rb +0 -6
  295. data/lib/carray/autoload/autoload_object_iterator.rb +0 -1
  296. data/lib/carray/autoload/autoload_object_link.rb +0 -1
  297. data/lib/carray/autoload/autoload_object_pack.rb +0 -2
  298. data/lib/carray/autoload.rb +0 -141
  299. data/lib/carray/basic.rb +0 -191
  300. data/lib/carray/broadcast.rb +0 -101
  301. data/lib/carray/compose.rb +0 -315
  302. data/lib/carray/convert.rb +0 -115
  303. data/lib/carray/info.rb +0 -110
  304. data/lib/carray/io/imagemagick.rb +0 -235
  305. data/lib/carray/mask.rb +0 -102
  306. data/lib/carray/math/histogram.rb +0 -177
  307. data/lib/carray/math/recurrence.rb +0 -93
  308. data/lib/carray/object/ca_obj_iterator.rb +0 -50
  309. data/lib/carray/object/ca_obj_link.rb +0 -50
  310. data/lib/carray/object/ca_obj_pack.rb +0 -99
  311. data/lib/carray/obsolete.rb +0 -256
  312. data/lib/carray/ordering.rb +0 -181
  313. data/lib/carray/testing.rb +0 -51
  314. data/lib/carray/transform.rb +0 -109
  315. data/mailmap +0 -1
  316. data/misc/Methods.ja.md +0 -182
  317. data/misc/NOTE +0 -51
  318. data/spec/Classes/CABitfield_spec.rb +0 -58
  319. data/spec/Classes/CABlockIterator_spec.rb +0 -114
  320. data/spec/Classes/CABlock_spec.rb +0 -205
  321. data/spec/Classes/CAField_spec.rb +0 -39
  322. data/spec/Classes/CAGrid_spec.rb +0 -75
  323. data/spec/Classes/CAMap_spec.rb +0 -0
  324. data/spec/Classes/CAMapping_spec.rb +0 -105
  325. data/spec/Classes/CAObject_attribute_spec.rb +0 -33
  326. data/spec/Classes/CAObject_spec.rb +0 -33
  327. data/spec/Classes/CARefer_spec.rb +0 -93
  328. data/spec/Classes/CARepeat_spec.rb +0 -65
  329. data/spec/Classes/CASelect_spec.rb +0 -22
  330. data/spec/Classes/CAShift_spec.rb +0 -16
  331. data/spec/Classes/CAStruct_spec.rb +0 -71
  332. data/spec/Classes/CATranspose_spec.rb +0 -60
  333. data/spec/Classes/CAUnboudRepeat_spec.rb +0 -102
  334. data/spec/Classes/CAWindow_spec.rb +0 -54
  335. data/spec/Classes/CAWrap_spec.rb +0 -8
  336. data/spec/Classes/CArray_spec.rb +0 -184
  337. data/spec/Classes/CScalar_spec.rb +0 -55
  338. data/spec/Features/feature_130_spec.rb +0 -19
  339. data/spec/Features/feature_attributes_spec.rb +0 -280
  340. data/spec/Features/feature_boolean_spec.rb +0 -98
  341. data/spec/Features/feature_broadcast.rb +0 -116
  342. data/spec/Features/feature_cast_function.rb +0 -19
  343. data/spec/Features/feature_cast_spec.rb +0 -33
  344. data/spec/Features/feature_class_spec.rb +0 -84
  345. data/spec/Features/feature_complex_spec.rb +0 -42
  346. data/spec/Features/feature_composite_spec.rb +0 -124
  347. data/spec/Features/feature_convert_spec.rb +0 -46
  348. data/spec/Features/feature_copy_spec.rb +0 -123
  349. data/spec/Features/feature_creation_spec.rb +0 -84
  350. data/spec/Features/feature_element_spec.rb +0 -144
  351. data/spec/Features/feature_extream_spec.rb +0 -54
  352. data/spec/Features/feature_generate_spec.rb +0 -74
  353. data/spec/Features/feature_index_spec.rb +0 -69
  354. data/spec/Features/feature_mask_spec.rb +0 -580
  355. data/spec/Features/feature_math_spec.rb +0 -97
  356. data/spec/Features/feature_order_spec.rb +0 -146
  357. data/spec/Features/feature_ref_store_spec.rb +0 -209
  358. data/spec/Features/feature_serialization_spec.rb +0 -125
  359. data/spec/Features/feature_stat_spec.rb +0 -397
  360. data/spec/Features/feature_virtual_spec.rb +0 -48
  361. data/spec/Features/method_eq_spec.rb +0 -81
  362. data/spec/Features/method_is_nan_spec.rb +0 -12
  363. data/spec/Features/method_map_spec.rb +0 -54
  364. data/spec/Features/method_max_with.rb +0 -20
  365. data/spec/Features/method_min_with.rb +0 -19
  366. data/spec/Features/method_ne_spec.rb +0 -18
  367. data/spec/Features/method_project_spec.rb +0 -188
  368. data/spec/Features/method_ref_spec.rb +0 -27
  369. data/spec/Features/method_round_spec.rb +0 -11
  370. data/spec/Features/method_s_linspace_spec.rb +0 -48
  371. data/spec/Features/method_s_span_spec.rb +0 -14
  372. data/spec/Features/method_seq_spec.rb +0 -47
  373. data/spec/Features/method_sort_with.rb +0 -43
  374. data/spec/Features/method_sorted_with.rb +0 -29
  375. data/spec/Features/method_span_spec.rb +0 -42
  376. data/spec/Features/method_wrap_readonly_spec.rb +0 -43
  377. data/spec/UnitTest/test_CAVirtual.rb +0 -214
  378. data/spec/spec_all.rb +0 -10
  379. data/utils/ca_ase.rb +0 -21
  380. data/utils/ca_methods.rb +0 -15
  381. data/utils/cast_checker.rb +0 -30
  382. data/utils/convert_test.rb +0 -73
  383. data/utils/extract_yard.rb +0 -22
  384. data/utils/guess_shape.rb +0 -76
  385. data/utils/monkey_patch_methods.rb +0 -62
  386. data/utils/remove_resource_fork.sh +0 -5
@@ -1,16 +0,0 @@
1
- module OpenCV
2
- class CvMat
3
- autoload_method "ca", "carray-opencv"
4
- autoload_method "to_ca", "carray-opencv"
5
- autoload_method "from_ca", "carray-opencv"
6
- autoload_method "image", "carray-opencv"
7
- end
8
- class IplImage < CvMat
9
- autoload_method "ca", "carray-opencv"
10
- end
11
- end
12
-
13
- class CArray
14
- autoload_method "to_cvmat", "carray-opencv"
15
- autoload_method "to_iplimage", "carray-opencv"
16
- end
@@ -1,8 +0,0 @@
1
- class CArray
2
- class << self
3
- autoload_method :srand, "carray-random"
4
- end
5
- autoload_method :random!, "carray-random"
6
- autoload_method :shuffle, "carray-random"
7
- autoload_method :shuffle!, "carray-random"
8
- end
@@ -1,23 +0,0 @@
1
- module Magick
2
- class Image
3
- autoload_method "export_pixels_to_ca", "carray-rmagick"
4
- autoload_method "import_pixels_from_ca", "carray-rmagick"
5
- end
6
- end
7
-
8
- class CArray
9
- autoload_method "self.load_image", "carray-rmagick"
10
- autoload_method "save_image", "carray-rmagick"
11
- autoload_method "display_image", "carray-rmagick"
12
- autoload_method "to_image", "carray-rmagick"
13
- end
14
-
15
- autoload :CAMagickImage, "carray-rmagick"
16
-
17
- module Magick
18
- class Image
19
- autoload_method "ca", "carray-rmagick"
20
- autoload_method "to_ca", "carray-rmagick"
21
- end
22
- end
23
-
@@ -1,3 +0,0 @@
1
- class CArray
2
- autoload_method "zimg", "carray/graphics/zimg"
3
- end
@@ -1,6 +0,0 @@
1
- autoload_method "CArray.load_by_magick", "carray/io/imagemagick"
2
-
3
- class CArray
4
- autoload_method "save_by_magick", "carray/io/imagemagick"
5
- autoload_method "display_by_magick", "carray/io/imagemagick"
6
- end
@@ -1,5 +0,0 @@
1
- autoload :CAHistogram, "carray/math/histogram"
2
-
3
- class CArray
4
- autoload_method :bin, "carray/math/histogram"
5
- end
@@ -1,6 +0,0 @@
1
- autoload :CARecurrence, 'carray/math/recurrence'
2
-
3
- class CArray
4
- autoload_method "recurrence!", "carray/math/recurrence"
5
- autoload_method "recurrence", "carray/math/recurrence"
6
- end
@@ -1 +0,0 @@
1
- autoload :CAIteratorArray, 'carray/object/ca_obj_iterator'
@@ -1 +0,0 @@
1
- autoload :CALink, 'carray/object/ca_obj_link'
@@ -1,2 +0,0 @@
1
- autoload :CAPack, "carray/object/ca_obj_pack"
2
- autoload_method "CArray.pack", "carray/object/ca_obj_pack"
@@ -1,141 +0,0 @@
1
- # ----------------------------------------------------------------------------
2
- #
3
- # carray/autoload.rb
4
- #
5
- # This file is part of Ruby/CArray extension library.
6
- #
7
- # Copyright (C) 2005-2010 Hiroki Motoyoshi
8
- #
9
- # ----------------------------------------------------------------------------
10
-
11
- def autoload_method (method, library)
12
- eval %{
13
- def #{method} (*argv, &block)
14
- begin
15
- require "#{library}"
16
- rescue LoadError
17
- raise "error in autoloading '#{library}' hooked by method '#{method}', check gem installation."
18
- end
19
- #{method}(*argv, &block)
20
- end
21
- }
22
- end
23
-
24
- class Class
25
- def autoload_method (method, library)
26
- class_eval %{
27
- def #{method} (*argv, &block)
28
- begin
29
- require "#{library}"
30
- rescue LoadError
31
- raise "error in autoloading '#{library}' hooked by method '#{method}', check gem installation."
32
- end
33
- #{method}(*argv, &block)
34
- end
35
- }
36
- end
37
- end
38
-
39
- class Module
40
- def autoload_method (method, library)
41
- class_eval %{
42
- def #{method} (*argv, &block)
43
- begin
44
- require "#{library}"
45
- rescue LoadError
46
- raise "error in autoloading '#{library}' hooked by method '#{method}', check gem installation."
47
- end
48
- #{method}(*argv, &block)
49
- end
50
- }
51
- end
52
- end
53
-
54
- class Module
55
- def autoload_module_function (method, library)
56
- class_eval %{
57
- module_function
58
- def #{method} (*argv, &block)
59
- begin
60
- require "#{library}"
61
- rescue LoadError
62
- raise "error in autoloading '#{library}' hooked by method '#{method}', check gem installation."
63
- end
64
- #{method}(*argv, &block)
65
- end
66
- }
67
- end
68
- end
69
-
70
- module CA
71
-
72
- def self.each_load_path (name) # :nodoc:
73
- autoload_dirs = $:.clone
74
- if defined? Gem
75
- autoload_dirs.push File.expand_path(File.join(__FILE__,"..","..",".."))
76
- accounted = {}
77
- Gem::Specification.each do |spec|
78
- if accounted.has_key?(spec.name)
79
- next
80
- end
81
- if spec.name =~ /carray\-/
82
- spec.require_paths.each do |path|
83
- if path !~ /^\//
84
- path = File.join(spec.full_gem_path, path)
85
- end
86
- autoload_dirs.push(path)
87
- end
88
- accounted[spec.name] = true
89
- end
90
- end
91
- end
92
- autoload_dirs.each do |path|
93
- dir = File.join(path, name)
94
- if File.directory?(dir)
95
- Dir.chdir(dir) {
96
- yield
97
- }
98
- end
99
- end
100
- end
101
-
102
- end
103
-
104
- __END__
105
- names = {"carray" => true}
106
- Gem.path.each do |path|
107
- gems = File.join(path, "gems")
108
- if File.directory?(gems)
109
- Dir.chdir(gems) {
110
- Dir["carray-*"].sort.reverse.each do |dir|
111
- name = dir.sub(/\-\d+\.\d+\.\d+\z/, '')
112
- next if names[name]
113
- lib = File.join(dir, "lib")
114
- if File.directory?(lib)
115
- Dir.chdir(lib) {
116
- Dir["carray/autoload/autoload_*"].each do |loader|
117
- begin
118
- load File.expand_path(File.join(gems, dir, lib, loader.sub(/\.rb\z/, "")))
119
- rescue LoadError
120
- end
121
- end
122
- }
123
- end
124
- names[name] = true
125
- end
126
- }
127
- end
128
- end
129
-
130
- __END__
131
- CA.each_load_path("carray/autoload") {
132
- Dir["autoload_*.rb"].each do |basename|
133
- if basename =~ /\A(autoload_.+)\.rb\Z/
134
- begin
135
- require "carray/autoload/" + $1
136
- rescue LoadError
137
- end
138
- end
139
- end
140
- }
141
-
data/lib/carray/basic.rb DELETED
@@ -1,191 +0,0 @@
1
- # ----------------------------------------------------------------------------
2
- #
3
- # carray/basic.rb
4
- #
5
- # This file is part of Ruby/CArray extension library.
6
- #
7
- # Copyright (C) 2005-2025 Hiroki Motoyoshi
8
- #
9
- # ----------------------------------------------------------------------------
10
-
11
- module CAMath
12
- include Math
13
- end
14
-
15
- #
16
- # monkey patch
17
- #
18
-
19
- def nan
20
- 0.0/0.0
21
- end
22
-
23
- class Array # :nodoc:
24
- def +@
25
- return CA_SIZE(self)
26
- end
27
- def to_ca
28
- return CA_OBJECT(self)
29
- end
30
- end
31
-
32
- class Range # :nodoc:
33
- def +@
34
- return CA_SIZE(self)
35
- end
36
- def to_ca
37
- return CA_OBJECT(self)
38
- end
39
- end
40
-
41
- class Numeric
42
-
43
- def eq (other)
44
- case other
45
- when CArray
46
- return other.eq(self)
47
- else
48
- return send(:eq, *other.coerce(self))
49
- end
50
- end
51
-
52
- def ne (other)
53
- case other
54
- when CArray
55
- return other.ne(self)
56
- else
57
- return send(:ne, *other.coerce(self))
58
- end
59
- end
60
-
61
- end
62
-
63
- class CArray
64
-
65
- def has_attribute?
66
- if ( not @attribute ) or @attribute.empty?
67
- return false
68
- else
69
- return true
70
- end
71
- end
72
-
73
- def attribute= (obj)
74
- unless obj.is_a?(Hash)
75
- raise "attribute should be a hash object"
76
- end
77
- @attribute = obj
78
- end
79
-
80
- def attribute
81
- @attribute ||= {}
82
- return @attribute
83
- end
84
-
85
- def first
86
- ( self.elements == 0 ) ? nil : self[0]
87
- end
88
-
89
- def last
90
- ( self.elements == 0 ) ? nil :self[-1]
91
- end
92
-
93
- # matchup
94
-
95
- def matchup (ref)
96
- ri = ref.sort_addr
97
- rs = ref[ri].to_ca
98
- si = rs.bsearch(self)
99
- return ri.project(si)
100
- end
101
-
102
- def matchup_nearest (ref, direction: "round")
103
- ri = ref.sort_addr
104
- rs = ref[ri].to_ca
105
- si = rs.section(self).send(direction.intern).int64
106
- si.trim!(0,si.size)
107
- return ri[si].to_ca
108
- end
109
-
110
-
111
- # index / indices / axes
112
-
113
- def address ()
114
- return CArray.int32(*dim).seq!
115
- end
116
-
117
- def index (n = 0)
118
- unless n.is_a?(Integer)
119
- raise ArgumentError, "argument should be an integer"
120
- end
121
- if n.between?(0, ndim-1)
122
- return CArray.int32(dim[n]).seq!
123
- else
124
- raise ArgumentError,
125
- "invalid dimension specifier #{n} (0..#{self.ndim-1})"
126
- end
127
- end
128
-
129
- #
130
- #
131
- #
132
-
133
- def indices
134
- list = Array.new(ndim) {|i|
135
- rpt = self.dim
136
- rpt[i] = :%
137
- index(i)[*rpt]
138
- }
139
- if block_given?
140
- return yield(*list)
141
- else
142
- return list
143
- end
144
- end
145
-
146
-
147
-
148
- end
149
-
150
- class CArray
151
-
152
- # Returns object carray has elements of splitted carray at dimensions
153
- # which is given by arguments
154
- #
155
- # a = CA_INT([[1,2,3], [4,5,6], [7,8,9]])
156
- #
157
- # a.split(0)
158
- # [1,2,3], [4,5,6], [7,8,9]
159
- #
160
- # a.split(1)
161
- # [1,4,7], [2,5,8], [3,6,9]
162
- #
163
-
164
- def split (*argv)
165
- odim = dim.values_at(*argv)
166
- out = CArray.object(*odim)
167
- idx = [nil] * ndim
168
- attach {
169
- out.map_with_index! do |o, v|
170
- argv.each_with_index do |r, i|
171
- idx[r] = v[i]
172
- end
173
- self[*idx].to_ca
174
- end
175
- }
176
- return out
177
- end
178
-
179
- end
180
-
181
- class CAUnboundRepeat
182
-
183
- def template (*argv, &block)
184
- return parent.template(*argv,&block)[*spec.map{|x| x != :* ? nil : x}]
185
- end
186
-
187
- end
188
-
189
-
190
-
191
-
@@ -1,101 +0,0 @@
1
- # ----------------------------------------------------------------------------
2
- #
3
- # carray/broadcast.rb
4
- #
5
- # This file is part of Ruby/CArray extension library.
6
- #
7
- # Copyright (C) 2005-2025 Hiroki Motoyoshi
8
- #
9
- # ----------------------------------------------------------------------------
10
-
11
- class CArray
12
-
13
- def broadcast_to (*newdim)
14
-
15
- if newdim.size < ndim
16
- raise "(Broadcasting) can't broadcast to #{newdim.inspect} because too small rank is specified"
17
- end
18
-
19
- #
20
- # Try to build unbound repeat index (includes :*)
21
- # with broadcasting rule in Numpy.
22
- #
23
- repdim = []
24
- shape = []
25
-
26
- srcdim = dim.dup
27
- dstdim = newdim.dup
28
- sd = srcdim.pop
29
- dd = dstdim.pop
30
- while dd
31
- if sd == dd
32
- repdim.unshift nil
33
- shape.unshift(dd)
34
- sd = srcdim.pop
35
- elsif dd == 1
36
- repdim.unshift :*
37
- elsif sd == 1
38
- repdim.unshift :*
39
- sd = srcdim.pop
40
- else
41
- raise "(Broadcasting) can't broadcast to #{newdim.inspect} "
42
- end
43
- dd = dstdim.pop
44
- end
45
-
46
- #
47
- # Call Unbound repeat's bind
48
- #
49
- return self.reshape(*shape)[*repdim].bind(*newdim) if repdim.include?(:*)
50
-
51
- self
52
- end
53
-
54
- end
55
-
56
- class CScalar
57
-
58
- def broadcast_to (*newdim)
59
- out = CArray.new(data_type, newdim, bytes: bytes)
60
- out[] = self
61
- out
62
- end
63
-
64
- end
65
-
66
- class CAUnboundRepeat
67
-
68
- alias broadcast_to bind
69
-
70
- end
71
-
72
- def CArray.broadcast (*argv, expand_scalar: false, &block)
73
-
74
- sel = argv.select { |arg| arg.is_a?(CArray) }
75
- return argv if sel.empty?
76
-
77
- dim = []
78
- ndim = sel.map(&:ndim).max
79
- ndim.times do |k|
80
- dim[k] = sel.map { |arg| arg.dim[k] || 1 }.max
81
- end
82
-
83
- if not expand_scalar
84
- list = argv.map { |arg|
85
- case arg
86
- when CScalar
87
- arg
88
- when CArray
89
- arg.broadcast_to(*dim)
90
- else
91
- arg
92
- end
93
- }
94
- else
95
- list = argv.map { |arg| arg.is_a?(CArray) ? arg.broadcast_to(*dim) : arg }
96
- end
97
-
98
- return block.call(*list) if block
99
- return list
100
- end
101
-