--- branches/development/src/math/RectMatrix.hpp 2012/08/29 18:13:11 1787 +++ branches/development/src/math/RectMatrix.hpp 2013/01/07 20:05:43 1821 @@ -221,7 +221,7 @@ namespace OpenMD { /** * Tests if this matrix is identical to matrix m * @return true if this matrix is equal to the matrix m, return false otherwise - * @m matrix to be compared + * @param m matrix to be compared * * @todo replace operator == by template function equal */ @@ -237,7 +237,7 @@ namespace OpenMD { /** * Tests if this matrix is not equal to matrix m * @return true if this matrix is not equal to the matrix m, return false otherwise - * @m matrix to be compared + * @param m matrix to be compared */ bool operator !=(const RectMatrix& m) { return !(*this == m); @@ -564,18 +564,22 @@ namespace OpenMD { * CCP5 Newsletter No 46., pp. 18-30. * * Equation 21 defines: - * V_alpha = \sum_\beta [ A_{\alpha+1,\beta} * B_{\alpha+2,\beta} - -A_{\alpha+2,\beta} * B_{\alpha+2,\beta} ] - * where \alpha+1 and \alpha+2 are regarded as cyclic permuations of the - * matrix indices (i.e. for a 3x3 matrix, when \alpha = 2, \alpha + 1 = 3, - * and \alpha + 2 = 1). + * \f[ + * V_alpha = \sum_\beta \left[ A_{\alpha+1,\beta} * B_{\alpha+2,\beta} + -A_{\alpha+2,\beta} * B_{\alpha+2,\beta} \right] + * \f] + + * where \f[\alpha+1\f] and \f[\alpha+2\f] are regarded as cyclic + * permuations of the matrix indices (i.e. for a 3x3 matrix, when + * \f[\alpha = 2\f], \f[\alpha + 1 = 3 \f], and \f[\alpha + 2 = 1 \f] ). * * @param t1 first matrix * @param t2 second matrix * @return the cross product (vector product) of t1 and t2 */ template - inline Vector cross( const RectMatrix& t1, const RectMatrix& t2 ) { + inline Vector cross( const RectMatrix& t1, + const RectMatrix& t2 ) { Vector result; unsigned int i1; unsigned int i2; @@ -583,12 +587,10 @@ namespace OpenMD { for (unsigned int i = 0; i < Row; i++) { i1 = (i+1)%Row; i2 = (i+2)%Row; - - for (unsigned int j =0; j < Col; j++) { - result[i] = t1(i1,j) * t2(i2,j) - t1(i2,j) * t2(i1,j); + for (unsigned int j = 0; j < Col; j++) { + result[i] += t1(i1,j) * t2(i2,j) - t1(i2,j) * t2(i1,j); } - } - + } return result; }