Class MatrixHelper

java.lang.Object
org.nuiton.math.matrix.MatrixHelper

public class MatrixHelper
extends Object
Contains usefull methods to get information on matrix. Created: 28 oct. 2004
Version:
$Revision$ Mise a jour: $Date$ par : $Author$
Author:
Benjamin Poussin <poussin@codelutin.com>
  • Constructor Summary

    Constructors 
    Constructor Description
    MatrixHelper()  
  • Method Summary

    Modifier and Type Method Description
    static List<?> convertStringToList​(String s)
    Permet de relire une chaine du type [[[1, 2], [3, 4]],[[3, 5], [1, 4]]]
    static MatrixND convertToId​(MatrixND mat)
    Convert Matrix to identity matrix must have 2 dimensions.
    static String coordinatesToString​(int[] coordinates)
    permet de donner une représentation String d'un tableau de coordonnées
    static String coordinatesToString​(Object[] coordinates)
    permet de donner une représentation String d'un tableau de coordonnées
    static Object[] dimensionToSemantics​(Object[] result, List<?>[] semantics, int[] coordinates)
    Permet de convertir des coordonnées définies par des entiers en coordonnées semantique par des objets
    static MatrixND fill​(MatrixND mat, double value)
    Permet de remplir toute la matrice avec la même donnée
    static int[] getLinearFactor​(int[] dimensions)
    Retourne le linearFactor, ce tableau sert a convertir une position donnee par les dimensions d'une matrice en une position dans un Vecteur.
    static int getVectorSize​(int[] dimensions)
    Retourne la taillle que doit avoir un vecteur pour etre utilise avec les dimensions en argument
    static int getVectorSize​(int[] dimensions, int[] linearFactor)
    Retourne la taillle que doit avoir un vecteur pour etre utilise avec les dimensions et le linearFactor en argument
    static int indexOf​(List<?>[] semantics, int dim, Object o)
    Permet de retrouver la position d'un objet dans une liste
    static boolean isValidCoordinates​(int[] dim, int[] pos)  
    static boolean isValidCoordinates​(List[] semantics, Object[] pos)  
    static double maxOccurence​(double[] tab)
    Deprecated.
    since 2.1, use maxOccurrence(double[]) instead
    static double maxOccurence​(float[] tab)
    Deprecated.
    since 2.1, use maxOccurrence(float[]) instead
    static double maxOccurrence​(double[] tab)
    Retourne la valeur la plus courrement rencontrer dans un tableau. si plusieurs valeurs ont le même nombre d'occurrence la plus petite valeur est retournée.
    static double maxOccurrence​(float[] tab)
    Retourne la valeur la plus courrement rencontrer dans un tableau. si plusieurs valeurs ont le même nombre d'occurrence la plus petite valeur est retournée.
    protected static double maxOccurrence1​(double[] tmp)
    le tableau en entre est trie durant l'execution de la methode, il est donc modifié
    static boolean sameDimension​(int[] dim1, int[] dim2)
    Permet de savoir si deux dimension sont identiques.
    static boolean sameSemantics​(List[] sems1, List[] sems2)  
    static int[] semanticsToDimension​(List<?>[] semantics, Object[] coordinates)
    Permet de convertir des coordonnées sémantiques en coordonnées défini par des entiers.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • isValidCoordinates

      public static boolean isValidCoordinates​(int[] dim, int[] pos)
    • isValidCoordinates

      public static boolean isValidCoordinates​(List[] semantics, Object[] pos)
    • getLinearFactor

      public static int[] getLinearFactor​(int[] dimensions)
      Retourne le linearFactor, ce tableau sert a convertir une position donnee par les dimensions d'une matrice en une position dans un Vecteur.
      Parameters:
      dimensions -
      Returns:
    • getVectorSize

      public static int getVectorSize​(int[] dimensions, int[] linearFactor)
      Retourne la taillle que doit avoir un vecteur pour etre utilise avec les dimensions et le linearFactor en argument
      Parameters:
      dimensions -
      linearFactor - calculer prealablement par getLinearFactor
      Returns:
    • getVectorSize

      public static int getVectorSize​(int[] dimensions)
      Retourne la taillle que doit avoir un vecteur pour etre utilise avec les dimensions en argument
      Parameters:
      dimensions -
      Returns:
    • convertToId

      public static MatrixND convertToId​(MatrixND mat)
      Convert Matrix to identity matrix must have 2 dimensions. If dimension haven't same length, then the small dimension is used.
      Parameters:
      mat - matrix nd to convert
      Returns:
      converted matrix
    • convertStringToList

      public static List<?> convertStringToList​(String s)
      Permet de relire une chaine du type [[[1, 2], [3, 4]],[[3, 5], [1, 4]]]

      Remarque: une premiere implantantion avait ete faite en utilisant StreamTokenizer mais en fait il y a un bug dedans, il ne sait pas parser les chiffres avec un exposant: 5.0E-7 par exemple est lu comme 5.0 :(

      Remarque: une autre implantation de remplacement a ete faite en utilisant le StringUtil.split(String, String) mais elle etait moins performante (x2)

      Parameters:
      s - la chaine representant les listes de liste
      Returns:
      une liste de liste ... de Double
    • coordinatesToString

      public static String coordinatesToString​(int[] coordinates)
      permet de donner une représentation String d'un tableau de coordonnées
      Parameters:
      coordinates - les coordonnées
      Returns:
      la chaine demandée de la forme 1,3,34,23
    • coordinatesToString

      public static String coordinatesToString​(Object[] coordinates)
      permet de donner une représentation String d'un tableau de coordonnées
      Parameters:
      coordinates - les coordonnées
      Returns:
      la chaine demandée de la forme "Ob1","Ob2,"Ob3", ... la chaine prise pour l'objet est celle retournée par la méthode toString de l'objet
    • sameDimension

      public static boolean sameDimension​(int[] dim1, int[] dim2)
      Permet de savoir si deux dimension sont identiques.
      Parameters:
      dim1 - first dimensions
      dim2 - second dimensions
      Returns:
      dimension equality
    • sameSemantics

      public static boolean sameSemantics​(List[] sems1, List[] sems2)
    • dimensionToSemantics

      public static Object[] dimensionToSemantics​(Object[] result, List<?>[] semantics, int[] coordinates)
      Permet de convertir des coordonnées définies par des entiers en coordonnées semantique par des objets
      Parameters:
      result - le tableau utilise pour stocker le resultat. Force sa creation par l'appelant permet de ne pas creer un tableau pour chaque appel, l'appelant peu utiliser a chaque fois le meme.
      semantics - la semantique à utilisé pour la conversion
      coordinates - les coordonnées à convertir
      Returns:
      un tableau donnant les coordonnées sous forme semantique s'il n'y a pas de semantique (liste pleine de null) alors un objet Integer est créer pour représenter la semantique de la dimension.
    • semanticsToDimension

      public static int[] semanticsToDimension​(List<?>[] semantics, Object[] coordinates)
      Permet de convertir des coordonnées sémantiques en coordonnées défini par des entiers. Cette fonction est l'inverse de dimensionToSemantics(java.lang.Object[], java.util.List<?>[], int[]).
      Parameters:
      semantics - la semantique à utiliser pour la conversion
      coordinates - les coordonnées sémantique
      Returns:
      les coordonnées en entier. Si la sémantique est représentée par un Integer alors la valeur de l'integer est utilisé pour la conversion.
    • indexOf

      public static int indexOf​(List<?>[] semantics, int dim, Object o) throws NoSuchElementException
      Permet de retrouver la position d'un objet dans une liste
      Parameters:
      semantics - la semantique à utilisé pour la recherche
      dim - la dimension dans lequel il faut faire la recherche
      o - l'objet à rechercher
      Returns:
      la position de l'objet dans la dimension demandée
      Throws:
      NoSuchElementException - If element doesn't exists
    • fill

      public static MatrixND fill​(MatrixND mat, double value)
      Permet de remplir toute la matrice avec la même donnée
      Parameters:
      mat - la matrice à remplir
      value - la valeur de remplissage
      Returns:
      la matrice passé en paramêtre
    • maxOccurence

      @Deprecated public static double maxOccurence​(double[] tab)
      Deprecated.
      since 2.1, use maxOccurrence(double[]) instead
      Retourne la valeur la plus courrement rencontrer dans un tableau. si plusieurs valeurs ont le même nombre d'occurrence la plus petite valeur est retournée.
      Parameters:
      tab - le tableau de valeur
      Returns:
      la valeur la plus nombreuse dans le tableau
    • maxOccurence

      @Deprecated public static double maxOccurence​(float[] tab)
      Deprecated.
      since 2.1, use maxOccurrence(float[]) instead
      Retourne la valeur la plus courrement rencontrer dans un tableau. si plusieurs valeurs ont le même nombre d'occurrence la plus petite valeur est retournée.
      Parameters:
      tab - le tableau de valeur
      Returns:
      la valeur la plus nombreuse dans le tableau
    • maxOccurrence

      public static double maxOccurrence​(double[] tab)
      Retourne la valeur la plus courrement rencontrer dans un tableau. si plusieurs valeurs ont le même nombre d'occurrence la plus petite valeur est retournée.
      Parameters:
      tab - le tableau de valeur
      Returns:
      la valeur la plus nombreuse dans le tableau
    • maxOccurrence

      public static double maxOccurrence​(float[] tab)
      Retourne la valeur la plus courrement rencontrer dans un tableau. si plusieurs valeurs ont le même nombre d'occurrence la plus petite valeur est retournée.
      Parameters:
      tab - le tableau de valeur
      Returns:
      la valeur la plus nombreuse dans le tableau
    • maxOccurrence1

      protected static double maxOccurrence1​(double[] tmp)
      le tableau en entre est trie durant l'execution de la methode, il est donc modifié
      Parameters:
      tmp - TODO
      Returns:
      TODO