]> SALOME platform Git repositories - modules/adao.git/commitdiff
Salome HOME
Minor source review update for type compatibilities and test update
authorJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Mon, 24 Jun 2024 07:01:52 +0000 (09:01 +0200)
committerJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Mon, 24 Jun 2024 07:01:52 +0000 (09:01 +0200)
src/daComposant/daCore/BasicObjects.py
src/daComposant/daCore/NumericObjects.py
src/daComposant/daCore/Persistence.py
src/daComposant/daNumerics/pst4mod/modelica_calibration/case.py
test/test6905/test001_ADAO_Elementary_Blue_tui.py
test/test6905/test001_ADAO_External_variables_Blue_tui.py
test/test6905/test002_ADAO_Elementary_3DVAR_tui.py
test/test6905/test002_ADAO_External_variables_3DVAR_tui.py
test/test6905/test020_ADAO_Elementary_GradientTest_tui.py

index 838cb1dd7bbdd5939c6f8feab97ddad63c30b8f9..03cfe56904962bb37f57869f4d7d1b09565d93db 100644 (file)
@@ -2387,7 +2387,10 @@ class Covariance(object):
 
     def __repr__(self):
         "x.__repr__() <==> repr(x)"
-        return repr(self.__C)
+        if isinstance(self.__C, numpy.float64):
+            return repr(float(self.__C))
+        else:
+            return repr(self.__C)
 
     def __str__(self):
         "x.__str__() <==> str(x)"
index dc72f85503c6b3f5592fb7e5cc62f0cfb133df82..5903cddbced50da59c738fa77ad20e791ad116ec 100644 (file)
@@ -25,7 +25,8 @@ __doc__ = """
 """
 __author__ = "Jean-Philippe ARGAUD"
 
-import os, copy, types, sys, logging, math, numpy, scipy, itertools
+import os, copy, types, sys, logging, math, numpy, scipy, itertools, warnings
+import scipy.linalg  # Py3.6
 from daCore.BasicObjects import Operator, Covariance, PartialAlgorithm
 from daCore.PlatformInfo import PlatformInfo, vt, vfloat
 mpr = PlatformInfo().MachinePrecision()
@@ -643,7 +644,6 @@ def EnsembleErrorCovariance( __Ensemble, __Quick = False ):
 def SingularValuesEstimation( __Ensemble, __Using = "SVDVALS"):
     "Renvoie les valeurs singulières de l'ensemble et leur carré"
     if __Using == "SVDVALS":  # Recommandé
-        import scipy
         __sv   = scipy.linalg.svdvals( __Ensemble )
         __svsq = __sv**2
     elif __Using == "SVD":
@@ -1385,7 +1385,6 @@ def BuildComplexSampleList(
         sampleList = itertools.product(*coordinatesList)
     # ---------------------------
     elif len(__SampleAsMinMaxLatinHyperCube) > 0:
-        import scipy, warnings
         if vt(scipy.version.version) <= vt("1.7.0"):
             __msg = "In order to use Latin Hypercube sampling, you must at least use Scipy version 1.7.0 (and you are presently using Scipy %s). A void sample is then generated."%scipy.version.version
             warnings.warn(__msg, FutureWarning, stacklevel=50)
@@ -1404,7 +1403,6 @@ def BuildComplexSampleList(
             sampleList = scipy.stats.qmc.scale(__sample, __l_bounds, __u_bounds)
     # ---------------------------
     elif len(__SampleAsMinMaxSobolSequence) > 0:
-        import scipy, warnings
         if vt(scipy.version.version) <= vt("1.7.0"):
             __msg = "In order to use Latin Hypercube sampling, you must at least use Scipy version 1.7.0 (and you are presently using Scipy %s). A void sample is then generated."%scipy.version.version
             warnings.warn(__msg, FutureWarning, stacklevel=50)
index 588465ea5666e6cf9759f6a5f1c477c638df1955..29d7f71f5e961810f2468e8f9cd0cbc585ee3e9d 100644 (file)
@@ -300,7 +300,7 @@ class Persistence(object):
             __sr = [numpy.mean(item, dtype=mfp).astype('float') for item in self.__values]
         except Exception:
             raise TypeError("Base type is incompatible with numpy")
-        return( numpy.array(__sr).tolist() )
+        return numpy.array(__sr).tolist()
 
     def stds(self, ddof=0):
         """
@@ -318,7 +318,7 @@ class Persistence(object):
                 return [numpy.array(item).std(dtype=mfp).astype('float') for item in self.__values]
         except Exception:
             raise TypeError("Base type is incompatible with numpy")
-        return( numpy.array(__sr).tolist() )
+        return numpy.array(__sr).tolist()
 
     def sums(self):
         """
@@ -330,7 +330,7 @@ class Persistence(object):
             __sr = [numpy.array(item).sum() for item in self.__values]
         except Exception:
             raise TypeError("Base type is incompatible with numpy")
-        return( numpy.array(__sr).tolist() )
+        return numpy.array(__sr).tolist()
 
     def mins(self):
         """
@@ -342,7 +342,7 @@ class Persistence(object):
             __sr = [numpy.array(item).min() for item in self.__values]
         except Exception:
             raise TypeError("Base type is incompatible with numpy")
-        return( numpy.array(__sr).tolist() )
+        return numpy.array(__sr).tolist()
 
     def maxs(self):
         """
@@ -354,7 +354,7 @@ class Persistence(object):
             __sr = [numpy.array(item).max() for item in self.__values]
         except Exception:
             raise TypeError("Base type is incompatible with numpy")
-        return( numpy.array(__sr).tolist() )
+        return numpy.array(__sr).tolist()
 
     def powers(self, x2):
         """
@@ -366,7 +366,7 @@ class Persistence(object):
             __sr = [numpy.power(item, x2) for item in self.__values]
         except Exception:
             raise TypeError("Base type is incompatible with numpy")
-        return( numpy.array(__sr).tolist() )
+        return numpy.array(__sr).tolist()
 
     def norms(self, _ord=None):
         """
@@ -380,7 +380,7 @@ class Persistence(object):
             __sr = [numpy.linalg.norm(item, _ord) for item in self.__values]
         except Exception:
             raise TypeError("Base type is incompatible with numpy")
-        return( numpy.array(__sr).tolist() )
+        return numpy.array(__sr).tolist()
 
     def traces(self, offset=0):
         """
@@ -394,7 +394,7 @@ class Persistence(object):
             __sr = [numpy.trace(item, offset, dtype=mfp).astype('float') for item in self.__values]
         except Exception:
             raise TypeError("Base type is incompatible with numpy")
-        return( numpy.array(__sr).tolist() )
+        return numpy.array(__sr).tolist()
 
     def maes(self, _predictor=None):
         """
@@ -422,7 +422,7 @@ class Persistence(object):
                 __sr = [numpy.mean(numpy.abs(numpy.ravel(item) - numpy.ravel(_predictor[i]))) for i, item in enumerate(self.__values)]
             except Exception:
                 raise TypeError("Base type is incompatible with numpy")
-        return( numpy.array(__sr).tolist() )
+        return numpy.array(__sr).tolist()
 
     def mses(self, _predictor=None):
         """
@@ -452,7 +452,7 @@ class Persistence(object):
                 __sr = [(numpy.linalg.norm(numpy.ravel(item) - numpy.ravel(_predictor[i]))**2 / __n) for i, item in enumerate(self.__values)]
             except Exception:
                 raise TypeError("Base type is incompatible with numpy")
-        return( numpy.array(__sr).tolist() )
+        return numpy.array(__sr).tolist()
 
     msds = mses  # Mean-Square Deviation (MSD=MSE)
 
@@ -484,7 +484,7 @@ class Persistence(object):
                 __sr = [(numpy.linalg.norm(numpy.ravel(item) - numpy.ravel(_predictor[i])) / math.sqrt(__n)) for i, item in enumerate(self.__values)]
             except Exception:
                 raise TypeError("Base type is incompatible with numpy")
-        return( numpy.array(__sr).tolist() )
+        return numpy.array(__sr).tolist()
 
     rmsds = rmses  # Root-Mean-Square Deviation (RMSD=RMSE)
 
index 65b921c7d2acc5b3b8870679ac7f901b5be288c2..f605b9eeeab546da0aa4eefb6e275da808ee7560 100644 (file)
@@ -430,7 +430,12 @@ class Calibration(object):
             if "MaximumNumberOfSteps" in Params:
                 print("  [VERBOSE] Maximum possible number of iteration:",Params['MaximumNumberOfSteps'])
             print("  [VERBOSE] Background read:",Background)
-            print("  [VERBOSE] Bounds read:",Params['Bounds'])
+            __v = Params['Bounds']
+            if isinstance(__v, (numpy.ndarray, numpy.matrix, list, tuple)):
+                __v = numpy.array(__v).astype('float')
+                __v = numpy.where(numpy.isnan(__v), None, __v)
+                __v = __v.tolist()
+            print("  [VERBOSE] Bounds read:",__v)
         #
         if "DifferentialIncrement" not in Params:
             Params["DifferentialIncrement"] = 0.001
@@ -662,7 +667,12 @@ class Calibration(object):
             print("  [VERBOSE] Links read")
             print("  [VERBOSE] Optimization information read")
             print("  [VERBOSE] Background read:",Background)
-            print("  [VERBOSE] Bounds read:",Params['Bounds'])
+            __v = Params['Bounds']
+            if isinstance(__v, (numpy.ndarray, numpy.matrix, list, tuple)):
+                __v = numpy.array(__v).astype('float')
+                __v = numpy.where(numpy.isnan(__v), None, __v)
+                __v = __v.tolist()
+            print("  [VERBOSE] Bounds read:",__v)
         #
         if "DifferentialIncrement" not in Params:
             Params["DifferentialIncrement"] = 0.001
@@ -1921,7 +1931,14 @@ def _saveResults(__resultats, __filename=None, __level=None, __format="Guess", _
         keys = list(__resultats.keys())
         keys.sort()
         for k in keys:
-            output.append("%18s = %s"%(k,tuple(__resultats[k])))
+            __v = __resultats[k]
+            if isinstance(__v, numpy.matrix):  # no1
+                __v = __v.astype('float').tolist()
+            elif isinstance(__v, numpy.ndarray):  # no2
+                __v = tuple(__v.astype('float').tolist())
+            else:
+                __v = tuple(__v)
+            output.append("%22s = %s"%(k,__v))
         output.append("")
         with open(__filename, 'w') as fid:
             fid.write( "\n".join(output) )
@@ -1932,7 +1949,14 @@ def _saveResults(__resultats, __filename=None, __level=None, __format="Guess", _
         keys = list(__resultats.keys())
         keys.sort()
         for k in keys:
-            output.append("%s = %s"%(k,tuple(__resultats[k])))
+            __v = __resultats[k]
+            if isinstance(__v, numpy.matrix):  # no1
+                __v = __v.astype('float').tolist()
+            elif isinstance(__v, numpy.ndarray):  # no2
+                __v = tuple(__v.astype('float').tolist())
+            else:
+                __v = tuple(__v)
+            output.append("%s = %s"%(k,__v))
         output.append("")
         with open(__filename, 'w') as fid:
             fid.write( "\n".join(output) )
@@ -1949,7 +1973,14 @@ def _saveResults(__resultats, __filename=None, __level=None, __format="Guess", _
         keys = list(__resultats.keys())
         keys.sort()
         for k in keys:
-            output.append("%18s = %s"%(k,tuple(__resultats[k])))
+            __v = __resultats[k]
+            if isinstance(__v, numpy.matrix):  # no1
+                __v = __v.astype('float').tolist()
+            elif isinstance(__v, numpy.ndarray):  # no2
+                __v = tuple(__v.astype('float').tolist())
+            else:
+                __v = tuple(__v)
+            output.append("%22s = %s"%(k,__v))
         output.append("")
         print( "\n".join(output) )
     #---------------------------------------------
index 2a5c06a09af631c9a0a14879f0a8154ae1fa348a..0fd9c61b58f332d9f8ddf97154979eab1d24a65d 100644 (file)
@@ -2,6 +2,7 @@
 #
 # Python script using ADAO TUI
 #
+import numpy as np
 from numpy import array, matrix
 from adao import adaoBuilder
 case = adaoBuilder.New('')
index f6a95fb9c651d9a7b5573d425032e797f9f947f0..f302bdb14e12084db4746575e99f08ebe2e70c9c 100644 (file)
@@ -2,6 +2,7 @@
 #
 # Python script using ADAO TUI
 #
+import numpy as np
 from numpy import array, matrix
 from adao import adaoBuilder
 case = adaoBuilder.New('')
index 9afb34336ebfe33c1707c8d865755bec889e6eeb..d2528057ce4451f57d9ad5bafe83f92e12fb34b0 100644 (file)
@@ -2,6 +2,7 @@
 #
 # Python script using ADAO TUI
 #
+import numpy as np
 from numpy import array, matrix
 from adao import adaoBuilder
 case = adaoBuilder.New('')
index 36b5eba84284333ce93d94342e68ad96529f64b5..fffdb3ca2cba18bd343e83bb95619372312a24b3 100644 (file)
@@ -2,6 +2,7 @@
 #
 # Python script using ADAO TUI
 #
+import numpy as np
 from numpy import array, matrix
 from adao import adaoBuilder
 case = adaoBuilder.New('')
index 4b1b49cb74df5d3a887d8ebd2c8d680b276a0196..618f326e186cd7a0e5379640c037b5ae8d84cf1d 100644 (file)
@@ -2,6 +2,7 @@
 #
 # Python script using ADAO TUI
 #
+import numpy as np
 from numpy import array, matrix
 from adao import adaoBuilder
 case = adaoBuilder.New('')