| 135 | 
  | 
 | 
| 136 | 
  | 
      return tmp; | 
| 137 | 
  | 
    } | 
| 138 | 
+ | 
     | 
| 139 | 
+ | 
    /** | 
| 140 | 
+ | 
     * Returns the tensor contraction (double dot product) of two rank 2 | 
| 141 | 
+ | 
     * tensors (or Matrices) | 
| 142 | 
+ | 
     * @param t1 first tensor | 
| 143 | 
+ | 
     * @param t2 second tensor | 
| 144 | 
+ | 
     * @return the tensor contraction (double dot product) of t1 and t2 | 
| 145 | 
+ | 
     */ | 
| 146 | 
+ | 
    Real doubleDot( const SquareMatrix<Real, Dim>& t1, const SquareMatrix<Real, Dim>& t2 ) { | 
| 147 | 
+ | 
      Real tmp; | 
| 148 | 
+ | 
      tmp = 0; | 
| 149 | 
+ | 
       | 
| 150 | 
+ | 
      for (unsigned int i = 0; i < Dim; i++) | 
| 151 | 
+ | 
        for (unsigned int j =0; j < Dim; j++) | 
| 152 | 
+ | 
          tmp += t1[i][j] * t2[i][j]; | 
| 153 | 
+ | 
       | 
| 154 | 
+ | 
      return tmp; | 
| 155 | 
+ | 
    } | 
| 156 | 
  | 
 | 
| 157 | 
+ | 
 | 
| 158 | 
  | 
    /** Tests if this matrix is symmetrix. */             | 
| 159 | 
  | 
    bool isSymmetric() const { | 
| 160 | 
  | 
      for (unsigned int i = 0; i < Dim - 1; i++) |