Matrix Library. v1.6.4 + some changes

Revision:
5:a4014ab0a8cf
Parent:
4:c0c8f3edd60e
--- a/Matrix.h	Sat Oct 22 23:19:51 2011 +0000
+++ b/Matrix.h	Sun Oct 30 16:29:23 2011 +0000
@@ -1,6 +1,8 @@
 /**
+ * @brief  API for Matrix Library
  * @file   Matrix.h
  * @author Ernesto Palacios
+ *
  * Created on 13 de septiembre de 2011, 03:49 PM
  *
  * Develop Under  GPL v3.0 License
@@ -9,17 +11,16 @@
  */
 
 #ifndef MATRIX_H
-#define	MATRIX_H
+#define MATRIX_H
 
 
 #include <vector>
 
 class MatrixMath;
 
-using namespace std;
 /**
  * @brief This class provide basic manipulation for 2D matrices see Log.c for more info
- * version 1.6.2.
+ * version 1.6.4.
  *
  */
 class Matrix{
@@ -45,6 +46,25 @@
     friend class MatrixMath;
 
 
+    /**@brief
+     * Subindex for Matrix elements assignation.
+     * @param row
+     * @param col
+     * @return pointer to the element.
+     */
+    float& operator() ( int row, int col );
+
+
+    /**@brief
+     *Subindex for Matrix element.
+     * @param row
+     * @param col
+     * @return the element.
+     */
+    float  operator() ( int row, int col ) const;
+    
+    
+    
     /** @brief
      * Overwrites all data. To be used Carefully!
      */
@@ -57,7 +77,7 @@
      * @param rightM
      * @return Boolean 'false' if different.
      */
-    bool operator == ( const Matrix& rightM );
+    friend bool operator == ( const Matrix& leftM, const Matrix& rightM );
 
 
     /** @brief
@@ -66,7 +86,7 @@
      * @param rightM
      * @return Boolean 'true' if different
      */
-    bool operator != ( const Matrix& rightM );
+    friend bool operator != ( const Matrix& leftM, const Matrix& rightM );
 
 
     /** @brief
@@ -74,7 +94,7 @@
      * @param rightM
      * @return A new Matrix to be assigned to itself.
      */
-    Matrix& operator += ( const Matrix& rightM );
+    friend Matrix& operator += ( Matrix& leftM, const Matrix& rightM );
 
 
     /** @brief
@@ -82,7 +102,7 @@
      * @param rightM Right hand matrix
      * @return A new Matrix to be assigned to itself
      */
-    Matrix& operator -= ( const Matrix& rightM );
+    friend Matrix& operator -= ( Matrix& leftM, const Matrix& rightM );
 
 
     /** @brief
@@ -90,7 +110,7 @@
      * @param rightM
      * @return
      */
-    Matrix& operator *=( const Matrix& rightM );
+    friend Matrix& operator *=( Matrix& leftM, const Matrix& rightM );
 
 
     /** @brief
@@ -98,7 +118,7 @@
      * @param number
      * @return
      */
-    Matrix& operator *=( float number );
+    friend Matrix& operator *=( Matrix& leftM, float number );
 
 
 
@@ -208,13 +228,13 @@
      * Returns TRUE if the matrix is zero, FALSE otherwhise
      * @param mat: Matrix to be tested
      */
-    bool isZero();
+    bool isZero() const;
 
 
     /** @brief
      * Determines weather a Matrix is a Single Column or Row.
      */
-    bool isVector();
+    bool isVector() const;
 
 
     /** @brief
@@ -327,7 +347,7 @@
     /** @brief
      * Prints the entire Matrix using standard PRINTF
      */
-    virtual void print();
+    virtual void print() const;
 
 
     /** @brief
@@ -352,7 +372,7 @@
     /** @brief
      * Returns the sum of every cell in the Matrix.
      */
-    float sum();
+    float sum() const;
 
 
     /** @brief
@@ -361,19 +381,19 @@
      * @param Col = number of Col in matrix
      * @return Num = float number in matrix
      */
-    float getNumber( int Row, int Col );
+    float getNumber( int Row, int Col ) const;
 
 
     /**@brief
      * Retuns the number of Columns in Matrix, index starts at 1.
      */
-    int  getCols();
+    int  getCols() const;
 
 
     /**@brief
      *Retruns the number of Rows in Matrix, index starts at 1.
      */
-    int  getRows();
+    int  getRows() const;
 
 
 private:
@@ -399,12 +419,5 @@
 
 };
 
-#endif	/* MATRIX_H */
+#endif    /* MATRIX_H */
 
-/*
- * Things To Change -> Enhace -> Modify
- *
- * Submatrix
-  // .submat(first_row, first_column, last_row, last_column)
- *
- */