carray 1.3.6 → 1.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (315) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +32 -0
  3. data/LICENSE +22 -0
  4. data/NEWS.md +65 -0
  5. data/README.md +23 -26
  6. data/Rakefile +31 -0
  7. data/TODO.md +17 -0
  8. data/carray.gemspec +24 -31
  9. data/{ca_iter_block.c → ext/ca_iter_block.c} +16 -18
  10. data/{ca_iter_dimension.c → ext/ca_iter_dimension.c} +20 -21
  11. data/{ca_iter_window.c → ext/ca_iter_window.c} +12 -14
  12. data/{ca_obj_array.c → ext/ca_obj_array.c} +451 -176
  13. data/{ca_obj_bitarray.c → ext/ca_obj_bitarray.c} +18 -23
  14. data/{ca_obj_bitfield.c → ext/ca_obj_bitfield.c} +12 -16
  15. data/{ca_obj_block.c → ext/ca_obj_block.c} +47 -54
  16. data/{ca_obj_fake.c → ext/ca_obj_fake.c} +10 -12
  17. data/{ca_obj_farray.c → ext/ca_obj_farray.c} +21 -23
  18. data/{ca_obj_field.c → ext/ca_obj_field.c} +30 -32
  19. data/{ca_obj_grid.c → ext/ca_obj_grid.c} +32 -33
  20. data/{ca_obj_mapping.c → ext/ca_obj_mapping.c} +11 -13
  21. data/{ca_obj_object.c → ext/ca_obj_object.c} +40 -42
  22. data/{ca_obj_reduce.c → ext/ca_obj_reduce.c} +3 -5
  23. data/{ca_obj_refer.c → ext/ca_obj_refer.c} +38 -40
  24. data/{ca_obj_repeat.c → ext/ca_obj_repeat.c} +45 -47
  25. data/{ca_obj_select.c → ext/ca_obj_select.c} +4 -6
  26. data/{ca_obj_shift.c → ext/ca_obj_shift.c} +26 -28
  27. data/{ca_obj_transpose.c → ext/ca_obj_transpose.c} +26 -28
  28. data/{ca_obj_unbound_repeat.c → ext/ca_obj_unbound_repeat.c} +106 -160
  29. data/{ca_obj_window.c → ext/ca_obj_window.c} +33 -35
  30. data/{carray.h → ext/carray.h} +90 -59
  31. data/{carray_access.c → ext/carray_access.c} +244 -109
  32. data/{carray_attribute.c → ext/carray_attribute.c} +161 -207
  33. data/{carray_call_cfunc.c → ext/carray_call_cfunc.c} +1 -3
  34. data/{carray_cast.c → ext/carray_cast.c} +350 -149
  35. data/{carray_cast_func.rb → ext/carray_cast_func.rb} +1 -2
  36. data/{carray_class.c → ext/carray_class.c} +28 -36
  37. data/{carray_conversion.c → ext/carray_conversion.c} +58 -70
  38. data/{carray_copy.c → ext/carray_copy.c} +34 -50
  39. data/{carray_core.c → ext/carray_core.c} +75 -62
  40. data/ext/carray_data_type.c +66 -0
  41. data/{carray_element.c → ext/carray_element.c} +34 -53
  42. data/{carray_generate.c → ext/carray_generate.c} +137 -50
  43. data/{carray_iterator.c → ext/carray_iterator.c} +53 -53
  44. data/{carray_loop.c → ext/carray_loop.c} +77 -106
  45. data/{carray_mask.c → ext/carray_mask.c} +95 -114
  46. data/{carray_math.rb → ext/carray_math.rb} +47 -31
  47. data/ext/{mathfunc/carray_mathfunc.c → carray_mathfunc.c} +1 -3
  48. data/{carray_numeric.c → ext/carray_numeric.c} +43 -46
  49. data/{carray_operator.c → ext/carray_operator.c} +72 -36
  50. data/{carray_order.c → ext/carray_order.c} +73 -217
  51. data/{carray_sort_addr.c → ext/carray_sort_addr.c} +14 -21
  52. data/{carray_stat.c → ext/carray_stat.c} +6 -8
  53. data/{carray_stat_proc.rb → ext/carray_stat_proc.rb} +25 -27
  54. data/{carray_test.c → ext/carray_test.c} +59 -51
  55. data/{carray_undef.c → ext/carray_undef.c} +1 -11
  56. data/{carray_utils.c → ext/carray_utils.c} +12 -4
  57. data/{extconf.rb → ext/extconf.rb} +1 -6
  58. data/{mkmath.rb → ext/mkmath.rb} +13 -3
  59. data/{ruby_carray.c → ext/ruby_carray.c} +20 -8
  60. data/{ruby_ccomplex.c → ext/ruby_ccomplex.c} +1 -3
  61. data/{ruby_float_func.c → ext/ruby_float_func.c} +1 -3
  62. data/ext/version.h +16 -0
  63. data/{version.rb → ext/version.rb} +0 -0
  64. data/lib/carray.rb +52 -10
  65. data/lib/carray/{base/autoload.rb → autoload.rb} +48 -8
  66. data/lib/carray/autoload/autoload_base.rb +1 -5
  67. data/lib/carray/autoload/autoload_gem_cairo.rb +9 -0
  68. data/lib/carray/autoload/autoload_gem_ffi.rb +9 -0
  69. data/lib/carray/autoload/autoload_gem_gnuplot.rb +2 -0
  70. data/lib/carray/autoload/autoload_gem_io_csv.rb +14 -0
  71. data/lib/carray/autoload/autoload_gem_io_pg.rb +6 -0
  72. data/lib/carray/autoload/autoload_gem_io_sqlite3.rb +12 -0
  73. data/lib/carray/autoload/autoload_gem_narray.rb +10 -0
  74. data/lib/carray/autoload/autoload_gem_numo_narray.rb +15 -0
  75. data/lib/carray/autoload/autoload_gem_opencv.rb +16 -0
  76. data/lib/carray/autoload/autoload_gem_random.rb +8 -0
  77. data/lib/carray/autoload/autoload_gem_rmagick.rb +23 -0
  78. data/lib/carray/autoload/{autoload_graphics_zimg.rb → autoload_gem_zimg.rb} +0 -0
  79. data/lib/carray/basic.rb +191 -0
  80. data/lib/carray/broadcast.rb +82 -0
  81. data/lib/carray/compose.rb +315 -0
  82. data/lib/carray/construct.rb +460 -0
  83. data/lib/carray/convert.rb +115 -0
  84. data/lib/carray/info.rb +1 -3
  85. data/lib/carray/{base/inspect.rb → inspect.rb} +9 -11
  86. data/lib/carray/io/imagemagick.rb +2 -4
  87. data/lib/carray/{base/iterator.rb → iterator.rb} +6 -6
  88. data/lib/carray/mask.rb +102 -0
  89. data/lib/carray/{base/math.rb → math.rb} +21 -53
  90. data/lib/carray/math/histogram.rb +8 -10
  91. data/lib/carray/math/recurrence.rb +1 -3
  92. data/lib/carray/mkmf.rb +9 -3
  93. data/lib/carray/object/ca_obj_iterator.rb +1 -3
  94. data/lib/carray/object/ca_obj_link.rb +1 -3
  95. data/lib/carray/object/ca_obj_pack.rb +9 -11
  96. data/lib/carray/obsolete.rb +270 -0
  97. data/lib/carray/ordering.rb +181 -0
  98. data/lib/carray/{base/serialize.rb → serialize.rb} +50 -66
  99. data/lib/carray/string.rb +188 -0
  100. data/lib/carray/{base/struct.rb → struct.rb} +19 -21
  101. data/lib/carray/{io/table.rb → table.rb} +1 -9
  102. data/lib/carray/testing.rb +51 -0
  103. data/lib/carray/time.rb +76 -0
  104. data/lib/carray/transform.rb +98 -0
  105. data/misc/Methods.ja.md +182 -0
  106. data/{NOTE → misc/NOTE} +0 -0
  107. data/spec/Classes/CABitfield_spec.rb +58 -0
  108. data/spec/Classes/CABlockIterator_spec.rb +114 -0
  109. data/spec/Classes/CABlock_spec.rb +205 -0
  110. data/spec/Classes/CAField_spec.rb +39 -0
  111. data/spec/Classes/CAGrid_spec.rb +75 -0
  112. data/spec/Classes/CAMap_spec.rb +0 -0
  113. data/{test/test_CAMapping.rb → spec/Classes/CAMapping_spec.rb} +35 -36
  114. data/spec/Classes/CAObject_attribute_spec.rb +33 -0
  115. data/spec/Classes/CAObject_spec.rb +33 -0
  116. data/spec/Classes/CARefer_spec.rb +93 -0
  117. data/spec/Classes/CARepeat_spec.rb +65 -0
  118. data/spec/Classes/CASelect_spec.rb +22 -0
  119. data/spec/Classes/CAShift_spec.rb +16 -0
  120. data/spec/Classes/CAStruct_spec.rb +71 -0
  121. data/{test/test_CATranspose.rb → spec/Classes/CATranspose_spec.rb} +20 -21
  122. data/spec/Classes/CAUnboudRepeat_spec.rb +102 -0
  123. data/spec/Classes/CAWindow_spec.rb +54 -0
  124. data/spec/Classes/CAWrap_spec.rb +8 -0
  125. data/{test/test_CArray.rb → spec/Classes/CArray_spec.rb} +48 -92
  126. data/spec/Classes/CScalar_spec.rb +55 -0
  127. data/spec/Features/feature_130_spec.rb +19 -0
  128. data/spec/Features/feature_attributes_spec.rb +280 -0
  129. data/spec/Features/feature_boolean_spec.rb +98 -0
  130. data/spec/Features/feature_broadcast.rb +116 -0
  131. data/spec/Features/feature_cast_function.rb +19 -0
  132. data/spec/Features/feature_cast_spec.rb +33 -0
  133. data/spec/Features/feature_class_spec.rb +84 -0
  134. data/spec/Features/feature_complex_spec.rb +42 -0
  135. data/{test/test_composite.rb → spec/Features/feature_composite_spec.rb} +17 -18
  136. data/spec/Features/feature_convert_spec.rb +46 -0
  137. data/spec/Features/feature_copy_spec.rb +123 -0
  138. data/spec/Features/feature_creation_spec.rb +84 -0
  139. data/spec/Features/feature_element_spec.rb +144 -0
  140. data/spec/Features/feature_extream_spec.rb +54 -0
  141. data/spec/Features/feature_generate_spec.rb +74 -0
  142. data/spec/Features/feature_index_spec.rb +69 -0
  143. data/spec/Features/feature_mask_spec.rb +580 -0
  144. data/spec/Features/feature_math_spec.rb +97 -0
  145. data/spec/Features/feature_order_spec.rb +146 -0
  146. data/spec/Features/feature_ref_store_spec.rb +209 -0
  147. data/spec/Features/feature_serialization_spec.rb +125 -0
  148. data/spec/Features/feature_stat_spec.rb +397 -0
  149. data/spec/Features/feature_virtual_spec.rb +48 -0
  150. data/spec/Features/method_eq_spec.rb +81 -0
  151. data/spec/Features/method_is_nan_spec.rb +12 -0
  152. data/spec/Features/method_map_spec.rb +54 -0
  153. data/spec/Features/method_max_with.rb +20 -0
  154. data/spec/Features/method_min_with.rb +19 -0
  155. data/spec/Features/method_ne_spec.rb +18 -0
  156. data/spec/Features/method_project_spec.rb +188 -0
  157. data/spec/Features/method_ref_spec.rb +27 -0
  158. data/spec/Features/method_round_spec.rb +11 -0
  159. data/spec/Features/method_s_linspace_spec.rb +48 -0
  160. data/spec/Features/method_s_span_spec.rb +14 -0
  161. data/spec/Features/method_seq_spec.rb +47 -0
  162. data/spec/Features/method_sort_with.rb +43 -0
  163. data/spec/Features/method_sorted_with.rb +29 -0
  164. data/spec/Features/method_span_spec.rb +42 -0
  165. data/spec/Features/method_wrap_readonly_spec.rb +43 -0
  166. data/{test → spec/UnitTest}/test_CAVirtual.rb +0 -0
  167. data/spec/spec_all.rb +0 -1
  168. data/utils/convert_test.rb +73 -0
  169. data/utils/{extract_rdoc.rb → extract_yard.rb} +7 -12
  170. data/{devel → utils}/guess_shape.rb +0 -0
  171. data/utils/{diff_method.rb → monkey_patch_methods.rb} +17 -7
  172. metadata +173 -316
  173. data/COPYING +0 -56
  174. data/GPL +0 -340
  175. data/Gemfile +0 -8
  176. data/Gemfile.lock +0 -33
  177. data/LEGAL +0 -50
  178. data/Makefile +0 -451
  179. data/TODO +0 -5
  180. data/carray_cast_func.c +0 -8670
  181. data/carray_config.h +0 -26
  182. data/carray_math.c +0 -24805
  183. data/carray_random.c +0 -531
  184. data/carray_stat_proc.c +0 -12170
  185. data/ext/calculus/carray_calculus.c +0 -931
  186. data/ext/calculus/carray_interp.c +0 -358
  187. data/ext/calculus/extconf.rb +0 -12
  188. data/ext/calculus/lib/autoload/autoload_math_calculus.rb +0 -2
  189. data/ext/calculus/lib/math/calculus.rb +0 -119
  190. data/ext/calculus/lib/math/interp/adapter_interp1d.rb +0 -31
  191. data/ext/fortio/extconf.rb +0 -3
  192. data/ext/fortio/lib/carray/autoload/autoload_fortran_format.rb +0 -5
  193. data/ext/fortio/lib/carray/io/fortran_format.rb +0 -43
  194. data/ext/fortio/lib/fortio.rb +0 -3
  195. data/ext/fortio/lib/fortio/fortran_format.rb +0 -605
  196. data/ext/fortio/lib/fortio/fortran_format.tab.rb +0 -536
  197. data/ext/fortio/lib/fortio/fortran_format.y +0 -215
  198. data/ext/fortio/lib/fortio/fortran_namelist.rb +0 -151
  199. data/ext/fortio/lib/fortio/fortran_namelist.tab.rb +0 -470
  200. data/ext/fortio/lib/fortio/fortran_namelist.y +0 -213
  201. data/ext/fortio/lib/fortio/fortran_sequential.rb +0 -345
  202. data/ext/fortio/ruby_fortio.c +0 -182
  203. data/ext/fortio/test/test_H.rb +0 -5
  204. data/ext/fortio/test/test_T.rb +0 -7
  205. data/ext/fortio/test/test_fortran_format.rb +0 -86
  206. data/ext/fortio/test/test_namelist.rb +0 -25
  207. data/ext/fortio/test/test_namelist_write.rb +0 -10
  208. data/ext/fortio/test/test_sequential.rb +0 -13
  209. data/ext/fortio/test/test_sequential2.rb +0 -13
  210. data/ext/fortio/work/test.rb +0 -10
  211. data/ext/fortio/work/test_e.rb +0 -19
  212. data/ext/fortio/work/test_ep.rb +0 -10
  213. data/ext/fortio/work/test_parse.rb +0 -12
  214. data/ext/imagemap/carray_imagemap.c +0 -495
  215. data/ext/imagemap/doc/call_graph.dot +0 -28
  216. data/ext/imagemap/draw.c +0 -567
  217. data/ext/imagemap/extconf.rb +0 -13
  218. data/ext/imagemap/lib/autoload/autoload_graphics_imagemap.rb +0 -1
  219. data/ext/imagemap/lib/graphics/imagemap.rb +0 -273
  220. data/ext/imagemap/lib/image_map.rb +0 -4
  221. data/ext/imagemap/test/swath_index.rb +0 -83
  222. data/ext/imagemap/test/swath_warp.rb +0 -99
  223. data/ext/imagemap/test/test.rb +0 -23
  224. data/ext/imagemap/test/test_image.rb +0 -42
  225. data/ext/imagemap/test/test_line.rb +0 -14
  226. data/ext/imagemap/test/test_rotate.rb +0 -17
  227. data/ext/imagemap/test/test_triangle.rb +0 -20
  228. data/ext/imagemap/test/test_warp.rb +0 -26
  229. data/ext/mathfunc/extconf.rb +0 -18
  230. data/ext/mathfunc/lib/autoload/autoload_math_mathfunc.rb +0 -1
  231. data/ext/mathfunc/lib/math/mathfunc.rb +0 -15
  232. data/ext/mathfunc/test/test_hypot.rb +0 -5
  233. data/ext/mathfunc/test/test_j0.rb +0 -22
  234. data/ext/mathfunc/test/test_jn.rb +0 -8
  235. data/ext/mathfunc/test/test_sph.rb +0 -9
  236. data/ext/narray/README +0 -22
  237. data/ext/narray/ca_wrap_narray.c +0 -500
  238. data/ext/narray/carray_narray.c +0 -21
  239. data/ext/narray/extconf.rb +0 -57
  240. data/ext/narray/lib/autoload/autoload_math_narray.rb +0 -1
  241. data/ext/narray/lib/autoload/autoload_math_narray_miss.rb +0 -11
  242. data/ext/narray/lib/math/narray.rb +0 -17
  243. data/ext/narray/lib/math/narray_miss.rb +0 -45
  244. data/lib/carray/autoload/autoload_graphics_gnuplot.rb +0 -2
  245. data/lib/carray/autoload/autoload_io_csv.rb +0 -14
  246. data/lib/carray/autoload/autoload_io_pg.rb +0 -6
  247. data/lib/carray/autoload/autoload_io_sqlite3.rb +0 -12
  248. data/lib/carray/autoload/autoload_io_table.rb +0 -1
  249. data/lib/carray/autoload/autoload_math_interp.rb +0 -4
  250. data/lib/carray/base/basic.rb +0 -1090
  251. data/lib/carray/base/obsolete.rb +0 -131
  252. data/lib/carray/graphics/gnuplot.rb +0 -2131
  253. data/lib/carray/graphics/zimg.rb +0 -296
  254. data/lib/carray/io/csv.rb +0 -572
  255. data/lib/carray/io/pg.rb +0 -101
  256. data/lib/carray/io/sqlite3.rb +0 -215
  257. data/lib/carray/math/interp.rb +0 -57
  258. data/lib/carray/math/interp/adapter_gsl_spline.rb +0 -47
  259. data/mkmf.log +0 -375
  260. data/mt19937ar.c +0 -182
  261. data/mt19937ar.h +0 -86
  262. data/rdoc_ext.rb +0 -1115
  263. data/rdoc_main.rb +0 -27
  264. data/rdoc_math.rb +0 -5
  265. data/rdoc_stat.rb +0 -31
  266. data/spec/CABlockIterator/CABlockIterator_spec.rb +0 -113
  267. data/spec/CArray/bug/store_spec.rb +0 -27
  268. data/spec/CArray/index/repeat_spec.rb +0 -10
  269. data/spec/CArray/method/eq_spec.rb +0 -80
  270. data/spec/CArray/method/is_nan_spec.rb +0 -12
  271. data/spec/CArray/method/ne_spec.rb +0 -18
  272. data/spec/CArray/method/round_spec.rb +0 -11
  273. data/spec/CArray/object/_attribute_spec.rb +0 -32
  274. data/spec/CArray/object/s_new_spec.rb +0 -31
  275. data/spec/CArray/serialize/Serialization_spec.rb +0 -89
  276. data/test/test_130.rb +0 -23
  277. data/test/test_ALL.rb +0 -51
  278. data/test/test_CABitfield.rb +0 -59
  279. data/test/test_CABlock.rb +0 -208
  280. data/test/test_CAField.rb +0 -40
  281. data/test/test_CAGrid.rb +0 -76
  282. data/test/test_CAMmap.rb +0 -11
  283. data/test/test_CARefer.rb +0 -94
  284. data/test/test_CARepeat.rb +0 -66
  285. data/test/test_CASelect.rb +0 -23
  286. data/test/test_CAShift.rb +0 -17
  287. data/test/test_CAWindow.rb +0 -55
  288. data/test/test_CAWrap.rb +0 -9
  289. data/test/test_CComplex.rb +0 -83
  290. data/test/test_CScalar.rb +0 -91
  291. data/test/test_attribute.rb +0 -281
  292. data/test/test_block_iterator.rb +0 -17
  293. data/test/test_boolean.rb +0 -99
  294. data/test/test_cast.rb +0 -33
  295. data/test/test_class.rb +0 -85
  296. data/test/test_complex.rb +0 -43
  297. data/test/test_convert.rb +0 -79
  298. data/test/test_copy.rb +0 -141
  299. data/test/test_creation.rb +0 -85
  300. data/test/test_element.rb +0 -146
  301. data/test/test_extream.rb +0 -55
  302. data/test/test_generate.rb +0 -75
  303. data/test/test_index.rb +0 -71
  304. data/test/test_mask.rb +0 -578
  305. data/test/test_math.rb +0 -98
  306. data/test/test_narray.rb +0 -64
  307. data/test/test_order.rb +0 -147
  308. data/test/test_random.rb +0 -15
  309. data/test/test_ref_store.rb +0 -211
  310. data/test/test_stat.rb +0 -414
  311. data/test/test_struct.rb +0 -72
  312. data/test/test_virtual.rb +0 -49
  313. data/utils/create_rdoc.sh +0 -9
  314. data/utils/make_tgz.sh +0 -3
  315. data/version.h +0 -18
@@ -3,10 +3,8 @@
3
3
  carray_attribute.c
4
4
 
5
5
  This file is part of Ruby/CArray extension library.
6
- You can redistribute it and/or modify it under the terms of
7
- the Ruby Licence.
8
6
 
9
- Copyright (C) 2005 Hiroki Motoyoshi
7
+ Copyright (C) 2005-2020 Hiroki Motoyoshi
10
8
 
11
9
  ---------------------------------------------------------------------------- */
12
10
 
@@ -14,14 +12,12 @@
14
12
 
15
13
  /* ------------------------------------------------------------------- */
16
14
 
17
- /* rdoc
18
- class CArray
19
- # returns the object type (e.g. CA_OBJ_ARRAY, CA_OBJ_BLOCK, ...).
20
- # Since the object type can be known from the class of the object,
21
- # this attribute method is rarely used.
22
- def obj_type
23
- end
24
- end
15
+ /* @overload obj_type
16
+
17
+ (Attribute)
18
+ Returns the object type (e.g. CA_OBJ_ARRAY, CA_OBJ_BLOCK, ...).
19
+ Since the object type can be known from the class of the object,
20
+ this attribute methods is rarely used.
25
21
  */
26
22
 
27
23
  VALUE
@@ -32,12 +28,10 @@ rb_ca_obj_type (VALUE self)
32
28
  return INT2NUM(ca->obj_type);
33
29
  }
34
30
 
35
- /* rdoc
36
- class CArray
37
- # returns the data type of each element (e.g. CA_INT32, CA_FLOAT64, ...).
38
- def data_type
39
- end
40
- end
31
+ /* @overload data_type
32
+
33
+ (Attribute)
34
+ Returns the data type of each element (e.g. CA_INT32, CA_FLOAT64, ...).
41
35
  */
42
36
 
43
37
  VALUE
@@ -48,35 +42,28 @@ rb_ca_data_type (VALUE self)
48
42
  return INT2NUM(ca->data_type);
49
43
  }
50
44
 
51
- /* rdoc
52
- class CArray
53
- # use CArray#ndims instead of this methods after carray-1.3.0
54
- def rank
55
- end
56
- # returns the rank (e.g. 1 for 1D array, 3 for 3D array, ...).
57
- def ndims
58
- end
59
- end
45
+ /* @overload ndim
46
+
47
+ (Attribute)
48
+ Returns the rank (e.g. 1 for 1D array, 3 for 3D array, ...).
60
49
  */
61
50
 
62
51
  VALUE
63
- rb_ca_rank (VALUE self)
52
+ rb_ca_ndim (VALUE self)
64
53
  {
65
54
  CArray *ca;
66
55
  Data_Get_Struct(self, CArray, ca);
67
- return INT2NUM(ca->rank);
56
+ return INT2NUM(ca->ndim);
68
57
  }
69
58
 
70
- /* rdoc
71
- class CArray
72
- # returns the byte size of each element (e.g. 4 for CA_INT32, 8 for CA_FLOAT64).
73
- # The byte size can be known using CArray.sizeof(data_type)
74
- # for the numerical data types, but
75
- # the byte size of fixed-length data type can be known
76
- # only by this method.
77
- def bytes
78
- end
79
- end
59
+ /* @overload bytes
60
+
61
+ (Attribute)
62
+ Returns the byte size of each element (e.g. 4 for CA_INT32, 8 for CA_FLOAT64).
63
+ The byte size can be known using CArray.sizeof(data_type)
64
+ for the numerical data types, but
65
+ the byte size of fixed-length data type can be known
66
+ only by this method.
80
67
  */
81
68
 
82
69
  VALUE
@@ -87,18 +74,10 @@ rb_ca_bytes (VALUE self)
87
74
  return SIZE2NUM(ca->bytes);
88
75
  }
89
76
 
90
- /* rdoc:
91
- class CArray
92
- # returns the number of elements
93
- def elements
94
- end
77
+ /* @overload elements
95
78
 
96
- # alias of `CArray#elements`
97
- alias length elements
98
-
99
- # alias of `CArray#elements`
100
- alias size elements
101
- end
79
+ (Attribute)
80
+ Returns the number of elements
102
81
  */
103
82
 
104
83
  VALUE
@@ -109,35 +88,11 @@ rb_ca_elements (VALUE self)
109
88
  return SIZE2NUM(ca->elements);
110
89
  }
111
90
 
112
- /* rdoc:
113
- class CArray
114
- # use CArray#shape instead of this method after carray-1.3.0
115
- # returns the Array object contains the dimensional shape of array
116
- # (e.g. [2,3] for 2D 2x3 array, ...).
117
- def dim
118
- end
119
-
120
- # returns the Array object contains the dimensional shape of array
121
- # (e.g. [2,3] for 2D 2x3 array, ...).
122
- def shape
123
- end
124
-
125
- # short-hand for dim[0]
126
- def dim0
127
- end
128
-
129
- # short-hand for dim[1]
130
- def dim1
131
- end
132
-
133
- # short-hand for dim[2]
134
- def dim2
135
- end
136
-
137
- # short-hand for dim[3]
138
- def dim3
139
- end
140
- end
91
+ /* @overload dim
92
+
93
+ (Attribute)
94
+ Returns the Array object contains the dimensional shape of array
95
+ (e.g. [2,3] for 2D 2x3 array, ...).
141
96
  */
142
97
 
143
98
  VALUE
@@ -147,13 +102,20 @@ rb_ca_dim (VALUE self)
147
102
  CArray *ca;
148
103
  int i;
149
104
  Data_Get_Struct(self, CArray, ca);
150
- dim = rb_ary_new2(ca->rank);
151
- for (i=0; i<ca->rank; i++) {
105
+ dim = rb_ary_new2(ca->ndim);
106
+ for (i=0; i<ca->ndim; i++) {
152
107
  rb_ary_store(dim, i, SIZE2NUM(ca->dim[i]));
153
108
  }
154
109
  return dim;
155
110
  }
156
111
 
112
+ /*
113
+ @overload dim0
114
+
115
+ (Attribute)
116
+ Short-hand for "dim[0]"
117
+ */
118
+
157
119
  VALUE
158
120
  rb_ca_dim0 (VALUE self)
159
121
  {
@@ -162,36 +124,55 @@ rb_ca_dim0 (VALUE self)
162
124
  return SIZE2NUM(ca->dim[0]);
163
125
  }
164
126
 
127
+ /*
128
+ @overload dim1
129
+
130
+ (Attribute)
131
+ Short-hand for "dim[1]"
132
+ */
133
+
165
134
  VALUE
166
135
  rb_ca_dim1 (VALUE self)
167
136
  {
168
137
  CArray *ca;
169
138
  Data_Get_Struct(self, CArray, ca);
170
- return ( ca->rank >= 2 ) ? SIZE2NUM(ca->dim[1]) : Qnil;
139
+ return ( ca->ndim >= 2 ) ? SIZE2NUM(ca->dim[1]) : Qnil;
171
140
  }
172
141
 
142
+ /*
143
+ @overload dim2
144
+
145
+ (Attribute)
146
+ Short-hand for 'dim[2]'
147
+ */
148
+
173
149
  VALUE
174
150
  rb_ca_dim2 (VALUE self)
175
151
  {
176
152
  CArray *ca;
177
153
  Data_Get_Struct(self, CArray, ca);
178
- return ( ca->rank >= 3 ) ? SIZE2NUM(ca->dim[2]) : Qnil;
154
+ return ( ca->ndim >= 3 ) ? SIZE2NUM(ca->dim[2]) : Qnil;
179
155
  }
180
156
 
157
+ /*
158
+ @overload dim3
159
+
160
+ (Attribute)
161
+ Short-hand for "dim[3]"
162
+ */
163
+
181
164
  VALUE
182
165
  rb_ca_dim3 (VALUE self)
183
166
  {
184
167
  CArray *ca;
185
168
  Data_Get_Struct(self, CArray, ca);
186
- return ( ca->rank >= 4 ) ? SIZE2NUM(ca->dim[3]) : Qnil;
169
+ return ( ca->ndim >= 4 ) ? SIZE2NUM(ca->dim[3]) : Qnil;
187
170
  }
188
171
 
189
- /* rdoc:
190
- class CArray
191
- # returns the string representaion of the data_type (e.g. "int32", "fixlen")
192
- def data_type_name
193
- end
194
- end
172
+ /* @overload data_type_name
173
+
174
+ (Attribute)
175
+ Returns the string representaion of the data_type (e.g. "int32", "fixlen")
195
176
  */
196
177
 
197
178
  VALUE
@@ -211,12 +192,9 @@ ca_is_scalar (void *ap)
211
192
  return ca_test_flag(ca, CA_FLAG_SCALAR);
212
193
  }
213
194
 
214
- /* rdoc:
215
- class CArray
216
- # returns true if `self` is a CScalar object
217
- def scalar?
218
- end
219
- end
195
+ /* @overload scalar?
196
+
197
+ (Inquiry) Returns true if the object is a CScalar
220
198
  */
221
199
 
222
200
  VALUE
@@ -249,16 +227,9 @@ ca_is_virtual (void *ap)
249
227
  return ( ca_func[ca->obj_type].entity_type == CA_VIRTUAL_ARRAY ) ? 1 : 0;
250
228
  }
251
229
 
252
- /* rdoc:
253
- class CArray
254
- # returns true if `self` is an entity array (not a virtual array).
255
- def entity?
256
- end
230
+ /* @overload entity?
257
231
 
258
- # returns true if `self` is a virtural array (not an entity array).
259
- def virtual?
260
- end
261
- end
232
+ (Inquiry) Returns true if `self` is an entity array (not a virtual array).
262
233
  */
263
234
 
264
235
  VALUE
@@ -269,6 +240,12 @@ rb_ca_is_entity (VALUE self)
269
240
  return ( ca_is_virtual(ca) ) ? Qfalse : Qtrue;
270
241
  }
271
242
 
243
+ /*
244
+ @overload virtual?
245
+
246
+ (Inquiry) Returns true if `self` is a virtural array (not an entity array).
247
+ */
248
+
272
249
  VALUE
273
250
  rb_ca_is_virtual (VALUE self)
274
251
  {
@@ -279,12 +256,9 @@ rb_ca_is_virtual (VALUE self)
279
256
 
280
257
  /* ------------------------------------------------------------------- */
281
258
 
282
- /* rdoc
283
- class CArray
284
- # returns true if `self` is attached.
285
- def attached?
286
- end
287
- end
259
+ /* @overload attached?
260
+
261
+ (Inquiry) Returns true if the object is attached.
288
262
  */
289
263
 
290
264
  VALUE
@@ -297,12 +271,9 @@ rb_ca_is_attached (VALUE self)
297
271
 
298
272
  /* ------------------------------------------------------------------- */
299
273
 
300
- /* rdoc
301
- class CArray
302
- # returns true if `self` is empty.
303
- def empty?
304
- end
305
- end
274
+ /* @overload empty?
275
+
276
+ (Inquiry) Returns true if the object is empty.
306
277
  */
307
278
 
308
279
  VALUE
@@ -333,12 +304,9 @@ ca_is_readonly (void *ap)
333
304
  }
334
305
  }
335
306
 
336
- /* rdoc
337
- class CArray
338
- # returns true if `self` is read-only carray
339
- def read_only?
340
- end
341
- end
307
+ /* @overload read_only?
308
+
309
+ (Inquiry) Returns true if the object is read-only
342
310
  */
343
311
 
344
312
  VALUE
@@ -369,12 +337,9 @@ ca_is_mask_array (void *ap)
369
337
  }
370
338
  }
371
339
 
372
- /* rdoc
373
- class CArray
374
- # returns true if `self` is mask array (don't confuse with "masked array")
375
- def mask_array?
376
- end
377
- end
340
+ /* @overload mask_array?
341
+
342
+ (Inquiry) Returns true if `self` is mask array (don't confuse with "masked array")
378
343
  */
379
344
 
380
345
  VALUE
@@ -405,12 +370,9 @@ ca_is_value_array (void *ap)
405
370
  }
406
371
  }
407
372
 
408
- /* rdoc
409
- class CArray
410
- # returns true if `self` is a value array
411
- def value_array?
412
- end
413
- end
373
+ /* @overload value_array?
374
+
375
+ (Inquiry) Returns true if `self` is a value array
414
376
  */
415
377
 
416
378
  VALUE
@@ -430,12 +392,9 @@ ca_is_fixlen_type (void *ap)
430
392
  return ( ca->data_type == CA_FIXLEN );
431
393
  }
432
394
 
433
- /* rdoc
434
- class CArray
435
- # return true if `self` is fixed-length type array
436
- def filxen?
437
- end
438
- end
395
+ /* @overload fixlen?
396
+
397
+ (Inquiry) Returns true if `self` is fixed-length type array
439
398
  */
440
399
 
441
400
  VALUE
@@ -455,12 +414,9 @@ ca_is_boolean_type (void *ap)
455
414
  return ( ca->data_type == CA_BOOLEAN );
456
415
  }
457
416
 
458
- /* rdoc
459
- class CArray
460
- # return true if `self` is boolean type array
461
- def boolean?
462
- end
463
- end
417
+ /* @overload boolean?
418
+
419
+ (Inquiry) Return true if `self` is boolean type array
464
420
  */
465
421
 
466
422
  VALUE
@@ -481,12 +437,9 @@ ca_is_numeric_type (void *ap)
481
437
  ( ca->data_type <= CA_CMPLX256 ) );
482
438
  }
483
439
 
484
- /* rdoc
485
- class CArray
486
- # return true if `self` is numeric type array
487
- def numeric?
488
- end
489
- end
440
+ /* @overload numeric?
441
+
442
+ (Inquiry) Returns true if `self` is numeric type array
490
443
  */
491
444
 
492
445
  VALUE
@@ -507,12 +460,9 @@ ca_is_integer_type (void *ap)
507
460
  ( ca->data_type <= CA_UINT64 ) );
508
461
  }
509
462
 
510
- /* rdoc
511
- class CArray
512
- # return true if `self` is integer type array
513
- def integer?
514
- end
515
- end
463
+ /* @overload integer?
464
+
465
+ (Inquiry) Returns true if `self` is integer type array
516
466
  */
517
467
 
518
468
  VALUE
@@ -540,12 +490,9 @@ ca_is_unsigned_type (void *ap)
540
490
  }
541
491
  }
542
492
 
543
- /* rdoc
544
- class CArray
545
- # return true if `self` is unsigned integer type array
546
- def unsigned?
547
- end
548
- end
493
+ /* @overload unsigned?
494
+
495
+ (Inquiry) Return true if `self` is unsigned integer type array
549
496
  */
550
497
 
551
498
  VALUE
@@ -566,12 +513,9 @@ ca_is_float_type (void *ap)
566
513
  ( ca->data_type <= CA_FLOAT128 ) );
567
514
  }
568
515
 
569
- /* rdoc
570
- class CArray
571
- # return true if `self` is float type array
572
- def float?
573
- end
574
- end
516
+ /* @overload float?
517
+
518
+ (Inquiry) Returns true if `self` is float type array
575
519
  */
576
520
 
577
521
  VALUE
@@ -592,12 +536,9 @@ ca_is_complex_type (void *ap)
592
536
  ( ca->data_type <= CA_CMPLX256 ) );
593
537
  }
594
538
 
595
- /* rdoc
596
- class CArray
597
- # return true if `self` is complex type array
598
- def complex?
599
- end
600
- end
539
+ /* @overload complex?
540
+
541
+ (Inquiry) Returns true if `self` is complex type array
601
542
  */
602
543
 
603
544
  VALUE
@@ -617,12 +558,9 @@ ca_is_object_type (void *ap)
617
558
  return ( ca->data_type == CA_OBJECT );
618
559
  }
619
560
 
620
- /* rdoc
621
- class CArray
622
- # return true if `self` is object type array
623
- def object?
624
- end
625
- end
561
+ /* @overload object?
562
+
563
+ (Inquiry) Returns true if `self` is object type array
626
564
  */
627
565
 
628
566
  VALUE
@@ -637,13 +575,11 @@ rb_ca_is_object_type (VALUE self)
637
575
 
638
576
  static ID id_parent;
639
577
 
640
- /* rdoc
641
- class CArray
642
- # returns the parent carray if `self` has parent,
643
- # or returns nil if `self` has no parent.
644
- def parent
645
- end
646
- end
578
+ /* @overload parent
579
+
580
+ (Attribute)
581
+ Returns the parent carray if `self` has parent,
582
+ or returns nil if `self` has no parent.
647
583
  */
648
584
 
649
585
  VALUE
@@ -667,13 +603,11 @@ rb_ca_set_parent (VALUE self, VALUE obj)
667
603
 
668
604
  static ID id_data_class;
669
605
 
670
- /* rdoc
671
- class CArray
672
- # returns data_class if `self` is fixed-length type and it
673
- # has the data class.
674
- def data_class
675
- end
676
- end
606
+ /* @overload data_class
607
+
608
+ (Attribute)
609
+ Returns data_class if `self` is fixed-length type and it
610
+ has the data class.
677
611
  */
678
612
 
679
613
  VALUE
@@ -727,12 +661,9 @@ rb_ca_data_class (VALUE self)
727
661
  }
728
662
  }
729
663
 
730
- /* rdoc
731
- class CArray
732
- # return true if `self` is fixed-length type and has the data class.
733
- def has_data_class?
734
- end
735
- end
664
+ /* @overload has_data_class?
665
+
666
+ (Inquiry) Returns true if `self` is fixed-length type and has the data class.
736
667
  */
737
668
 
738
669
  VALUE
@@ -780,6 +711,20 @@ rb_ca_data_type_import (VALUE self, VALUE data_type)
780
711
  return Qnil;
781
712
  }
782
713
 
714
+ static VALUE
715
+ rb_ca_set_data_class (VALUE self, VALUE klass)
716
+ {
717
+ if ( RTEST(rb_ca_is_fixlen_type(self)) &&
718
+ rb_obj_is_data_class(klass) ) {
719
+ rb_ivar_set(self, rb_intern("member"), rb_hash_new());
720
+ return rb_ivar_set(self, id_data_class, klass);
721
+ }
722
+ else {
723
+ rb_raise(rb_eTypeError, "invalid data_class or self is not fixlen array.");
724
+ }
725
+ return Qnil;
726
+ }
727
+
783
728
  /* ------------------------------------------------------------------- */
784
729
 
785
730
  CArray *
@@ -800,7 +745,11 @@ ca_root_array (void *ap)
800
745
  }
801
746
  }
802
747
 
803
- /* CArray#root_array */
748
+ /* @overload root_array
749
+
750
+ (Attribute)
751
+ Returns the object at the root of chain of reference.
752
+ */
804
753
 
805
754
  static VALUE
806
755
  rb_ca_root_array (VALUE self)
@@ -845,7 +794,11 @@ rb_ca_ancestors_loop (VALUE self, VALUE list)
845
794
  }
846
795
  }
847
796
 
848
- /* CArray#ancesters */
797
+ /* @overload ancestors
798
+
799
+ (Attribute)
800
+ Returns the list of objects in the chain of reference.
801
+ */
849
802
 
850
803
  static VALUE
851
804
  rb_ca_ancestors (VALUE self)
@@ -868,9 +821,9 @@ Init_carray_attribute ()
868
821
  rb_define_method(rb_cCArray, "obj_type", rb_ca_obj_type, 0);
869
822
  rb_define_method(rb_cCArray, "data_type", rb_ca_data_type, 0);
870
823
  rb_define_method(rb_cCArray, "bytes", rb_ca_bytes, 0);
871
- rb_define_method(rb_cCArray, "rank", rb_ca_rank, 0);
872
- rb_define_method(rb_cCArray, "ndim", rb_ca_rank, 0); /* after carray-1.3.0 */
873
- rb_define_method(rb_cCArray, "shape", rb_ca_dim, 0); /* after carray-1.3.0 */
824
+ rb_define_method(rb_cCArray, "ndim", rb_ca_ndim, 0);
825
+ rb_define_method(rb_cCArray, "rank", rb_ca_ndim, 0); /* after carray-1.5.0 */
826
+ rb_define_method(rb_cCArray, "shape", rb_ca_dim, 0); /* after carray-1.5.0 */
874
827
  rb_define_method(rb_cCArray, "dim", rb_ca_dim, 0);
875
828
  rb_define_method(rb_cCArray, "dim0", rb_ca_dim0, 0);
876
829
  rb_define_method(rb_cCArray, "dim1", rb_ca_dim1, 0);
@@ -885,6 +838,7 @@ Init_carray_attribute ()
885
838
  rb_define_method(rb_cCArray, "parent", rb_ca_parent, 0);
886
839
 
887
840
  rb_define_method(rb_cCArray, "data_class", rb_ca_data_class, 0);
841
+ rb_define_method(rb_cCArray, "data_class=", rb_ca_set_data_class, 1);
888
842
 
889
843
  rb_define_method(rb_cCArray, "scalar?", rb_ca_is_scalar, 0);
890
844