class Orthogonal_Matrix
Public Class Methods
new(rows, cols, *nums)
click to toggle source
Initialize orthogonal matrix (square matrix and its transpose is equal to its inverse).
# File lib/matrix_gem/orthogonal_matrix.rb, line 4 def initialize(rows, cols, *nums) if !(Matrix.new rows, cols, *(nums)).orthogonal? raise MatrixArgumentError, "Can't initialize orthogonal matrix with this values." elsif nums.length == 0 @matrix = identity rows else @matrix = matrix_with_values nums, cols end end
Public Instance Methods
[]=(i, j, value)
click to toggle source
Set element. Raise error if the matrix with new value is not orthogonal.
# File lib/matrix_gem/orthogonal_matrix.rb, line 17 def []=(i, j, value) b = copy(self) b[i,j] = value if b.orthogonal? @matrix[i][j] = value else raise MatrixIndexOutOfRange, 'The matrix must be orthogonal.' end end