- on peut faire une version de submat plus rapide quand la matrice A
  est "row sorted"...

- remettre 'jfirst /= 1' dans 'sort.inc', ainsi on peut trier 'in place'
  une sous-matrice, sans avoir à l'extraire !

- actuellement, la routine 'msRowSort' effectue successivement deux
  opérations :
    * le tri des colonnes
    * l'élimination des entrées multiples

  il faudrait ajouter aussi l'élimination des entrées nulles, dans
  'remove_dupl_entries'... mais ces entrées nulles ont-elles vraiment
  lieu ?

  Attention à ne pas le faire systématiquement, certaines matrices
  (Jacobienne creuse des solveurs DAE) nécessitant tous les termes
  de la diagonale, même s'ils sont nuls !

==========================

- routines ajoutées (testées et utilisées dans le cadre des TP INSA 2012)

  colperm()
  rowperm()

  ces manières d'appliquer directement une permutation de lignes ou de
  colonnes sont bien plus rapides que la manière que j'utilise
  habituellement, qui est de construire une matrice de permutation
  remplie de valeurs unité et d'effectuer une multiplication
  matricielle !

==========================

À optimiser :

  * nnzatmub() -> coût en O(N^2), alors que nnzamub a un coût en O(N)
  *    atmub() -> idem

