Module: Statsample::Vector::GSL_

Defined in:
lib/statsample/vector/gsl.rb

Instance Method Summary collapse

Instance Method Details

#clear_gslObject



4
5
6
# File 'lib/statsample/vector/gsl.rb', line 4

def clear_gsl
  @gsl=nil
end

#gslObject Also known as: to_gsl



20
21
22
# File 'lib/statsample/vector/gsl.rb', line 20

def gsl
  @gsl||=GSL::Vector.alloc(@numeric_data) if @numeric_data.size>0
end

#kurtosisObject

:nodoc:



100
101
102
103
# File 'lib/statsample/vector/gsl.rb', line 100

def kurtosis # :nodoc:
  check_type :numeric
  gsl.nil? ? nil : gsl.kurtosis
end

#meanObject



70
71
72
73
# File 'lib/statsample/vector/gsl.rb', line 70

def mean
  check_type :numeric
  gsl.nil? ? nil : gsl.mean
end

#medianObject



57
58
59
60
61
62
63
64
# File 'lib/statsample/vector/gsl.rb', line 57

def median
  if @type!=:numeric
    median_ruby
  else
    sorted=GSL::Vector.alloc(@numeric_data.sort)
    GSL::Stats::median_from_sorted_data(sorted)
  end
end

#push(v) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/statsample/vector/gsl.rb', line 12

def push(v)
  # If data is GSL::Vector, should be converted first to an Array
  if @data.is_a? GSL::Vector
    @data=@data.to_a
  end
  push_ruby(v)
end

#sample_with_replacement(sample = 1) ⇒ Object



40
41
42
43
44
45
46
47
# File 'lib/statsample/vector/gsl.rb', line 40

def sample_with_replacement(sample=1)
  if(@type!=:numeric)
    sample_with_replacement_ruby(sample)
  else
    r = GSL::Rng.alloc(GSL::Rng::MT19937,rand(10000))
    Statsample::Vector.new(r.sample(gsl, sample).to_a,:numeric)
  end
end

#sample_without_replacement(sample = 1) ⇒ Object



49
50
51
52
53
54
55
56
# File 'lib/statsample/vector/gsl.rb', line 49

def sample_without_replacement(sample=1)
  if(@type!=:numeric)
    sample_without_replacement_ruby(sample)
  else
    r = GSL::Rng.alloc(GSL::Rng::MT19937,rand(10000))
    r.choose(gsl, sample).to_a
  end
end

#set_valid_dataObject



8
9
10
11
# File 'lib/statsample/vector/gsl.rb', line 8

def set_valid_data
  clear_gsl
  set_valid_data_ruby
end

#skewObject

:nodoc:



96
97
98
99
# File 'lib/statsample/vector/gsl.rb', line 96

def skew # :nodoc:
  check_type :numeric
  gsl.nil? ? nil : gsl.skew
end

#standard_deviation_population(m = nil) ⇒ Object

:nodoc:



91
92
93
94
95
# File 'lib/statsample/vector/gsl.rb', line 91

def standard_deviation_population(m=nil) # :nodoc:
  check_type :numeric
  m||=mean
  gsl.nil? ? nil : gsl.sd_with_fixed_mean(m)
end

#standard_deviation_sample(m = nil) ⇒ Object



80
81
82
83
84
# File 'lib/statsample/vector/gsl.rb', line 80

def standard_deviation_sample(m=nil)
  check_type :numeric
  m||=mean
  gsl.nil? ? nil : gsl.sd(m)
end

#sumObject



66
67
68
69
# File 'lib/statsample/vector/gsl.rb', line 66

def sum 
  check_type :numeric
  gsl.nil? ? nil : gsl.sum
end

#variance_population(m = nil) ⇒ Object

:nodoc:



86
87
88
89
90
# File 'lib/statsample/vector/gsl.rb', line 86

def variance_population(m=nil) # :nodoc:
  check_type :numeric    
  m||=mean
  gsl.nil? ? nil : gsl.variance_with_fixed_mean(m)
end

#variance_sample(m = nil) ⇒ Object



74
75
76
77
78
# File 'lib/statsample/vector/gsl.rb', line 74

def variance_sample(m=nil)
  check_type :numeric
  m||=mean
  gsl.nil? ? nil : gsl.variance_m
end

#vector_centered_compute(m) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/statsample/vector/gsl.rb', line 33

def vector_centered_compute(m)
  if flawed?
    vector_centered_compute_ruby(m)
  else
    gsl.collect {|x| (x.to_f - m)}.to_numeric
  end
end

#vector_standarized_compute(m, sd) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/statsample/vector/gsl.rb', line 25

def vector_standarized_compute(m,sd)
  if flawed?
    vector_standarized_compute_ruby(m,sd)
  else
    gsl.collect {|x| (x.to_f - m).quo(sd)}.to_numeric
  end
end