Index: lutinmatrix/src/java/org/codelutin/math/matrix/AbstractMatrixND.java diff -u lutinmatrix/src/java/org/codelutin/math/matrix/AbstractMatrixND.java:1.4 lutinmatrix/src/java/org/codelutin/math/matrix/AbstractMatrixND.java:1.5 --- lutinmatrix/src/java/org/codelutin/math/matrix/AbstractMatrixND.java:1.4 Fri Apr 8 12:28:15 2005 +++ lutinmatrix/src/java/org/codelutin/math/matrix/AbstractMatrixND.java Wed Oct 5 20:25:05 2005 @@ -23,9 +23,9 @@ * Created: 29 oct. 2004 * * @author Benjamin Poussin - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ * - * Mise a jour: $Date: 2005/04/08 12:28:15 $ + * Mise a jour: $Date: 2005/10/05 20:25:05 $ * par : $Author: bpoussin $ */ @@ -40,8 +40,8 @@ public abstract class AbstractMatrixND implements MatrixND { // AbstractMatrixND abstract public MatrixIterator iterator(); - abstract public double getValue(int [] coordinates); - abstract public void setValue(int [] coordinates, double d); + abstract public float getValue(int [] coordinates); + abstract public void setValue(int [] coordinates, float d); protected DimensionHelper dimHelper = new DimensionHelper(); @@ -49,7 +49,7 @@ protected List[] semantics = null; protected String name = ""; protected String [] dimNames = null; - protected double defaultValue = 0; + protected float defaultValue = 0; protected void init(int [] dim){ this.dim = new int[dim.length]; @@ -125,12 +125,15 @@ public String [] getDimensionName(){ return dimNames; } - public double getMaxOccurence(){ + public float getMaxOccurence(){ + // on creer un tableau dans cette classe, car on ne sait pas sur quelle + // implantation on s'appuie. Mais dans les sous classes, si on a deja + // un tableau il ne faut pas le recréer, on peut le passer directement int nbelem = 1; for(int i=0; i - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * - * Mise a jour: $Date: 2004/11/08 13:49:54 $ + * Mise a jour: $Date: 2005/10/05 20:25:05 $ * par : $Author: bpoussin $ */ @@ -36,7 +36,7 @@ import org.codelutin.i18n.I18n; /** -* Objet matrice qui ne permet que le stockage de double dans un matrice à +* Objet matrice qui ne permet que le stockage de float dans un matrice à * autant de dimension que l'on souhaite. */ public class BasicMatrix { // BasicMatrix @@ -44,7 +44,7 @@ /** Les dimensions de la matrice */ protected int [] dimensions = null; /** La matrice en représentation linéaire */ - protected double [] data = null; + protected float [] data = null; /** tableau de facteur permettant de convertir les coordonnées dans la * matrice en un indice dans la représentation linéaire de la matrice */ protected int [] linearFactor = null; @@ -68,7 +68,7 @@ } // creation de la matrice lineaire - data = new double[linearFactor[0] * dimensions[0]]; + data = new float[linearFactor[0] * dimensions[0]]; } /** @@ -78,7 +78,7 @@ * @return la valeur la plus nombreuse dans la matrice, ou la plus petite * si plusieurs valeur se retourve le même nombre de fois */ - public double getMaxOccurence(){ + public float getMaxOccurence(){ return MatrixHelper.maxOccurence(data); } @@ -114,7 +114,7 @@ * Retourne un element de la matrice * @param pos la position de l'element à retourner */ - public double getValue(int [] pos){ + public float getValue(int [] pos){ int indice = coordonatesToLinear(pos); return data[indice]; } @@ -124,7 +124,7 @@ * @param pos la position de l'element à modifier * @param value la nouvelle valeur à mettre dans la matrice */ - public void setValue(int [] pos, double value){ + public void setValue(int [] pos, float value){ int indice = coordonatesToLinear(pos); data[indice] = value; } @@ -144,7 +144,7 @@ */ public void map(MapFunction f){ for(int i=0; i - * @version $Revision: 1.1.1.1 $ + * @version $Revision: 1.2 $ * - * Mise a jour: $Date: 2004/11/02 16:25:31 $ + * Mise a jour: $Date: 2005/10/05 20:25:05 $ * par : $Author: bpoussin $ */ @@ -52,12 +52,12 @@ /** * Retourne la valeur courant pointé par l'iterator */ - public double getValue(); + public float getValue(); /** * Modifie la valeur courant pointé par l'iterator */ - public void setValue(double value); + public void setValue(float value); } // BasicMatrixIterator Index: lutinmatrix/src/java/org/codelutin/math/matrix/MapFunction.java diff -u lutinmatrix/src/java/org/codelutin/math/matrix/MapFunction.java:1.1.1.1 lutinmatrix/src/java/org/codelutin/math/matrix/MapFunction.java:1.2 --- lutinmatrix/src/java/org/codelutin/math/matrix/MapFunction.java:1.1.1.1 Tue Nov 2 16:25:31 2004 +++ lutinmatrix/src/java/org/codelutin/math/matrix/MapFunction.java Wed Oct 5 20:25:05 2005 @@ -23,9 +23,9 @@ * Created: 27 oct. 2004 * * @author Benjamin Poussin - * @version $Revision: 1.1.1.1 $ + * @version $Revision: 1.2 $ * - * Mise a jour: $Date: 2004/11/02 16:25:31 $ + * Mise a jour: $Date: 2005/10/05 20:25:05 $ * par : $Author: bpoussin $ */ @@ -40,7 +40,7 @@ * @return la nouvelle valeur à mettre dans la matrice à la place de * l'ancienne. */ - public double apply(double value); + public float apply(float value); } // MapFunction Index: lutinmatrix/src/java/org/codelutin/math/matrix/MatrixHelper.java diff -u lutinmatrix/src/java/org/codelutin/math/matrix/MatrixHelper.java:1.4 lutinmatrix/src/java/org/codelutin/math/matrix/MatrixHelper.java:1.5 --- lutinmatrix/src/java/org/codelutin/math/matrix/MatrixHelper.java:1.4 Mon Nov 8 13:49:54 2004 +++ lutinmatrix/src/java/org/codelutin/math/matrix/MatrixHelper.java Wed Oct 5 20:25:05 2005 @@ -23,9 +23,9 @@ * Created: 28 oct. 2004 * * @author Benjamin Poussin - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ * - * Mise a jour: $Date: 2004/11/08 13:49:54 $ + * Mise a jour: $Date: 2005/10/05 20:25:05 $ * par : $Author: bpoussin $ */ @@ -155,9 +155,9 @@ * @param value la valeur de remplissage * @return la matrice passé en paramètre */ - static public MatrixND fill(MatrixND mat, final double value){ + static public MatrixND fill(MatrixND mat, final float value){ mat.map(new MapFunction(){ - public double apply(double v){ + public float apply(float v){ return value; } }); @@ -185,11 +185,11 @@ * @param tab le tableau de valeur * @return la valeur la plus nombreuse dans le tableau */ - static public double maxOccurence(double [] tab){ + static public float maxOccurence(float [] tab){ if(tab.length == 0){ throw new IllegalArgumentException("Array must be not empty"); } - double [] tmp = new double[tab.length]; + float [] tmp = new float[tab.length]; System.arraycopy(tab, 0, tmp, 0, tab.length); Arrays.sort(tmp); @@ -198,11 +198,11 @@ // le nombre de fois que l'on a rencontrer la valeur courante int count = 1; // la valeur la plus rencontrer - double result = tmp[0]; + float result = tmp[0]; // la valeur que l'on vient de traiter précédement - double old = tmp[0]; + float old = tmp[0]; // la valeur courante lu dans le tableaux - double current = tmp[0]; + float current = tmp[0]; // tant que l'on peut encore trouve un element plus nombreux dans le // tableau on le parcours for(int i=1; max - * @version $Revision: 1.1.1.1 $ + * @version $Revision: 1.2 $ * - * Mise a jour: $Date: 2004/11/02 16:25:31 $ + * Mise a jour: $Date: 2005/10/05 20:25:05 $ * par : $Author: bpoussin $ */ @@ -62,11 +62,11 @@ return iterator.getCoordinates(); } - public double getValue(){ + public float getValue(){ return iterator.getValue(); } - public void setValue(double value){ + public void setValue(float value){ iterator.setValue(value); } Index: lutinmatrix/src/java/org/codelutin/math/matrix/MatrixND.java diff -u lutinmatrix/src/java/org/codelutin/math/matrix/MatrixND.java:1.3 lutinmatrix/src/java/org/codelutin/math/matrix/MatrixND.java:1.4 --- lutinmatrix/src/java/org/codelutin/math/matrix/MatrixND.java:1.3 Mon Nov 8 13:49:54 2004 +++ lutinmatrix/src/java/org/codelutin/math/matrix/MatrixND.java Wed Oct 5 20:25:05 2005 @@ -23,9 +23,9 @@ * Created: 29 oct. 2004 * * @author Benjamin Poussin -* @version $Revision: 1.3 $ +* @version $Revision: 1.4 $ * -* Mise a jour: $Date: 2004/11/08 13:49:54 $ +* Mise a jour: $Date: 2005/10/05 20:25:05 $ * par : $Author: bpoussin $ */ @@ -93,7 +93,7 @@ * @param tab le tableau de valeur * @return la valeur la plus nombreuse dans le tableau */ - public double getMaxOccurence(); + public float getMaxOccurence(); /** * Retourne le nombre de dimensions de la matrice. @@ -152,19 +152,19 @@ * tableau doit contenir toutes les dimensions de la matrice, et * seulement des nombres positif * - * @return un entier double. + * @return un entier float. */ - public double getValue(int [] dim); - public double getValue(int x); - public double getValue(int x, int y); - public double getValue(int x, int y, int z); - public double getValue(int x, int y, int z, int t); - - public double getValue(Object [] coordinates); - public double getValue(Object x); - public double getValue(Object x, Object y); - public double getValue(Object x, Object y, Object z); - public double getValue(Object x, Object y, Object z, Object t); + public float getValue(int [] dim); + public float getValue(int x); + public float getValue(int x, int y); + public float getValue(int x, int y, int z); + public float getValue(int x, int y, int z, int t); + + public float getValue(Object [] coordinates); + public float getValue(Object x); + public float getValue(Object x, Object y); + public float getValue(Object x, Object y, Object z); + public float getValue(Object x, Object y, Object z, Object t); // /** // * Modifie la sous matrice demandée en fonction des dimensions @@ -198,20 +198,20 @@ * * @param dimensions les différentes dimension à extraire. * - * @param d l'entier double qui doit remplacer l'entier double spécifié + * @param d l'entier float qui doit remplacer l'entier float spécifié * par l'argument dimensions */ - public void setValue(int [] dimensions, double d); - public void setValue(int x, double d); - public void setValue(int x, int y, double d); - public void setValue(int x, int y, int z, double d); - public void setValue(int x, int y, int z, int t, double d); - - public void setValue(Object [] coordinates, double d); - public void setValue(Object x, double d); - public void setValue(Object x, Object y, double d); - public void setValue(Object x, Object y, Object z, double d); - public void setValue(Object x, Object y, Object z, Object t, double d); + public void setValue(int [] dimensions, float d); + public void setValue(int x, float d); + public void setValue(int x, int y, float d); + public void setValue(int x, int y, int z, float d); + public void setValue(int x, int y, int z, int t, float d); + + public void setValue(Object [] coordinates, float d); + public void setValue(Object x, float d); + public void setValue(Object x, Object y, float d); + public void setValue(Object x, Object y, Object z, float d); + public void setValue(Object x, Object y, Object z, Object t, float d); // /** // * Copy la matrice pour pouvoir la modifier sans perdre les @@ -464,11 +464,11 @@ /** * Multiplication d'une matrice par un scalaire */ - public MatrixND mults(final double d); + public MatrixND mults(final float d); /** * Multiplication d'une matrice par un scalaire */ - public MatrixND divs(final double d); + public MatrixND divs(final float d); // /** // * Multiplication d'une vecteur [i] avec une matrice [i,j], // * le resultat est result[i,j]=matrice[i,j]*vecteur[i] Index: lutinmatrix/src/java/org/codelutin/math/matrix/MatrixNDImpl.java diff -u lutinmatrix/src/java/org/codelutin/math/matrix/MatrixNDImpl.java:1.3 lutinmatrix/src/java/org/codelutin/math/matrix/MatrixNDImpl.java:1.4 --- lutinmatrix/src/java/org/codelutin/math/matrix/MatrixNDImpl.java:1.3 Mon Nov 8 13:49:54 2004 +++ lutinmatrix/src/java/org/codelutin/math/matrix/MatrixNDImpl.java Wed Oct 5 20:25:05 2005 @@ -23,9 +23,9 @@ * Created: 29 oct. 2004 * * @author Benjamin Poussin -* @version $Revision: 1.3 $ +* @version $Revision: 1.4 $ * -* Mise a jour: $Date: 2004/11/08 13:49:54 $ +* Mise a jour: $Date: 2005/10/05 20:25:05 $ * par : $Author: bpoussin $ */ @@ -72,14 +72,20 @@ public MatrixIterator iterator(){ return new MatrixIteratorImpl(matrix.iterator(), getSemantics()); } - public double getValue(int [] coordinates){ + public float getValue(int [] coordinates){ return matrix.getValue(coordinates); } - public void setValue(int [] coordinates, double d){ + public void setValue(int [] coordinates, float d){ matrix.setValue(coordinates, d); } - public double getMaxOccurence(){ + // Hack pour ne pas a avoir a caster les double en float pour que l'appel + // se passe bien (surtout util au travers de langage de script + public void setValue(int [] coordinates, double d){ + setValue(coordinates, (float)d); + } + + public float getMaxOccurence(){ return matrix.getMaxOccurence(); } Index: lutinmatrix/src/java/org/codelutin/math/matrix/MatrixXMLDelegator.java diff -u lutinmatrix/src/java/org/codelutin/math/matrix/MatrixXMLDelegator.java:1.1 lutinmatrix/src/java/org/codelutin/math/matrix/MatrixXMLDelegator.java:1.2 --- lutinmatrix/src/java/org/codelutin/math/matrix/MatrixXMLDelegator.java:1.1 Mon Nov 8 13:49:54 2004 +++ lutinmatrix/src/java/org/codelutin/math/matrix/MatrixXMLDelegator.java Wed Oct 5 20:25:05 2005 @@ -23,9 +23,9 @@ * Created: 5 nov. 2004 * * @author Benjamin Poussin - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * - * Mise a jour: $Date: 2004/11/08 13:49:54 $ + * Mise a jour: $Date: 2005/10/05 20:25:05 $ * par : $Author: bpoussin $ */ @@ -53,7 +53,7 @@ public Element encodeVersion(XMLEncoderDecoder ed, Object o){ MatrixND matrix = (MatrixND)o; - double defaultValue = matrix.getMaxOccurence(); + float defaultValue = matrix.getMaxOccurence(); Element result = DocumentHelper.createElement("matrix"); result.addAttribute("defaultValue", ""+defaultValue); @@ -97,7 +97,7 @@ // ecriture des valeur de la matrice for(MatrixIterator i=matrix.iterator(); i.next();){ - double val = i.getValue(); + float val = i.getValue(); if(val != defaultValue){ String path = MatrixHelper.coordinatesToString(i.getCoordinates()); result.addElement("element").addAttribute("path", path).addAttribute("value", ""+val); @@ -121,7 +121,7 @@ // recuperation de la valeur par defaut de la matrice String defaultValueString = root.attributeValue("defaultElem", "0"); - double defaultValue = Double.parseDouble(defaultValueString); + float defaultValue = Float.parseFloat(defaultValueString); MatrixHelper.fill(result, defaultValue); //on remet toutes les valeurs dans la matrice @@ -132,7 +132,7 @@ int [] dim = ArrayUtil.asIntArray(path); String v = elem.attributeValue("function"); - result.setValue(dim, Double.parseDouble(v)); + result.setValue(dim, Float.parseFloat(v)); } return result; @@ -153,7 +153,7 @@ // recuperation de la valeur par defaut de la matrice String defaultValueString = root.attributeValue("defaultValue", "0"); - double defaultValue = Double.parseDouble(defaultValueString); + float defaultValue = Float.parseFloat(defaultValueString); MatrixHelper.fill(result, defaultValue); // on change le nom @@ -199,7 +199,7 @@ int [] dim = ArrayUtil.asIntArray(path); String v = elem.attributeValue("value"); - result.setValue(dim, Double.parseDouble(v)); + result.setValue(dim, Float.parseFloat(v)); } return result; Index: lutinmatrix/src/java/org/codelutin/math/matrix/SubMatrix.java diff -u lutinmatrix/src/java/org/codelutin/math/matrix/SubMatrix.java:1.3 lutinmatrix/src/java/org/codelutin/math/matrix/SubMatrix.java:1.4 --- lutinmatrix/src/java/org/codelutin/math/matrix/SubMatrix.java:1.3 Mon Nov 8 13:49:54 2004 +++ lutinmatrix/src/java/org/codelutin/math/matrix/SubMatrix.java Wed Oct 5 20:25:05 2005 @@ -23,9 +23,9 @@ * Created: 29 oct. 2004 * * @author Benjamin Poussin - * @version $Revision: 1.3 $ + * @version $Revision: 1.4 $ * - * Mise a jour: $Date: 2004/11/08 13:49:54 $ + * Mise a jour: $Date: 2005/10/05 20:25:05 $ * par : $Author: bpoussin $ */ @@ -74,11 +74,11 @@ return new SubMatrixIteratorImpl(this); } - public double getValue(int [] coordinates){ + public float getValue(int [] coordinates){ return matrix.getValue(converter.convertCoordinates(coordinates)); } - public void setValue(int [] coordinates, double d){ + public void setValue(int [] coordinates, float d){ matrix.setValue(converter.convertCoordinates(coordinates), d); } @@ -125,11 +125,11 @@ return result; } - public double getValue(){ + public float getValue(){ return subMatrix.getValue(getCoordinates()); } - public void setValue(double value){ + public void setValue(float value){ subMatrix.setValue(getCoordinates(), value); }