44 template <
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
54 template <
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
64 myCofactorCoefs[i*N+j] = static_cast<T>(std::pow(-1.0f, (
float)i+j));
68 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
80 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
89 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
98 template<
typename T, DGtal::Dimension M, DGtal::Dimension N>
103 BOOST_STATIC_ASSERT( M == N);
111 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
119 v[ j ] = this->
operator()(i,j);
122 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
130 v[ i ] = this->
operator()(i,j);
134 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
135 template<
typename TC>
141 myValues[ i ] = static_cast<T>(other.
myValues[i]);
146 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
157 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
167 template<
typename T, DGtal::Dimension M, DGtal::Dimension N>
173 BOOST_STATIC_ASSERT(M == N);
174 return minorDeterminant(i,j)*myCofactorCoefs[i*N+j];
177 template<
typename T, DGtal::Dimension M, DGtal::Dimension N>
183 BOOST_STATIC_ASSERT(M == N);
192 template<
typename T, DGtal::Dimension M, DGtal::Dimension N>
201 template<
typename T, DGtal::Dimension M, DGtal::Dimension N>
210 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
215 BOOST_STATIC_ASSERT(TM == TN);
220 T det = determinant();
226 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
237 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
247 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
256 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
268 template<
typename T, DGtal::Dimension M, DGtal::Dimension N>
276 res[i] += this->
operator()(i, k )*other[k];
281 template<
typename T, DGtal::Dimension M, DGtal::Dimension N>
293 e += this->operator()(i, k )*other(k ,j );
298 e = NumberTraits<T>::ZERO;
303 template<
typename T, DGtal::Dimension M, DGtal::Dimension N>
309 this->myValues[i] /= other;
313 template<
typename T, DGtal::Dimension M, DGtal::Dimension N>
320 resultat.
myValues[i] = myValues[i]/other;
325 template<
typename T, DGtal::Dimension M, DGtal::Dimension N>
331 this->myValues[i] *= other;
336 template<
typename T, DGtal::Dimension M, DGtal::Dimension N>
343 resultat.
myValues[i] = other*myValues[i];
349 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
358 myValues[i*N + j] = aValue;
361 template<
typename T, DGtal::Dimension TM, DGtal::Dimension TN>
369 return myValues[i*N + j];
379 template <
typename T, DGtal::Dimension TM, DGtal::Dimension TN >
384 out <<
"[SimpleMatrix] "<<M<<
"x"<<N<<
" [";
389 out<< this->
operator()(i,j)<<
" ";
399 template <
typename T,DGtal::Dimension M,DGtal::Dimension N>
414 template <
typename T,DGtal::Dimension M,DGtal::Dimension N>
420 object.selfDisplay( out );