Class MatrixProxy

java.lang.Object
org.nuiton.math.matrix.AbstractMatrixND
org.nuiton.math.matrix.MatrixProxy
All Implemented Interfaces:
Serializable, Cloneable, MatrixND

public class MatrixProxy extends AbstractMatrixND
Matrix proxy contains only dimension and semantics definition, but does not allocate memory spaces for value. Call to getSubMatrix method will return a really allocated memory matrix and use a MatrixProvider to fill matrix value. This is usefull for huge matrix that need to not be filled at first use, but after some dimensions reductions.
Version:
$Revision$ Last update : $Date$ By : $Author$
Author:
chatellier
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • getNumberOfAssignedValue

      public long getNumberOfAssignedValue()
      Description copied from interface: MatrixND
      Returne number of assigned value, assigned value is value stored in memory
    • getMatrixProvider

      public MatrixProvider getMatrixProvider()
    • setMatrixProvider

      public void setMatrixProvider(MatrixProvider matrixProvider)
    • iterator

      public MatrixIterator iterator()
      Description copied from interface: MatrixND
      Retourne un iterator sur toute la matrice.
      Returns:
      matrix iterator
    • iteratorNotZero

      public MatrixIterator iteratorNotZero()
      Description copied from interface: MatrixND
      Retourne un iterator pour toutes les valeurs de la matrices differente de 0
      Returns:
      matrix iterator
    • getValue

      public double getValue(int[] coordinates)
      Description copied from interface: MatrixND
      Renvoie un element de la matrice demandée en fonction des dimensions passé en paramètre.
      Exemple: Si on a un matrice 3D.
      getValue(1,1,1) retourne un element de la matrice.
      Parameters:
      coordinates - les différentes dimension à extraire. Le tableau doit contenir toutes les dimensions de la matrice, et seulement des nombres positif
      Returns:
      un entier double.
    • setValue

      public void setValue(int[] coordinates, double d)
      Description copied from interface: MatrixND
      Modifie un element de la matrice en fonction des dimensions passé en paramètre.
      Exemple: Si on a un matrice 3D.
      set([1,1,1], m) modifie un element de la matrice.
      Parameters:
      coordinates - dimension indices
      d - new double value to set into matrix at specified dimensions
    • getSubMatrix

      public MatrixND getSubMatrix(int dim, int start, int nb)
      Description copied from interface: MatrixND
      Permet de prendre une sous matrice dans la matrice courante. La sous matrice a le même nombre de dimensions mais sur une des dimensions on ne prend que certain élément.
      Specified by:
      getSubMatrix in interface MatrixND
      Overrides:
      getSubMatrix in class AbstractMatrixND
      Parameters:
      dim - la dimension dans lequel on veut une sous matrice
      start - la position dans dim d'ou il faut partir pour prendre la sous matrice. 0 <= start < dim.size si start est négatif alors la position de départ est calculé par rapport à la fin de la dimension, pour avoir le dernier élément il faut passer -1
      nb - le nombre d'élément à prendre dans la dimension si nb est inférieur ou égal à 0 alors cela indique qu'il faut prendre tous les éléments jusqu'à la fin de la dimension.
      Returns:
      un objet SubMatrix qui est une vu de la matrice initiale (toute modification de la sous-matrice, modifie la matrice initiale)
    • getSubMatrix

      public MatrixND getSubMatrix(int dim, Object... elem)
      Description copied from interface: MatrixND
      Permet de prendre une sous matrice dans la matrice courante. La sous matrice a le même nombre de dimensions mais sur une des dimensions on ne prend que certain élément.
      Specified by:
      getSubMatrix in interface MatrixND
      Overrides:
      getSubMatrix in class AbstractMatrixND
      Parameters:
      dim - la dimension dans lequel on veut une sous matrice
      elem - les éléments dans la dimension à conserver
      Returns:
      un objet SubMatrix qui est une vu de la matrice initiale (toute modification de la sous-matrice, modifie la matrice initiale)
    • getSubMatrix

      public MatrixND getSubMatrix(Object[]... elems)
      Description copied from interface: MatrixND
      Permet de prendre une sous matrice dans la matrice courante. Réalise plusieurs appels à MatrixND.getSubMatrix(int, Object...) suivant l'implémentation.
      Specified by:
      getSubMatrix in interface MatrixND
      Overrides:
      getSubMatrix in class AbstractMatrixND
      Parameters:
      elems - les éléments dans la dimension à conserver
      Returns:
      un objet SubMatrix qui est une vu de la matrice initiale (toute modification de la sous-matrice, modifie la matrice initiale)
    • getSubMatrix

      public MatrixND getSubMatrix(int dim, int[] elem)
      Description copied from interface: MatrixND
      Permet de prendre une sous matrice dans la matrice courante. La sous matrice a le même nombre de dimensions mais sur une des dimensions on ne prend que certain élément.
      Specified by:
      getSubMatrix in interface MatrixND
      Overrides:
      getSubMatrix in class AbstractMatrixND
      Parameters:
      dim - la dimension dans lequel on veut une sous matrice
      elem - les indices des éléments dans la dimension à conserver
      Returns:
      un objet SubMatrix qui est une vu de la matrice initiale (toute modification de la sous-matrice, modifie la matrice initiale)
    • getSubMatrix

      public MatrixND getSubMatrix(int[]... elems)
      Description copied from interface: MatrixND
      Permet de prendre une sous matrice dans la matrice courante. Réalise plusieurs appels a MatrixND.getSubMatrix(int, int[]) suivant l'implementation.
      Specified by:
      getSubMatrix in interface MatrixND
      Overrides:
      getSubMatrix in class AbstractMatrixND
      Parameters:
      elems - les indices des éléments pour chaque dimension à conserver
      Returns:
      un objet SubMatrix qui est une vu de la matrice initiale (toute modification de la sous-matrice, modifie la matrice initiale)
    • equals

      public boolean equals(MatrixND mat)
      Overrides:
      equals in class AbstractMatrixND