lib/matrix_extensions.rb in matrix_extensions-0.0.1 vs lib/matrix_extensions.rb in matrix_extensions-0.0.2

- old
+ new

@@ -1,39 +1,29 @@ require "matrix_extensions/version" require 'matrix' # An extension to the Ruby Matrix class. # @author Michael Imstepf -class MatrixExtended < Matrix - # Converts a Matrix to an MatrixExtended. - # @param m [Matrix] matrix - # @return [MatrixExtended] matrix - # @raise [TypeError] if matrices are not of type Matrix - def self.convert_to_matrix_extended(m) - raise TypeError, "#{m.class} is not a Matrix" unless m.is_a?(Matrix) - - self.columns(m.column_vectors) - end - +class Matrix # Matrix prefilled with zeros. - # @param m [MatrixExtended] matrix - # @return [MatrixExtended] matrix + # @param m [Matrix] matrix + # @return [Matrix] matrix def self.zeros(rows = 1, columns = 1) - MatrixExtended.build(rows, columns) { 0 } + Matrix.build(rows, columns) { 0 } end self.singleton_class.send(:alias_method, :zeroes, :zeros) # Matrix prefilled with ones. - # @param m [MatrixExtended] matrix - # @return [MatrixExtended] matrix + # @param m [Matrix] matrix + # @return [Matrix] matrix def self.ones(rows = 1, columns = 1) - MatrixExtended.build(rows, columns) { 1 } + Matrix.build(rows, columns) { 1 } end # Concatenates two matrices horizontally (resulting in more columns). - # @param *matrices [MatrixExtended] matrices - # @return [MatrixExtended] concatenated matrix + # @param *matrices [Matrix] matrices + # @return [Matrix] concatenated matrix # @raise [ErrDimensionMismatch] if dimensions don't match # @raise [TypeError] if matrices are not of type Matrix or Vector def self.hconcat(*matrices) columns = [] matrices.each do |m| @@ -55,12 +45,12 @@ # create new matrix self.columns(columns) end # Concatenates two matrices vertically (resulting in more rows). - # @param *matrices [MatrixExtended] matrices - # @return [MatrixExtended] concatenated matrix + # @param *matrices [Matrix] matrices + # @return [Matrix] concatenated matrix # @raise [ErrDimensionMismatch] if dimensions don't match # @raise [TypeError] if matrices are not of type Matrix or Vector def self.vconcat(*matrices) rows = [] matrices.each do |m| @@ -82,12 +72,12 @@ # create new matrix self.rows(rows) end # Element-wise division. - # @param m [MatrixExtended] matrix - # @return [MatrixExtended] matrix + # @param m [Matrix] matrix + # @return [Matrix] matrix # @raise [ErrDimensionMismatch] if dimensions don't match def element_division(m) case m when Numeric return self./ m @@ -113,12 +103,12 @@ end new_matrix rows, column_count end # Element-wise multiplication. - # @param m [MatrixExtended] matrix - # @return [MatrixExtended] matrix + # @param m [Matrix] matrix + # @return [Matrix] matrix # @raise [ErrDimensionMismatch] if dimensions don't match def element_multiplication(m) case m when Numeric return self.* m @@ -144,12 +134,12 @@ end new_matrix rows, column_count end # Element-wise exponentiation. - # @param m [MatrixExtended] matrix - # @return [MatrixExtended] matrix + # @param m [Matrix] matrix + # @return [Matrix] matrix # @raise [ErrDimensionMismatch] if dimensions don't match def element_exponentiation(m) case m when Numeric # self.** m will break @@ -183,10 +173,10 @@ private # Convert vector to matrix for arithmetic operations. # @param vector [Vector] vector # @param dimension [Symbol] :row or :column - # @return [MatrixExtended] matrix + # @return [Matrix] matrix # @raise [TypeError] if vector ist not of type Vector def self.convert_vector_to_matrix(v, dimension) raise TypeError, "#{v.class} is not a Vector" unless v.is_a? Vector if dimension == :row \ No newline at end of file