Nuiton-matrix-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- 560 discussions
[Lutinmatrix-commits] r105 - lutinmatrix/trunk
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
24 Oct '08
Author: chatellier
Date: 2008-10-24 08:23:26 +0000 (Fri, 24 Oct 2008)
New Revision: 105
Modified:
lutinmatrix/trunk/pom.xml
Log:
Restore variable names
Modified: lutinmatrix/trunk/pom.xml
===================================================================
--- lutinmatrix/trunk/pom.xml 2008-10-24 08:18:50 UTC (rev 104)
+++ lutinmatrix/trunk/pom.xml 2008-10-24 08:23:26 UTC (rev 105)
@@ -25,9 +25,9 @@
<!--Source control management-->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutinmatrix/lutinmatrix/trunk</connection>
- <developerConnection>scm:svn:svn+ssh://chatellier@labs.libre-entreprise.org/svnroot/lutinmatrix/lutinmatrix/trunk</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/lutinmatrix/tru…</url>
+ <connection>${maven.scm.connection}</connection>
+ <developerConnection>${maven.scm.developerConnection}</developerConnection>
+ <url>${maven.scm.url}</url>
</scm>
<build>
1
0
[Lutinmatrix-commits] r104 - lutinmatrix/trunk
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
24 Oct '08
Author: chatellier
Date: 2008-10-24 08:18:50 +0000 (Fri, 24 Oct 2008)
New Revision: 104
Modified:
lutinmatrix/trunk/pom.xml
Log:
[maven-release-plugin] prepare for next development iteration
Modified: lutinmatrix/trunk/pom.xml
===================================================================
--- lutinmatrix/trunk/pom.xml 2008-10-24 08:18:46 UTC (rev 103)
+++ lutinmatrix/trunk/pom.xml 2008-10-24 08:18:50 UTC (rev 104)
@@ -12,7 +12,7 @@
</parent>
<artifactId>lutinmatrix</artifactId>
- <version>1.1</version>
+ <version>1.2-SNAPSHOT</version>
<name>lutinmatrix</name>
<packaging>jar</packaging>
<description>Librairie de matrice multi-dimensions.</description>
@@ -25,9 +25,9 @@
<!--Source control management-->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutinmatrix/lutinmatrix/tags/lutinmatrix-1.1</connection>
- <developerConnection>scm:svn:svn+ssh://chatellier@labs.libre-entreprise.org/svnroot/lutinmatrix/lutinmatrix/tags/lutinmatrix-1.1</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/lutinmatrix/tag…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutinmatrix/lutinmatrix/trunk</connection>
+ <developerConnection>scm:svn:svn+ssh://chatellier@labs.libre-entreprise.org/svnroot/lutinmatrix/lutinmatrix/trunk</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/lutinmatrix/tru…</url>
</scm>
<build>
1
0
[Lutinmatrix-commits] r103 - in lutinmatrix/tags: . lutinmatrix-1.1 lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix lutinmatrix-1.1/src/site
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
24 Oct '08
Author: chatellier
Date: 2008-10-24 08:18:46 +0000 (Fri, 24 Oct 2008)
New Revision: 103
Added:
lutinmatrix/tags/lutinmatrix-1.1/
lutinmatrix/tags/lutinmatrix-1.1/pom.xml
lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/BasicMatrix.java
lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MapFunction.java
lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixHelper.java
lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixIteratorImpl.java
lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixND.java
lutinmatrix/tags/lutinmatrix-1.1/src/site/site.xml
Removed:
lutinmatrix/tags/lutinmatrix-1.1/pom.xml
lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/BasicMatrix.java
lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MapFunction.java
lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixHelper.java
lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixIteratorImpl.java
lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixND.java
lutinmatrix/tags/lutinmatrix-1.1/src/site/site.xml
Log:
[maven-release-plugin] copy for tag lutinmatrix-1.1
Copied: lutinmatrix/tags/lutinmatrix-1.1 (from rev 98, lutinmatrix/trunk)
Deleted: lutinmatrix/tags/lutinmatrix-1.1/pom.xml
===================================================================
--- lutinmatrix/trunk/pom.xml 2008-09-29 17:47:43 UTC (rev 98)
+++ lutinmatrix/tags/lutinmatrix-1.1/pom.xml 2008-10-24 08:18:46 UTC (rev 103)
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
- <!--The version of maven's project object model-->
- <modelVersion>4.0.0</modelVersion>
-
- <!--lutinproject.xml-->
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinproject</artifactId>
- <version>3.0</version>
- </parent>
-
- <artifactId>lutinmatrix</artifactId>
- <version>1.1-SNAPSHOT</version>
- <name>lutinmatrix</name>
- <packaging>jar</packaging>
- <description>Librairie de matrice multi-dimensions.</description>
- <inceptionYear>2004</inceptionYear>
-
- <properties>
- <!-- id du projet du labs -->
- <labs.id>63</labs.id>
-
- <!-- TODO remove this as soon as tests are fixed -->
- <maven.test.testFailureIgnore>true</maven.test.testFailureIgnore>
- </properties>
-
- <!--Source control management-->
- <scm>
- <connection>${maven.scm.connection}</connection>
- <developerConnection>${maven.scm.developerConnection}</developerConnection>
- <!-- This does'nt work for viewcvs.php with stat-scm with svn conf :(
- <url>${maven.scm.url}</url> -->
- </scm>
-
- <build>
- <plugins>
-
- <!-- i18n -->
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>parserJava</goal>
- <goal>gen</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <!-- jrst
- <plugin>
- <groupId>lutinplugin</groupId>
- <artifactId>maven-jrst-plugin</artifactId>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.0.2</version>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- </configuration>
- </plugin>-->
-
- </plugins>
- </build>
-
- <!--Librairies-->
- <dependencies>
- <dependency>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinutil</artifactId>
- <version>0.30</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.4</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>commons-primitives</groupId>
- <artifactId>commons-primitives</artifactId>
- <version>1.0</version>
- <scope>compile</scope>
- </dependency>
- </dependencies>
-
-</project>
Copied: lutinmatrix/tags/lutinmatrix-1.1/pom.xml (from rev 102, lutinmatrix/trunk/pom.xml)
===================================================================
--- lutinmatrix/tags/lutinmatrix-1.1/pom.xml (rev 0)
+++ lutinmatrix/tags/lutinmatrix-1.1/pom.xml 2008-10-24 08:18:46 UTC (rev 103)
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <!--The version of maven's project object model-->
+ <modelVersion>4.0.0</modelVersion>
+
+ <!--lutinproject.xml-->
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinproject</artifactId>
+ <version>3.0</version>
+ </parent>
+
+ <artifactId>lutinmatrix</artifactId>
+ <version>1.1</version>
+ <name>lutinmatrix</name>
+ <packaging>jar</packaging>
+ <description>Librairie de matrice multi-dimensions.</description>
+ <inceptionYear>2004</inceptionYear>
+
+ <properties>
+ <!-- id du projet du labs -->
+ <labs.id>63</labs.id>
+ </properties>
+
+ <!--Source control management-->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutinmatrix/lutinmatrix/tags/lutinmatrix-1.1</connection>
+ <developerConnection>scm:svn:svn+ssh://chatellier@labs.libre-entreprise.org/svnroot/lutinmatrix/lutinmatrix/tags/lutinmatrix-1.1</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/lutinmatrix/tag…</url>
+ </scm>
+
+ <build>
+ <plugins>
+
+ <!-- i18n -->
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <!--Librairies-->
+ <dependencies>
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinutil</artifactId>
+ <version>0.31</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.4</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-primitives</groupId>
+ <artifactId>commons-primitives</artifactId>
+ <version>1.0</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+
+</project>
Deleted: lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/BasicMatrix.java
===================================================================
--- lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/BasicMatrix.java 2008-09-29 17:47:43 UTC (rev 98)
+++ lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/BasicMatrix.java 2008-10-24 08:18:46 UTC (rev 103)
@@ -1,339 +0,0 @@
-/* *##% lutinmatrix
- * Copyright (C) 2004 - 2008 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
-
-/* *
- * BasicMatrix.java
- *
- * Created: 27 oct. 2004
- *
- * @author Benjamin Poussin <poussin(a)codelutin.com>
- * @version $Revision$
- *
- * Mise a jour: $Date$
- * par : $Author$
- */
-
-package org.codelutin.math.matrix;
-
-import java.util.Arrays;
-import java.util.NoSuchElementException;
-
-import org.codelutin.i18n.I18n;
-
-/**
- * Objet matrice qui ne permet que le stockage de double dans un matrice à
- * autant de dimension que l'on souhaite.
- */
-public class BasicMatrix { // BasicMatrix
-
- /** La factory */
- protected MatrixFactory factory = null;
- /** Les dimensions de la matrice */
- protected int[] dimensions = null;
- /** La matrice en représentation linéaire */
- protected Vector 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;
-
- /**
- * Crée une nouvelle matrice ayant les dimensions demandées
- */
- public BasicMatrix(MatrixFactory factory, int[] dimensions) {
- this.factory = factory;
- checkDim(dimensions);
-
- // copie des dimensions pour que personne à l'extérieur de l'objet
- // ne puisse les modifiers par la suite
- this.dimensions = new int[dimensions.length];
- System.arraycopy(dimensions, 0, this.dimensions, 0, dimensions.length);
-
- // calcul du linearFactor
- linearFactor = new int[dimensions.length];
- linearFactor[linearFactor.length - 1] = 1;
- for (int i = linearFactor.length - 2; i >= 0; i--) {
- linearFactor[i] = linearFactor[i + 1] * dimensions[i + 1];
- }
-
- // creation de la matrice lineaire
- data = factory.createVector(linearFactor[0] * dimensions[0]);
- }
-
- /**
- * Retourne la valeur la plus courrement rencontrer dans la matrice. si
- * plusieurs valeurs ont le même nombre d'occurence la plus petite valeur
- * est retourné.
- *
- * @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() {
- return data.getMaxOccurence();
- }
-
- /**
- * Retourne le nombre de dimension de la matrice
- *
- * @return le nombre de dimension de la matrice;
- */
- public int getNbDim() {
- return dimensions.length;
- }
-
- /**
- * Retourne la taille d'une dimension
- *
- * @param dim la dimension dont on souhaite la taille
- * @return la taille d'une dimension
- * @throws
- */
- public int getDim(int dim) {
- checkDim(dim);
- return dimensions[dim];
- }
-
- /**
- * Retourne un tableau representant les dimensions de la matrice. Le tableau
- * retourné n'est pas une copie, il ne faut donc pas le modifier
- *
- * @return le tableau des dimensions.
- */
- public int[] getDim() {
- return dimensions;
- }
-
- /**
- * Retourne un element de la matrice
- *
- * @param pos la position de l'element à retourner
- */
- public double getValue(int[] pos) {
- int indice = coordonatesToLinear(pos);
- return data.getValue(indice);
- }
-
- /**
- * Modifie un élement de la matrice
- *
- * @param pos la position de l'element à modifier
- * @param value la nouvelle valeur à mettre dans la matrice
- */
- public void setValue(int[] pos, double value) {
- int indice = coordonatesToLinear(pos);
- data.setValue(indice, value);
- }
-
- /**
- * Retourne un objet Inc pret a etre utilisé pour boucler sur tous les
- * element de la matrice.
- *
- * @return un objet Inc pret à être utilisé
- */
- public BasicMatrixIterator iterator() {
- return new BasicMatrixIteratorImpl(this);
- }
-
- /**
- * Permet de faire un traitement sur chaque valeur de la matrice
- *
- * @param f la fonction a appliquer à chaque élement de la matrice
- */
- public void map(MapFunction f) {
- if (data.isImplementedMap()) {
- data.map(f);
- } else {
- for (int i = 0; i < data.size(); i++) {
- double result = f.apply(data.getValue(i));
- data.setValue(i, result);
- }
- }
- }
-
- /**
- * Permet de convertir les coordonnées d'un élément en un indice dans la
- * représentation linéraire de la matrice.
- *
- * @param coordonates les coordonnées à lineariser
- * @return un indice réprésentant les coordonnées de façon linéaire
- */
- protected int coordonatesToLinear(int[] coordonates) {
- checkPos(coordonates);
-
- int result = 0;
- for (int i = 0; i < linearFactor.length; i++) {
- result += coordonates[i] * linearFactor[i];
- }
- return result;
- }
-
- /**
- * Convertie une coordonnée lineaire en coordonnées spaciales
- *
- * @param pos la coordonnée linéaire
- * @param linearFactor le tableau permettant la conversion
- * @return les coordonnées spaciales de l'élément
- */
- protected int[] linearToCoordinates(int pos) {
- int[] result = new int[linearFactor.length];
-
- for (int i = 0; i < result.length; i++) {
- result[i] = pos / linearFactor[i];
- pos -= result[i] * linearFactor[i];
- }
- return result;
- }
-
- /**
- * Permet de vérifier que les dimensions de la nouvelle matrice sont
- * corrects
- *
- * @param dim les dimensions de la nouvelle matrice
- * @throws IllegalArgumentException si une dimension n'est pas valide
- */
- protected void checkDim(int[] dim) {
- for (int i = 0; i < dim.length; i++) {
- if (dim[i] <= 0) {
- throw new IllegalArgumentException(I18n._(
- "lutinmatrix.invalid.size", new Integer(i),
- new Integer(dim[i])));
- }
- }
- }
-
- /**
- * Permet de vérifier qu'une dimension demandé existe bien dans la matrice
- *
- * @param dim la position de la dimension que l'on souhaite
- * @throws IndexOutOfBoundsException si la dimension demandée n'existe pas
- */
- protected void checkDim(int dim) {
- if (dim < 0 || dim >= getNbDim()) {
- throw new IndexOutOfBoundsException(I18n._(
- "lutinmatrix.invalid.size", dim, getNbDim()));
- }
- }
-
- /**
- * Verifie que les coordonnées demandé appartiennent bien à la matrice
- *
- * @param pos les coordonnées souhaitées dans la matrice
- * @throws NoSuchElementException si les coordonnées ne correspondent pas à
- * un élement de la matrice
- */
- protected void checkPos(int[] pos) {
- int[] dim = getDim();
- boolean result = dim.length == pos.length;
- for (int i = 0; result && i < dim.length; i++) {
- result = (0 <= pos[i]) && (pos[i] < dim[i]);
- }
- if (!result) {
- throw new NoSuchElementException(I18n._(
- "lutinmatrix.invalid.element", Arrays.toString(pos), Arrays
- .toString(dim)));
- }
- }
-
- public String toString() {
- StringBuffer result = new StringBuffer();
- if (getNbDim() == 1) {
- result.append("matrix1D [");
- for (int i = 0; i < data.size(); i++) {
- result.append(data.getValue(i) + ",");
- }
- result.append("]");
- } else if (getNbDim() == 2) {
- DimensionHelper dimHelper = new DimensionHelper();
- result.append("matrix2D [");
- for (int y = 0; y < getDim(1); y++) {
- result.append("\n");
- for (int x = 0; x < getDim(0); x++) {
- result.append(getValue(dimHelper.get(x, y)) + ",");
- }
- }
- result.append("]");
- } else {
- result.append("dimensions = [\n");
- for (int i = 0; i < dimensions.length; i++) {
- result.append(dimensions[i] + ",");
- }
- result.append("\n]\nmatrice = [\n");
- for (int i = 0; i < data.size(); i++) {
- result.append(data.getValue(i) + ",");
- }
- result.append("\n]\nlinearFactor = [\n");
- for (int i = 0; i < linearFactor.length; i++) {
- result.append(linearFactor[i] + ",");
- }
- result.append("\n]\n");
- }
- return result.toString();
- }
-
- public boolean equals(Object o) {
- if (o instanceof BasicMatrix) {
- BasicMatrix other = (BasicMatrix) o;
- return this == o
- || (Arrays.equals(this.dimensions, other.dimensions) && this.data
- .equals(other.data));
- }
- return false;
- }
-
- protected class BasicMatrixIteratorImpl implements BasicMatrixIterator { // MatrixIteratorImpl
-
- protected BasicMatrix matrix = null;
- protected int pos = -1;
-
- /**
- * @param matrix la matrice sur lequel l'iterator doit travailler
- */
- public BasicMatrixIteratorImpl(BasicMatrix matrix) {
- this.matrix = matrix;
- pos = -1;
- }
-
- public boolean hasNext() {
- return pos + 1 < matrix.data.size();
- }
-
- public boolean next() {
- if (hasNext()) {
- pos++;
- return true;
- } else {
- return false;
- }
- }
-
- public double getValue() {
- return matrix.data.getValue(pos);
- }
-
- public void setValue(double value) {
- matrix.data.setValue(pos, value);
- }
-
- public int[] getCoordinates() {
- return matrix.linearToCoordinates(pos);
- }
-
- } // BasicMatrixIteratorImpl
-
-} // BasicMatrix
-
Copied: lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/BasicMatrix.java (from rev 101, lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/BasicMatrix.java)
===================================================================
--- lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/BasicMatrix.java (rev 0)
+++ lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/BasicMatrix.java 2008-10-24 08:18:46 UTC (rev 103)
@@ -0,0 +1,337 @@
+/* *##% lutinmatrix
+ * Copyright (C) 2004 - 2008 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
+
+/* *
+ * BasicMatrix.java
+ *
+ * Created: 27 oct. 2004
+ *
+ * @author Benjamin Poussin <poussin(a)codelutin.com>
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+
+package org.codelutin.math.matrix;
+
+import java.util.Arrays;
+import java.util.NoSuchElementException;
+
+import org.codelutin.i18n.I18n;
+
+/**
+ * Objet matrice qui ne permet que le stockage de double dans un matrice à
+ * autant de dimension que l'on souhaite.
+ */
+public class BasicMatrix { // BasicMatrix
+
+ /** La factory */
+ protected MatrixFactory factory = null;
+ /** Les dimensions de la matrice */
+ protected int[] dimensions = null;
+ /** La matrice en représentation linéaire */
+ protected Vector 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;
+
+ /**
+ * Crée une nouvelle matrice ayant les dimensions demandées
+ */
+ public BasicMatrix(MatrixFactory factory, int[] dimensions) {
+ this.factory = factory;
+ checkDim(dimensions);
+
+ // copie des dimensions pour que personne à l'extérieur de l'objet
+ // ne puisse les modifiers par la suite
+ this.dimensions = new int[dimensions.length];
+ System.arraycopy(dimensions, 0, this.dimensions, 0, dimensions.length);
+
+ // calcul du linearFactor
+ linearFactor = new int[dimensions.length];
+ linearFactor[linearFactor.length - 1] = 1;
+ for (int i = linearFactor.length - 2; i >= 0; i--) {
+ linearFactor[i] = linearFactor[i + 1] * dimensions[i + 1];
+ }
+
+ // creation de la matrice lineaire
+ data = factory.createVector(linearFactor[0] * dimensions[0]);
+ }
+
+ /**
+ * Retourne la valeur la plus courrement rencontrer dans la matrice. si
+ * plusieurs valeurs ont le même nombre d'occurence la plus petite valeur
+ * est retourné.
+ *
+ * @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() {
+ return data.getMaxOccurence();
+ }
+
+ /**
+ * Retourne le nombre de dimension de la matrice
+ *
+ * @return le nombre de dimension de la matrice;
+ */
+ public int getNbDim() {
+ return dimensions.length;
+ }
+
+ /**
+ * Retourne la taille d'une dimension
+ *
+ * @param dim la dimension dont on souhaite la taille
+ * @return la taille d'une dimension
+ */
+ public int getDim(int dim) {
+ checkDim(dim);
+ return dimensions[dim];
+ }
+
+ /**
+ * Retourne un tableau representant les dimensions de la matrice. Le tableau
+ * retourné n'est pas une copie, il ne faut donc pas le modifier
+ *
+ * @return le tableau des dimensions.
+ */
+ public int[] getDim() {
+ return dimensions;
+ }
+
+ /**
+ * Retourne un element de la matrice
+ *
+ * @param pos la position de l'element à retourner
+ */
+ public double getValue(int[] pos) {
+ int indice = coordonatesToLinear(pos);
+ return data.getValue(indice);
+ }
+
+ /**
+ * Modifie un élement de la matrice
+ *
+ * @param pos la position de l'element à modifier
+ * @param value la nouvelle valeur à mettre dans la matrice
+ */
+ public void setValue(int[] pos, double value) {
+ int indice = coordonatesToLinear(pos);
+ data.setValue(indice, value);
+ }
+
+ /**
+ * Retourne un objet Inc pret a etre utilisé pour boucler sur tous les
+ * element de la matrice.
+ *
+ * @return un objet Inc pret à être utilisé
+ */
+ public BasicMatrixIterator iterator() {
+ return new BasicMatrixIteratorImpl(this);
+ }
+
+ /**
+ * Permet de faire un traitement sur chaque valeur de la matrice
+ *
+ * @param f la fonction a appliquer à chaque élement de la matrice
+ */
+ public void map(MapFunction f) {
+ if (data.isImplementedMap()) {
+ data.map(f);
+ } else {
+ for (int i = 0; i < data.size(); i++) {
+ double result = f.apply(data.getValue(i));
+ data.setValue(i, result);
+ }
+ }
+ }
+
+ /**
+ * Permet de convertir les coordonnées d'un élément en un indice dans la
+ * représentation linéraire de la matrice.
+ *
+ * @param coordonates les coordonnées à lineariser
+ * @return un indice réprésentant les coordonnées de façon linéaire
+ */
+ protected int coordonatesToLinear(int[] coordonates) {
+ checkPos(coordonates);
+
+ int result = 0;
+ for (int i = 0; i < linearFactor.length; i++) {
+ result += coordonates[i] * linearFactor[i];
+ }
+ return result;
+ }
+
+ /**
+ * Convertie une coordonnée lineaire en coordonnées spaciales
+ *
+ * @param pos la coordonnée linéaire
+ * @return les coordonnées spaciales de l'élément
+ */
+ protected int[] linearToCoordinates(int pos) {
+ int[] result = new int[linearFactor.length];
+
+ for (int i = 0; i < result.length; i++) {
+ result[i] = pos / linearFactor[i];
+ pos -= result[i] * linearFactor[i];
+ }
+ return result;
+ }
+
+ /**
+ * Permet de vérifier que les dimensions de la nouvelle matrice sont
+ * corrects
+ *
+ * @param dim les dimensions de la nouvelle matrice
+ * @throws IllegalArgumentException si une dimension n'est pas valide
+ */
+ protected void checkDim(int[] dim) {
+ for (int i = 0; i < dim.length; i++) {
+ if (dim[i] <= 0) {
+ throw new IllegalArgumentException(I18n._(
+ "lutinmatrix.invalid.size", new Integer(i),
+ new Integer(dim[i])));
+ }
+ }
+ }
+
+ /**
+ * Permet de vérifier qu'une dimension demandé existe bien dans la matrice
+ *
+ * @param dim la position de la dimension que l'on souhaite
+ * @throws IndexOutOfBoundsException si la dimension demandée n'existe pas
+ */
+ protected void checkDim(int dim) {
+ if (dim < 0 || dim >= getNbDim()) {
+ throw new IndexOutOfBoundsException(I18n._(
+ "lutinmatrix.invalid.size", dim, getNbDim()));
+ }
+ }
+
+ /**
+ * Verifie que les coordonnées demandé appartiennent bien à la matrice
+ *
+ * @param pos les coordonnées souhaitées dans la matrice
+ * @throws NoSuchElementException si les coordonnées ne correspondent pas à
+ * un élement de la matrice
+ */
+ protected void checkPos(int[] pos) {
+ int[] dim = getDim();
+ boolean result = dim.length == pos.length;
+ for (int i = 0; result && i < dim.length; i++) {
+ result = (0 <= pos[i]) && (pos[i] < dim[i]);
+ }
+ if (!result) {
+ throw new NoSuchElementException(I18n._(
+ "lutinmatrix.invalid.element", Arrays.toString(pos), Arrays
+ .toString(dim)));
+ }
+ }
+
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+ if (getNbDim() == 1) {
+ result.append("matrix1D [");
+ for (int i = 0; i < data.size(); i++) {
+ result.append(data.getValue(i) + ",");
+ }
+ result.append("]");
+ } else if (getNbDim() == 2) {
+ DimensionHelper dimHelper = new DimensionHelper();
+ result.append("matrix2D [");
+ for (int y = 0; y < getDim(1); y++) {
+ result.append("\n");
+ for (int x = 0; x < getDim(0); x++) {
+ result.append(getValue(dimHelper.get(x, y)) + ",");
+ }
+ }
+ result.append("]");
+ } else {
+ result.append("dimensions = [\n");
+ for (int i = 0; i < dimensions.length; i++) {
+ result.append(dimensions[i] + ",");
+ }
+ result.append("\n]\nmatrice = [\n");
+ for (int i = 0; i < data.size(); i++) {
+ result.append(data.getValue(i) + ",");
+ }
+ result.append("\n]\nlinearFactor = [\n");
+ for (int i = 0; i < linearFactor.length; i++) {
+ result.append(linearFactor[i] + ",");
+ }
+ result.append("\n]\n");
+ }
+ return result.toString();
+ }
+
+ public boolean equals(Object o) {
+ if (o instanceof BasicMatrix) {
+ BasicMatrix other = (BasicMatrix) o;
+ return this == o
+ || (Arrays.equals(this.dimensions, other.dimensions) && this.data
+ .equals(other.data));
+ }
+ return false;
+ }
+
+ protected class BasicMatrixIteratorImpl implements BasicMatrixIterator { // MatrixIteratorImpl
+
+ protected BasicMatrix matrix = null;
+ protected int pos = -1;
+
+ /**
+ * @param matrix la matrice sur lequel l'iterator doit travailler
+ */
+ public BasicMatrixIteratorImpl(BasicMatrix matrix) {
+ this.matrix = matrix;
+ pos = -1;
+ }
+
+ public boolean hasNext() {
+ return pos + 1 < matrix.data.size();
+ }
+
+ public boolean next() {
+ if (hasNext()) {
+ pos++;
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public double getValue() {
+ return matrix.data.getValue(pos);
+ }
+
+ public void setValue(double value) {
+ matrix.data.setValue(pos, value);
+ }
+
+ public int[] getCoordinates() {
+ return matrix.linearToCoordinates(pos);
+ }
+
+ } // BasicMatrixIteratorImpl
+
+} // BasicMatrix
+
Deleted: lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MapFunction.java
===================================================================
--- lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MapFunction.java 2008-09-29 17:47:43 UTC (rev 98)
+++ lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MapFunction.java 2008-10-24 08:18:46 UTC (rev 103)
@@ -1,45 +0,0 @@
-/* *##% lutinmatrix
- * Copyright (C) 2004 - 2008 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
-
-/* *
- * MapFunction.java
- *
- * Created: 27 oct. 2004
- *
- * @author Benjamin Poussin <poussin(a)codelutin.com>
- * @version $Revision$
- *
- * Mise a jour: $Date$
- * par : $Author$
- */
-
-package org.codelutin.math.matrix;
-
-public interface MapFunction { // MapFunction
-
- /**
- * Permet de faire un traitement sur value et de retourne une nouvelle
- * valeur.
- *
- * @param la valeur courante sur lequel il faut faire le traitement
- * @return la nouvelle valeur à mettre dans la matrice à la place de
- * l'ancienne.
- */
- public double apply(double value);
-
-} // MapFunction
-
Copied: lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MapFunction.java (from rev 101, lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MapFunction.java)
===================================================================
--- lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MapFunction.java (rev 0)
+++ lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MapFunction.java 2008-10-24 08:18:46 UTC (rev 103)
@@ -0,0 +1,45 @@
+/* *##% lutinmatrix
+ * Copyright (C) 2004 - 2008 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
+
+/* *
+ * MapFunction.java
+ *
+ * Created: 27 oct. 2004
+ *
+ * @author Benjamin Poussin <poussin(a)codelutin.com>
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+
+package org.codelutin.math.matrix;
+
+public interface MapFunction { // MapFunction
+
+ /**
+ * Permet de faire un traitement sur value et de retourne une nouvelle
+ * valeur.
+ *
+ * @param value la valeur courante sur lequel il faut faire le traitement
+ * @return la nouvelle valeur à mettre dans la matrice à la place de
+ * l'ancienne.
+ */
+ public double apply(double value);
+
+} // MapFunction
+
Deleted: lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixHelper.java
===================================================================
--- lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixHelper.java 2008-09-29 17:47:43 UTC (rev 98)
+++ lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixHelper.java 2008-10-24 08:18:46 UTC (rev 103)
@@ -1,360 +0,0 @@
-/* *##% lutinmatrix
- * Copyright (C) 2004 - 2008 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
-
-/* *
- * MatrixHelper.java
- *
- * Created: 28 oct. 2004
- *
- * @author Benjamin Poussin <poussin(a)codelutin.com>
- * @version $Revision$
- *
- * Mise a jour: $Date$
- * par : $Author$
- */
-
-package org.codelutin.math.matrix;
-
-import java.io.StreamTokenizer;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.NoSuchElementException;
-import java.util.Stack;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-public class MatrixHelper {
-
- /**
- * Logger for this class
- */
- private static final Log log = LogFactory.getLog(MatrixHelper.class);
-
- // MatrixHelper
-
- /**
- * Convert Matrix to identity matrix must have 2 dimensions. If dimension
- * haven't same length, then the small dimension is used.
- *
- * @param mat
- * @return
- */
- static public MatrixND convertToId(MatrixND mat) {
- int size = mat.getDim(0);
- if (size > mat.getDim(1)) {
- size = mat.getDim(1);
- }
-
- fill(mat, 0);
-
- for (int i = 0; i < size; i++) {
- mat.setValue(i, i, 1);
- }
- return mat;
- }
-
- /**
- * Permet de relire une chaine du type [[[1, 2], [3, 4]],[[3, 5], [1, 4]]]
- * <p>
- * Remarque: une premiere implatantion avait ete faite en utilisant
- * {@link 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
- * :(
- * <p>
- * Remarque: une autre implantation de remplacement a ete faite en utilisant
- * le {@link org.codelutin.util.StrintUtil#split(String, String)} mais elle
- * etait moins performante (x2)
- *
- * @param s la chaine representant les listes de liste
- * @return une liste de liste ... de Double
- */
- static public List convertStringToList(String s) {
- List result = null;
- Stack<List> stack = new Stack<List>();
- StringBuffer number = new StringBuffer(20); // initial to 20 char
-
- for (int i = 0; i < s.length(); i++) {
- char c = s.charAt(i);
- if (c == ' ') {
- // skip space
- }
- if (c == '[') {
- stack.push(new ArrayList());
- } else if (c == ',') {
- if (number.length() != 0) {
- // on a une ',' on doit donc avoir un nombre dans number
- // a moins que ce ne soit une ',' entre deux listes
- Double value = Double.valueOf(number.toString());
- stack.peek().add(value);
- }
- number.setLength(0);
- } else if (c == ']') {
- // fin d'une liste, il doit rester un nombre dans number
- // a mois que la liste etait vide
- if (number.length() != 0) {
- Double value = Double.valueOf(number.toString());
- stack.peek().add(value);
- number.setLength(0);
- }
-
- List current = stack.pop();
- if (stack.empty()) {
- result = current;
- } else {
- stack.peek().add(current);
- }
- } else {
- // pas un '[' ou ']', pas une ',' devrait etre
- // un bout du nombre, si c un espace qui traine n'importe ou
- // c pas grace car Double.valueOf gere les espaces
- number.append(c);
- }
- }
- return result;
- }
-
- /**
- * permet de donner une repr�sentation String d'un tableau de coordonn�es
- *
- * @param coordinates les coordonn�es
- * @return la chaine demand�e de la forme 1,3,34,23
- */
- static public String coordinatesToString(int[] coordinates) {
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < coordinates.length; i++) {
- sb.append(coordinates[i]);
- if (i + 1 < coordinates.length) {
- sb.append(',');
- }
- }
- return sb.toString();
- }
-
- /**
- * permet de donner une repr�sentation String d'un tableau de coordonn�es
- *
- * @param coordinates les coordonn�es
- * @return 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
- */
- static public String coordinatesToString(Object[] coordinates) {
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < coordinates.length; i++) {
- sb.append(coordinates[i]);
- if (i + 1 < coordinates.length)
- sb.append(',');
- }
- return sb.toString();
- }
-
- /**
- * Permet de savoir si deux dimension sont identique
- */
- static public boolean sameDimension(int[] dim1, int[] dim2) {
- return Arrays.equals(dim1, dim2);
- }
-
- /**
- * Permet de convertir des coordonn�es d�fini par des entiers en coordonn�e
- * semantique par des objets
- *
- * @param semantics la semantique � utilis� pour la conversion
- * @param coordinates les coordonn�es � convertir
- * @return 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.
- */
- static public Object[] dimensionToSemantics(List[] semantics,
- int[] coordinates) {
- Object[] result = new Object[coordinates.length];
- for (int i = 0; i < result.length; i++) {
- result[i] = semantics[i].get(coordinates[i]);
- if (result[i] == null) {
- result[i] = new Integer(coordinates[i]);
- }
- }
- return result;
- }
-
- /**
- * Permet de convertir des coordonn�es s�mantiques en coordonn�es d�fini par
- * des entiers. Cette fonction est l'inverse de
- * {@link #dimensionToSemantics}.
- *
- * @param semantics la semantique � utilis� pour la conversion
- * @param coordonn�es les coordonn�es s�mantique
- * @return les coordonn�es en entier. Si la s�mantique est repr�sent� par un
- * Integer alors la valeur de l'interger est utilis� pour la
- * conversion.
- */
- static public int[] semanticsToDimension(List[] semantics,
- Object[] coordinates) {
- int[] result = new int[coordinates.length];
- for (int i = 0; i < coordinates.length; i++) {
- if (coordinates[i] == null) {
- result[i] = -1;
- } else {
- result[i] = indexOf(semantics, i, coordinates[i]);
- }
- }
- return result;
- }
-
- /**
- * Permet de retrouver la position d'un objet dans une liste
- *
- * @param semantics la semantique � utilis� pour la recherche
- * @param dim la dimension dans lequel il faut faire la recherche
- * @param o l'objet � rechercher
- * @return la position de l'objet dans la dimension demand�e
- */
- static public int indexOf(List[] semantics, int dim, Object o)
- throws NoSuchElementException {
- if (o instanceof Integer) {
- return ((Integer) o).intValue();
- }
- int result = -1;
- if ((0 <= dim) && (dim < semantics.length)) {
- result = semantics[dim].indexOf(o);
- }
- if (result == -1) {
- throw new NoSuchElementException(
- "L'objet pass� en argument n'a pas �t� retrouve ou la dimension donn�e ne convient pas:"
- + o + " in " + semantics[dim]);
- }
- return result;
- }
-
- /**
- * Permet de remplir toute la matrice avec la m�me donn�e
- *
- * @param mat la matrice � remplir
- * @param value la valeur de remplissage
- * @return la matrice pass� en param�tre
- */
- static public MatrixND fill(MatrixND mat, final double value) {
- mat.map(new MapFunction() {
- public double apply(double v) {
- return value;
- }
- });
- return mat;
- }
-
- // /**
- // * Cr�e une nouvelle matrice identit�. Une matrice identit� est une
- // matrice
- // * � 2 dimensions dont tous les �l�ments de la diagonal vaut 1
- // * @param size la taille de la matrice
- // * @return une nouvelle matrice identit�
- // */
- // static public MatrixND matrixId(int size){
- // MatrixND result = new MatrixNDImpl(new int[]{size, size});
- // for(int i=0; i<size; i++){
- // result.setValue(i, i , 1);
- // }
- // return result;
- // }
-
- /**
- * Retourne la valeur la plus courrement rencontrer dans un tableau. si
- * plusieurs valeurs ont le m�me nombre d'occurence la plus petite valeur
- * est retourn�.
- *
- * @param tab le tableau de valeur
- * @return la valeur la plus nombreuse dans le tableau
- */
- static public double maxOccurence(double[] tab) {
- double[] tmp = new double[tab.length];
- System.arraycopy(tab, 0, tmp, 0, tab.length);
- return maxOccurence1(tmp);
- }
-
- static public double maxOccurence(float[] tab) {
- double[] tmp = new double[tab.length];
- for (int i = 0; i < tab.length; i++) {
- tmp[i] = tab[i];
- }
- return maxOccurence1(tmp);
- }
-
- /**
- * le tableau en entre est trie durant l'execution de la methode, il est
- * donc modifi�
- */
- static protected double maxOccurence1(double[] tmp) {
- if (tmp.length == 0) {
- throw new IllegalArgumentException("Array must be not empty");
- }
- // double [] tmp = new double[tab.length];
- // System.arraycopy(tab, 0, tmp, 0, tab.length);
- Arrays.sort(tmp);
-
- // le nombre de fois que l'on a rencontrer la valeur la plus nombreuse
- int max = 1;
- // le nombre de fois que l'on a rencontrer la valeur courante
- int count = 1;
- // la valeur la plus rencontrer
- double result = tmp[0];
- // la valeur que l'on vient de traiter pr�c�dement
- double old = tmp[0];
- // la valeur courante lu dans le tableaux
- double 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 < tmp.length - i + count && i < tmp.length; i++) {
- current = tmp[i];
-
- if (current == old) {
- count++;
- } else {
- if (count > max) {
- max = count;
- result = old;
- }
- count = 1;
- old = current;
- }
- }
- if (count > max) {
- max = count;
- result = current;
- }
- return result;
- }
-
- // static public String encodeToXML(MatrixND mat){
- // StringWriter out = new StringWriter();
- // XMLEncoderDecoder.getInstance().encode(out, mat);
- // return out.toString();
- // }
- //
- // static public MatrixND decodeFromXML(String xml){
- // try{
- // return (MatrixND)XMLEncoderDecoder.getInstance().decode(new
- // StringReader(xml));
- // }catch(Exception eee){
- // throw new MatrixException("Erreur durant le decodage de la matrice",
- // eee);
- // }
- // }
-
-} // MatrixHelper
-
Copied: lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixHelper.java (from rev 101, lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixHelper.java)
===================================================================
--- lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixHelper.java (rev 0)
+++ lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixHelper.java 2008-10-24 08:18:46 UTC (rev 103)
@@ -0,0 +1,360 @@
+/* *##% lutinmatrix
+ * Copyright (C) 2004 - 2008 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
+
+/* *
+ * MatrixHelper.java
+ *
+ * Created: 28 oct. 2004
+ *
+ * @author Benjamin Poussin <poussin(a)codelutin.com>
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+
+package org.codelutin.math.matrix;
+
+import java.io.StreamTokenizer;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.Stack;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class MatrixHelper {
+
+ /**
+ * Logger for this class
+ */
+ private static final Log log = LogFactory.getLog(MatrixHelper.class);
+
+ // MatrixHelper
+
+ /**
+ * Convert Matrix to identity matrix must have 2 dimensions. If dimension
+ * haven't same length, then the small dimension is used.
+ *
+ * @param mat
+ * @return
+ */
+ static public MatrixND convertToId(MatrixND mat) {
+ int size = mat.getDim(0);
+ if (size > mat.getDim(1)) {
+ size = mat.getDim(1);
+ }
+
+ fill(mat, 0);
+
+ for (int i = 0; i < size; i++) {
+ mat.setValue(i, i, 1);
+ }
+ return mat;
+ }
+
+ /**
+ * Permet de relire une chaine du type [[[1, 2], [3, 4]],[[3, 5], [1, 4]]]
+ * <p>
+ * Remarque: une premiere implatantion avait ete faite en utilisant
+ * {@link 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
+ * :(
+ * <p>
+ * Remarque: une autre implantation de remplacement a ete faite en utilisant
+ * le {@link org.codelutin.util.StringUtil#split(String, String)} mais elle
+ * etait moins performante (x2)
+ *
+ * @param s la chaine representant les listes de liste
+ * @return une liste de liste ... de Double
+ */
+ static public List convertStringToList(String s) {
+ List result = null;
+ Stack<List> stack = new Stack<List>();
+ StringBuffer number = new StringBuffer(20); // initial to 20 char
+
+ for (int i = 0; i < s.length(); i++) {
+ char c = s.charAt(i);
+ if (c == ' ') {
+ // skip space
+ }
+ if (c == '[') {
+ stack.push(new ArrayList());
+ } else if (c == ',') {
+ if (number.length() != 0) {
+ // on a une ',' on doit donc avoir un nombre dans number
+ // a moins que ce ne soit une ',' entre deux listes
+ Double value = Double.valueOf(number.toString());
+ stack.peek().add(value);
+ }
+ number.setLength(0);
+ } else if (c == ']') {
+ // fin d'une liste, il doit rester un nombre dans number
+ // a mois que la liste etait vide
+ if (number.length() != 0) {
+ Double value = Double.valueOf(number.toString());
+ stack.peek().add(value);
+ number.setLength(0);
+ }
+
+ List current = stack.pop();
+ if (stack.empty()) {
+ result = current;
+ } else {
+ stack.peek().add(current);
+ }
+ } else {
+ // pas un '[' ou ']', pas une ',' devrait etre
+ // un bout du nombre, si c un espace qui traine n'importe ou
+ // c pas grace car Double.valueOf gere les espaces
+ number.append(c);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * permet de donner une repr�sentation String d'un tableau de coordonn�es
+ *
+ * @param coordinates les coordonn�es
+ * @return la chaine demand�e de la forme 1,3,34,23
+ */
+ static public String coordinatesToString(int[] coordinates) {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < coordinates.length; i++) {
+ sb.append(coordinates[i]);
+ if (i + 1 < coordinates.length) {
+ sb.append(',');
+ }
+ }
+ return sb.toString();
+ }
+
+ /**
+ * permet de donner une repr�sentation String d'un tableau de coordonn�es
+ *
+ * @param coordinates les coordonn�es
+ * @return 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
+ */
+ static public String coordinatesToString(Object[] coordinates) {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < coordinates.length; i++) {
+ sb.append(coordinates[i]);
+ if (i + 1 < coordinates.length)
+ sb.append(',');
+ }
+ return sb.toString();
+ }
+
+ /**
+ * Permet de savoir si deux dimension sont identique
+ */
+ static public boolean sameDimension(int[] dim1, int[] dim2) {
+ return Arrays.equals(dim1, dim2);
+ }
+
+ /**
+ * Permet de convertir des coordonn�es d�fini par des entiers en coordonn�e
+ * semantique par des objets
+ *
+ * @param semantics la semantique � utilis� pour la conversion
+ * @param coordinates les coordonn�es � convertir
+ * @return 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.
+ */
+ static public Object[] dimensionToSemantics(List[] semantics,
+ int[] coordinates) {
+ Object[] result = new Object[coordinates.length];
+ for (int i = 0; i < result.length; i++) {
+ result[i] = semantics[i].get(coordinates[i]);
+ if (result[i] == null) {
+ result[i] = new Integer(coordinates[i]);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Permet de convertir des coordonnées sémantiques en coordonnées défini par
+ * des entiers. Cette fonction est l'inverse de
+ * {@link #dimensionToSemantics}.
+ *
+ * @param semantics la semantique à utiliser pour la conversion
+ * @param coordinates les coordonnées sémantique
+ * @return les coordonnées en entier. Si la sémantique est représentéé par un
+ * Integer alors la valeur de l'integer est utilisé pour la
+ * conversion.
+ */
+ static public int[] semanticsToDimension(List[] semantics,
+ Object[] coordinates) {
+ int[] result = new int[coordinates.length];
+ for (int i = 0; i < coordinates.length; i++) {
+ if (coordinates[i] == null) {
+ result[i] = -1;
+ } else {
+ result[i] = indexOf(semantics, i, coordinates[i]);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Permet de retrouver la position d'un objet dans une liste
+ *
+ * @param semantics la semantique � utilis� pour la recherche
+ * @param dim la dimension dans lequel il faut faire la recherche
+ * @param o l'objet � rechercher
+ * @return la position de l'objet dans la dimension demand�e
+ */
+ static public int indexOf(List[] semantics, int dim, Object o)
+ throws NoSuchElementException {
+ if (o instanceof Integer) {
+ return ((Integer) o).intValue();
+ }
+ int result = -1;
+ if ((0 <= dim) && (dim < semantics.length)) {
+ result = semantics[dim].indexOf(o);
+ }
+ if (result == -1) {
+ throw new NoSuchElementException(
+ "L'objet pass� en argument n'a pas �t� retrouve ou la dimension donn�e ne convient pas:"
+ + o + " in " + semantics[dim]);
+ }
+ return result;
+ }
+
+ /**
+ * Permet de remplir toute la matrice avec la m�me donn�e
+ *
+ * @param mat la matrice � remplir
+ * @param value la valeur de remplissage
+ * @return la matrice pass� en param�tre
+ */
+ static public MatrixND fill(MatrixND mat, final double value) {
+ mat.map(new MapFunction() {
+ public double apply(double v) {
+ return value;
+ }
+ });
+ return mat;
+ }
+
+ // /**
+ // * Cr�e une nouvelle matrice identit�. Une matrice identit� est une
+ // matrice
+ // * � 2 dimensions dont tous les �l�ments de la diagonal vaut 1
+ // * @param size la taille de la matrice
+ // * @return une nouvelle matrice identit�
+ // */
+ // static public MatrixND matrixId(int size){
+ // MatrixND result = new MatrixNDImpl(new int[]{size, size});
+ // for(int i=0; i<size; i++){
+ // result.setValue(i, i , 1);
+ // }
+ // return result;
+ // }
+
+ /**
+ * Retourne la valeur la plus courrement rencontrer dans un tableau. si
+ * plusieurs valeurs ont le m�me nombre d'occurence la plus petite valeur
+ * est retourn�.
+ *
+ * @param tab le tableau de valeur
+ * @return la valeur la plus nombreuse dans le tableau
+ */
+ static public double maxOccurence(double[] tab) {
+ double[] tmp = new double[tab.length];
+ System.arraycopy(tab, 0, tmp, 0, tab.length);
+ return maxOccurence1(tmp);
+ }
+
+ static public double maxOccurence(float[] tab) {
+ double[] tmp = new double[tab.length];
+ for (int i = 0; i < tab.length; i++) {
+ tmp[i] = tab[i];
+ }
+ return maxOccurence1(tmp);
+ }
+
+ /**
+ * le tableau en entre est trie durant l'execution de la methode, il est
+ * donc modifi�
+ */
+ static protected double maxOccurence1(double[] tmp) {
+ if (tmp.length == 0) {
+ throw new IllegalArgumentException("Array must be not empty");
+ }
+ // double [] tmp = new double[tab.length];
+ // System.arraycopy(tab, 0, tmp, 0, tab.length);
+ Arrays.sort(tmp);
+
+ // le nombre de fois que l'on a rencontrer la valeur la plus nombreuse
+ int max = 1;
+ // le nombre de fois que l'on a rencontrer la valeur courante
+ int count = 1;
+ // la valeur la plus rencontrer
+ double result = tmp[0];
+ // la valeur que l'on vient de traiter pr�c�dement
+ double old = tmp[0];
+ // la valeur courante lu dans le tableaux
+ double 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 < tmp.length - i + count && i < tmp.length; i++) {
+ current = tmp[i];
+
+ if (current == old) {
+ count++;
+ } else {
+ if (count > max) {
+ max = count;
+ result = old;
+ }
+ count = 1;
+ old = current;
+ }
+ }
+ if (count > max) {
+ max = count;
+ result = current;
+ }
+ return result;
+ }
+
+ // static public String encodeToXML(MatrixND mat){
+ // StringWriter out = new StringWriter();
+ // XMLEncoderDecoder.getInstance().encode(out, mat);
+ // return out.toString();
+ // }
+ //
+ // static public MatrixND decodeFromXML(String xml){
+ // try{
+ // return (MatrixND)XMLEncoderDecoder.getInstance().decode(new
+ // StringReader(xml));
+ // }catch(Exception eee){
+ // throw new MatrixException("Erreur durant le decodage de la matrice",
+ // eee);
+ // }
+ // }
+
+} // MatrixHelper
+
Deleted: lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixIteratorImpl.java
===================================================================
--- lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixIteratorImpl.java 2008-09-29 17:47:43 UTC (rev 98)
+++ lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixIteratorImpl.java 2008-10-24 08:18:46 UTC (rev 103)
@@ -1,83 +0,0 @@
-/* *##% lutinmatrix
- * Copyright (C) 2004 - 2008 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
-
-/* *
- * MatrixIteratorImpl.java
- *
- * Created: 28 oct. 2004
- *
- * @author Benjamin Poussin <poussin(a)codelutin.com>
- * @version $Revision$
- *
- * Mise a jour: $Date$
- * par : $Author$
- */
-
-package org.codelutin.math.matrix;
-
-import java.util.List;
-
-public class MatrixIteratorImpl implements MatrixIterator { // MatrixIteratorImpl
-
- protected BasicMatrixIterator iterator = null;
- protected List[] semantics = null;
- protected int pos = 0;
-
- /**
- * @param matrix la matrice sur lequel l'iterator doit travailler
- * @param semantics la semantique de matrix, si matrix n'a pas de semantique
- * alors il faut passer null
- */
- public MatrixIteratorImpl(BasicMatrixIterator iterator, List[] semantics) {
- this.iterator = iterator;
- this.semantics = semantics;
- pos = 0;
- }
-
- public boolean hasNext() {
- return iterator.hasNext();
- }
-
- public boolean next() {
- return iterator.next();
- }
-
- public int[] getCoordinates() {
- return iterator.getCoordinates();
- }
-
- public double getValue() {
- return iterator.getValue();
- }
-
- public void setValue(double value) {
- iterator.setValue(value);
- }
-
- public Object[] getSemanticsCoordinates() {
- if (semantics == null) {
- return null;
- } else {
- int[] coordinates = getCoordinates();
- Object[] result = MatrixHelper.dimensionToSemantics(semantics,
- coordinates);
- return result;
- }
- }
-
-} // MatrixIteratorImpl
-
Copied: lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixIteratorImpl.java (from rev 101, lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixIteratorImpl.java)
===================================================================
--- lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixIteratorImpl.java (rev 0)
+++ lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixIteratorImpl.java 2008-10-24 08:18:46 UTC (rev 103)
@@ -0,0 +1,83 @@
+/* *##% lutinmatrix
+ * Copyright (C) 2004 - 2008 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
+
+/* *
+ * MatrixIteratorImpl.java
+ *
+ * Created: 28 oct. 2004
+ *
+ * @author Benjamin Poussin <poussin(a)codelutin.com>
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+
+package org.codelutin.math.matrix;
+
+import java.util.List;
+
+public class MatrixIteratorImpl implements MatrixIterator { // MatrixIteratorImpl
+
+ protected BasicMatrixIterator iterator = null;
+ protected List[] semantics = null;
+ protected int pos = 0;
+
+ /**
+ * @param iterator la matrice sur lequel l'iterator doit travailler
+ * @param semantics la semantique de matrix, si matrix n'a pas de semantique
+ * alors il faut passer null
+ */
+ public MatrixIteratorImpl(BasicMatrixIterator iterator, List[] semantics) {
+ this.iterator = iterator;
+ this.semantics = semantics;
+ pos = 0;
+ }
+
+ public boolean hasNext() {
+ return iterator.hasNext();
+ }
+
+ public boolean next() {
+ return iterator.next();
+ }
+
+ public int[] getCoordinates() {
+ return iterator.getCoordinates();
+ }
+
+ public double getValue() {
+ return iterator.getValue();
+ }
+
+ public void setValue(double value) {
+ iterator.setValue(value);
+ }
+
+ public Object[] getSemanticsCoordinates() {
+ if (semantics == null) {
+ return null;
+ } else {
+ int[] coordinates = getCoordinates();
+ Object[] result = MatrixHelper.dimensionToSemantics(semantics,
+ coordinates);
+ return result;
+ }
+ }
+
+} // MatrixIteratorImpl
+
Deleted: lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixND.java
===================================================================
--- lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixND.java 2008-09-29 17:47:43 UTC (rev 98)
+++ lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixND.java 2008-10-24 08:18:46 UTC (rev 103)
@@ -1,619 +0,0 @@
-/* *##% lutinmatrix
- * Copyright (C) 2004 - 2008 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
-
-/* *
- * MatrixND.java
- *
- * Created: 29 oct. 2004
- *
- * @author Benjamin Poussin <poussin(a)codelutin.com>
- * @version $Revision$
- *
- * Mise a jour: $Date$
- * par : $Author$
- */
-
-package org.codelutin.math.matrix;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.Serializable;
-import java.io.Writer;
-import java.util.List;
-
-public interface MatrixND extends Serializable, Cloneable { // MatrixND
-
- /**
- * Retourne la factory qui a permit de creer la matrice
- */
- public MatrixFactory getFactory();
-
- /**
- * Donne toutes les semantiques de la matrice Si la matrice n'a pas de
- * semantique retourne null
- */
- public List[] getSemantics();
-
- /**
- * Retourne la semantique pour une dimension
- *
- * @param dim la dimension pour lequel on veut la semantique
- * @return la semantique de la dimension on null s'il n'y a pas de
- * semantique
- */
- public List getSemantics(int dim);
-
- /**
- * Modifie la semantique d'une dimension
- */
- public void setSemantics(int dim, List sem);
-
- /**
- * Permet de donner un nom à la matrice.
- */
- public void setName(String name);
-
- /**
- * Retourne le nom de la matrice
- *
- * @return le nom de la matrice ou la chaine vide si pas de nom.
- */
- public String getName();
-
- /**
- * Permet de mettre des noms aux différentes dimension.
- */
- public void setDimensionName(String[] names);
-
- /**
- * Permet de mettre un nom à une dimension.
- *
- * @param dim la dimension dont on veut changer le nom
- * @param name le nom à donner à la dimension
- */
- public void setDimensionName(int dim, String name);
-
- /**
- * Retourne le nom de la dimension demandé.
- *
- * @param dim la dimension dont on veut le nom
- * @return le nom de la dimension ou la chaine vide si la dimension n'a pas
- * de nom @ si la dimension demandé n'est pas valide
- */
- public String getDimensionName(int dim);
-
- public String[] getDimensionName();
-
- /**
- * Retourne la valeur la plus courrement rencontrer dans un tableau. si
- * plusieurs valeurs ont le même nombre d'occurence la plus petite valeur
- * est retourné.
- *
- * @param tab le tableau de valeur
- * @return la valeur la plus nombreuse dans le tableau
- */
- public double getMaxOccurence();
-
- /**
- * Retourne le nombre de dimensions de la matrice.
- */
- public int getNbDim();
-
- /**
- * Retourne les dimensions de la matrice.
- */
- public int[] getDim();
-
- /**
- * Retourne la dimension de la matrice dans la dimension d
- */
- public int getDim(int d);
-
- /**
- * Retourne un iterator sur toute la matrice
- */
- public MatrixIterator iterator();
-
- /**
- * Applique une fonction sur chaque valeur de la matrice
- */
- 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>
- *
- * Exemple: Si on a un matrice 3D.<br>
- * getValue(1,1,1) retourne un element de la matrice.<br>
- *
- * @param dimensions les différentes dimension à extraire. Le tableau doit
- * contenir toutes les dimensions de la matrice, et seulement des
- * nombres positif
- *
- * @return un entier double.
- */
- 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);
-
- // /**
- // * 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>
- *
- * 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 d l'entier double qui doit remplacer l'entier double 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);
-
- /**
- * Copy la matrice pour pouvoir la modifier sans perdre les donnees
- * initiales.
- */
- public MatrixND copy();
-
- // public String toString();
-
- // /**
- // * Verifie si les 2 matrices sont egal
- // */
- // public boolean equals(Object o);
-
- // /**
- // * 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
- */
- public double sumAll();
-
- /**
- * Somme la matrice sur une dimension donnée. La matrice résultat à le même
- * nombre de dimension, pas la dimension sommer, ne contient qu'une ligne.
- * <p>
- * par exemple pour la matrice suivante si on somme sur la dimension 1 cela
- * donnera
- *
- * <pre>
- * 1 2 3
- * 2 3 4
- * 3 4 5
- * </pre>
- *
- * <pre>
- * 6 9 12
- * </pre>
- *
- * @param dim la dimension sur lequel il faut faire la somme
- */
- public MatrixND sumOverDim(int dim);
-
- /**
- * Somme la matrice mais la matrice reste de la même dimension. la somme
- * permet juste de regrouper dans une dimension un certain nombre de valeur.
- * <p>
- * pour la matrice suivant
- *
- * <pre>
- * 1 2 3 4
- * 2 3 4 5
- * 3 4 5 6
- * 4 5 6 7
- * </pre>
- *
- * la somme sur la dimension 1 avec un pas de 2 donnera
- *
- * <pre>
- * 4 6 8 10
- * 6 8 10 12
- * </pre>
- *
- * c'est à dire que la ligne 0 et la ligne 2 sont sommées. ainsi que la
- * ligne 1 avec la ligne 3.
- *
- * @param dim la dimension sur lequel il faut faire les sommes
- * @param step le pas qu'il faut utiliser pour regrouper les elements. Si le
- * pas est inférieur à 0, le pas se comporte comme si on avait
- * passé en argument la taille de la dimension. Un pas de 0 ou 1,
- * retourne juste une copie de la matrice actuelle. si la
- * division du pas avec la taille de la dimension ne donne pas un
- * nombre entier, les elements restants ne sont pas pris en
- * compte. Par exemple si la dimension a 10 élements et que l'on
- * donne un pas de 3, dans la matrice resultat la dimension aura
- * 3 elements qui seront la somme par 3 des 9 premiers element de
- * la matrice courante. Le 10eme element sera perdu.
- * @return une nouvelle matrice avec le meme nombre de dimension mais dont
- * la dimension passé en paramètre aura comme taille, le resultat de
- * la division entier de la taille actuelle par le step
- */
- public MatrixND sumOverDim(int dim, int step);
-
- public MatrixND sumOverDim(int dim, int start, int nb);
-
- /**
- * Permet de supprimer des éléments de la matrice. par exemple pour la
- * matrice
- *
- * <pre>
- * 1 2 3 4
- * 2 3 4 5
- * 3 4 5 6
- * 4 5 6 7
- * </pre>
- *
- * un cut(1, [0,2]) donnera
- *
- * <pre>
- * 2 4
- * 3 5
- * 4 6
- * 5 7
- * </pre>
- *
- * @param dim la dimension dans lequel il faut supprimer des éléments
- * @param toCut les éléments à supprimer
- * @return une nouvelle matrice, la matrice actuelle n'est pas modifiée
- */
- public MatrixND cut(int dim, int[] toCut);
-
- /**
- * Copie une matrice dans la matrice actuelle. La matrice à copier à le même
- * nombre de dimension. Si la matrice à copier est trop grande seul les
- * éléments pouvant être copier le seront.
- *
- * @param mat la matrice à copier
- * @return return la matrice courante.
- */
- public MatrixND paste(MatrixND mat);
-
- /**
- * Copie une matrice dans la matrice actuelle. La matrice à copier à le même
- * nombre de dimension. Si la matrice à copier est trop grande seul les
- * éléments pouvant être copier le seront.
- *
- * @param origin le point à partir duquel il faut faire la copie
- * @param mat la matrice à copier
- * @return return la matrice courante.
- */
- public MatrixND paste(int[] origin, MatrixND mat);
-
- /**
- * Modifie la matrice actuel en metant les valeurs de mat passé en parametre
- * La copie se fait en fonction de la semantique, si un element dans une
- * dimension n'est pas trouvé, alors il est passé
- */
- 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
- * prend que certain élément.
- *
- * @param dim la dimension dans lequel on veut une sous matrice si dim est
- * négatif alors la dimension est prise à partir de la fin par
- * exemple si l'on veut la derniere dimension il faut passer -1
- * pour dim
- * @param start la position dans dim d'ou il faut partir pour prendre la
- * sous matrice.
- * @param 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.
- */
- public MatrixND getSubMatrix(int dim, Object start, int nb);
-
- /**
- * 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.
- *
- * @param dim la dimension dans lequel on veut une sous matrice
- * @param 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
- * @param 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.
- */
- public MatrixND getSubMatrix(int dim, int start, int nb);
-
- /**
- * 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.
- *
- * @param dim la dimension dans lequel on veut une sous matrice
- * @param elem les éléments dans la dimension à conserver
- */
- public MatrixND getSubMatrix(int dim, Object... elem);
-
- /**
- * 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.
- *
- * @param dim la dimension dans lequel on veut une sous matrice
- * @param elem les éléments dans la dimension à conserver
- */
- public MatrixND getSubMatrix(int dim, int[] elem);
-
- /**
- * Addition la matrice courante avec la matrice passe en parametre et ce
- * retourne elle meme
- */
- public MatrixND add(MatrixND m);
-
- /**
- * Soustrai la matrice courante avec la matrice passe en parametre et ce
- * retourne elle meme
- */
- public MatrixND minus(MatrixND m);
-
- /**
- * retourne le transpose de la matrice
- */
- public MatrixND transpose();
-
- /**
- * Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un
- * élement soit supprimée. Au pire cette méthode retourne une matrice à une
- * seule dimension à un seul élément.
- *
- * @return une nouvelle matrice plus petite que la matrice actuelle ou egal
- * s'il n'y a aucune dimension à supprimer
- */
- public MatrixND reduce();
-
- /**
- * Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un
- * élement soit supprimée. Au pire cette méthode retourne une matrice à une
- * seule dimension à un seul élément.
- *
- * @param minNbDim le nombre minimum de dimension que l'on souhaite pour la
- * matrice résultat
- * @return une nouvelle matrice plus petite que la matrice actuelle ou egal
- * s'il n'y a aucune dimension à supprimer
- */
- public MatrixND reduce(int minNbDim);
-
- /**
- * Reduit le matrice seulement sur les dimensions passées en argument. Si
- * une des dimensions passées en arguement n'a pas un seul élément, cette
- * dimension n'est pas prise en compte.
- *
- * @param dims les dimensions sur lequel il faut faire la reduction
- * @return une nouvelle matrice
- */
- public MatrixND reduceDims(int... dims);
-
- /**
- * Multiplication normal de 2 matrices 2D. Retourne une nouvelle matrice
- */
- public MatrixND mult(MatrixND m);
-
- // /**
- // * multiplication terme a terme de la matrice courante avec la
- // * matrice passe en parametre et ce retourne elle meme
- // */
- // public MatrixND multm(MatrixND m);
- /**
- * Multiplication d'une matrice par un scalaire
- */
- public MatrixND mults(final double d);
-
- /**
- * Multiplication d'une matrice par un scalaire
- */
- public MatrixND divs(final double d);
-
- /**
- * Donne la matrice sous forme de List de list ... de double
- *
- * @return
- */
- public List toList();
-
- /**
- * Permet de charger une matrice a partir d'une representation List
- *
- * @param list la matrice sous forme de List de list ... de double
- */
- public void fromList(List list);
-
- /**
- * Determine si la matrice supporte l'import et l'export CSV
- *
- * @return support du CSV
- */
- public boolean isSupportedCSV();
-
- /**
- * Import depuis un reader au format CSV des données dans la matrice
- *
- * @param reader le reader à importer
- * @param origin le point à partir duquel il faut faire l'importation
- */
- public void importCSV(Reader reader, int[] origin) throws IOException;
-
- /**
- * Export dans un writer au format CSV de la matrice
- *
- * @param writer le writer ou copier la matrice
- * @param withSemantics export ou pas des semantiques de la matrice dans le
- * writer
- */
- public void exportCSV(Writer writer, boolean withSemantics)
- throws IOException;
-
- /**
- * Verifie si les matrices sont egales en ne regardant que les valeurs et
- * pas les semantiques
- *
- * @param mat
- * @return
- */
- 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
-
Copied: lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixND.java (from rev 101, lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixND.java)
===================================================================
--- lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixND.java (rev 0)
+++ lutinmatrix/tags/lutinmatrix-1.1/src/main/java/org/codelutin/math/matrix/MatrixND.java 2008-10-24 08:18:46 UTC (rev 103)
@@ -0,0 +1,618 @@
+/* *##% lutinmatrix
+ * Copyright (C) 2004 - 2008 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
+
+/* *
+ * MatrixND.java
+ *
+ * Created: 29 oct. 2004
+ *
+ * @author Benjamin Poussin <poussin(a)codelutin.com>
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+
+package org.codelutin.math.matrix;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.io.Serializable;
+import java.io.Writer;
+import java.util.List;
+
+public interface MatrixND extends Serializable, Cloneable { // MatrixND
+
+ /**
+ * Retourne la factory qui a permit de creer la matrice
+ */
+ public MatrixFactory getFactory();
+
+ /**
+ * Donne toutes les semantiques de la matrice Si la matrice n'a pas de
+ * semantique retourne null
+ */
+ public List[] getSemantics();
+
+ /**
+ * Retourne la semantique pour une dimension
+ *
+ * @param dim la dimension pour lequel on veut la semantique
+ * @return la semantique de la dimension on null s'il n'y a pas de
+ * semantique
+ */
+ public List getSemantics(int dim);
+
+ /**
+ * Modifie la semantique d'une dimension
+ */
+ public void setSemantics(int dim, List sem);
+
+ /**
+ * Permet de donner un nom à la matrice.
+ */
+ public void setName(String name);
+
+ /**
+ * Retourne le nom de la matrice
+ *
+ * @return le nom de la matrice ou la chaine vide si pas de nom.
+ */
+ public String getName();
+
+ /**
+ * Permet de mettre des noms aux différentes dimension.
+ */
+ public void setDimensionName(String[] names);
+
+ /**
+ * Permet de mettre un nom à une dimension.
+ *
+ * @param dim la dimension dont on veut changer le nom
+ * @param name le nom à donner à la dimension
+ */
+ public void setDimensionName(int dim, String name);
+
+ /**
+ * Retourne le nom de la dimension demandé.
+ *
+ * @param dim la dimension dont on veut le nom
+ * @return le nom de la dimension ou la chaine vide si la dimension n'a pas
+ * de nom @ si la dimension demandé n'est pas valide
+ */
+ public String getDimensionName(int dim);
+
+ public String[] getDimensionName();
+
+ /**
+ * Retourne la valeur la plus courrement rencontrer dans un tableau. si
+ * plusieurs valeurs ont le même nombre d'occurence la plus petite valeur
+ * est retourné.
+ *
+ * @return la valeur la plus nombreuse dans le tableau
+ */
+ public double getMaxOccurence();
+
+ /**
+ * Retourne le nombre de dimensions de la matrice.
+ */
+ public int getNbDim();
+
+ /**
+ * Retourne les dimensions de la matrice.
+ */
+ public int[] getDim();
+
+ /**
+ * Retourne la dimension de la matrice dans la dimension d
+ */
+ public int getDim(int d);
+
+ /**
+ * Retourne un iterator sur toute la matrice
+ */
+ public MatrixIterator iterator();
+
+ /**
+ * Applique une fonction sur chaque valeur de la matrice
+ */
+ 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>
+ *
+ * Exemple: Si on a un matrice 3D.<br>
+ * getValue(1,1,1) retourne un element de la matrice.<br>
+ *
+ * @param dimensions les différentes dimension à extraire. Le tableau doit
+ * contenir toutes les dimensions de la matrice, et seulement des
+ * nombres positif
+ *
+ * @return un entier double.
+ */
+ public double getValue(int[] dimensions);
+
+ 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);
+
+ // /**
+ // * 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>
+ *
+ * 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 d l'entier double qui doit remplacer l'entier double 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);
+
+ /**
+ * Copy la matrice pour pouvoir la modifier sans perdre les donnees
+ * initiales.
+ */
+ public MatrixND copy();
+
+ // public String toString();
+
+ // /**
+ // * Verifie si les 2 matrices sont egal
+ // */
+ // public boolean equals(Object o);
+
+ // /**
+ // * 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
+ */
+ public double sumAll();
+
+ /**
+ * Somme la matrice sur une dimension donnée. La matrice résultat à le même
+ * nombre de dimension, pas la dimension sommer, ne contient qu'une ligne.
+ * <p>
+ * par exemple pour la matrice suivante si on somme sur la dimension 1 cela
+ * donnera
+ *
+ * <pre>
+ * 1 2 3
+ * 2 3 4
+ * 3 4 5
+ * </pre>
+ *
+ * <pre>
+ * 6 9 12
+ * </pre>
+ *
+ * @param dim la dimension sur lequel il faut faire la somme
+ */
+ public MatrixND sumOverDim(int dim);
+
+ /**
+ * Somme la matrice mais la matrice reste de la même dimension. la somme
+ * permet juste de regrouper dans une dimension un certain nombre de valeur.
+ * <p>
+ * pour la matrice suivant
+ *
+ * <pre>
+ * 1 2 3 4
+ * 2 3 4 5
+ * 3 4 5 6
+ * 4 5 6 7
+ * </pre>
+ *
+ * la somme sur la dimension 1 avec un pas de 2 donnera
+ *
+ * <pre>
+ * 4 6 8 10
+ * 6 8 10 12
+ * </pre>
+ *
+ * c'est à dire que la ligne 0 et la ligne 2 sont sommées. ainsi que la
+ * ligne 1 avec la ligne 3.
+ *
+ * @param dim la dimension sur lequel il faut faire les sommes
+ * @param step le pas qu'il faut utiliser pour regrouper les elements. Si le
+ * pas est inférieur à 0, le pas se comporte comme si on avait
+ * passé en argument la taille de la dimension. Un pas de 0 ou 1,
+ * retourne juste une copie de la matrice actuelle. si la
+ * division du pas avec la taille de la dimension ne donne pas un
+ * nombre entier, les elements restants ne sont pas pris en
+ * compte. Par exemple si la dimension a 10 élements et que l'on
+ * donne un pas de 3, dans la matrice resultat la dimension aura
+ * 3 elements qui seront la somme par 3 des 9 premiers element de
+ * la matrice courante. Le 10eme element sera perdu.
+ * @return une nouvelle matrice avec le meme nombre de dimension mais dont
+ * la dimension passé en paramètre aura comme taille, le resultat de
+ * la division entier de la taille actuelle par le step
+ */
+ public MatrixND sumOverDim(int dim, int step);
+
+ public MatrixND sumOverDim(int dim, int start, int nb);
+
+ /**
+ * Permet de supprimer des éléments de la matrice. par exemple pour la
+ * matrice
+ *
+ * <pre>
+ * 1 2 3 4
+ * 2 3 4 5
+ * 3 4 5 6
+ * 4 5 6 7
+ * </pre>
+ *
+ * un cut(1, [0,2]) donnera
+ *
+ * <pre>
+ * 2 4
+ * 3 5
+ * 4 6
+ * 5 7
+ * </pre>
+ *
+ * @param dim la dimension dans lequel il faut supprimer des éléments
+ * @param toCut les éléments à supprimer
+ * @return une nouvelle matrice, la matrice actuelle n'est pas modifiée
+ */
+ public MatrixND cut(int dim, int[] toCut);
+
+ /**
+ * Copie une matrice dans la matrice actuelle. La matrice à copier à le même
+ * nombre de dimension. Si la matrice à copier est trop grande seul les
+ * éléments pouvant être copier le seront.
+ *
+ * @param mat la matrice à copier
+ * @return return la matrice courante.
+ */
+ public MatrixND paste(MatrixND mat);
+
+ /**
+ * Copie une matrice dans la matrice actuelle. La matrice à copier à le même
+ * nombre de dimension. Si la matrice à copier est trop grande seul les
+ * éléments pouvant être copier le seront.
+ *
+ * @param origin le point à partir duquel il faut faire la copie
+ * @param mat la matrice à copier
+ * @return return la matrice courante.
+ */
+ public MatrixND paste(int[] origin, MatrixND mat);
+
+ /**
+ * Modifie la matrice actuel en metant les valeurs de mat passé en parametre
+ * La copie se fait en fonction de la semantique, si un element dans une
+ * dimension n'est pas trouvé, alors il est passé
+ */
+ 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
+ * prend que certain élément.
+ *
+ * @param dim la dimension dans lequel on veut une sous matrice si dim est
+ * négatif alors la dimension est prise à partir de la fin par
+ * exemple si l'on veut la derniere dimension il faut passer -1
+ * pour dim
+ * @param start la position dans dim d'ou il faut partir pour prendre la
+ * sous matrice.
+ * @param 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.
+ */
+ public MatrixND getSubMatrix(int dim, Object start, int nb);
+
+ /**
+ * 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.
+ *
+ * @param dim la dimension dans lequel on veut une sous matrice
+ * @param 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
+ * @param 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.
+ */
+ public MatrixND getSubMatrix(int dim, int start, int nb);
+
+ /**
+ * 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.
+ *
+ * @param dim la dimension dans lequel on veut une sous matrice
+ * @param elem les éléments dans la dimension à conserver
+ */
+ public MatrixND getSubMatrix(int dim, Object... elem);
+
+ /**
+ * 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.
+ *
+ * @param dim la dimension dans lequel on veut une sous matrice
+ * @param elem les éléments dans la dimension à conserver
+ */
+ public MatrixND getSubMatrix(int dim, int[] elem);
+
+ /**
+ * Addition la matrice courante avec la matrice passe en parametre et ce
+ * retourne elle meme
+ */
+ public MatrixND add(MatrixND m);
+
+ /**
+ * Soustrai la matrice courante avec la matrice passe en parametre et ce
+ * retourne elle meme
+ */
+ public MatrixND minus(MatrixND m);
+
+ /**
+ * retourne le transpose de la matrice
+ */
+ public MatrixND transpose();
+
+ /**
+ * Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un
+ * élement soit supprimée. Au pire cette méthode retourne une matrice à une
+ * seule dimension à un seul élément.
+ *
+ * @return une nouvelle matrice plus petite que la matrice actuelle ou egal
+ * s'il n'y a aucune dimension à supprimer
+ */
+ public MatrixND reduce();
+
+ /**
+ * Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un
+ * élement soit supprimée. Au pire cette méthode retourne une matrice à une
+ * seule dimension à un seul élément.
+ *
+ * @param minNbDim le nombre minimum de dimension que l'on souhaite pour la
+ * matrice résultat
+ * @return une nouvelle matrice plus petite que la matrice actuelle ou egal
+ * s'il n'y a aucune dimension à supprimer
+ */
+ public MatrixND reduce(int minNbDim);
+
+ /**
+ * Reduit le matrice seulement sur les dimensions passées en argument. Si
+ * une des dimensions passées en arguement n'a pas un seul élément, cette
+ * dimension n'est pas prise en compte.
+ *
+ * @param dims les dimensions sur lequel il faut faire la reduction
+ * @return une nouvelle matrice
+ */
+ public MatrixND reduceDims(int... dims);
+
+ /**
+ * Multiplication normal de 2 matrices 2D. Retourne une nouvelle matrice
+ */
+ public MatrixND mult(MatrixND m);
+
+ // /**
+ // * multiplication terme a terme de la matrice courante avec la
+ // * matrice passe en parametre et ce retourne elle meme
+ // */
+ // public MatrixND multm(MatrixND m);
+ /**
+ * Multiplication d'une matrice par un scalaire
+ */
+ public MatrixND mults(final double d);
+
+ /**
+ * Multiplication d'une matrice par un scalaire
+ */
+ public MatrixND divs(final double d);
+
+ /**
+ * Donne la matrice sous forme de List de list ... de double
+ *
+ * @return
+ */
+ public List toList();
+
+ /**
+ * Permet de charger une matrice a partir d'une representation List
+ *
+ * @param list la matrice sous forme de List de list ... de double
+ */
+ public void fromList(List list);
+
+ /**
+ * Determine si la matrice supporte l'import et l'export CSV
+ *
+ * @return support du CSV
+ */
+ public boolean isSupportedCSV();
+
+ /**
+ * Import depuis un reader au format CSV des données dans la matrice
+ *
+ * @param reader le reader à importer
+ * @param origin le point à partir duquel il faut faire l'importation
+ */
+ public void importCSV(Reader reader, int[] origin) throws IOException;
+
+ /**
+ * Export dans un writer au format CSV de la matrice
+ *
+ * @param writer le writer ou copier la matrice
+ * @param withSemantics export ou pas des semantiques de la matrice dans le
+ * writer
+ */
+ public void exportCSV(Writer writer, boolean withSemantics)
+ throws IOException;
+
+ /**
+ * Verifie si les matrices sont egales en ne regardant que les valeurs et
+ * pas les semantiques
+ *
+ * @param mat
+ * @return
+ */
+ 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
+
Deleted: lutinmatrix/tags/lutinmatrix-1.1/src/site/site.xml
===================================================================
--- lutinmatrix/trunk/src/site/site.xml 2008-09-29 17:47:43 UTC (rev 98)
+++ lutinmatrix/tags/lutinmatrix-1.1/src/site/site.xml 2008-10-24 08:18:46 UTC (rev 103)
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="LutinMatrix">
-
- <skin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-lutin-skin</artifactId>
- <version>0.2</version>
- </skin>
-
- <bannerLeft>
- <name>Lutin Matrix</name>
- </bannerLeft>
-
- <bannerRight>
- <src>http://www.codelutin.com/images/lutinorange-codelutin.png</src>
- <href>http://www.codelutin.com</href>
- </bannerRight>
-
- <body>
- <links>
- <item name="Labs" href="http://labs.libre-entreprise.org/"/>
- <item name="Code Lutin" href="http://www.codelutin.com/"/>
- </links>
-
- <menu name="Utilisateur">
- <item href="http://lutinbuilder.labs.libre-entreprise.org/maven2/org/codelutin/lutinmat…" name="Téléchargement"/>
- </menu>
-
- <menu name="Développeur">
- <item name="Serializable" href="Serializable.html"/>
- <item name="Todo" href="Todo.html"/>
- </menu>
-
- ${reports}
-
- </body>
-</project>
Copied: lutinmatrix/tags/lutinmatrix-1.1/src/site/site.xml (from rev 99, lutinmatrix/trunk/src/site/site.xml)
===================================================================
--- lutinmatrix/tags/lutinmatrix-1.1/src/site/site.xml (rev 0)
+++ lutinmatrix/tags/lutinmatrix-1.1/src/site/site.xml 2008-10-24 08:18:46 UTC (rev 103)
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="LutinMatrix">
+
+ <publishDate format="dd/MM/yyyy"/>
+
+ <skin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-lutin-skin</artifactId>
+ <version>0.2.1</version>
+ </skin>
+
+ <bannerLeft>
+ <name>Lutin Matrix</name>
+ </bannerLeft>
+
+ <bannerRight>
+ <src>http://www.codelutin.com/images/lutinorange-codelutin.png</src>
+ <href>http://www.codelutin.com</href>
+ </bannerRight>
+
+ <body>
+ <links>
+ <item name="Labs" href="http://labs.libre-entreprise.org/"/>
+ <item name="Code Lutin" href="http://www.codelutin.com/"/>
+ </links>
+
+ <menu name="Utilisateur">
+ <item href="http://lutinbuilder.labs.libre-entreprise.org/maven2/org/codelutin/lutinmat…" name="Téléchargement"/>
+ </menu>
+
+ <menu name="Développeur">
+ <item name="Serializable" href="Serializable.html"/>
+ <item name="Todo" href="Todo.html"/>
+ </menu>
+
+ ${reports}
+
+ </body>
+</project>
1
0
[Lutinmatrix-commits] r102 - lutinmatrix/trunk
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
24 Oct '08
Author: chatellier
Date: 2008-10-24 08:18:42 +0000 (Fri, 24 Oct 2008)
New Revision: 102
Modified:
lutinmatrix/trunk/pom.xml
Log:
[maven-release-plugin] prepare release lutinmatrix-1.1
Modified: lutinmatrix/trunk/pom.xml
===================================================================
--- lutinmatrix/trunk/pom.xml 2008-10-24 08:16:25 UTC (rev 101)
+++ lutinmatrix/trunk/pom.xml 2008-10-24 08:18:42 UTC (rev 102)
@@ -12,7 +12,7 @@
</parent>
<artifactId>lutinmatrix</artifactId>
- <version>1.1-SNAPSHOT</version>
+ <version>1.1</version>
<name>lutinmatrix</name>
<packaging>jar</packaging>
<description>Librairie de matrice multi-dimensions.</description>
@@ -25,9 +25,9 @@
<!--Source control management-->
<scm>
- <connection>${maven.scm.connection}</connection>
- <developerConnection>${maven.scm.developerConnection}</developerConnection>
- <url>${maven.scm.url}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutinmatrix/lutinmatrix/tags/lutinmatrix-1.1</connection>
+ <developerConnection>scm:svn:svn+ssh://chatellier@labs.libre-entreprise.org/svnroot/lutinmatrix/lutinmatrix/tags/lutinmatrix-1.1</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/lutinmatrix/tag…</url>
</scm>
<build>
1
0
[Lutinmatrix-commits] r101 - lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
24 Oct '08
Author: chatellier
Date: 2008-10-24 08:16:25 +0000 (Fri, 24 Oct 2008)
New Revision: 101
Modified:
lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/BasicMatrix.java
lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MapFunction.java
lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixHelper.java
lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixIteratorImpl.java
lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixND.java
Log:
Fix some javadoc
Modified: lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/BasicMatrix.java
===================================================================
--- lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/BasicMatrix.java 2008-10-24 08:11:55 UTC (rev 100)
+++ lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/BasicMatrix.java 2008-10-24 08:16:25 UTC (rev 101)
@@ -101,7 +101,6 @@
*
* @param dim la dimension dont on souhaite la taille
* @return la taille d'une dimension
- * @throws
*/
public int getDim(int dim) {
checkDim(dim);
@@ -186,7 +185,6 @@
* Convertie une coordonnée lineaire en coordonnées spaciales
*
* @param pos la coordonnée linéaire
- * @param linearFactor le tableau permettant la conversion
* @return les coordonnées spaciales de l'élément
*/
protected int[] linearToCoordinates(int pos) {
Modified: lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MapFunction.java
===================================================================
--- lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MapFunction.java 2008-10-24 08:11:55 UTC (rev 100)
+++ lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MapFunction.java 2008-10-24 08:16:25 UTC (rev 101)
@@ -35,7 +35,7 @@
* Permet de faire un traitement sur value et de retourne une nouvelle
* valeur.
*
- * @param la valeur courante sur lequel il faut faire le traitement
+ * @param value la valeur courante sur lequel il faut faire le traitement
* @return la nouvelle valeur à mettre dans la matrice à la place de
* l'ancienne.
*/
Modified: lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixHelper.java
===================================================================
--- lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixHelper.java 2008-10-24 08:11:55 UTC (rev 100)
+++ lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixHelper.java 2008-10-24 08:16:25 UTC (rev 101)
@@ -78,7 +78,7 @@
* :(
* <p>
* Remarque: une autre implantation de remplacement a ete faite en utilisant
- * le {@link org.codelutin.util.StrintUtil#split(String, String)} mais elle
+ * le {@link org.codelutin.util.StringUtil#split(String, String)} mais elle
* etait moins performante (x2)
*
* @param s la chaine representant les listes de liste
@@ -194,14 +194,14 @@
}
/**
- * Permet de convertir des coordonn�es s�mantiques en coordonn�es d�fini par
+ * Permet de convertir des coordonnées sémantiques en coordonnées défini par
* des entiers. Cette fonction est l'inverse de
* {@link #dimensionToSemantics}.
*
- * @param semantics la semantique � utilis� pour la conversion
- * @param coordonn�es les coordonn�es s�mantique
- * @return les coordonn�es en entier. Si la s�mantique est repr�sent� par un
- * Integer alors la valeur de l'interger est utilis� pour la
+ * @param semantics la semantique à utiliser pour la conversion
+ * @param coordinates les coordonnées sémantique
+ * @return les coordonnées en entier. Si la sémantique est représentéé par un
+ * Integer alors la valeur de l'integer est utilisé pour la
* conversion.
*/
static public int[] semanticsToDimension(List[] semantics,
Modified: lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixIteratorImpl.java
===================================================================
--- lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixIteratorImpl.java 2008-10-24 08:11:55 UTC (rev 100)
+++ lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixIteratorImpl.java 2008-10-24 08:16:25 UTC (rev 101)
@@ -38,7 +38,7 @@
protected int pos = 0;
/**
- * @param matrix la matrice sur lequel l'iterator doit travailler
+ * @param iterator la matrice sur lequel l'iterator doit travailler
* @param semantics la semantique de matrix, si matrix n'a pas de semantique
* alors il faut passer null
*/
Modified: lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixND.java
===================================================================
--- lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixND.java 2008-10-24 08:11:55 UTC (rev 100)
+++ lutinmatrix/trunk/src/main/java/org/codelutin/math/matrix/MatrixND.java 2008-10-24 08:16:25 UTC (rev 101)
@@ -103,7 +103,6 @@
* plusieurs valeurs ont le même nombre d'occurence la plus petite valeur
* est retourné.
*
- * @param tab le tableau de valeur
* @return la valeur la plus nombreuse dans le tableau
*/
public double getMaxOccurence();
@@ -167,7 +166,7 @@
*
* @return un entier double.
*/
- public double getValue(int[] dim);
+ public double getValue(int[] dimensions);
public double getValue(int x);
1
0
[Lutinmatrix-commits] r100 - lutinmatrix/trunk
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
24 Oct '08
Author: chatellier
Date: 2008-10-24 08:11:55 +0000 (Fri, 24 Oct 2008)
New Revision: 100
Modified:
lutinmatrix/trunk/pom.xml
Log:
Update pom
Modified: lutinmatrix/trunk/pom.xml
===================================================================
--- lutinmatrix/trunk/pom.xml 2008-10-24 08:11:44 UTC (rev 99)
+++ lutinmatrix/trunk/pom.xml 2008-10-24 08:11:55 UTC (rev 100)
@@ -21,17 +21,13 @@
<properties>
<!-- id du projet du labs -->
<labs.id>63</labs.id>
-
- <!-- TODO remove this as soon as tests are fixed -->
- <maven.test.testFailureIgnore>true</maven.test.testFailureIgnore>
</properties>
<!--Source control management-->
<scm>
<connection>${maven.scm.connection}</connection>
<developerConnection>${maven.scm.developerConnection}</developerConnection>
- <!-- This does'nt work for viewcvs.php with stat-scm with svn conf :(
- <url>${maven.scm.url}</url> -->
+ <url>${maven.scm.url}</url>
</scm>
<build>
@@ -51,20 +47,6 @@
</executions>
</plugin>
- <!-- jrst
- <plugin>
- <groupId>lutinplugin</groupId>
- <artifactId>maven-jrst-plugin</artifactId>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.0.2</version>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- </configuration>
- </plugin>-->
-
</plugins>
</build>
@@ -73,7 +55,7 @@
<dependency>
<groupId>org.codelutin</groupId>
<artifactId>lutinutil</artifactId>
- <version>0.30</version>
+ <version>0.31</version>
<scope>compile</scope>
</dependency>
<dependency>
1
0
[Lutinmatrix-commits] r99 - lutinmatrix/trunk/src/site
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
by chatellier@users.labs.libre-entreprise.org 24 Oct '08
24 Oct '08
Author: chatellier
Date: 2008-10-24 08:11:44 +0000 (Fri, 24 Oct 2008)
New Revision: 99
Modified:
lutinmatrix/trunk/src/site/site.xml
Log:
Update site skin
Modified: lutinmatrix/trunk/src/site/site.xml
===================================================================
--- lutinmatrix/trunk/src/site/site.xml 2008-09-29 17:47:43 UTC (rev 98)
+++ lutinmatrix/trunk/src/site/site.xml 2008-10-24 08:11:44 UTC (rev 99)
@@ -1,10 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="LutinMatrix">
-
+
+ <publishDate format="dd/MM/yyyy"/>
+
<skin>
<groupId>org.codelutin</groupId>
<artifactId>maven-lutin-skin</artifactId>
- <version>0.2</version>
+ <version>0.2.1</version>
</skin>
<bannerLeft>
1
0
[Lutinmatrix-commits] r98 - lutinmatrix/trunk/src/test/java/org/codelutin/math/matrix
by bpoussin@users.labs.libre-entreprise.org 29 Sep '08
by bpoussin@users.labs.libre-entreprise.org 29 Sep '08
29 Sep '08
Author: bpoussin
Date: 2008-09-29 17:47:43 +0000 (Mon, 29 Sep 2008)
New Revision: 98
Modified:
lutinmatrix/trunk/src/test/java/org/codelutin/math/matrix/MatrixEncoderDecoderTest.java
Log:
ajout d'un test dummy pour qu'hudson fonctionne
Modified: lutinmatrix/trunk/src/test/java/org/codelutin/math/matrix/MatrixEncoderDecoderTest.java
===================================================================
--- lutinmatrix/trunk/src/test/java/org/codelutin/math/matrix/MatrixEncoderDecoderTest.java 2008-09-25 09:29:49 UTC (rev 97)
+++ lutinmatrix/trunk/src/test/java/org/codelutin/math/matrix/MatrixEncoderDecoderTest.java 2008-09-29 17:47:43 UTC (rev 98)
@@ -42,6 +42,11 @@
*/
public class MatrixEncoderDecoderTest extends TestCase { // MatrixEncoderDecoderTest
+ public void testDummy() {
+ // dummy test for hudson compilation work, perhaps remove this class if we put something about XML in TODO
+ assertTrue(true);
+ }
+
/*
* public MatrixFactory getFactory() throws Exception { return
* MatrixFactory.getInstance(); }
1
0
[Lutinmatrix-commits] r97 - lutinmatrix/trunk/src/site
by chatellier@users.labs.libre-entreprise.org 25 Sep '08
by chatellier@users.labs.libre-entreprise.org 25 Sep '08
25 Sep '08
Author: chatellier
Date: 2008-09-25 09:29:49 +0000 (Thu, 25 Sep 2008)
New Revision: 97
Modified:
lutinmatrix/trunk/src/site/site.xml
Log:
Skin version stable
Modified: lutinmatrix/trunk/src/site/site.xml
===================================================================
--- lutinmatrix/trunk/src/site/site.xml 2008-09-25 09:15:19 UTC (rev 96)
+++ lutinmatrix/trunk/src/site/site.xml 2008-09-25 09:29:49 UTC (rev 97)
@@ -5,7 +5,7 @@
<groupId>org.codelutin</groupId>
<artifactId>maven-lutin-skin</artifactId>
<version>0.2</version>
- </skin>
+ </skin>
<bannerLeft>
<name>Lutin Matrix</name>
1
0
[Lutinmatrix-commits] r96 - lutinmatrix/trunk/src/site
by chatellier@users.labs.libre-entreprise.org 25 Sep '08
by chatellier@users.labs.libre-entreprise.org 25 Sep '08
25 Sep '08
Author: chatellier
Date: 2008-09-25 09:15:19 +0000 (Thu, 25 Sep 2008)
New Revision: 96
Modified:
lutinmatrix/trunk/src/site/site.xml
Log:
Skin version stable
Modified: lutinmatrix/trunk/src/site/site.xml
===================================================================
--- lutinmatrix/trunk/src/site/site.xml 2008-09-24 16:33:10 UTC (rev 95)
+++ lutinmatrix/trunk/src/site/site.xml 2008-09-25 09:15:19 UTC (rev 96)
@@ -4,7 +4,7 @@
<skin>
<groupId>org.codelutin</groupId>
<artifactId>maven-lutin-skin</artifactId>
- <version>0.2-SNAPSHOT</version>
+ <version>0.2</version>
</skin>
<bannerLeft>
1
0