Class 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

      All Methods Static Methods Concrete Methods Deprecated Methods 
      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 long[] 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 long getVectorSize​(int[] dimensions)
      Retourne la taille que doit avoir un vecteur pour etre utilise avec les dimensions en argument
      static long getVectorSize​(int[] dimensions, long[] linearFactor)
      Retourne la taille 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.
    • Constructor Detail

      • MatrixHelper

        public MatrixHelper()
    • Method Detail

      • isValidCoordinates

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

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

        public static long[] 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 long getVectorSize​(int[] dimensions,
                                         long[] linearFactor)
        Retourne la taille 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 long getVectorSize​(int[] dimensions)
        Retourne la taille 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