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
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static List<?>
    Permet de relire une chaine du type [[[1, 2], [3, 4]],[[3, 5], [1, 4]]]
    static MatrixND
    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.

    Methods inherited from class java.lang.Object

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

    • MatrixHelper

      public MatrixHelper()
  • Method Details

    • 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