Author: bpoussin Date: 2014-07-07 18:53:07 +0200 (Mon, 07 Jul 2014) New Revision: 4030 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/4030 Log: use new sparse matrix use new IteratorNotZero when possible Modified: trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java trunk/src/main/java/fr/ifremer/isisfish/aspect/TraceAspect.java trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultDatabaseStorage.java trunk/src/main/java/fr/ifremer/isisfish/simulator/PopulationMonitor.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/check/CheckRegion.java Modified: trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2014-07-01 15:33:08 UTC (rev 4029) +++ trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2014-07-07 16:53:07 UTC (rev 4030) @@ -54,7 +54,6 @@ import fr.ifremer.isisfish.actions.OtherAction; import fr.ifremer.isisfish.actions.SimulationAction; import fr.ifremer.isisfish.actions.VCSAction; -import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.simulator.SimulationControl; import fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher; @@ -64,8 +63,7 @@ import fr.ifremer.isisfish.util.IsisCacheBackend; import fr.ifremer.isisfish.util.IsisCacheBackendOnGuava; import fr.ifremer.isisfish.vcs.VCS; -import org.nuiton.config.OverwriteApplicationConfig; -import org.nuiton.math.matrix.DoubleVector; +import org.nuiton.math.matrix.DoubleSparseHashVector; /** * Isis fish configuration. @@ -1083,7 +1081,7 @@ // pour les simulations SIMULATION_MATRIX_VECTOR_CLASS("simulation.matrix.vector.class", n("isisfish.config.simulation.matrix.vector.class.description"), DoubleBigVector.class.getName()), - SIMULATION_MATRIX_VECTOR_SPARSE_CLASS("simulation.matrix.vector.sparse.class", n("isisfish.config.simulation.matrix.vector.sparse.class.description"), DoubleVector.class.getName()), + SIMULATION_MATRIX_VECTOR_SPARSE_CLASS("simulation.matrix.vector.sparse.class", n("isisfish.config.simulation.matrix.vector.sparse.class.description"), DoubleSparseHashVector.class.getName()), SIMULATION_MATRIX_THRESHOLD_USE_SPARSE_CLASS("simulation.matrix.threshold.use.sparse.class", n("isisfish.config.simulation.matrix.threshold.use.sparse.class.description"), "1000"), SIMULATION_STORE_RESULT_ON_DISK("simulation.store.result.ondisk", n("isisfish.config.simulation.store.result.ondisk.description"), "-1"), SIMULATION_STORE_RESULT_CACHE_STEP("simulation.store.result.cachestep", n("isisfish.config.simulation.store.result.cachestep.description"), "13"), Modified: trunk/src/main/java/fr/ifremer/isisfish/aspect/TraceAspect.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/aspect/TraceAspect.java 2014-07-01 15:33:08 UTC (rev 4029) +++ trunk/src/main/java/fr/ifremer/isisfish/aspect/TraceAspect.java 2014-07-07 16:53:07 UTC (rev 4030) @@ -76,8 +76,6 @@ } @Before("execution(* scripts..*(..))" - + " || execution(* fr.ifremer.isisfish.entities..*(..))" - + " || execution(* org.nuiton.math.matrix..*(..))" + " || execution(* simulators..*(..))" + " || execution(* rules..*(..)) " + " || execution(* simulationplans..*(..)) " @@ -88,8 +86,6 @@ @AfterThrowing(throwing = "ex", pointcut = "execution(* scripts..*(..))" - + " || execution(* fr.ifremer.isisfish.entities..*(..))" - + " || execution(* org.nuiton.math.matrix..*(..))" + " || execution(* simulators..*(..))" + " || execution(* rules..*(..)) " + " || execution(* simulationplans..*(..)) " @@ -100,8 +96,6 @@ } @After("execution(* scripts..*(..))" - + " || execution(* fr.ifremer.isisfish.entities..*(..))" - + " || execution(* org.nuiton.math.matrix..*(..))" + " || execution(* simulators..*(..))" + " || execution(* rules..*(..)) " + " || execution(* simulationplans..*(..)) " Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultDatabaseStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultDatabaseStorage.java 2014-07-01 15:33:08 UTC (rev 4029) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultDatabaseStorage.java 2014-07-07 16:53:07 UTC (rev 4030) @@ -761,7 +761,7 @@ // mettre la matrice MatrixND submat = resultMat.getSubMatrix(0, d, 1); // on met les valeur de mat dans la sous matrice extraite - for (MatrixIterator mi = mat.iterator(); mi.next();) { + for (MatrixIterator mi = mat.iteratorNotZero(); mi.next();) { submat.setValue( ArrayUtil.concat(new Object[] { d }, mi.getSemanticsCoordinates()), mi.getValue()); Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/PopulationMonitor.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/PopulationMonitor.java 2014-07-01 15:33:08 UTC (rev 4029) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/PopulationMonitor.java 2014-07-07 16:53:07 UTC (rev 4030) @@ -138,7 +138,7 @@ MatrixND n = getN(pop); if (n != null) { n = n.sumOverDim(1); - for (MatrixIterator i = n.iterator(); i.next();) { + for (MatrixIterator i = n.iteratorNotZero(); i.next();) { Object[] coord = i.getSemanticsCoordinates(); PopulationGroup group = (PopulationGroup) coord[0]; result += i.getValue() * group.getMeanWeight(); @@ -204,7 +204,7 @@ log.trace("Matrix repro before mortality: " + reproduction); } - for (MatrixIterator mi = reproduction.iterator(); mi.next();) { + for (MatrixIterator mi = reproduction.iteratorNotZero(); mi.next();) { Object[] sems = mi.getSemanticsCoordinates(); Zone z = (Zone) sems[0]; double coeff = pop.getNaturalDeathBirth(z); @@ -343,7 +343,7 @@ for (MatrixIterator i = catchPerStrategyMet.iterator(); i.next();) { this.totalHoldCatch += i.getValue(); } - + // this.totalHoldCatch += catchPerStrategyMet.sumAll(); } /** Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/check/CheckRegion.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/check/CheckRegion.java 2014-07-01 15:33:08 UTC (rev 4029) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/check/CheckRegion.java 2014-07-07 16:53:07 UTC (rev 4030) @@ -168,8 +168,8 @@ static public boolean isNullMatrix(MatrixND mat) { boolean result = true; if (mat != null) { - for (MatrixIterator i = mat.iterator(); result && i.next();) { - result = i.getValue() == 0; + for (MatrixIterator i = mat.iteratorNotZero(); result && i.next();) { + result = false; } } return result; @@ -184,10 +184,7 @@ } static public double sumMatrix(MatrixND mat) { - double result = 0; - for (MatrixIterator i = mat.iterator(); i.next();) { - result += i.getValue(); - } + double result = mat.sumAll(); return result; }