Class: Random

Inherits:
Object
  • Object
show all
Defined in:
lib/kmat/random.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.randn(*args) ⇒ Object



80
81
82
# File 'lib/kmat/random.rb', line 80

def randn(*args)
  $MatRandom.randn(*args)
end

.srand(*args) ⇒ Object



76
77
78
79
# File 'lib/kmat/random.rb', line 76

def srand(*args)
  @kmat_stored = false
  kmat_srand_org(*args)
end

Instance Method Details

#kmat_vt_rand(vt, arg = nil) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/kmat/random.rb', line 52

def kmat_vt_rand(vt, arg=nil)
  case Mat.vt_refine(vt)
  when :float
    _kmat_rand_d(arg)
  when :complex
    _kmat_rand_z(arg)
  when :int
    _kmat_rand_i(arg)
  when :bool
    _kmat_rand_b(arg)
  when :object
    _kmat_rand_v(arg)
  else
    raise Mat::InternalError, 'unknown value type'
  end
end

#randn(*args) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
# File 'ext/kmat/smat/boxmuller.c', line 53

static VALUE
km_random_randn(int argc, VALUE *argv, VALUE random)
{
  rb_check_arity(argc, 0, 2);
  if ( argc == 0 ) {
    return rb_float_new(km_rand_normal(random));
  } else if ( argc == 2 ) {
    return rb_float_new(NUM2DBL(argv[0]) + km_rand_normal(random) * sqrt(NUM2DBL(argv[1])));
  } else {
    rb_raise(rb_eArgError, "when mean or standard deviation is specified, the other must be specified");
  }
}