Class: CAHistogram
Constant Summary
Constants inherited from CArray
CArray::DComplex, CArray::DEFAULT_GC_INTERVAL, CArray::DFloat, CArray::DataType, CArray::HAVE_COMPLEX, CArray::RObject, CArray::SComplex, CArray::SFloat, CArray::TypeSymbol, CArray::VERSION, CArray::VERSION_CODE, CArray::VERSION_DATE, CArray::VERSION_MAJOR, CArray::VERSION_MINOR, CArray::VERSION_TEENY
Instance Attribute Summary collapse
-
#include_lowest ⇒ Object
readonly
Returns the value of attribute include_lowest.
-
#include_upper ⇒ Object
readonly
Returns the value of attribute include_upper.
-
#inner ⇒ Object
readonly
Returns the value of attribute inner.
-
#mid_points ⇒ Object
(also: #midpoints)
readonly
Returns the value of attribute mid_points.
-
#offsets ⇒ Object
readonly
Returns the value of attribute offsets.
-
#scales ⇒ Object
readonly
Returns the value of attribute scales.
Instance Method Summary collapse
- #add(*values) ⇒ Object
- #increment(*values) ⇒ Object
-
#initialize(*argv, &block) ⇒ CAHistogram
constructor
A new instance of CAHistogram.
Methods inherited from CArray
#<=>, #==, #[], #[]=, #__attach__, #__detach__, __new__, __new_fixlen__, #__sync__, _scan_float, _scan_int, #addr2index, #address, #all_close?, #all_equal?, #all_equiv?, #all_masked?, #ancestors, #anomaly, #any_close?, #any_equal?, #any_equiv?, #any_masked?, #arg, #as_boolean, #as_cmplx128, #as_cmplx256, #as_cmplx64, #as_fixlen, #as_float128, #as_float32, #as_float64, #as_int16, #as_int32, #as_int64, #as_int8, #as_object, #as_type, #as_uint16, #as_uint32, #as_uint64, #as_uint8, #asign, #attach, attach, #attach!, attach!, #attached?, #attribute, #attribute=, #between, big_endian?, #bin, bind, #bitarray, #bitfield, #bits, #block_iterator, #blocks, boolean, #boolean, #boolean?, broadcast, #broadcast_to, #bsearch, #bsearch_index, #by, byte, #bytes, cast, cast_self_or_other, #cast_with, #classes, #classify, #clip, cmplx128, #cmplx128, #cmplx256, cmplx256, cmplx64, #cmplx64, #code, #coerce, #collect!, #collect_addr!, #collect_index!, #collect_with_addr!, #collect_with_index!, combine, #compact, #compacted, complex, #complex?, composite, #contains, #convert, #correlation, #count, #count_close, #count_equal, #count_equiv, #count_false, #count_masked, #count_not_masked, #count_true, #covariance, #covariancep, #cummax, #cummin, #cumprod, #cumwsum, #data_class, #data_type, data_type?, data_type_name, #data_type_name, dcomplex, #deg_180, #deg_180!, #deg_360, #deg_360!, #delete_block, #dim, #dim0, #dim1, #dim2, #dim3, #display_by_magick, double, dump, #dump_binary, #duplicated_values, #each, #each_addr, each_index, #each_index, #each_with_addr, #each_with_index, #elem_copy, #elem_decr, #elem_fetch, #elem_incr, #elem_masked?, #elem_store, #elem_swap, #elements, #empty?, endian, #entity?, #extend_as_table, #fa, #fake, #false, #farray, #field, #fields, #fields_at, #fill, #fill_copy, #first, #fixlen, fixlen, #fixlen?, #flatten, #flattened, float, float128, #float128, #float32, float32, #float64, float64, #float?, #freeze, from_binary, #from_bit_string, from_bit_string, gc_interval, gc_interval=, #gradate, #grade, #grid, guess_array_shape, guess_type_and_bytes, #has_attribute?, #has_data_class?, #has_mask?, #hash, #imag, #imag=, #incr_addr, #index, #index2addr, #indices, #inherit_mask, #inherit_mask_replace, #initialize_copy, #insert_block, #inspect, int, int16, #int16, int32, #int32, int64, #int64, int8, #int8, #integer?, #invert_mask, #is_close, #is_divisible, #is_equiv, #is_masked, #is_not_divisible, #is_not_masked, #is_real, #join, join, #last, #length, little_endian?, load, #load_binary, load_binary, load_binary_io, load_by_magick, #map, #map!, #map_addr!, #map_index!, #map_with_addr!, #map_with_index!, #marshal_dump, #marshal_load, #mask, #mask=, #mask_array?, #maskout, #maskout!, #matchup, #matchup_nearest, #max_by, #max_with, #median, mem_usage, #members, merge, meshgrid, #min_by, #min_with, #mul_add, #ndim, #nlargest, #nlargest_addr, #none_close?, #none_equal?, #none_equiv?, #normalize_index, #nsmallest, #nsmallest_addr, #numeric?, #obj_type, object, #object, #object?, #order, pack, #parent, #paste, #percentile, pickup, #project, #pull, #pulled, #quantile, #quantize, #quo, #rad_2pi, #rad_2pi!, #rad_pi, #rad_pi!, #random, #randomn, #randomn!, #range, #rank, #read_only?, #real, #real=, #real?, #recurrence, #recurrence!, #refer, #replace_value, reset_gc_interval, #reshape, #resize, #reverse, #reverse!, #reversed, #roll, #roll!, #rolled, #root_array, #rotate, #rotate!, #rotated, #same_shape?, save, #save_binary, #save_binary_io, #save_by_magick, #scalar?, #scale, #scale!, scan_index, #search, #search_index, #search_nearest, #search_nearest_index, #select, #seq, #seq!, #set, #shape, #shift, #shift!, #shifted, short, #sign, #size, sizeof, #sort, #sort!, #sort_addr, #sort_by, #sort_with, #sorted_by, #sorted_with, #span, span, #span!, #split, #st, #str_bytesize, #str_capitalize, #str_center, #str_chomp, #str_chop, #str_chr, #str_clear, #str_count, #str_delete, #str_delete_prefix, #str_delete_suffix, #str_downcase, #str_dump, #str_encode, #str_encoding, #str_extract, #str_force_encoding, #str_format, #str_gsub, #str_includes, #str_index, #str_intern, #str_is_empty, #str_is_end_with, #str_is_start_with, #str_len, #str_ljust, #str_lstrip, #str_matches, #str_rindex, #str_rjust, #str_rstrip, #str_scrub, #str_size, #str_strip, #str_strptime, #str_sub, #str_swapcase, #str_to_datetime, #str_to_f, #str_to_i, #str_to_r, #str_to_time, #str_upcase, summation, #swap_bytes, #swap_bytes!, #t, #template, #test, #test_ca_to_cptr, #time_ajd, #time_day, #time_format, #time_hour, #time_is_leap, #time_jd, #time_minute, #time_month, #time_second, #time_strftime, #time_year, #to_a, #to_binary, #to_bit_string, #to_ca, #to_column, #to_row, #to_s, #to_type, #transform, #transpose, #transpose!, #transposed, #trim, #trim!, #true, #uint16, uint16, #uint32, uint32, #uint64, uint64, #uint8, uint8, #unbound_repeat, #uniq, #unmask, #unmask_copy, #unset, #unsigned?, #valid_addr?, #valid_index?, #value, #value_array?, #variance, #variancep, #virtual?, #where, #where_range, #window, #window_iterator, #windows, #wmean, wrap, wrap_readonly, wrap_writable, #wsum
Methods included from CArray::DataTypeExtension
#arange, #eye, #full, #identity, #linspace, #ones, #zeros
Constructor Details
#initialize(*argv, &block) ⇒ CAHistogram
Returns a new instance of CAHistogram.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/carray/math/histogram.rb', line 27 def initialize (*argv, &block) case argv.first when Integer, String, Symbol data_type = argv.shift else data_type = CA_INT32 end scales = argv.shift opt = argv.shift || {} option = { :include_upper => false, :include_lowest => true, :offsets => nil, }.update( opt ) @include_upper = option[:include_upper] @include_lowest = option[:include_lowest] unless scales.kind_of?(Array) raise "scales should be an array of scales" end ndim = scales.size @scales = scales.clone @scales.map! { |s| CArray.wrap_readonly(s, CA_DOUBLE) } if option[:offsets] if option[:offsets].size == scales.size @offsets = option[:offsets] else raise "invalid length of offset in option" end else @offsets = Array.new(ndim) { 0 } end dim = Array.new(ndim) { |i| case @offsets[i] when 0 @scales[i].size when 1 @scales[i].size + 1 else raise "invalid offset value" end } super(data_type, dim, &block) @mid_points = Array.new(ndim) { |i| x = (@scales[i] + @scales[i].shifted(-1))/2 x[0..-2].to_ca } @inner = self[*Array.new(ndim) { |i| @offsets[i]..-2 }] end |
Instance Attribute Details
#include_lowest ⇒ Object (readonly)
Returns the value of attribute include_lowest.
88 89 90 |
# File 'lib/carray/math/histogram.rb', line 88 def include_lowest @include_lowest end |
#include_upper ⇒ Object (readonly)
Returns the value of attribute include_upper.
88 89 90 |
# File 'lib/carray/math/histogram.rb', line 88 def include_upper @include_upper end |
#inner ⇒ Object (readonly)
Returns the value of attribute inner.
89 90 91 |
# File 'lib/carray/math/histogram.rb', line 89 def inner @inner end |
#mid_points ⇒ Object (readonly) Also known as: midpoints
Returns the value of attribute mid_points.
89 90 91 |
# File 'lib/carray/math/histogram.rb', line 89 def mid_points @mid_points end |
#offsets ⇒ Object (readonly)
Returns the value of attribute offsets.
88 89 90 |
# File 'lib/carray/math/histogram.rb', line 88 def offsets @offsets end |
#scales ⇒ Object (readonly)
Returns the value of attribute scales.
88 89 90 |
# File 'lib/carray/math/histogram.rb', line 88 def scales @scales end |
Instance Method Details
#add(*values) ⇒ Object
102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/carray/math/histogram.rb', line 102 def add (*values) val = CArray.wrap_readonly(values.pop, self.data_type) sel = val.ne(0) val = val[sel].to_ca idx = Array.new(ndim) {|i| vi = CArray.wrap_readonly(values[i], CA_DOUBLE)[sel] @scales[i].bin(vi, @include_upper, @include_lowest, @offsets[i]).to_ca } index2addr(*idx).each_with_addr do |addr, i| self[addr] += val[i] end self end |
#increment(*values) ⇒ Object
93 94 95 96 97 98 99 100 |
# File 'lib/carray/math/histogram.rb', line 93 def increment (*values) idx = Array.new(ndim) {|i| vi = CArray.wrap_readonly(values[i], CA_DOUBLE) @scales[i].bin(vi, @include_upper, @include_lowest, @offsets[i]).to_ca } incr_addr(index2addr(*idx)) self end |