• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/ruby-106/ruby/lib/

Lines Matching refs:Matrix

5 # An implementation of Matrix and Vector classes.
7 # See classes Matrix and Vector for documentation.
22 def_exception("ErrNotRegular", "Not Regular Matrix")
28 # The +Matrix+ class represents a mathematical matrix. It provides methods for creating
35 # * Matrix[*rows]
36 # * Matrix.[](*rows)
37 # * Matrix.rows(rows, copy = true)
38 # * Matrix.columns(columns)
39 # * Matrix.build(row_count, column_count, &block)
40 # * Matrix.diagonal(*values)
41 # * Matrix.scalar(n, value)
42 # * Matrix.identity(n)
43 # * Matrix.unit(n)
44 # * Matrix.I(n)
45 # * Matrix.zero(n)
46 # * Matrix.row_vector(row)
47 # * Matrix.column_vector(column)
49 # To access Matrix elements/columns/rows/submatrices/properties:
79 # Matrix arithmetic:
88 # Matrix functions:
98 # Matrix decompositions:
123 class Matrix
136 # Matrix[ [25, 93], [-1, 66] ]
140 def Matrix.[](*rows)
148 # Matrix.rows([[25, 93], [-1, 66]])
152 def Matrix.rows(rows, copy = true)
166 # Matrix.columns([[25, 93], [-1, 66]])
170 def Matrix.columns(columns)
180 # m = Matrix.build(2, 4) {|row, col| col - row }
181 # => Matrix[[0, 1, 2, 3], [-1, 0, 1, 2]]
182 # m = Matrix.build(3) { rand }
185 def Matrix.build(row_count, column_count = row_count)
200 # Matrix.diagonal(9, 5, -3)
205 def Matrix.diagonal(*values)
218 # Matrix.scalar(2, 5)
222 def Matrix.scalar(n, value)
228 # Matrix.identity(2)
232 def Matrix.identity(n)
235 class << Matrix
242 # Matrix.zero(2)
246 def Matrix.zero(row_count, column_count = row_count)
254 # Matrix.row_vector([4,5,6])
257 def Matrix.row_vector(row)
265 # Matrix.column_vector([4,5,6])
270 def Matrix.column_vector(column)
279 # m = Matrix.empty(2, 0)
280 # m == Matrix[ [], [] ]
282 # n = Matrix.empty(0, 3)
283 # n == Matrix.columns([ [], [], [] ])
286 # => Matrix[[0, 0, 0], [0, 0, 0]]
288 def Matrix.empty(row_count = 0, column_count = 0)
296 # Matrix.new is private; use Matrix.rows, columns, [], etc... to create.
307 self.class.send(:new, rows, column_count) # bypass privacy of Matrix.new
378 # Matrix[ [1,2], [3,4] ].collect { |e| e**2 }
401 # Matrix[ [1,2], [3,4] ].each { |e| puts e }
403 # Matrix[ [1,2], [3,4] ].each(:strict_lower).to_a # => [3]
457 # Matrix[ [1,2], [3,4] ].each_with_index do |e, row, col|
526 # Matrix[ [1,2], [3,4] ].index(&:even?) # => [0, 1]
527 # Matrix[ [1,1], [1,1] ].index(1, :strict_lower) # => [1, 0]
551 # Matrix.diagonal(9, 5, -3).minor(0..1, 0..2)
601 Matrix.Raise ErrDimensionMismatch unless square?
618 Matrix.Raise ErrDimensionMismatch unless square?
636 Matrix.Raise ErrDimensionMismatch unless square?
654 Matrix.Raise ErrDimensionMismatch unless square?
672 Matrix.Raise ErrDimensionMismatch unless square?
722 Matrix.Raise ErrDimensionMismatch unless square?
734 Matrix.Raise ErrDimensionMismatch unless square?
769 return false unless Matrix === other &&
775 return false unless Matrix === other &&
801 # Matrix multiplication.
802 # Matrix[[2,4], [6,8]] * Matrix.identity(2)
817 when Matrix
818 Matrix.Raise ErrDimensionMismatch if column_count != m.row_count
834 # Matrix addition.
835 # Matrix.scalar(2,5) + Matrix[[1,0], [-4,7]]
842 Matrix.Raise ErrOperationNotDefined, "+", self.class, m.class
845 when Matrix
850 Matrix.Raise ErrDimensionMismatch unless row_count == m.row_count and column_count == m.column_count
861 # Matrix subtraction.
862 # Matrix[[1,5], [4,2]] - Matrix[[9,3], [-4,1]]
869 Matrix.Raise ErrOperationNotDefined, "-", self.class, m.class
872 when Matrix
877 Matrix.Raise ErrDimensionMismatch unless row_count == m.row_count and column_count == m.column_count
888 # Matrix division (multiplication by the inverse).
889 # Matrix[[7,6], [3,9]] / Matrix[[2,9], [3,1]]
900 when Matrix
909 # Matrix[[-1, -1], [0, -1]].inverse
914 Matrix.Raise ErrDimensionMismatch unless square?
933 Matrix.Raise ErrNotRegular if akk == 0
965 # Matrix exponentiation.
969 # Matrix[[7,6], [3,9]] ** 2
992 Matrix.Raise ErrOperationNotDefined, "**", self.class, other.class
1007 # Matrix[[7,6], [3,9]].determinant
1011 Matrix.Raise ErrDimensionMismatch unless square?
1051 # Private. Use Matrix#determinant
1090 # deprecated; use Matrix#determinant
1093 warn "#{caller(1)[0]}: warning: Matrix#determinant_e is deprecated; use #determinant"
1104 # Matrix[[7,6], [3,9]].rank
1136 # deprecated; use Matrix#rank
1139 warn "#{caller(1)[0]}: warning: Matrix#rank_e is deprecated; use #rank"
1152 # Matrix[[7,6], [3,9]].trace
1156 Matrix.Raise ErrDimensionMismatch unless square?
1165 # Matrix[[1,2], [3,4], [5,6]]
1169 # Matrix[[1,2], [3,4], [5,6]].transpose
1185 # m = Matrix[[1, 2], [3, 4]]
1198 # a = Matrix[[1, 2], [3, 4]]
1217 # Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]]
1220 # Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]].conjugate
1231 # Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]]
1234 # Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]].imaginary
1245 # Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]]
1248 # Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]].real
1313 warn "#{caller(1)[0]}: warning: Matrix#elements_to_f is deprecated, use map(&:to_f)"
1318 warn "#{caller(1)[0]}: warning: Matrix#elements_to_i is deprecated, use map(&:to_i)"
1323 warn "#{caller(1)[0]}: warning: Matrix#elements_to_r is deprecated, use map(&:to_r)"
1438 when Vector, Matrix
1449 when Vector, Matrix
1460 when Vector, Matrix
1473 when Matrix
1486 when Matrix
1500 # also constitutes a row or column of a Matrix.
1543 include Matrix::CoercionHelper
1544 extend Matrix::ConversionHelper
1682 when Matrix
1683 Matrix.column_vector(self) * x
1702 when Matrix
1703 Matrix.column_vector(self) + v
1720 when Matrix
1721 Matrix.column_vector(self) - v
1735 when Matrix, Vector
1811 Matrix.row_vector(self)
1846 return Matrix::Scalar.new(other), self