ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/src/math/RectMatrix.hpp
(Generate patch)

Comparing trunk/OOPSE-2.0/src/math/RectMatrix.hpp (file contents):
Revision 1564 by tim, Wed Oct 13 22:24:59 2004 UTC vs.
Revision 1603 by tim, Tue Oct 19 21:28:55 2004 UTC

# Line 34 | Line 34
34   #ifndef MATH_RECTMATRIX_HPP
35   #define MATH_RECTMATRIX_HPP
36  
37 + #include <cmath>
38   #include "Vector.hpp"
39  
40   namespace oopse {
41  
41    template<typename T>
42    inline bool equal(T e1, T e2) {
43        return e1 == e2;
44    }
45
46    template<>
47    inline bool equal(float e1, float e2) {
48        return e1 == e2;
49    }
50
51    template<>
52    inline bool equal(double e1, double e2) {
53        return e1 == e2;
54    }
55
42      /**
43       * @class RectMatrix RectMatrix.hpp "math/RectMatrix.hpp"
44       * @brief rectangular matrix class
# Line 167 | Line 153 | namespace oopse {
153           }        
154  
155          /**
156 +         * swap two rows of this matrix
157 +         * @param i the first row
158 +         * @param j the second row
159 +         */
160 +        void swapRow(unsigned int i, unsigned int j){
161 +                assert(i < Row && j < Row);
162 +
163 +                for (unsigned int k = 0; k < Col; k++)
164 +                    std::swap(data_[i][k], data_[j][k]);
165 +        }
166 +
167 +       /**
168 +         * swap two colums of this matrix
169 +         * @param i the first colum
170 +         * @param j the second colum
171 +         */
172 +        void swapColum(unsigned int i, unsigned int j){
173 +                assert(i < Col && j < Col);
174 +                
175 +                for (unsigned int k = 0; k < Row; k++)
176 +                    std::swap(data_[k][i], data_[k][j]);
177 +        }
178 +
179 +        /**
180           * Tests if this matrix is identical to matrix m
181           * @return true if this matrix is equal to the matrix m, return false otherwise
182           * @m matrix to be compared
# Line 426 | Line 436 | namespace oopse {
436              for (unsigned int i = 0; i < Row; i++)
437                  for (unsigned int j = 0; j < Col; j++)
438                      for (unsigned int k = 0; k < SameDim; k++)
439 <                        result(i, j)  = m1(i, k) * m2(k, j);                
439 >                        result(i, j)  += m1(i, k) * m2(k, j);                
440  
441          return result;
442      }
# Line 461 | Line 471 | namespace oopse {
471          result.div(s, m);
472  
473          return result;
474 +    }    
475 +
476 +    /**
477 +     * Write to an output stream
478 +     */
479 +    template<typename Real,  unsigned int Row, unsigned int Col>
480 +    std::ostream &operator<< ( std::ostream& o, const RectMatrix<Real, Row, Col>& m) {
481 +        for (unsigned int i = 0; i < Row ; i++) {
482 +            o << "(";
483 +            for (unsigned int j = 0; j < Col ; j++) {
484 +                o << m(i, j) << "\t";
485 +            }
486 +            o << ")" << std::endl;
487 +        }
488 +        return o;        
489      }    
490   }
491   #endif //MATH_RECTMATRIX_HPP

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines