From: Kalman Noel Date: 2007-02-20T19:20:07+09:00 Subject: Re: Help with Class design Chris Lowis: > require 'mathn' > > class MySignal > > def initialize(input) > @signal = input > end > > def mean() > sum = 0; > @signal.each {|i| sum+=i} > mean = sum/@signal.length > end > > def variance() > m = @signal.mean > var = @signal.inject(0) { |var, x| var += (x - m) ** 2 } > var = var/(@signal.length-1) > end > end I suppose that you variance method should read something like def variance m = mean @signal.inject(0) { |sum, x| sum + (x-m)**2 } / @signal.length end Note that I prefer not using meaningless assignment in the inject block. Kalman