|  Operations  |   Code  |   Notes  | 
  |  add subtract  |  
   \code
  sm3 = sm1 + sm2; 
  sm3 = sm1 - sm2;
  sm2 += sm1; 
  sm2 -= sm1; \endcode
   | 
   
  sm1 and sm2 should have the same storage order
   |  
| 
  scalar product | \code
  sm3 = sm1 * s1;   sm3 *= s1; 
  sm3 = s1 * sm1 + s2 * sm2; sm3 /= s1;\endcode
   | 
  
    Many combinations are possible if the dimensions and the storage order agree.
 | 
  |  Product  | 
   \code
  sm3 = sm1 * sm2;
  dm2 = sm1 * dm1;
  dv2 = sm1 * dv1;
  \endcode  | 
  
   | 
 
  |  transposition, adjoint | 
   \code
  sm2 = sm1.transpose();
  sm2 = sm1.adjoint();
  \endcode  | 
  
  Note that the transposition change the storage order. There is no support for transposeInPlace().
   | 
 
  | 
  Component-wise ops
   | 
  \code 
  sm1.cwiseProduct(sm2);
  sm1.cwiseQuotient(sm2);
  sm1.cwiseMin(sm2);
  sm1.cwiseMax(sm2);
  sm1.cwiseAbs();
  sm1.cwiseSqrt();
  \endcode | 
  
  sm1 and sm2 should have the same storage order
   | 
\section SparseInterops Low-level storage
There are a set of low-levels functions to get the standard compressed storage pointers. The matrix should be in compressed mode which can be checked by calling isCompressed(); makeCompressed() should do the job otherwise. 
\code
  // Scalar pointer to the values of the matrix, size nnz
  sm1.valuePtr();  
  // Index pointer to get the row indices (resp. column indices) for column major (resp. row major) matrix, size nnz
  sm1.innerIndexPtr();
  // Index pointer to the beginning of each row (resp. column) in valuePtr() and innerIndexPtr() for column major (row major). The size is outersize()+1; 
  sm1.outerIndexPtr();  
\endcode
These pointers can therefore be easily used to send the matrix to some external libraries/solvers that are not yet supported by Eigen.
\section sparsepermutation Permutations, submatrices and Selfadjoint Views
In many cases, it is necessary to reorder the rows and/or the columns of the sparse matrix for several purposes : fill-in reducing during matrix decomposition, better data locality for sparse matrix-vector products... The class PermutationMatrix is available to this end. 
 \code
  PermutationMatrix