Sha256: 0ec4a886f6367e225f4b333a756a7b5b8b625d8f5e17a90153991cd522f71c98
Contents?: true
Size: 1.68 KB
Versions: 4
Compression:
Stored size: 1.68 KB
Contents
module DaruLite module Accessors # Internal class for wrapping ruby array class ArrayWrapper include Enumerable extend ::Forwardable def_delegators :@data, :slice! def each(&block) @data.each(&block) self end def map!(&block) @data.map!(&block) self end attr_accessor :size attr_reader :data def initialize(vector, context) @data = vector.to_a @context = context set_size end def [](*index) @data[*index] end def []=(index, value) @data[index] = value set_size end def ==(other) @data == other end def delete_at(index) @data.delete_at index set_size end def index(...) @data.index(...) end def <<(element) @data << element set_size end def fill(*arg) @data.fill(*arg) set_size end def uniq @data.uniq end def to_a @data end def dup ArrayWrapper.new @data.dup, @context end def compact @data - DaruLite::MISSING_VALUES end def mean values_to_sum = compact return if values_to_sum.empty? values_to_sum.sum.quo(values_to_sum.size).to_f end def product compact.inject :* end def max compact.max end def min compact.min end def sum values_to_sum = compact values_to_sum.sum if values_to_sum.any? end private def set_size @size = @data.size end end end end
Version data entries
4 entries across 4 versions & 1 rubygems