]> SALOME platform Git repositories - modules/adao.git/commitdiff
Salome HOME
Simplifying debug function calls informations
authorJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Thu, 3 Apr 2014 09:25:53 +0000 (11:25 +0200)
committerJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Thu, 3 Apr 2014 09:25:53 +0000 (11:25 +0200)
17 files changed:
src/daComposant/daAlgorithms/3DVAR.py
src/daComposant/daAlgorithms/AdjointTest.py
src/daComposant/daAlgorithms/Blue.py
src/daComposant/daAlgorithms/EnsembleBlue.py
src/daComposant/daAlgorithms/ExtendedBlue.py
src/daComposant/daAlgorithms/ExtendedKalmanFilter.py
src/daComposant/daAlgorithms/FunctionTest.py
src/daComposant/daAlgorithms/GradientTest.py
src/daComposant/daAlgorithms/KalmanFilter.py
src/daComposant/daAlgorithms/LinearLeastSquares.py
src/daComposant/daAlgorithms/LinearityTest.py
src/daComposant/daAlgorithms/NonLinearLeastSquares.py
src/daComposant/daAlgorithms/ParticleSwarmOptimization.py
src/daComposant/daAlgorithms/QuantileRegression.py
src/daComposant/daAlgorithms/UnscentedKalmanFilter.py
src/daComposant/daCore/BasicObjects.py
src/daComposant/daNumerics/ApproximatedDerivatives.py

index c6818eb64067b4ea9989cb8abee5a569e5259e3a..987b8b20d580d1c17d51714dc5cb068243e97edb 100644 (file)
@@ -339,7 +339,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
                 else:          YQ = numpy.hstack((YQ,YfQ[:,indice]))
             self.StoredVariables["SimulationQuantiles"].store( YQ )
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index 44536227381916a15c822e3addda4936513a7642..245f5a9a600d14ed615b8b71dca588e17d4707a9 100644 (file)
@@ -156,7 +156,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
         print "Results of adjoint check by \"%s\" formula:"%self._parameters["ResiduFormula"]
         print msgs
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index c0db4b89f6795b166a086d51af146fada2b47b1d..69a93f99fb6edadc127b9fd270ef0afda4c712b1 100644 (file)
@@ -200,7 +200,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
                 else:          YQ = numpy.hstack((YQ,YfQ[:,indice]))
             self.StoredVariables["SimulationQuantiles"].store( YQ )
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index 890632126ea15037c32658b8caadebf149c19eca..df8d7c0cf85d23fd92bdc728d39550b3c4f63b3b 100644 (file)
@@ -90,7 +90,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
         Xa = numpy.matrix( Members ).mean(axis=0)
         self.StoredVariables["Analysis"].store( Xa.A1 )
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         return 0
index 894ead8492574c5999f74c72b73d734a110051ae..44cdf15ed91b7ce108af0d21cb47e5beb2bfd047 100644 (file)
@@ -206,7 +206,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
                 else:          YQ = numpy.hstack((YQ,YfQ[:,indice]))
             self.StoredVariables["SimulationQuantiles"].store( YQ )
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index 49ae71bae3c98683e2f2d95b9a911ae44b5765e0..9998a6e454dfac49fb7d4a38167aaafa85b172f0 100644 (file)
@@ -200,7 +200,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
         if "BMA" in self._parameters["StoreSupplementaryCalculations"]:
             self.StoredVariables["BMA"].store( numpy.ravel(Xb) - numpy.ravel(Xa) )
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index 141ed345fd2a41c9de0e815cc0c5fbdb1fe069e4..f1bc62dd81c07319bdc60e0d78acc68c112abfeb 100644 (file)
@@ -150,7 +150,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
             msg += ("\n     %s\n"%("-"*75,))
             print(msg)
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index f668210d4cdaa02243b8a7f7f65db8d160011b12..d50e48576fe7c7c69282c6a77b836eff0bc678ad 100644 (file)
@@ -260,7 +260,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
                     filename = str(self._parameters["ResultFile"])+".ps",
                     )
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index 754b7720b700500a1932c8330fc0c436923ba27c..140ebaef50b48b8a8ab3f9fbbb325d30d45972bd 100644 (file)
@@ -175,7 +175,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
         if "BMA" in self._parameters["StoreSupplementaryCalculations"]:
             self.StoredVariables["BMA"].store( numpy.ravel(Xb) - numpy.ravel(Xa) )
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index 38eb83a3377dba34d64342548fb483cfa01f1b9f..810dc41c819998ca15efd317dea52ba63602d1dd 100644 (file)
@@ -83,7 +83,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
         if "OMA" in self._parameters["StoreSupplementaryCalculations"]:
             self.StoredVariables["OMA"].store( numpy.ravel(oma) )
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index 27dc0d984561abdd048dd1504b8814e20694015c..793ce646bf81b8e2b1e3bc0d1a31f120df190163 100644 (file)
@@ -285,7 +285,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
         print "Results of linearity check by \"%s\" formula:"%self._parameters["ResiduFormula"]
         print msgs
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index ed1bc5e209688e0b7f2b51205dddaf2e8cef6762..ec92dbc85fe59af57d3d12ecdd1d9ad3c64fcff1 100644 (file)
@@ -287,7 +287,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
         if "OMB" in self._parameters["StoreSupplementaryCalculations"]:
             self.StoredVariables["OMB"].store( numpy.ravel(d) )
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index 43fbba6b0fdb9a543241a0e159abd8893f393bb1..26faf0097965e7c2e8e2557cf4ed31a2bfa343a4 100644 (file)
@@ -234,7 +234,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
         if "OMB" in self._parameters["StoreSupplementaryCalculations"]:
             self.StoredVariables["OMB"].store( numpy.ravel(d) )
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index 59eba1856dd92104c8d0111b8da3af64a94c43a3..4629879eceb5749dd31c323323d9e3cbcf3f3ad2 100644 (file)
@@ -169,7 +169,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
         if "OMB" in self._parameters["StoreSupplementaryCalculations"]:
             self.StoredVariables["OMB"].store( numpy.ravel(d) )
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index ffc173931a070d39d69acea105acb059225fc7db..27a18c5e0dc367125404559c6605411c889f8c46 100644 (file)
@@ -296,7 +296,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
         if "BMA" in self._parameters["StoreSupplementaryCalculations"]:
             self.StoredVariables["BMA"].store( numpy.ravel(Xb) - numpy.ravel(Xa) )
         #
-        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls()[0],HO["Tangent"].nbcalls()[0],HO["Adjoint"].nbcalls()[0]))
+        logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint : %i/%i/%i"%(self._name, HO["Direct"].nbcalls(0),HO["Tangent"].nbcalls(0),HO["Adjoint"].nbcalls(0)))
         logging.debug("%s Taille mémoire utilisée de %.1f Mo"%(self._name, m.getUsedMemory("M")))
         logging.debug("%s Terminé"%self._name)
         #
index 61e569e9684d9fc8edeecc21b198c0010b89211f..c9ec360170f742db9e28f220e66e89dbdbb3690c 100644 (file)
@@ -37,6 +37,9 @@ class Operator:
     """
     Classe générale d'interface de type opérateur
     """
+    NbCallsAsMatrix = 0
+    NbCallsAsMethod = 0
+    #
     def __init__(self, fromMethod=None, fromMatrix=None):
         """
         On construit un objet de ce type en fournissant à l'aide de l'un des
@@ -71,10 +74,10 @@ class Operator:
         - xValue : argument adapté pour appliquer l'opérateur
         """
         if self.__Matrix is not None:
-            self.__NbCallsAsMatrix += 1
+            self.__addOneMatrixCall()
             return self.__Matrix * xValue
         else:
-            self.__NbCallsAsMethod += 1
+            self.__addOneMethodCall()
             return self.__Method( xValue )
 
     def appliedControledFormTo(self, (xValue, uValue) ):
@@ -88,13 +91,13 @@ class Operator:
         - uValue : argument U adapté pour appliquer l'opérateur
         """
         if self.__Matrix is not None:
-            self.__NbCallsAsMatrix += 1
+            self.__addOneMatrixCall()
             return self.__Matrix * xValue
         elif uValue is not None:
-            self.__NbCallsAsMethod += 1
+            self.__addOneMethodCall()
             return self.__Method( (xValue, uValue) )
         else:
-            self.__NbCallsAsMethod += 1
+            self.__addOneMethodCall()
             return self.__Method( xValue )
 
     def appliedInXTo(self, (xNominal, xValue) ):
@@ -111,10 +114,10 @@ class Operator:
         - xValue : argument adapté pour appliquer l'opérateur
         """
         if self.__Matrix is not None:
-            self.__NbCallsAsMatrix += 1
+            self.__addOneMatrixCall()
             return self.__Matrix * xValue
         else:
-            self.__NbCallsAsMethod += 1
+            self.__addOneMethodCall()
             return self.__Method( (xNominal, xValue) )
 
     def asMatrix(self, ValueForMethodForm = "UnknownVoidValue"):
@@ -122,10 +125,10 @@ class Operator:
         Permet de renvoyer l'opérateur sous la forme d'une matrice
         """
         if self.__Matrix is not None:
-            self.__NbCallsAsMatrix += 1
+            self.__addOneMatrixCall()
             return self.__Matrix
         elif ValueForMethodForm is not "UnknownVoidValue": # Ne pas utiliser "None"
-            self.__NbCallsAsMethod += 1
+            self.__addOneMethodCall()
             return numpy.matrix( self.__Method( (ValueForMethodForm, None) ) )
         else:
             raise ValueError("Matrix form of the operator defined as a function/method requires to give an operating point.")
@@ -140,11 +143,28 @@ class Operator:
         else:
             raise ValueError("Matrix form of the operator is not available, nor the shape")
 
-    def nbcalls(self):
-        """
-        Renvoie le nombre d'évaluations de l'opérateurs (total, matrice, méthode)
-        """
-        return (self.__NbCallsAsMatrix+self.__NbCallsAsMethod,self.__NbCallsAsMatrix,self.__NbCallsAsMethod)
+    def nbcalls(self, which=None):
+        """
+        Renvoie les nombres d'évaluations de l'opérateur
+        """
+        __nbcalls = (
+            self.__NbCallsAsMatrix+self.__NbCallsAsMethod,
+            self.__NbCallsAsMatrix,
+            self.__NbCallsAsMethod,
+            Operator.NbCallsAsMatrix+Operator.NbCallsAsMethod,
+            Operator.NbCallsAsMatrix,
+            Operator.NbCallsAsMethod,
+            )
+        if which is None: return __nbcalls
+        else:             return __nbcalls[which]
+
+    def __addOneMatrixCall(self):
+        self.__NbCallsAsMatrix   += 1 # Decompte local
+        Operator.NbCallsAsMatrix += 1 # Decompte global
+
+    def __addOneMethodCall(self):
+        self.__NbCallsAsMethod   += 1 # Decompte local
+        Operator.NbCallsAsMethod += 1 # Decompte global
 
 # ==============================================================================
 class Algorithm:
index bdf9d862e55bfca071766fd037a646f1f4b7862c..9730d4499fe07ec415a07769e756ccf8c44035d0 100644 (file)
@@ -1,24 +1,24 @@
 #-*-coding:iso-8859-1-*-
 #
-# Copyright (C) 2008-2013 EDF R&D
+#  Copyright (C) 2008-2014 EDF R&D
 #
-# This library 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 2.1 of the License.
+#  This library 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 2.1 of the License.
 #
-# This library 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
-# Lesser General Public License for more details.
+#  This library 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
+#  Lesser General Public License for more details.
 #
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 #
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
-# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
+#  Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
 
 __doc__ = """
     Définit les versions approximées des opérateurs tangents et adjoints.