Sha256: f9c0a8a68709392214b74850d4d7727d0511bf13dea0daf18f1c7bd3feee7c4f

Contents?: true

Size: 964 Bytes

Versions: 5

Compression:

Stored size: 964 Bytes

Contents

module Exonio
  module Statistical

    # Sum of all numbers
    #
    # @param numbers_ary [array] and array of numbers to sum all elements
    #
    # @return [float]
    #
    # @example
    #   Exonio.sum([1,2,3,4,5]) # => 15
    def sum(numbers_ary)
      numbers_ary.inject(0, :+)
    end

    # Simple mean formula: sum elements and / by length
    #
    # @param numbers_ary [array] an array of numbers to calculate the mean
    #
    # @return [float]
    #
    # @example
    #   Exonio.mean([1,2,3,4,5]) # => 3.0
    def mean(numbers_ary)
      numbers_ary.inject(0) { |sum, i| sum + i }.to_f / numbers_ary.size
    end

    # Median formula
    # @param numbers_ary [array] an array of numbers
    #
    # @return [float]
    #
    # @example
    #   Exonio.median([1,2,3,4,5]) # => 3.0
    def median(numbers_ary)
      numbers_ary.sort!
      len = numbers_ary.length
      (numbers_ary[(len - 1) / 2] + numbers_ary[len / 2]) / 2.0
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
exonio-0.7.1 lib/exonio/statistical.rb
exonio-0.7.0 lib/exonio/statistical.rb
exonio-0.6.1 lib/exonio/statistical.rb
exonio-0.5.4 lib/exonio/statistical.rb
exonio-0.5.3 lib/exonio/statistical.rb