Method: NuLin::LLS_QR#compute

Defined in:
lib/nulin/lls.rb

#computeObject



81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/nulin/lls.rb', line 81

def compute
  m, n = @a.shape
  lda = m
  ldb = [1, m, n].max
  r, nrhs = @b.shape
  b = NVector.new(@typecode, ldb, nrhs)
  b[0...m, 0...nrhs] = @b
  lwork = [1, [m,n].min + [[m,n].min, nrhs].max].max
  work = NArray.new(@typecode, lwork)
  NuLin::Native.call(@typecode, "gels", "N", m, n, nrhs, @a, lda, b, ldb,
                     work, lwork, 0)
  @solution = b[0...n, true]
  @solution.flatten! if @b_is_rank1
end