ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/math/RectMatrix.hpp
(Generate patch)

Comparing branches/development/src/math/RectMatrix.hpp (file contents):
Revision 1787 by gezelter, Wed Aug 29 18:13:11 2012 UTC vs.
Revision 1821 by gezelter, Mon Jan 7 20:05:43 2013 UTC

# Line 221 | Line 221 | namespace OpenMD {
221      /**
222       * Tests if this matrix is identical to matrix m
223       * @return true if this matrix is equal to the matrix m, return false otherwise
224 <     * @m matrix to be compared
224 >     * @param m matrix to be compared
225       *
226       * @todo replace operator == by template function equal
227       */
# Line 237 | Line 237 | namespace OpenMD {
237      /**
238       * Tests if this matrix is not equal to matrix m
239       * @return true if this matrix is not equal to the matrix m, return false otherwise
240 <     * @m matrix to be compared
240 >     * @param m matrix to be compared
241       */
242      bool operator !=(const RectMatrix<Real, Row, Col>& m) {
243        return !(*this == m);
# Line 564 | Line 564 | namespace OpenMD {
564     * CCP5 Newsletter No 46., pp. 18-30.
565     *
566     * Equation 21 defines:
567 <   * V_alpha = \sum_\beta [ A_{\alpha+1,\beta} * B_{\alpha+2,\beta}
568 <                           -A_{\alpha+2,\beta} * B_{\alpha+2,\beta} ]
569 <   * where \alpha+1 and \alpha+2 are regarded as cyclic permuations of the
570 <   * matrix indices (i.e. for a 3x3 matrix, when \alpha = 2, \alpha + 1 = 3,
571 <   * and \alpha + 2 = 1).
567 >   * \f[
568 >   * V_alpha = \sum_\beta \left[ A_{\alpha+1,\beta} * B_{\alpha+2,\beta}
569 >                           -A_{\alpha+2,\beta} * B_{\alpha+2,\beta} \right]
570 >   * \f]
571 >
572 >   * where \f[\alpha+1\f] and \f[\alpha+2\f] are regarded as cyclic
573 >   * permuations of the matrix indices (i.e. for a 3x3 matrix, when
574 >   * \f[\alpha = 2\f], \f[\alpha + 1 = 3 \f], and \f[\alpha + 2 = 1 \f] ).
575     *
576     * @param t1 first matrix
577     * @param t2 second matrix
578     * @return the cross product (vector product) of t1 and t2
579     */
580    template<typename Real, unsigned int Row, unsigned int Col>
581 <  inline Vector<Real, Row> cross( const RectMatrix<Real, Row, Col>& t1, const RectMatrix<Real, Row, Col>& t2 ) {
581 >  inline Vector<Real, Row> cross( const RectMatrix<Real, Row, Col>& t1,
582 >                                  const RectMatrix<Real, Row, Col>& t2 ) {
583      Vector<Real, Row> result;
584      unsigned int i1;
585      unsigned int i2;
# Line 583 | Line 587 | namespace OpenMD {
587      for (unsigned int i = 0; i < Row; i++) {
588        i1 = (i+1)%Row;
589        i2 = (i+2)%Row;
590 <      
591 <      for (unsigned int j =0; j < Col; j++) {        
588 <        result[i] = t1(i1,j) * t2(i2,j) - t1(i2,j) * t2(i1,j);
590 >      for (unsigned int j = 0; j < Col; j++) {
591 >        result[i] += t1(i1,j) * t2(i2,j) - t1(i2,j) * t2(i1,j);
592        }
593 <    }
591 <    
593 >    }    
594      return result;
595    }
596    

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines