Author: echatellier Date: 2011-05-25 10:25:02 +0200 (Wed, 25 May 2011) New Revision: 363 Url: http://nuiton.org/repositories/revision/nuiton-matrix/363 Log: Fix comment, javadoc Modified: trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/MatrixND.java Modified: trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java =================================================================== --- trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java 2011-05-25 07:59:15 UTC (rev 362) +++ trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java 2011-05-25 08:25:02 UTC (rev 363) @@ -132,8 +132,7 @@ public AbstractMatrixND(MatrixFactory factory, String name, int[] dim, String[] dimNames) { - this(factory, dim); - setName(name); + this(factory, name, dim); for (int i = 0; dimNames != null && i < dimNames.length; i++) { setDimensionName(i, dimNames[i]); } @@ -1023,7 +1022,7 @@ throw new MatrixException( "La multiplication de matrice n'est pas applicable aux matrices de plus de 2 dimensions"); } - if (!((this.getDim(1) == m.getDim(0)))) { + if (this.getDim(1) != m.getDim(0)) { throw new MatrixException( "Le nombre de colonnes de la matrice m1 doit etre egal au nombre de lignes de la matrice m2"); } @@ -1091,8 +1090,11 @@ * Determine si la matrice supporte l'import et l'export CSV * * @return support du CSV + * @deprecated since 2.2, always return {@code true}, CSV import/export is + * always supported */ @Override + @Deprecated public boolean isSupportedCSV() { return getDimCount() <= 2; } @@ -1166,47 +1168,6 @@ number.append((char) c); } } - - // cette implatation avec StreamTokenizer ne fonctionne pas - // car il ne sait pas reconnaitre tous les nombres: 5.0E-7 - // int rowsCount = 0; - // StreamTokenizer tokenizer; - // List<Double> row = new ArrayList<Double>(); - // boolean stop = false; - // - // tokenizer = new StreamTokenizer(reader); - // tokenizer.eolIsSignificant(true); - // - // while(!stop) { - // tokenizer.nextToken(); - // - // switch (tokenizer.ttype) { - // case StreamTokenizer.TT_EOF: - // stop = true; // no break we do next case too - // case StreamTokenizer.TT_EOL: - // if(!row.isEmpty()) { - // MatrixND matrix = getFactory().create(new int[]{1, row.size()}); - // int columnNumber = 0; - // for (Double value : row) { - // matrix.setValue(new int[]{0, columnNumber}, value); - // columnNumber++; - // } - // paste(new int[]{origin[0] + rowsCount, origin[1]}, matrix); - // rowsCount ++; - // row.clear(); - // } - // break; - // case StreamTokenizer.TT_NUMBER: - // System.out.println("+++++++++ " + tokenizer.nval); - // row.add(tokenizer.nval); - // break; - // case StreamTokenizer.TT_WORD: - // System.out.println("--------- " + tokenizer.nval); - // break; - // default: - // break; - // } - // } } /** Modified: trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/MatrixND.java =================================================================== --- trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/MatrixND.java 2011-05-25 07:59:15 UTC (rev 362) +++ trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/MatrixND.java 2011-05-25 08:25:02 UTC (rev 363) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2004 - 2010 CodeLutin, Chatellier Eric + * Copyright (C) 2004 - 2011 CodeLutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as @@ -239,27 +239,6 @@ */ public MatrixND map(MapFunction f); - // /** - // * Retourne la sous matrice demandée en fonction des dimensions - // * passé en paramètre.<br> - // * - // * Exemple: Si on a un matrice 3D.<br> - // * get([1,1,1]) retourne un element de la matrice.<br> - // * get([0,0]) retourne une matrice 1D.<br> - // * get([3]) retourne une matrice 2D.<br> - // * get([-1,1]) retourne une matrice 2D.<br> - // * get([-1,-1,1]) retourne une matrice 2D.<br> - // * - // * @param dimensions les différentes dimension à extraire. - // * - // * @return une MatrixND. - // */ - // public MatrixND get(int [] dimensions); - // public MatrixND get(int x); - // public MatrixND get(int x, int y); - // public MatrixND get(int x, int y, int z); - // public MatrixND get(int x, int y, int z, int t); - /** * Renvoie un element de la matrice demandée en fonction des dimensions * passé en paramètre.<br> @@ -275,46 +254,100 @@ */ public double getValue(int[] dimensions); + /** + * Return a 1D matrix value. + * + * @param x first dimension index + * + * @return double value at specified dimensions + */ public double getValue(int x); + /** + * Return a 2D matrix value. + * + * @param x first dimension index + * @param y second dimension index + * + * @return double value at specified dimensions + */ public double getValue(int x, int y); + /** + * Return a 3D matrix value. + * + * @param x first dimension index + * @param y second dimension index + * @param z third dimension index + * + * @return double value at specified dimensions + */ public double getValue(int x, int y, int z); + /** + * Return a 4D matrix value. + * + * @param x first dimension index + * @param y second dimension index + * @param z third dimension index + * @param t fourth dimension index + * + * @return double value at specified dimensions + */ public double getValue(int x, int y, int z, int t); + /** + * Renvoie un element de la matrice demandée en fonction des dimensions + * passé en paramètre. + * + * @param coordinates semantics values to get matrix value + * + * @return double value at specified dimensions + */ public double getValue(Object[] coordinates); + /** + * Return a 1D matrix value. + * + * @param x first dimension + * + * @return double value at specified dimensions + */ public double getValue(Object x); + /** + * Return a 2D matrix value. + * + * @param x first dimension + * @param y second dimension + * + * @return double value at specified dimensions + */ public double getValue(Object x, Object y); + /** + * Return a 3D matrix value. + * + * @param x first dimension + * @param y second dimension + * @param z third dimension + * + * @return double value at specified dimensions + */ public double getValue(Object x, Object y, Object z); + /** + * Return a 4D matrix value. + * + * @param x first dimension + * @param y second dimension + * @param z third dimension + * @param t fourth dimension + * + * @return double value at specified dimensions + */ public double getValue(Object x, Object y, Object z, Object t); - // /** - // * Modifie la sous matrice demandée en fonction des dimensions - // * passé en paramètre.<br> - // * - // * Exemple: Si on a un matrice 3D.<br> - // * set([1,1,1], m) modifie un element de la matrice.<br> - // * set([0,0], m) modifie une matrice 1D.<br> - // * set([3], m) modifie une matrice 2D.<br> - // * set([-1,1], m) modifie une matrice 2D.<br> - // * set([-1,-1,1], m) modifie une matrice 2D.<br> - // * - // * @param dimensions les différentes dimension à extraire. - // * - // * @param m la matrice qui doit remplacer la sous matrice spécifié - // * par l'argument dimensions - // */ - // public void set(int [] dimensions, MatrixND m); - // public void set(int x, MatrixND m); - // public void set(int x, int y, MatrixND m); - // public void set(int x, int y, int z, MatrixND m); - // public void set(int x, int y, int z, int t, MatrixND m); - /** * Modifie un element de la matrice en fonction des dimensions passé en * paramètre.<br> @@ -322,29 +355,104 @@ * Exemple: Si on a un matrice 3D.<br> * set([1,1,1], m) modifie un element de la matrice.<br> * - * @param dimensions les différentes dimension à extraire. + * @param dimensions dimension indices * - * @param d l'entier double qui doit remplacer l'entier double spécifié par - * l'argument dimensions + * @param d new double value to set into matrix at specified dimensions */ public void setValue(int[] dimensions, double d); + /** + * Modify a 1D matrix value. + * + * @param x first dimension index + * + * @param d new double value to set into matrix at specified dimensions + */ public void setValue(int x, double d); + /** + * Modify a 2D matrix value. + * + * @param x first dimension index + * @param y second dimension index + * + * @param d new double value to set into matrix at specified dimensions + */ public void setValue(int x, int y, double d); + /** + * Modify a 3D matrix value. + * + * @param x first dimension index + * @param y second dimension index + * @param z third dimension index + * + * @param d new double value to set into matrix at specified dimensions + */ public void setValue(int x, int y, int z, double d); + /** + * Modify a 4D matrix value. + * + * @param x first dimension index + * @param y second dimension index + * @param z third dimension index + * @param t fourth dimension index + * + * @param d new double value to set into matrix at specified dimensions + */ public void setValue(int x, int y, int z, int t, double d); + /** + * Modifie un element de la matrice en fonction des dimensions passé en + * paramètre. + * + * @param coordinates semantics value to set matrix value + * + * @param d new double value to set into matrix at specified dimensions + */ public void setValue(Object[] coordinates, double d); + /** + * Modify a 1D matrix value. + * + * @param x first dimension index + * + * @param d new double value to set into matrix at specified dimensions + */ public void setValue(Object x, double d); + /** + * Modify a 2D matrix value. + * + * @param x first dimension + * @param y second dimension + * + * @param d new double value to set into matrix at specified dimensions + */ public void setValue(Object x, Object y, double d); + /** + * Modify a 3D matrix value. + * + * @param x first dimension + * @param y second dimension + * @param z third dimension + * + * @param d new double value to set into matrix at specified dimensions + */ public void setValue(Object x, Object y, Object z, double d); + /** + * Modify a 4D matrix value. + * + * @param x first dimension + * @param y second dimension + * @param z third dimension + * @param t fourth dimension + * + * @param d new double value to set into matrix at specified dimensions + */ public void setValue(Object x, Object y, Object z, Object t, double d); /** @@ -362,14 +470,6 @@ */ public MatrixND clone(); - // /** - // * Verifie si les dimensions sont valide pour cette matrice - // * @return vrai si dim a la même taille que le tableau de dimensions de la - // * matrice et si chaque valeur de dim est comprise entre 0 (inclus) et - // * la taille de la dimension (exclus). - // */ - // public boolean dimValid(int [] dim); - /** * Somme toutes les valeurs de la matrice. * @@ -568,42 +668,6 @@ */ public MatrixND pasteSemantics(MatrixND mat); - // /** - // * Permet de prendre une sous matrice dans la matrice. - // * par exemple pour la matrice suivante - // * <pre> - // * 1 2 3 4 5 - // * 2 3 4 5 6 - // * 3 4 5 6 7 - // * 4 5 6 7 8 - // * 5 6 7 8 9 - // * </pre> - // * un getSubMatrix([1,2], [-1, -1], [2,-1]) donnera - // * <pre> - // * 4 5 - // * 5 6 - // * 6 7 - // * </pre> - // * @param origine point à partir duquel on souhaite extraire la matrice - // * toutes les valeurs de ce tableau doivent être renseigné par des nombres - // * positif et inferieur au maximum de chaque dimension respective - // * @param toExtract permet d'indiquer les dimensions que l'on souhaite - // * extraire. Les dimensions que l'on souhaite sont marqué par un -1. Si - // * une dimension n'a pas de -1 alors on ne prend qu'une ligne dans cette - // * dimension. Le nombre de -1 indique la taille de la matrice resultante - // * S'il y a 3 -1 dans le tableau, la matrice aura 3 dimensions - // * @param nbToExtract permet de limite le nombre d'élément à prendre dans - // * une dimension. Si le tableau contient -1 alors toutes les valeurs de - // * origin à la fin seront prise, si le tableau contient une valeur - // positive - // * alors seul le nombre indique sera pris à partir d'origin. Une valeur - // * différente de -1 n'a de sens que pour les dimensions qui ont une valeur - // * -1 dans le paramètre toExtract - // * @return une sous matrice de la matrice - // */ - // public MatrixND getSubMatrix(int [] origin, int [] toExtract, int [] - // nbToExtract); - /** * 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 @@ -798,7 +862,10 @@ * Determine si la matrice supporte l'import et l'export CSV * * @return support du CSV + * @deprecated since 2.2, always return {@code true}, CSV import/export is + * always supported */ + @Deprecated public boolean isSupportedCSV(); /** @@ -830,30 +897,4 @@ */ public boolean equalsValues(MatrixND mat); - // /** - // * Multiplication d'une vecteur [i] avec une matrice [i,j], - // * le resultat est result[i,j]=matrice[i,j]*vecteur[i] - // */ - // public MatrixND multv(MatrixND v); - // /** - // * Multiplication d'une vecteur [i] avec une matrice [g,h,i,j,k,..], - // * le resultat est - // result[g,h,i,j,k,..]=matrice[g,h,i,j,k,l,...]*vecteur[i] - // * @param v le vecteur - // * @param dim la position de la dimension avec lequel il faut multiplier - // * le vecteur. - // */ - // public MatrixND multv(MatrixND v, int dim); - // /** - // * Addition d'un vecteur [i] avec une matrice [g,h,i,j,k,..], - // * le resultat est - // result[g,h,i,j,k,..]=matrice[g,h,i,j,k,l,...]+vecteur[i] - // * @param v le vecteur - // * @param dim la dimension ou on doit mettre le vecteur doit etre egal a - // -1 - // * [0, -1, 3 ] ajoutera le vecteur dans la dimension 2 - // */ - // public MatrixND addv(MatrixND v, int [] dim); - } // MatrixND -