From 137d53f6085186f8714891fec22f42b758a7b1fa Mon Sep 17 00:00:00 2001 From: Jacob Bryan Date: Mon, 10 Jul 2023 14:57:39 -0600 Subject: [PATCH] Implements data transformations in TSA module (#2121) * Adds scikit-learn data transformations to TSA module * adds the test XML file * adds masking transforms, facilitates common FunctionTransformers, and adds the ability to use custom transformers from a separate python file * refactored to use statsmodels OLS for better handling of missing values * reworks handling data with missing values * removes excess whitespace * updates documentation to include TSA.Transformer class * regolded due to change in regression solver used in TSA.Fourier * adds docstrings * reworks TimeSeriesAnalyzer inheritance structure, adds transformer base classes, makes transformer XML tags explicit * regold to reflect change in transformers XML * WIP unit testing for TSA transformers * simplifies inheritance requirements for ARMA and RWD * minor fixes and additions * minor fix in generation step * reverts RWD to being a characterizer only * TSA README * makes scikit-learn wrappers abstract classes and makes it so abstract classes are not included in User Manual * updates documentation for TSA module * makes docstrings compliant with RAVEN standard * reduces the number of time steps for ARMA and LogARMA tests and regolds * makes TSA.ARMA a transformer * more docstring fixes * removes algorithms Venn diagram * adds updated algorithm Venn diagram * replaces the algorithms Venn diagram with a table in the README file * missing comma in array index * fix for masking in ARMA * regold due to new solver used in Fourier fit * changes gold file for Basic test for mac --- doc/user_manual/generated/internalRom.tex | 300 +++-- .../Models/PostProcessors/TSACharacterizer.py | 2 + ravenframework/TSA/ARMA.py | 79 +- ravenframework/TSA/Factory.py | 15 +- ravenframework/TSA/Fourier.py | 97 +- ravenframework/TSA/PolynomialRegression.py | 41 +- ravenframework/TSA/README.md | 58 + ravenframework/TSA/RWD.py | 35 +- ravenframework/TSA/TSAUser.py | 46 +- ravenframework/TSA/TimeSeriesAnalyzer.py | 232 ++-- ravenframework/TSA/Transformers/Filters.py | 136 ++ .../TSA/Transformers/FunctionTransformers.py | 161 +++ .../TSA/Transformers/Normalizers.py | 163 +++ .../TSA/Transformers/ScikitLearnBase.py | 162 +++ ravenframework/TSA/Transformers/__init__.py | 26 + ravenframework/TSA/Wavelet.py | 43 +- ravenframework/TSA/__init__.py | 4 + .../TSACharacterizer/gold/Basic/chz.csv | 4 +- .../gold/Basic/windowsChz.csv | 3 + .../PostProcessors/TSACharacterizer/tests | 12 +- .../TrainingData/ARMA_A_0.csv | 1100 ++--------------- .../SyntheticHistory/TrainingData/LogARMA.csv | 2 + .../TrainingData/LogARMA_0.csv | 101 ++ .../TrainingData/generateARMA.py | 2 +- .../TrainingData/generateLogARMA.py | 22 + .../gold/ARMA/pk_samples_0.csv | 1100 ++--------------- .../gold/ARMA/pk_samples_1.csv | 1100 ++--------------- .../SyntheticHistory/gold/ARMA/romMeta.xml | 28 +- .../SyntheticHistory/gold/ARMA/samples_0.csv | 1100 ++--------------- .../SyntheticHistory/gold/ARMA/samples_1.csv | 1100 ++--------------- .../gold/CustomTransformer/romMeta.xml | 35 + .../gold/CustomTransformer/samples_0.csv | 1001 +++++++++++++++ .../gold/CustomTransformer/samples_1.csv | 1001 +++++++++++++++ .../SyntheticHistory/gold/LogARMA/romMeta.xml | 33 + .../gold/LogARMA/samples_0.csv | 101 ++ .../gold/LogARMA/samples_1.csv | 101 ++ .../gold/ZeroFilterDiscontinuous/romMeta.xml | 134 ++ .../TimeSeries/SyntheticHistory/log_arma.xml | 104 ++ .../ROM/TimeSeries/SyntheticHistory/tests | 27 + .../zero_filter_discontinuous.xml | 125 ++ tests/framework/unit_tests/TSA/testARMA.py | 4 +- tests/framework/unit_tests/TSA/testFilters.py | 171 +++ tests/framework/unit_tests/TSA/testFourier.py | 9 +- .../TSA/testFunctionTransformers.py | 266 ++++ .../unit_tests/TSA/testNormalization.py | 330 +++++ .../unit_tests/TSA/testOutTruncation.py | 191 +++ .../TSA/testPolynomialRegression.py | 9 +- tests/framework/unit_tests/TSA/testWavelet.py | 3 +- tests/framework/unit_tests/TSA/tests | 16 + 49 files changed, 5621 insertions(+), 5314 deletions(-) create mode 100644 ravenframework/TSA/README.md create mode 100644 ravenframework/TSA/Transformers/Filters.py create mode 100644 ravenframework/TSA/Transformers/FunctionTransformers.py create mode 100644 ravenframework/TSA/Transformers/Normalizers.py create mode 100644 ravenframework/TSA/Transformers/ScikitLearnBase.py create mode 100644 ravenframework/TSA/Transformers/__init__.py create mode 100644 tests/framework/PostProcessors/TSACharacterizer/gold/Basic/windowsChz.csv create mode 100644 tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/LogARMA.csv create mode 100644 tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/LogARMA_0.csv create mode 100644 tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/generateLogARMA.py create mode 100644 tests/framework/ROM/TimeSeries/SyntheticHistory/gold/CustomTransformer/romMeta.xml create mode 100644 tests/framework/ROM/TimeSeries/SyntheticHistory/gold/CustomTransformer/samples_0.csv create mode 100644 tests/framework/ROM/TimeSeries/SyntheticHistory/gold/CustomTransformer/samples_1.csv create mode 100644 tests/framework/ROM/TimeSeries/SyntheticHistory/gold/LogARMA/romMeta.xml create mode 100644 tests/framework/ROM/TimeSeries/SyntheticHistory/gold/LogARMA/samples_0.csv create mode 100644 tests/framework/ROM/TimeSeries/SyntheticHistory/gold/LogARMA/samples_1.csv create mode 100644 tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ZeroFilterDiscontinuous/romMeta.xml create mode 100644 tests/framework/ROM/TimeSeries/SyntheticHistory/log_arma.xml create mode 100644 tests/framework/ROM/TimeSeries/SyntheticHistory/zero_filter_discontinuous.xml create mode 100644 tests/framework/unit_tests/TSA/testFilters.py create mode 100644 tests/framework/unit_tests/TSA/testFunctionTransformers.py create mode 100644 tests/framework/unit_tests/TSA/testNormalization.py create mode 100644 tests/framework/unit_tests/TSA/testOutTruncation.py diff --git a/doc/user_manual/generated/internalRom.tex b/doc/user_manual/generated/internalRom.tex index d90dff77a9..5d96b3c143 100644 --- a/doc/user_manual/generated/internalRom.tex +++ b/doc/user_manual/generated/internalRom.tex @@ -58,7 +58,7 @@ \subsubsection{NDspline} wrapped by RFE, and used to help select features. \\RFE works by searching for a subset of features by starting with all features in the training dataset and successfully removing features until the desired number remains. This is achieved by - fitting the given ROME used in the core of the model, ranking features by importance, + fitting the given ROM used in the core of the model, ranking features by importance, discarding the least important features, and re-fitting the model. This process is repeated until a specified number of features remains. When the full model is created, a measure of variable importance is computed that ranks the predictors from @@ -88,7 +88,7 @@ \subsubsection{NDspline} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -154,7 +154,7 @@ \subsubsection{NDspline} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -194,7 +194,7 @@ \subsubsection{NDspline} List of IDs of features/variables to include in the transformation process. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{string}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature? \default{Feature} \end{itemize} @@ -299,7 +299,7 @@ \subsubsection{pickledROM} wrapped by RFE, and used to help select features. \\RFE works by searching for a subset of features by starting with all features in the training dataset and successfully removing features until the desired number remains. This is achieved by - fitting the given ROME used in the core of the model, ranking features by importance, + fitting the given ROM used in the core of the model, ranking features by importance, discarding the least important features, and re-fitting the model. This process is repeated until a specified number of features remains. When the full model is created, a measure of variable importance is computed that ranks the predictors from @@ -329,7 +329,7 @@ \subsubsection{pickledROM} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -395,7 +395,7 @@ \subsubsection{pickledROM} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -435,7 +435,7 @@ \subsubsection{pickledROM} List of IDs of features/variables to include in the transformation process. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{string}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature? \default{Feature} \end{itemize} @@ -645,7 +645,7 @@ \subsubsection{GaussPolynomialRom} wrapped by RFE, and used to help select features. \\RFE works by searching for a subset of features by starting with all features in the training dataset and successfully removing features until the desired number remains. This is achieved by - fitting the given ROME used in the core of the model, ranking features by importance, + fitting the given ROM used in the core of the model, ranking features by importance, discarding the least important features, and re-fitting the model. This process is repeated until a specified number of features remains. When the full model is created, a measure of variable importance is computed that ranks the predictors from @@ -675,7 +675,7 @@ \subsubsection{GaussPolynomialRom} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -741,7 +741,7 @@ \subsubsection{GaussPolynomialRom} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -781,7 +781,7 @@ \subsubsection{GaussPolynomialRom} List of IDs of features/variables to include in the transformation process. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{string}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature? \default{Feature} \end{itemize} @@ -970,7 +970,7 @@ \subsubsection{HDMRRom} wrapped by RFE, and used to help select features. \\RFE works by searching for a subset of features by starting with all features in the training dataset and successfully removing features until the desired number remains. This is achieved by - fitting the given ROME used in the core of the model, ranking features by importance, + fitting the given ROM used in the core of the model, ranking features by importance, discarding the least important features, and re-fitting the model. This process is repeated until a specified number of features remains. When the full model is created, a measure of variable importance is computed that ranks the predictors from @@ -1000,7 +1000,7 @@ \subsubsection{HDMRRom} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -1066,7 +1066,7 @@ \subsubsection{HDMRRom} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -1106,7 +1106,7 @@ \subsubsection{HDMRRom} List of IDs of features/variables to include in the transformation process. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{string}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature? \default{Feature} \end{itemize} @@ -1282,7 +1282,7 @@ \subsubsection{MSR} wrapped by RFE, and used to help select features. \\RFE works by searching for a subset of features by starting with all features in the training dataset and successfully removing features until the desired number remains. This is achieved by - fitting the given ROME used in the core of the model, ranking features by importance, + fitting the given ROM used in the core of the model, ranking features by importance, discarding the least important features, and re-fitting the model. This process is repeated until a specified number of features remains. When the full model is created, a measure of variable importance is computed that ranks the predictors from @@ -1312,7 +1312,7 @@ \subsubsection{MSR} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -1378,7 +1378,7 @@ \subsubsection{MSR} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -1418,7 +1418,7 @@ \subsubsection{MSR} List of IDs of features/variables to include in the transformation process. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{string}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature? \default{Feature} \end{itemize} @@ -1624,7 +1624,7 @@ \subsubsection{NDinvDistWeight} wrapped by RFE, and used to help select features. \\RFE works by searching for a subset of features by starting with all features in the training dataset and successfully removing features until the desired number remains. This is achieved by - fitting the given ROME used in the core of the model, ranking features by importance, + fitting the given ROM used in the core of the model, ranking features by importance, discarding the least important features, and re-fitting the model. This process is repeated until a specified number of features remains. When the full model is created, a measure of variable importance is computed that ranks the predictors from @@ -1654,7 +1654,7 @@ \subsubsection{NDinvDistWeight} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -1720,7 +1720,7 @@ \subsubsection{NDinvDistWeight} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -1760,7 +1760,7 @@ \subsubsection{NDinvDistWeight} List of IDs of features/variables to include in the transformation process. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{string}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature? \default{Feature} \end{itemize} @@ -1873,7 +1873,7 @@ \subsubsection{SyntheticHistory} wrapped by RFE, and used to help select features. \\RFE works by searching for a subset of features by starting with all features in the training dataset and successfully removing features until the desired number remains. This is achieved by - fitting the given ROME used in the core of the model, ranking features by importance, + fitting the given ROM used in the core of the model, ranking features by importance, discarding the least important features, and re-fitting the model. This process is repeated until a specified number of features remains. When the full model is created, a measure of variable importance is computed that ranks the predictors from @@ -1903,7 +1903,7 @@ \subsubsection{SyntheticHistory} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -1969,7 +1969,7 @@ \subsubsection{SyntheticHistory} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -2009,7 +2009,7 @@ \subsubsection{SyntheticHistory} List of IDs of features/variables to include in the transformation process. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{string}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature? \default{Feature} \end{itemize} @@ -2043,24 +2043,40 @@ \subsubsection{SyntheticHistory} etc) used in the input HistorySet. \default{time} - \item \xmlNode{TimeSeriesGenerator}: - Base class for time series analysis algorithms used in RAVEN. - The \xmlNode{TimeSeriesGenerator} node recognizes the following parameters: + \item \xmlNode{arma}: + characterizes the signal using Auto-Regressive and Moving Average coefficients to + stochastically fit the training signal. The ARMA representation has the following + form: \begin{equation*} A\_t = \sum\_{i=1}^P \phi\_i A\_{t-i} + \epsilon\_t + + \sum\_{j=1}^Q \theta\_j \epsilon\_{t-j}, \end{equation*} where $t$ indicates a + discrete time step, $\phi$ are the signal lag (or auto-regressive) coefficients, $P$ + is the number of signal lag terms to consider, $\epsilon$ is a random noise term, + $\theta$ are the noise lag (or moving average) coefficients, and $Q$ is the number of + noise lag terms to consider. The ARMA algorithms are developed in RAVEN using the + \texttt{statsmodels} Python library. + The \xmlNode{arma} node recognizes the following parameters: \begin{itemize} \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, indicates the variables for which this algorithm will be used for characterization. \item \xmlAttr{seed}: \xmlDesc{integer, optional}, sets a seed for the underlying random number generator, if present. + \item \xmlAttr{reduce\_memory}: \xmlDesc{[True, Yes, 1, False, No, 0, t, y, 1, f, n, 0], optional}, + activates a lower memory usage ARMA training. This does tend to result + in a slightly slower training time, at the benefit of lower memory usage. For + example, in one 1000-length history test, low memory reduced memory usage by 2.3 + MiB, but increased training time by 0.4 seconds. No change in results has been + observed switching between modes. Note that the ARMA must be + retrained to change this property; it cannot be applied to serialized ARMAs. \default{False} \end{itemize} - \item \xmlNode{TimeSeriesCharacterizer}: - Base class for time series analysis algorithms used in RAVEN. - The \xmlNode{TimeSeriesCharacterizer} node recognizes the following parameters: - \begin{itemize} - \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, - indicates the variables for which this algorithm will be used for characterization. - \item \xmlAttr{seed}: \xmlDesc{integer, optional}, - sets a seed for the underlying random number generator, if present. + The \xmlNode{arma} node recognizes the following subnodes: + \begin{itemize} + \item \xmlNode{SignalLag}: \xmlDesc{integer}, + the number of terms in the AutoRegressive term to retain in the + regression; typically represented as $P$ in literature. + + \item \xmlNode{NoiseLag}: \xmlDesc{integer}, + the number of terms in the Moving Average term to retain in the + regression; typically represented as $Q$ in literature. \end{itemize} \item \xmlNode{fourier}: @@ -2085,40 +2101,31 @@ \subsubsection{SyntheticHistory} for within the training signal. \end{itemize} - \item \xmlNode{arma}: - characterizes the signal using Auto-Regressive and Moving Average coefficients to - stochastically fit the training signal. The ARMA representation has the following - form: \begin{equation*} A\_t = \sum\_{i=1}^P \phi\_i A\_{t-i} + \epsilon\_t + - \sum\_{j=1}^Q \theta\_j \epsilon\_{t-j}, \end{equation*} where $t$ indicates a - discrete time step, $\phi$ are the signal lag (or auto-regressive) coefficients, $P$ - is the number of signal lag terms to consider, $\epsilon$ is a random noise term, - $\theta$ are the noise lag (or moving average) coefficients, and $Q$ is the number of - noise lag terms to consider. The ARMA algorithms are developed in RAVEN using the - \texttt{statsmodels} Python library. - The \xmlNode{arma} node recognizes the following parameters: + \item \xmlNode{rwd}: + TimeSeriesAnalysis algorithm for sliding window snapshots to generate features + The \xmlNode{rwd} node recognizes the following parameters: \begin{itemize} \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, indicates the variables for which this algorithm will be used for characterization. \item \xmlAttr{seed}: \xmlDesc{integer, optional}, sets a seed for the underlying random number generator, if present. - \item \xmlAttr{reduce\_memory}: \xmlDesc{[True, Yes, 1, False, No, 0, t, y, 1, f, n, 0], optional}, - activates a lower memory usage ARMA training. This does tend to result - in a slightly slower training time, at the benefit of lower memory usage. For - example, in one 1000-length history test, low memory reduced memory usage by 2.3 - MiB, but increased training time by 0.4 seconds. No change in results has been - observed switching between modes. Note that the ARMA must be - retrained to change this property; it cannot be applied to serialized ARMAs. \default{False} \end{itemize} - The \xmlNode{arma} node recognizes the following subnodes: + The \xmlNode{rwd} node recognizes the following subnodes: \begin{itemize} - \item \xmlNode{SignalLag}: \xmlDesc{integer}, - the number of terms in the AutoRegressive term to retain in the - regression; typically represented as $P$ in literature. + \item \xmlNode{signatureWindowLength}: \xmlDesc{integer}, + the size of signature window, which represents as a snapshot for a certain time step; + typically represented as $w$ in literature, or $w\_sig$ in the code. - \item \xmlNode{NoiseLag}: \xmlDesc{integer}, - the number of terms in the Moving Average term to retain in the - regression; typically represented as $Q$ in literature. + \item \xmlNode{featureIndex}: \xmlDesc{integer}, + Index used for feature selection, which requires pre-analysis for now, will be addresses + via other non human work required method + + \item \xmlNode{sampleType}: \xmlDesc{integer}, + Indicating the type of sampling. + + \item \xmlNode{seed}: \xmlDesc{integer}, + Indicating random seed. \end{itemize} \item \xmlNode{wavelet}: @@ -2175,9 +2182,10 @@ \subsubsection{SyntheticHistory} Specifies the degree polynomial to fit the data with. \end{itemize} - \item \xmlNode{rwd}: - TimeSeriesAnalysis algorithm for sliding window snapshots to generate features - The \xmlNode{rwd} node recognizes the following parameters: + \item \xmlNode{maxabsscaler}: + scales the data to the interval $[-1, 1]$. This is done by dividing by the largest + absolute value of the data. + The \xmlNode{maxabsscaler} node recognizes the following parameters: \begin{itemize} \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, indicates the variables for which this algorithm will be used for characterization. @@ -2185,21 +2193,123 @@ \subsubsection{SyntheticHistory} sets a seed for the underlying random number generator, if present. \end{itemize} - The \xmlNode{rwd} node recognizes the following subnodes: - \begin{itemize} - \item \xmlNode{signatureWindowLength}: \xmlDesc{integer}, - the size of signature window, which represents as a snapshot for a certain time step; - typically represented as $w$ in literature, or $w\_sig$ in the code. + \item \xmlNode{minmaxscaler}: + scales the data to the interval $[0, 1]$. This is done by subtracting the + minimum value from each point and dividing by the range. + The \xmlNode{minmaxscaler} node recognizes the following parameters: + \begin{itemize} + \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, + indicates the variables for which this algorithm will be used for characterization. + \item \xmlAttr{seed}: \xmlDesc{integer, optional}, + sets a seed for the underlying random number generator, if present. + \end{itemize} - \item \xmlNode{featureIndex}: \xmlDesc{integer}, - Index used for feature selection, which requires pre-analysis for now, will be addresses - via other non human work required method + \item \xmlNode{robustscaler}: + centers and scales the data by subtracting the median and dividing by the interquartile + range. + The \xmlNode{robustscaler} node recognizes the following parameters: + \begin{itemize} + \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, + indicates the variables for which this algorithm will be used for characterization. + \item \xmlAttr{seed}: \xmlDesc{integer, optional}, + sets a seed for the underlying random number generator, if present. + \end{itemize} - \item \xmlNode{sampleType}: \xmlDesc{integer}, - Indicating the type of sampling. + \item \xmlNode{standardscaler}: + centers and scales the data by subtracting the mean and dividing by the standard + deviation. + The \xmlNode{standardscaler} node recognizes the following parameters: + \begin{itemize} + \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, + indicates the variables for which this algorithm will be used for characterization. + \item \xmlAttr{seed}: \xmlDesc{integer, optional}, + sets a seed for the underlying random number generator, if present. + \end{itemize} - \item \xmlNode{seed}: \xmlDesc{integer}, - Indicating random seed. + \item \xmlNode{zerofilter}: + masks values that are near zero. The masked values are replaced with NaN values. Caution + should be used when using this algorithm because not all algorithms can handle NaN values! + A warning will be issued if NaN values are detected in the input of an algorithm that does + not support them. + The \xmlNode{zerofilter} node recognizes the following parameters: + \begin{itemize} + \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, + indicates the variables for which this algorithm will be used for characterization. + \item \xmlAttr{seed}: \xmlDesc{integer, optional}, + sets a seed for the underlying random number generator, if present. + \end{itemize} + + \item \xmlNode{logtransformer}: + applies the natural logarithm to the data and inverts by applying the + exponential function. + The \xmlNode{logtransformer} node recognizes the following parameters: + \begin{itemize} + \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, + indicates the variables for which this algorithm will be used for characterization. + \item \xmlAttr{seed}: \xmlDesc{integer, optional}, + sets a seed for the underlying random number generator, if present. + \end{itemize} + + \item \xmlNode{arcsinhtransformer}: + applies the inverse hyperbolic sine to the data and inverts by applying + the hyperbolic sine. + The \xmlNode{arcsinhtransformer} node recognizes the following parameters: + \begin{itemize} + \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, + indicates the variables for which this algorithm will be used for characterization. + \item \xmlAttr{seed}: \xmlDesc{integer, optional}, + sets a seed for the underlying random number generator, if present. + \end{itemize} + + \item \xmlNode{tanhtransformer}: + applies the hyperbolic tangent to the data and inverts by applying the + inverse hyperbolic tangent. + The \xmlNode{tanhtransformer} node recognizes the following parameters: + \begin{itemize} + \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, + indicates the variables for which this algorithm will be used for characterization. + \item \xmlAttr{seed}: \xmlDesc{integer, optional}, + sets a seed for the underlying random number generator, if present. + \end{itemize} + + \item \xmlNode{sigmoidtransformer}: + applies the sigmoid (expit) function to the data and inverts by applying + the logit function. + The \xmlNode{sigmoidtransformer} node recognizes the following parameters: + \begin{itemize} + \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, + indicates the variables for which this algorithm will be used for characterization. + \item \xmlAttr{seed}: \xmlDesc{integer, optional}, + sets a seed for the underlying random number generator, if present. + \end{itemize} + + \item \xmlNode{outtruncation}: + limits the data to either positive or negative values by "reflecting" the + out-of-range values back into the desired range. + The \xmlNode{outtruncation} node recognizes the following parameters: + \begin{itemize} + \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, + indicates the variables for which this algorithm will be used for characterization. + \item \xmlAttr{seed}: \xmlDesc{integer, optional}, + sets a seed for the underlying random number generator, if present. + \item \xmlAttr{domain}: \xmlDesc{[positive, negative], required}, + -- no description yet -- + \end{itemize} + + \item \xmlNode{quantiletransformer}: + transforms the data to fit a given distribution by mapping the data to a uniform + distribution and then to the desired distribution. + The \xmlNode{quantiletransformer} node recognizes the following parameters: + \begin{itemize} + \item \xmlAttr{target}: \xmlDesc{comma-separated strings, required}, + indicates the variables for which this algorithm will be used for characterization. + \item \xmlAttr{seed}: \xmlDesc{integer, optional}, + sets a seed for the underlying random number generator, if present. + \item \xmlAttr{nQuantiles}: \xmlDesc{integer, optional}, + number of quantiles to use in the transformation. If \xmlAttr{nQuantiles} + is greater than the number of data, then the number of data is used instead. \default{1000} + \item \xmlAttr{outputDistribution}: \xmlDesc{[normal, uniform], optional}, + distribution to transform to. Must be either 'normal' or 'uniform'. \default{normal} \end{itemize} \end{itemize} @@ -2304,7 +2414,7 @@ \subsubsection{ARMA} wrapped by RFE, and used to help select features. \\RFE works by searching for a subset of features by starting with all features in the training dataset and successfully removing features until the desired number remains. This is achieved by - fitting the given ROME used in the core of the model, ranking features by importance, + fitting the given ROM used in the core of the model, ranking features by importance, discarding the least important features, and re-fitting the model. This process is repeated until a specified number of features remains. When the full model is created, a measure of variable importance is computed that ranks the predictors from @@ -2334,7 +2444,7 @@ \subsubsection{ARMA} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -2400,7 +2510,7 @@ \subsubsection{ARMA} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -2440,7 +2550,7 @@ \subsubsection{ARMA} List of IDs of features/variables to include in the transformation process. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{string}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature? \default{Feature} \end{itemize} @@ -2872,7 +2982,7 @@ \subsubsection{PolyExponential} wrapped by RFE, and used to help select features. \\RFE works by searching for a subset of features by starting with all features in the training dataset and successfully removing features until the desired number remains. This is achieved by - fitting the given ROME used in the core of the model, ranking features by importance, + fitting the given ROM used in the core of the model, ranking features by importance, discarding the least important features, and re-fitting the model. This process is repeated until a specified number of features remains. When the full model is created, a measure of variable importance is computed that ranks the predictors from @@ -2902,7 +3012,7 @@ \subsubsection{PolyExponential} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -2968,7 +3078,7 @@ \subsubsection{PolyExponential} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -3008,7 +3118,7 @@ \subsubsection{PolyExponential} List of IDs of features/variables to include in the transformation process. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{string}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature? \default{Feature} \end{itemize} @@ -3180,7 +3290,7 @@ \subsubsection{DMD} wrapped by RFE, and used to help select features. \\RFE works by searching for a subset of features by starting with all features in the training dataset and successfully removing features until the desired number remains. This is achieved by - fitting the given ROME used in the core of the model, ranking features by importance, + fitting the given ROM used in the core of the model, ranking features by importance, discarding the least important features, and re-fitting the model. This process is repeated until a specified number of features remains. When the full model is created, a measure of variable importance is computed that ranks the predictors from @@ -3210,7 +3320,7 @@ \subsubsection{DMD} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -3276,7 +3386,7 @@ \subsubsection{DMD} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -3316,7 +3426,7 @@ \subsubsection{DMD} List of IDs of features/variables to include in the transformation process. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{string}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature? \default{Feature} \end{itemize} @@ -3518,7 +3628,7 @@ \subsubsection{DMDC} wrapped by RFE, and used to help select features. \\RFE works by searching for a subset of features by starting with all features in the training dataset and successfully removing features until the desired number remains. This is achieved by - fitting the given ROME used in the core of the model, ranking features by importance, + fitting the given ROM used in the core of the model, ranking features by importance, discarding the least important features, and re-fitting the model. This process is repeated until a specified number of features remains. When the full model is created, a measure of variable importance is computed that ranks the predictors from @@ -3548,7 +3658,7 @@ \subsubsection{DMDC} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -3614,7 +3724,7 @@ \subsubsection{DMDC} List of IDs of features/variables to include in the search. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{[feature, target]}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature (this is temporary till DataSet training is implemented) \default{feature} @@ -3654,7 +3764,7 @@ \subsubsection{DMDC} List of IDs of features/variables to include in the transformation process. \default{None} - \item \xmlNode{whichSpace}: \xmlDesc{string}, + \item \xmlNode{whichSpace}: \xmlDesc{[Feature, feature, Target, target]}, Which space to search? Target or Feature? \default{Feature} \end{itemize} diff --git a/ravenframework/Models/PostProcessors/TSACharacterizer.py b/ravenframework/Models/PostProcessors/TSACharacterizer.py index 1e3d793f4b..97fb9ed56f 100644 --- a/ravenframework/Models/PostProcessors/TSACharacterizer.py +++ b/ravenframework/Models/PostProcessors/TSACharacterizer.py @@ -56,6 +56,8 @@ def _handleInput(self, inp): """ super()._handleInput(inp) self.readTSAInput(inp) + if not self.canCharacterize(): + self.raiseAnError(IOError, 'TSACharacterizer requires at least one TSA algorithm that can characterize!') def initialize(self, runInfo, inputs, initDict=None): """ diff --git a/ravenframework/TSA/ARMA.py b/ravenframework/TSA/ARMA.py index 39a4002ec6..f580823b19 100644 --- a/ravenframework/TSA/ARMA.py +++ b/ravenframework/TSA/ARMA.py @@ -25,11 +25,11 @@ statsmodels = importerUtils.importModuleLazy('statsmodels', globals()) from .. import Distributions -from .TimeSeriesAnalyzer import TimeSeriesGenerator, TimeSeriesCharacterizer +from .TimeSeriesAnalyzer import TimeSeriesGenerator, TimeSeriesCharacterizer, TimeSeriesTransformer # utility methods -class ARMA(TimeSeriesGenerator, TimeSeriesCharacterizer): +class ARMA(TimeSeriesGenerator, TimeSeriesCharacterizer, TimeSeriesTransformer): r""" AutoRegressive Moving Average time series analyzer algorithm """ @@ -39,12 +39,15 @@ class ARMA(TimeSeriesGenerator, TimeSeriesCharacterizer): 'ma', 'sigma2', 'const'] + _acceptsMissingValues = True + _isStochastic = True @classmethod def getInputSpecification(cls): """ Method to get a reference to a class that specifies the input data for class cls. + @ In, None @ Out, inputSpecification, InputData.ParameterInput, class to use for specifying input of cls. """ @@ -94,7 +97,7 @@ def __init__(self, *args, **kwargs): def handleInput(self, spec): """ Reads user inputs into this object. - @ In, inp, InputData.InputParams, input specifications + @ In, spec, InputData.InputParams, input specifications @ Out, settings, dict, initialization settings for this algorithm """ settings = super().handleInput(spec) @@ -119,7 +122,7 @@ def setDefaults(self, settings): settings['reduce_memory'] = False return settings - def characterize(self, signal, pivot, targets, settings): + def fit(self, signal, pivot, targets, settings): """ Determines the charactistics of the signal based on this algorithm. @ In, signal, np.ndarray, time series with dims [time, target] @@ -143,13 +146,15 @@ def characterize(self, signal, pivot, targets, settings): for tg, target in enumerate(targets): params[target] = {} history = signal[:, tg] + mask = ~np.isnan(history) if settings.get('gaussianize', True): # Transform data to obatain normal distrbuted series. See # J.M.Morales, R.Minguez, A.J.Conejo "A methodology to generate statistically dependent wind speed scenarios," # Applied Energy, 87(2010) 843-855 # -> then train independent ARMAs - params[target]['cdf'] = mathUtils.characterizeCDF(history, binOps=2, minBins=self._minBins) - normed = mathUtils.gaussianize(history, params[target]['cdf']) + params[target]['cdf'] = mathUtils.characterizeCDF(history[mask], binOps=2, minBins=self._minBins) + normed = history + normed[mask] = mathUtils.gaussianize(history[mask], params[target]['cdf']) else: normed = history # TODO correlation (VARMA) as well as singular -> maybe should be independent TSA algo? @@ -190,6 +195,44 @@ def characterize(self, signal, pivot, targets, settings): params[target]['arma']['results'] = res return params + def getResidual(self, initial, params, pivot, settings): + """ + Removes trained signal from data and find residual + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values + @ In, settings, dict, additional settings specific to algorithm + @ Out, residual, np.array, reduced signal shaped [pivotValues, targets] + """ + # The residual for an ARMA model can be useful, and we want to return that if it's available. + # If the 'reduce_memory' option was used, then the ARIMAResults object from fitting the model + # where that residual is stored is not available. In that case, we simply return the original. + if settings['reduce_memory']: + return initial + + residual = initial.copy() + for t, (target, data) in enumerate(params.items()): + residual[:, t] = data['arma']['results'].resid + + return residual + + def getComposite(self, initial, params, pivot, settings): + """ + Combines two component signals to form a composite signal. This is essentially the inverse + operation of the getResidual method. + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values + @ In, settings, dict, additional settings specific to algorithm + @ Out, composite, np.array, resulting composite signal + """ + # Add a generated ARMA signal to the initial signal. + synthetic = self.generate(params, pivot, settings) + composite = initial + synthetic + return composite + def getParamNames(self, settings): """ Return list of expected variable names based on the parameters @@ -224,30 +267,6 @@ def getParamsAsVars(self, params): rlz[f'{base}__MA__{q}'] = ma return rlz - def getResidual(self, initial, params, pivot, settings): - """ - @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in - same order as self.target - @ In, params, dict, training parameters as from self.characterize - @ In, pivot, np.array, time-like array values - @ In, settings, dict, additional settings specific to algorithm - @ Out, residual, np.array, reduced signal shaped [pivotValues, targets] - """ - raise NotImplementedError('ARMA cannot provide a residual yet; it must be the last TSA used!') - # FIXME how to get a useful residual? - # -> the "residual" of the ARMA is ideally white noise, not a 0 vector, even if perfectly fit - # so what does it mean to provide the residual from the ARMA training? - # in order to use "predict" (in-sample forecasting) can't be in low-memory mode - # if settings['reduce_memory']: - # raise RuntimeError('Cannot get residual of ARMA if in reduced memory mode!') - # for tg, (target, data) in enumerate(params.items()): - # armaData = data['arma'] - # modelParams = np.hstack([[armaData.get('const', 0)], - # armaData['ar'], - # armaData['ma'], - # [armaData.get('var', 1)]]) - # new = armaData['model'].predict(modelParams) - def generate(self, params, pivot, settings): """ Generates a synthetic history from fitted parameters. diff --git a/ravenframework/TSA/Factory.py b/ravenframework/TSA/Factory.py index 18bafc12ad..1fd385df27 100644 --- a/ravenframework/TSA/Factory.py +++ b/ravenframework/TSA/Factory.py @@ -24,11 +24,24 @@ from .Wavelet import Wavelet from .PolynomialRegression import PolynomialRegression from .RWD import RWD +from .Transformers import ZeroFilter, LogTransformer, ArcsinhTransformer, TanhTransformer, SigmoidTransformer, \ + OutTruncation, MaxAbsScaler, MinMaxScaler, StandardScaler, RobustScaler, QuantileTransformer factory = EntityFactory('TimeSeriesAnalyzer') # TODO map lower case to upper case, because of silly ROM namespace problems aliases = {'Fourier': 'fourier', 'ARMA': 'arma', 'RWD': 'rwd', - 'Wavelet': 'wavelet'} + 'Wavelet': 'wavelet', + 'ZeroFilter': 'zerofilter', + 'OutTruncation': 'outtruncation', + 'LogTransformer': 'logtransformer', + 'ArcsinhTransformer': 'arcsinhtransformer', + 'TanhTransformer': 'tanhtransformer', + 'SigmoidTransformer': 'sigmoidtransformer', + 'MaxAbsScaler': 'maxabsscaler', + 'MinMaxScaler': 'minmaxscaler', + 'StandardScaler': 'standardscaler', + 'RobustScaler': 'robustscaler', + 'QuantileTransformer': 'quantiletransformer'} factory.registerAllSubtypes(TimeSeriesAnalyzer, alias=aliases) diff --git a/ravenframework/TSA/Fourier.py b/ravenframework/TSA/Fourier.py index d3ba791ed7..5f6aa45207 100644 --- a/ravenframework/TSA/Fourier.py +++ b/ravenframework/TSA/Fourier.py @@ -19,13 +19,14 @@ import collections import numpy as np import sklearn.linear_model +import statsmodels.api as sm from ..utils import InputData, InputTypes, randomUtils, xmlUtils, mathUtils, utils -from .TimeSeriesAnalyzer import TimeSeriesGenerator, TimeSeriesCharacterizer +from .TimeSeriesAnalyzer import TimeSeriesTransformer, TimeSeriesCharacterizer, TimeSeriesGenerator # utility methods -class Fourier(TimeSeriesGenerator, TimeSeriesCharacterizer): +class Fourier(TimeSeriesTransformer, TimeSeriesCharacterizer, TimeSeriesGenerator): """ Perform Fourier analysis; note this is not Fast Fourier, where all Fourier modes are used to fit a signal. Instead, detect the presence of specifically-requested Fourier bases. @@ -35,12 +36,14 @@ class Fourier(TimeSeriesGenerator, TimeSeriesCharacterizer): _features = ['sin', # amplitude of sine coefficients 'cos', # amplitude of cosine coefficients 'intercept'] # mean of signal + _acceptsMissingValues = True @classmethod def getInputSpecification(cls): """ Method to get a reference to a class that specifies the input data for class cls. + @ In, None @ Out, inputSpecification, InputData.ParameterInput, class to use for specifying input of cls. """ @@ -73,14 +76,14 @@ def __init__(self, *args, **kwargs): def handleInput(self, spec): """ Reads user inputs into this object. - @ In, inp, InputData.InputParams, input specifications + @ In, spec, InputData.InputParams, input specifications @ Out, settings, dict, initialization settings for this algorithm """ settings = super().handleInput(spec) settings['periods'] = spec.findFirst('periods').value return settings - def characterize(self, signal, pivot, targets, settings, simultFit=True): + def fit(self, signal, pivot, targets, settings, simultFit=True): """ Determines the charactistics of the signal based on this algorithm. @ In, signal, np.ndarray, time series with dims [time, target] @@ -105,13 +108,11 @@ def characterize(self, signal, pivot, targets, settings, simultFit=True): params = {} for tg, target in enumerate(targets): history = signal[:, tg] # TODO need to keep in sync with SyntheticSignal ROM! + mask = ~np.isnan(history) # some values might be NaN due to masking if simultFit and cond < 30: print(f'Fourier fitting condition number is {cond:1.1e} for "{target}". ', ' Calculating all Fourier coefficients at once.') - fourierEngine = sklearn.linear_model.LinearRegression(normalize=False) - fourierEngine.fit(fourierSignals, history) - intercept = fourierEngine.intercept_ - coeffs = fourierEngine.coef_ + intercept, coeffs = self._fitSignal(fourierSignals, history) else: print(f'Fourier fitting condition number is {cond:1.1e} for "{target}"! ', 'Calculating iteratively instead of all at once.') @@ -124,10 +125,7 @@ def characterize(self, signal, pivot, targets, settings, simultFit=True): coeffs = np.zeros(F2) # amplitude coeffs for sine, cosine for fn in range(F2): fSignal = fourierSignals[:,fn] # Fourier base signal for this waveform - eng = sklearn.linear_model.LinearRegression(normalize=False) # regressor - eng.fit(fSignal.reshape(H,1), signalToFit) - thisIntercept = eng.intercept_ - thisCoeff = eng.coef_[0] + thisIntercept, thisCoeff = self._fitSignal(fSignal.reshape(H,1), signalToFit) coeffs[fn] = thisCoeff intercept += thisIntercept # remove this signal from the signal to fit @@ -160,6 +158,63 @@ def characterize(self, signal, pivot, targets, settings, simultFit=True): # END for target in targets return params + def _fitSignal(self, baseSignal, signalToFit): + """ + Utility for calculating least-squares approximation of Fourier coefficients + @ In, baseSignal, np.ndarray, signal composes of Fourier base(s) + @ In, signalToFit, np.ndarray, signal being detrended + @ Out, intercept, np.ndarray, intercept for the base Fourier signal + @ Out, coeffs, np.ndarray, coefficients of the various Fourier components + """ + fitResult = sm.OLS(signalToFit, sm.add_constant(baseSignal), missing='drop').fit() + intercept = fitResult.params[0] + coeffs = fitResult.params[1:] + return intercept, coeffs + + def getResidual(self, initial, params, pivot, settings): + """ + Removes fitted Fourier signal from data + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values + @ In, settings, dict, additional settings specific to algorithm + @ Out, residual, np.array, reduced signal shaped [pivotValues, targets] + """ + synthetic = self.generate(params, pivot) + residual = initial - synthetic + return residual + + def getComposite(self, initial, params, pivot, settings): + """ + Adds the Fourier signal back into initial signal + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values + @ In, settings, dict, additional settings specific to algorithm + @ Out, composite, np.array, resulting composite signal + """ + synthetic = self.generate(params, pivot) + residual = initial + synthetic + return residual + + def generate(self, params, pivot): + """ + Generates a synthetic history from fitted parameters. + @ In, params, dict, characterization such as otained from self.characterize() + @ In, pivot, np.array(float), pivot parameter values + @ Out, synthetic, np.array(float), synthetic ARMA signal + """ + synthetic = np.zeros((len(pivot), len(params))) + for t, (target, data) in enumerate(params.items()): + synthetic[:, t] += data['intercept'] + for period, coeffs in data['coeffs'].items(): + C = coeffs['amplitude'] + s = coeffs['phase'] + synthetic[:, t] += mathUtils.evalFourier(period, C, s, pivot) + return synthetic + def getParamNames(self, settings): """ Return list of expected variable names based on the parameters @@ -192,24 +247,6 @@ def getParamsAsVars(self, params): rlz[f'{baseWave}__{stat}'] = value return rlz - - def generate(self, params, pivot, settings): - """ - Generates a synthetic history from fitted parameters. - @ In, params, dict, characterization such as otained from self.characterize() - @ In, pivot, np.array(float), pivot parameter values - @ In, settings, dict, additional settings specific to algorithm - @ Out, synthetic, np.array(float), synthetic ARMA signal - """ - synthetic = np.zeros((len(pivot), len(params))) - for t, (target, data) in enumerate(params.items()): - synthetic[:, t] += data['intercept'] - for period, coeffs in data['coeffs'].items(): - C = coeffs['amplitude'] - s = coeffs['phase'] - synthetic[:, t] += mathUtils.evalFourier(period, C, s, pivot) - return synthetic - def writeXML(self, writeTo, params): """ Allows the engine to put whatever it wants into an XML to print to file. diff --git a/ravenframework/TSA/PolynomialRegression.py b/ravenframework/TSA/PolynomialRegression.py index 7e81268cd0..dedc112fe5 100644 --- a/ravenframework/TSA/PolynomialRegression.py +++ b/ravenframework/TSA/PolynomialRegression.py @@ -20,12 +20,13 @@ statsmodels = importerUtils.importModuleLazy("statsmodels", globals()) from ..utils import InputData, InputTypes, randomUtils, xmlUtils, mathUtils, utils -from .TimeSeriesAnalyzer import TimeSeriesCharacterizer, TimeSeriesGenerator +from .TimeSeriesAnalyzer import TimeSeriesCharacterizer, TimeSeriesTransformer, TimeSeriesGenerator -class PolynomialRegression(TimeSeriesGenerator, TimeSeriesCharacterizer): +class PolynomialRegression(TimeSeriesTransformer, TimeSeriesCharacterizer, TimeSeriesGenerator): """ """ + _acceptsMissingValues = True @classmethod def getInputSpecification(cls): @@ -58,14 +59,14 @@ def __init__(self, *args, **kwargs): def handleInput(self, spec): """ Reads user inputs into this object. - @ In, inp, InputData.InputParams, input specifications + @ In, spec, InputData.InputParams, input specifications @ Out, settings, dict, initialization settings for this algorithm """ settings = super().handleInput(spec) settings['degree'] = spec.findFirst('degree').value return settings - def characterize(self, signal, pivot, targets, settings): + def fit(self, signal, pivot, targets, settings): """ Determines the charactistics of the signal based on this algorithm. @ In, signal, np.ndarray, time series with dims [time, target] @@ -84,7 +85,7 @@ def characterize(self, signal, pivot, targets, settings): xp = features.fit_transform(pivot.reshape(-1, 1)) for target in targets: - results = sm.OLS(signal, xp).fit() + results = sm.OLS(signal, xp, missing='drop').fit() params[target]['model']['intercept'] = results.params[0] for i, value in enumerate(results.params[1:]): params[target]['model'][f'coef{i+1}'] = value @@ -120,6 +121,35 @@ def getParamsAsVars(self, params): rlz[f'{base}__{name}'] = value return rlz + def getResidual(self, initial, params, pivot, settings): + """ + Removes trained signal from data and find residual + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values + @ In, settings, dict, additional settings specific to algorithm + @ Out, residual, np.array, reduced signal shaped [pivotValues, targets] + """ + synthetic = self._generateSignal(params, pivot, settings) + residual = initial - synthetic + return residual + + def getComposite(self, initial, params, pivot, settings): + """ + Combines two component signals to form a composite signal. This is essentially the inverse + operation of the getResidual method. + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values + @ In, settings, dict, additional settings specific to algorithm + @ Out, composite, np.array, resulting composite signal + """ + synthetic = self.generate(params, pivot, settings) + composite = initial + synthetic + return composite + def generate(self, params, pivot, settings): """ Generates a synthetic history from fitted parameters. @@ -140,7 +170,6 @@ def generate(self, params, pivot, settings): return synthetic - def writeXML(self, writeTo, params): """ Allows the engine to put whatever it wants into an XML to print to file. diff --git a/ravenframework/TSA/README.md b/ravenframework/TSA/README.md new file mode 100644 index 0000000000..3221704568 --- /dev/null +++ b/ravenframework/TSA/README.md @@ -0,0 +1,58 @@ +# TSA Module +The TSA module houses algorithms which are helpful for characterizing and generating time series signals. +It is designed to be modular to allow users to mix and match algorithms to best suit their data and goals. +Each algorithm in this module inherits from one or more base classes which define the interface and capabilities of the algorithm. +Broadly, an algorithm can be any combination of a characterizer, generator, and transformer, with each of these categorizations corresponding to a base class. +- Characterizers map a time series signal to a vector of characteristic features. +- Generators produce a signal, either deterministically or stochastically. +- Transformers map one signal space to another through some transformation function. + +## Base Classes +Three base classes define the interface and capabilities of each TSA algorithm: `TimeSeriesCharacterizer`, `TimeSeriesGenerator`, and `TimeSeriesTransformer`. +Each of these in turn extends the `TimeSeriesAnalyzer` class. +The following subsections briefly describe the functionality contributed by each base class. +The purpose of this document is to explain the structure of this module and the various base classes used to construct time series algorithms to give guidance to future users and developers on which base classes are appropriate for new TSA algorithms. +Algorithm-specific documentation and examples are provided in the RAVEN User Manual. + +### TimeSeriesAnalyzer +Provides an interface common to all TSA module algorithms. +This class serves exclusively as a base class for the `TimeSeriesCharacterizer`, `TimeSeriesGenerator`, and `TimeSeriesTransformer` classes. +This class should never be directly instatiated or used as a base class for a new algorithm! + +### TimeSeriesCharacterizer +Algorithms which inherit from `TimeSeriesCharacterizer` seek to characterize a time series signal by mapping the signal to some vector of characteristic features. +This often takes the form of fitting some number of parameters to the data and using those parameters to form the feature vector. +The characteristic parameters for a characterization algorithm are listed in the `_features` class attribute. +Note that while a model may need to be fit to the data, the resulting model parameters may not be "useful" for characterization! +Only inherit from this class if the model parameters are useful for characterization tasks. + +### TimeSeriesGenerator +Algorithms which generate a signal are `TimeSeriesGenerator` instances. +This generation may be either deterministic or stochastic, distinguished by the value of the `_isStochastic` class attribute. + +### TimeSeriesTransformer +Transformers, as their name implies, apply a transformation to the input data. +Specifically, the purpose of these transformers is not to generate a new time series signal or to characterize the signal, but to simply map the input signal to some other signal through a transformation function. +The `TimeSeriesTransformer` class is also responsible for computing model residuals during the fitting process and combining one or more signals into a single signal during the generation process. + +## TSA Algorithm Inheritance +The following table shows which base classes each currently implemented TSA algorithm inherits from. + +| Algorithm | Transformer | Generator | Characterizer | +|------------------------|:-----------:|:---------:|:-------------:| +| `ARMA` | ✓ | ✓ | ✓ | +| `Fourier` | ✓ | ✓ | ✓ | +| `PolynomialRegression` | ✓ | ✓ | ✓ | +| `RWD` | | | ✓ | +| `Wavelet` | ✓ | ✓ | | +| `OutTruncation` | ✓ | | | +| `ZeroFilter` | ✓ | | | +| `MaxAbsScaler` | ✓ | | ✓ | +| `MinMaxScaler` | ✓ | | ✓ | +| `StandardScaler` | ✓ | | ✓ | +| `RobustScaler` | ✓ | | ✓ | +| `LogTransformer` | ✓ | | | +| `ArcsinhTransformer` | ✓ | | | +| `TanhTransformer` | ✓ | | | +| `SigmoidTransformer` | ✓ | | | +| `QuantileTransformer` | ✓ | | | diff --git a/ravenframework/TSA/RWD.py b/ravenframework/TSA/RWD.py index f20bb3f1dc..756d1e9771 100644 --- a/ravenframework/TSA/RWD.py +++ b/ravenframework/TSA/RWD.py @@ -15,29 +15,17 @@ Randomized Window Decomposition """ -import collections import numpy as np -import scipy as sp -from .. import Decorators -import string -import numpy.linalg as LA -import pandas as pd -import copy as cp - -from ..utils import InputData, InputTypes, randomUtils, xmlUtils, mathUtils, importerUtils -statsmodels = importerUtils.importModuleLazy('statsmodels', globals()) - -from .. import Distributions -from .TimeSeriesAnalyzer import TimeSeriesGenerator, TimeSeriesCharacterizer +from ..utils import InputData, InputTypes, randomUtils, xmlUtils, mathUtils +from .TimeSeriesAnalyzer import TimeSeriesCharacterizer # utility methods class RWD(TimeSeriesCharacterizer): - r""" + """ Randomized Window Decomposition """ - @classmethod def getInputSpecification(cls): """ @@ -62,7 +50,6 @@ class cls. descr=r"""Indicating random seed.""")) return specs - # # API Methods # @@ -80,7 +67,7 @@ def __init__(self, *args, **kwargs): def handleInput(self, spec): """ Reads user inputs into this object. - @ In, inp, InputData.InputParams, input specifsications + @ In, spec, InputData.InputParams, input specifsications @ In, sampleType, integer = 0, 1, 2 @ sampleType = 0: Sequentially Sampling @ sampleType = 1: Randomly Sampling @@ -109,7 +96,7 @@ def setDefaults(self, settings): settings['seed'] = 42 return settings #### - def characterize(self, signal, pivot, targets, settings): + def fit(self, signal, pivot, targets, settings): """ Determines the charactistics of the signal based on this algorithm. @ In, signal, np.ndarray, time series with dims [time, target] @@ -118,8 +105,6 @@ def characterize(self, signal, pivot, targets, settings): @ In, settings, dict, settings for this ROM @ Out, params, dict of dict: 1st level contains targets/variables; 2nd contains: U vectors and features """ - # lazy import statsmodels - import statsmodels.api # settings: # signatureWindowLength, int, Signature window length # featureIndex, list of int, The index that contains differentiable params @@ -161,13 +146,12 @@ def characterize(self, signal, pivot, targets, settings): baseMatrix = np.zeros((signatureWindowLength, windowNumber)) for i in range(windowNumber-1): baseMatrix[:,i] = np.copy(history[i*signatureWindowLength:(i+1)*signatureWindowLength]) - U,s,V = mathUtils.computeTruncatedSingularValueDecomposition(baseMatrix,0) + U, s, V = mathUtils.computeTruncatedSingularValueDecomposition(baseMatrix,0) featureMatrix = U.T @ signatureMatrix params[target] = {'uVec' : U[:,0:fi], 'Feature': featureMatrix} return params - def getParamNames(self, settings): """ Return list of expected variable names based on the parameters @@ -199,8 +183,6 @@ def getParamsAsVars(self, params): rlz[f'{base}__uVec{i}_{j}'] = info['uVec'][j,i] return rlz - - def generate(self, params, pivot, settings): """ Generates a synthetic history from fitted parameters. @@ -209,7 +191,8 @@ def generate(self, params, pivot, settings): @ In, settings, dict, additional settings specific to algorithm @ Out, synthetic, np.array(float), synthetic estimated model signal """ - + # FIXME This method isn't currently tested or used anywhere. Trying to call this method results + # in an error due to a mismatch of array shapes when calculating sigMatSynthetic. Remove this method? synthetic = np.zeros((len(pivot), len(params))) for t, (target, _) in enumerate(params.items()): sigMatSynthetic = params[target]['uVec'] @ params[target]['Feature'] @@ -228,7 +211,7 @@ def writeXML(self, writeTo, params): for target, info in params.items(): base = xmlUtils.newNode(target) writeTo.append(base) - (m,n) = info["uVec"].shape + (m, n) = info["uVec"].shape for i in range(n): U0 = info["uVec"][:,0] counter +=1 diff --git a/ravenframework/TSA/TSAUser.py b/ravenframework/TSA/TSAUser.py index 98388ea1dc..ec13e961a1 100644 --- a/ravenframework/TSA/TSAUser.py +++ b/ravenframework/TSA/TSAUser.py @@ -18,6 +18,7 @@ Contains a utility base class for accessing commonly-used TSA functions. """ import numpy as np +from inspect import isabstract from ..utils import xmlUtils, InputData, InputTypes @@ -47,6 +48,9 @@ def addTSASpecs(cls, spec, subset=None): continue elif subset == 'generate' and not c.canGenerate(): continue + if isabstract(c): + # Abstract classes cannot be instantiated, so providing input specs for them is pointless + continue spec.addSub(c.getInputSpecification()) return spec @@ -92,6 +96,22 @@ def readTSAInput(self, spec): # NOTE this assumes that every TSAUser is also an InputUser! raise IOError('TSA: The pivotParameter must be included in the target space.') + def canCharacterize(self): + """ + Checks if any of the algorithms are characterizers + @ In, None + @ Out, isCharacterizer, bool, True if this entity is a characterizer + """ + return any(algo.canCharacterize() for algo in self._tsaAlgorithms) + + def canGenerate(self): + """ + Checks if any of the algorithms are generators + @ In, None + @ Out, isGenerator, bool, True if this entity is a generator + """ + return any(algo.canGenerate() for algo in self._tsaAlgorithms) + def _tsaReset(self): """ Resets trained and cached params @@ -170,19 +190,22 @@ def trainTSASequential(self, targetVals): pivots = targetVals[0, :, pivotIndex] self.pivotParameterValues = pivots[:] # TODO any way to avoid storing these? residual = targetVals[:, :, :] # deep-ish copy, so we don't mod originals - numAlgo = len(self._tsaAlgorithms) for a, algo in enumerate(self._tsaAlgorithms): settings = self._tsaAlgoSettings[algo] targets = settings['target'] indices = tuple(self.target.index(t) for t in targets) signal = residual[0, :, indices].T # using tuple "indices" transposes, so transpose back - params = algo.characterize(signal, pivots, targets, settings) + # check if there are missing values in the signal and if algo can accept them + if np.isnan(signal).any() and not algo.canAcceptMissingValues(): + raise ValueError(f'Missing values (NaN) found in input to {algo.name},' + 'but {algo.name} cannot accept missing values!') + params = algo.fit(signal, pivots, targets, settings) # store characteristics self._tsaTrainedParams[algo] = params # obtain residual; the part of the signal not characterized by this algo - # workaround: skip the last one, since it's often the ARMA and the residual isn't known for - # the ARMA - if a < numAlgo - 1: + # This is only done if the algo produces a residual (is a transformer). Otherwise, the + # residual signal is not altered. + if algo.canTransform(): algoResidual = algo.getResidual(signal, params, pivots, settings) residual[0, :, indices] = algoResidual.T # transpose, again because of indices # TODO meta store signal, residual? @@ -204,12 +227,13 @@ def evaluateTSASequential(self): targets = settings['target'] indices = tuple(noPivotTargets.index(t) for t in targets) params = self._tsaTrainedParams[algo] - if not algo.canGenerate(): - self.raiseAnError(IOError, "This TSA algorithm cannot generate synthetic histories.") - signal = algo.generate(params, pivots, settings) - result[:, indices] += signal # TODO (j-bryan): This is assuming additive signals. Can we generalize this? - # I'd like to replace this with a method that does the inverse of getResidual so it acts as a transformer - # instead of an additive component thing + signal = result[:, indices] + if algo.canTransform(): # covers algorithms which are both transformers and generators + result[:, indices] = algo.getComposite(signal, params, pivots, settings) + elif algo.canGenerate(): + result[:, indices] = algo.generate(params, pivots, settings) + else: # Must be exclusively a TimeSeriesCharacterizer, so there is nothing to evaluate + continue # RAVEN realization construction rlz = dict((target, result[:, t]) for t, target in enumerate(noPivotTargets)) rlz[self.pivotParameterID] = self.pivotParameterValues diff --git a/ravenframework/TSA/TimeSeriesAnalyzer.py b/ravenframework/TSA/TimeSeriesAnalyzer.py index e7f69cee21..4be976f388 100644 --- a/ravenframework/TSA/TimeSeriesAnalyzer.py +++ b/ravenframework/TSA/TimeSeriesAnalyzer.py @@ -24,32 +24,12 @@ class TimeSeriesAnalyzer(utils.metaclass_insert(abc.ABCMeta, object)): """ Act as base class for objects that coordinate the time series analysis algorithms in RAVEN. Note these are not the ROM/SupervisedLearning objects; rather, used by those as well as other - algorithms throughout the code. Maintain these algorithims in a way they can + algorithms throughout the code. Maintain these algorithms in a way they can be called without accessing all of RAVEN. """ # class attribute - ## define the clusterable features for this trainer. - _features = [] - - @classmethod - def canGenerate(cls) -> bool: - """ - A predicate function to determine if object instance inherits from TimeSeriesGenerator. - - @ In, None - @ Out, boolean, True if instance can generate - """ - return issubclass(cls, TimeSeriesGenerator) - - @classmethod - def canCharacterize(cls) -> bool: - """ - A predicate function to determine if object instance inherits from TimeSeriesCharacterizer. - - @ In, None - @ Out, boolean, True if instance can characterize - """ - return issubclass(cls, TimeSeriesCharacterizer) + ## defines if missing values are accepted by the characterization algorithm + _acceptsMissingValues = False @classmethod def getInputSpecification(cls): @@ -67,6 +47,33 @@ def getInputSpecification(cls): descr=r"""sets a seed for the underlying random number generator, if present.""") return specs + @classmethod + def canGenerate(cls): + """ + Determines if this algorithm is a generator. + @ In, None + @ Out, isGenerator, bool, True if this algorithm is a TimeSeriesGenerator + """ + return issubclass(cls, TimeSeriesGenerator) + + @classmethod + def canCharacterize(cls): + """ + Determines if this algorithm is a characterizer. + @ In, None + @ Out, isCharacterizer, bool, True if this algorithm is a TimeSeriesCharacterizer + """ + return issubclass(cls, TimeSeriesCharacterizer) + + @classmethod + def canTransform(cls): + """ + Determines if this algorithm is a transformer. + @ In, None + @ Out, isTransformer, bool, True if this algorithm is a TimeSeriesTransformer + """ + return issubclass(cls, TimeSeriesTransformer) + ### INHERITED METHODS ### def __init__(self, *args, **kwargs): """ @@ -77,10 +84,23 @@ def __init__(self, *args, **kwargs): """ self.name = self.__class__.__name__ # the name the class shall be known by during its RAVEN life + @abc.abstractmethod + def fit(self, signal, pivot, targets, settings): + """ + Fits the algorithm/model using the provided time series ("signal") using methods specific to + the algorithm. + @ In, signal, np.array, time-dependent series + @ In, pivot, np.array, time-like parameter + @ In, targets, list(str), names of targets + @ In, settings, dict, additional settings specific to algorithm + @ Out, params, dict, characterization of signal; structure as: + params[target variable][characteristic] = value + """ + def handleInput(self, spec): """ Reads user inputs into this object. - @ In, inp, InputData.InputParams, input specifications + @ In, spec, InputData.InputParams, input specifications @ Out, settings, dict, initialization settings for this algorithm """ settings = {} @@ -101,23 +121,101 @@ def setDefaults(self, settings): settings['seed'] = None return settings - def getResidual(self, initial, params, pivot, settings): + def canAcceptMissingValues(self): """ - Removes trained signal from data and find residual - @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in - same order as self.target + Checks if the algorithm can accept missing values (generally NaN). + @ In, None + @ Out, _acceptsMissingValues, bool, if the characterization algorithm accepts missing values + """ + # NOTE Signals may have missing values, and this is incompatible with some algorithms. As + ## missing values will generally require special handling specific to the algorithm, this + ## behavior defaults to False. It is left to each algorithm to implement how these missing + ## values are handled. + return self._acceptsMissingValues + + @abc.abstractmethod + def writeXML(self, writeTo, params): + """ + Allows the engine to put whatever it wants into an XML to print to file. + @ In, writeTo, xmlUtils.StaticXmlElement, entity to write to + @ In, params, dict, parameters from training this ROM + @ Out, None + """ + + +class TimeSeriesGenerator(TimeSeriesAnalyzer): + """ + Act as a mix-in class for algorithms that can generate synthetic time histories. This is + reserved exclusively for stochastic algorithms. Deterministic generative algorithms should NOT + inherit from this class. + """ + # Class attributes + ## defines if this algorithm is stochastic or deterministic + _isStochastic = False + + @classmethod + def getInputSpecification(cls): + """ + Method to get a reference to a class that specifies the input data for class cls. + + @ In, None + @ Out, specs, InputData.ParameterInput, class to use for specifying input of cls. + """ + specs = super().getInputSpecification() + return specs + + @classmethod + def isStochastic(cls): + """ + Method that returns if a Generator algorithm is stochastic or deterministic. + + @ In, None + @ Out, _isStochastic, bool, True if this algorithm is stochastic and False if it is deterministic + """ + return cls._isStochastic + + @abc.abstractmethod + def generate(self, params, pivot, settings): + """ + Generates a synthetic history from fitted parameters. @ In, params, dict, training parameters as from self.characterize @ In, pivot, np.array, time-like array values @ In, settings, dict, additional settings specific to algorithm - @ Out, residual, np.array, reduced signal shaped [pivotValues, targets] + @ Out, synthetic, np.array(float), synthetic signal + """ + + +class TimeSeriesCharacterizer(TimeSeriesAnalyzer): + """ + Acts as a mix-in class for algorithms that can generate characterize time-dependent signals. Any + algorithm that has "useful" information to extract from a time-dependent signal, typically in + the form of model parameters, should inherit from this class. + """ + # class attributes + ## define the clusterable features for this trainer. + _features = [] + + @classmethod + def getInputSpecification(cls): + """ + Method to get a reference to a class that specifies the input data for class cls. + + @ In, None + @ Out, specs, InputData.ParameterInput, class to use for specifying input of cls. + """ + specs = super().getInputSpecification() + return specs + + + @abc.abstractmethod + def getParamsAsVars(self, params): + """ + Map characterization parameters into flattened variable format + @ In, params, dict, trained parameters (as from characterize) + @ Out, rlz, dict, realization-style response """ - # DEFAULT IMPLEMENTATION, generate one signal and subtract it from the given one - # -> overload in inheritors to change behavior - sample = self.generate(params, pivot, settings) - residual = initial - sample - return residual - # clustering + # clustering def getClusteringValues(self, nameTemplate: str, requests: list, params: dict) -> dict: """ Provide the characteristic parameters of this ROM for clustering with other ROMs @@ -159,56 +257,44 @@ def setClusteringValues(self, fromCluster, params): params[target][identifier] = value return params - @abc.abstractclassmethod - def writeXML(self, writeTo, params): - """ - Allows the engine to put whatever it wants into an XML to print to file. - @ In, writeTo, xmlUtils.StaticXmlElement, entity to write to - @ In, params, dict, parameters from training this ROM - @ Out, None - """ - - -class TimeSeriesGenerator(TimeSeriesAnalyzer): +class TimeSeriesTransformer(TimeSeriesAnalyzer): """ - Act as an identifying class for algorithms that can generate synthetic time histories. + Acts as a mix-in class for algorithms that can transform time-dependent signals. Algorithms + which receive an input signal, then produce an output signal should inherit from this class. """ + @classmethod + def getInputSpecification(cls): + """ + Method to get a reference to a class that specifies the input data for class cls. + + @ In, None + @ Out, specs, InputData.ParameterInput, class to use for specifying input of cls. + """ + specs = super().getInputSpecification() + return specs @abc.abstractmethod - def generate(self, params, pivot, settings): + def getResidual(self, initial, params, pivot, settings): """ - Generates a synthetic history from fitted parameters. + Removes trained signal from data and find residual + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target @ In, params, dict, training parameters as from self.characterize @ In, pivot, np.array, time-like array values @ In, settings, dict, additional settings specific to algorithm - @ Out, synthetic, np.array(float), synthetic signal + @ Out, residual, np.array, reduced signal shaped [pivotValues, targets] """ - pass - - -class TimeSeriesCharacterizer(TimeSeriesAnalyzer): - """ - Act as an identifying class for algorithms that can generate characterize time-dependent signals. - """ @abc.abstractmethod - def characterize(self, signal, pivot, targets, settings): + def getComposite(self, initial, params, pivot, settings): """ - Characterizes the provided time series ("signal") using methods specific to this algorithm. - @ In, signal, np.array, time-dependent series - @ In, pivot, np.array, time-like parameter - @ In, targets, list(str), names of targets + Combines two component signals to form a composite signal. This is essentially the inverse + operation of the getResidual method. + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values @ In, settings, dict, additional settings specific to algorithm - @ Out, params, dict, characterization of signal; structure as: - params[target variable][characteristic] = value - """ - pass - - @abc.abstractmethod - def getParamsAsVars(self, params): - """ - Map characterization parameters into flattened variable format - @ In, params, dict, trained parameters (as from characterize) - @ Out, rlz, dict, realization-style response + @ Out, composite, np.array, resulting composite signal """ diff --git a/ravenframework/TSA/Transformers/Filters.py b/ravenframework/TSA/Transformers/Filters.py new file mode 100644 index 0000000000..ba02daf94c --- /dev/null +++ b/ravenframework/TSA/Transformers/Filters.py @@ -0,0 +1,136 @@ +# Copyright 2017 Battelle Energy Alliance, LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Filters which mask values based on some criterion. +""" + +import abc +import numpy as np + +from ..TimeSeriesAnalyzer import TimeSeriesTransformer +from ...utils import xmlUtils + + +class FilterBase(TimeSeriesTransformer): + """ Base class for transformers which filter or mask data """ + def handleInput(self, spec): + """ + Reads user inputs into this object. + @ In, spec, InputData.InputParams, input specifications + @ Out, settings, dict, initialization settings for this algorithm + """ + settings = super().handleInput(spec) + return settings + + @abc.abstractmethod + def criterion(self, signal): + """ + Criterion for being masked. Evaluates to True if the value should be masked and evaluates to + False otherwise. + @ In, signal, numpy.ndarray, data array + @ Out, mask, numpy.ndarray, numpy array of boolean values that masks values of X + """ + + def fit(self, signal, pivot, targets, settings): + """ + Fits the algorithm/model using the provided time series ("signal") using methods specific to + the algorithm. + @ In, signal, np.array, time-dependent series + @ In, pivot, np.array, time-like parameter + @ In, targets, list(str), names of targets + @ In, settings, dict, additional settings specific to algorithm + @ Out, params, dict, characterization of signal; structure as: + params[target variable][characteristic] = value + """ + params = {} + for tg, target in enumerate(targets): + history = signal[:, tg] + mask = self.criterion(history) + # save the masked (hidden) values + hiddenValues = history[mask] + params[target] = {'mask': mask, 'hiddenValues': hiddenValues} + return params + + def getResidual(self, initial, params, pivot, settings): + """ + Removes trained signal from data and find residual + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values + @ In, settings, dict, additional settings specific to algorithm + @ Out, residual, np.array, reduced signal shaped [pivotValues, targets] + """ + residual = initial.copy() + for t, (target, data) in enumerate(params.items()): + mask = data['mask'] + residual[:, t] = np.ma.MaskedArray(residual[:, t], mask=mask, fill_value=np.nan).filled() + return residual + + def getComposite(self, initial, params, pivot, settings): + """ + Combines two component signals to form a composite signal. This is essentially the inverse + operation of the getResidual method. + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values + @ In, settings, dict, additional settings specific to algorithm + @ Out, composite, np.array, resulting composite signal + """ + composite = initial.copy() + for t, (target, data) in enumerate(params.items()): + # Put the hidden values back into the composite signal + composite[data['mask'], t] = data['hiddenValues'] + return composite + + def writeXML(self, writeTo, params): + """ + Allows the engine to put whatever it wants into an XML to print to file. + @ In, writeTo, xmlUtils.StaticXmlElement, entity to write to + @ In, params, dict, parameters from training as from self.fit + @ Out, None + """ + for target, info in params.items(): + base = xmlUtils.newNode(target) + writeTo.append(base) + + +class ZeroFilter(FilterBase): + """ Masks any values that are near zero """ + + @classmethod + def getInputSpecification(cls): + """ + Define input spec for this class. + @ In, None + @ Out, specs, InputData.ParameterInput, input specification + """ + specs = super().getInputSpecification() + specs.name = 'zerofilter' + specs.description = r"""masks values that are near zero. The masked values are replaced with NaN + values. Caution should be used when using this algorithm because not all algorithms can handle + NaN values! A warning will be issued if NaN values are detected in the input of an algorithm that + does not support them.""" + return specs + + def criterion(self, signal): + """ + Criterion for being masked. Evaluates to True if the value should be masked and evaluates to + False otherwise. + @ In, signal, numpy.ndarray, data array + @ Out, mask, numpy.ndarray, numpy array of boolean values that masks values of X + """ + return np.isclose(signal, 0) diff --git a/ravenframework/TSA/Transformers/FunctionTransformers.py b/ravenframework/TSA/Transformers/FunctionTransformers.py new file mode 100644 index 0000000000..689724a78e --- /dev/null +++ b/ravenframework/TSA/Transformers/FunctionTransformers.py @@ -0,0 +1,161 @@ +# Copyright 2017 Battelle Energy Alliance, LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Created on June 20, 2023 +@author: j-bryan +Commonly used stateless transformation functions +""" + +import numpy as np +import scipy.special as sps +import sklearn.preprocessing as skl + +from .ScikitLearnBase import SKLTransformer +from ...utils import InputTypes + + +class LogTransformer(SKLTransformer): + """ Wrapper of scikit-learn's FunctionTransformer for np.log/np.exp """ + templateTransformer = skl.FunctionTransformer(np.log, np.exp) + + @classmethod + def getInputSpecification(cls): + """ + Method to get a reference to a class that specifies the input data for + class cls. + @ In, None + @ Out, inputSpecification, InputData.ParameterInput, class to use for + specifying input of cls. + """ + specs = super().getInputSpecification() + specs.name = 'logtransformer' + specs.description = r"""applies the natural logarithm to the data and inverts by applying the + exponential function.""" + return specs + + def getResidual(self, initial, params, pivot, settings): + """ + Removes trained signal from data and find residual + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values + @ In, settings, dict, additional settings specific to algorithm + @ Out, residual, np.array, reduced signal shaped [pivotValues, targets] + """ + # Check for non-positive values in targets before handing off to super + for t, (target, data) in enumerate(params.items()): + if np.any(initial[:, t] <= 0): + raise ValueError('Log transformation requires strictly positive values, and negative values ' + f'were found in target "{target}"! If negative values were expected, perhaps ' + 'an ArcsinhTransformer would be more appropriate?') + return super().getResidual(initial, params, pivot, settings) + + +class ArcsinhTransformer(SKLTransformer): + """ Wrapper of scikit-learn's FunctionTransformer for np.arcsinh/np.sinh """ + templateTransformer = skl.FunctionTransformer(np.arcsinh, np.sinh) + + @classmethod + def getInputSpecification(cls): + """ + Method to get a reference to a class that specifies the input data for + class cls. + @ In, None + @ Out, inputSpecification, InputData.ParameterInput, class to use for + specifying input of cls. + """ + specs = super().getInputSpecification() + specs.name = 'arcsinhtransformer' + specs.description = r"""applies the inverse hyperbolic sine to the data and inverts by applying + the hyperbolic sine.""" + return specs + + +class TanhTransformer(SKLTransformer): + """ Wrapper of scikit-learn's FunctionTransformer for np.tanh/np.arctanh """ + templateTransformer = skl.FunctionTransformer(np.tanh, np.arctanh) + + @classmethod + def getInputSpecification(cls): + """ + Method to get a reference to a class that specifies the input data for + class cls. + @ In, None + @ Out, inputSpecification, InputData.ParameterInput, class to use for + specifying input of cls. + """ + specs = super().getInputSpecification() + specs.name = 'tanhtransformer' + specs.description = r"""applies the hyperbolic tangent to the data and inverts by applying the + inverse hyperbolic tangent.""" + return specs + + +class SigmoidTransformer(SKLTransformer): + """ Wrapper of scikit-learn's FunctionTransformer for scipy.special.expit/scipy.special.logit """ + templateTransformer = skl.FunctionTransformer(sps.expit, sps.logit) + + @classmethod + def getInputSpecification(cls): + """ + Method to get a reference to a class that specifies the input data for + class cls. + @ In, None + @ Out, inputSpecification, InputData.ParameterInput, class to use for + specifying input of cls. + """ + specs = super().getInputSpecification() + specs.name = 'sigmoidtransformer' + specs.description = r"""applies the sigmoid (expit) function to the data and inverts by applying + the logit function.""" + return specs + + +class OutTruncation(SKLTransformer): + """ Wrapper of scikit-learn's FunctionTransformer for limiting generated data to a specific range """ + templateTransformer = skl.FunctionTransformer() + + @classmethod + def getInputSpecification(cls): + """ + Method to get a reference to a class that specifies the input data for + class cls. + @ In, None + @ Out, inputSpecification, InputData.ParameterInput, class to use for + specifying input of cls. + """ + specs = super().getInputSpecification() + specs.name = 'outtruncation' + specs.description = r"""limits the data to either positive or negative values by "reflecting" the + out-of-range values back into the desired range.""" + domainType = InputTypes.makeEnumType('outDomain', 'outDomainType', ['positive', 'negative']) + specs.addParam('domain', param_type=domainType, required=True) + return specs + + def handleInput(self, spec): + """ + Reads user inputs into this object. + @ In, spec, InputData.InputParams, input specifications + @ Out, settings, dict, initialization settings for this algorithm + """ + settings = super().handleInput(spec) + settings['domain'] = spec.parameterValues['domain'] + # Set the templateTransformer's inverse_func based on the specified domain + if settings['domain'] == 'positive': + self.templateTransformer.set_params(inverse_func=np.abs) + else: # negative + self.templateTransformer.set_params(inverse_func=lambda x: -np.abs(x)) + return settings diff --git a/ravenframework/TSA/Transformers/Normalizers.py b/ravenframework/TSA/Transformers/Normalizers.py new file mode 100644 index 0000000000..6ebdfb37d3 --- /dev/null +++ b/ravenframework/TSA/Transformers/Normalizers.py @@ -0,0 +1,163 @@ +# Copyright 2017 Battelle Energy Alliance, LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Created on June 20, 2023 +@author: j-bryan + +Wrappers for scikit-learn preprocessing scalers. +""" + +import sklearn.preprocessing as skl + +from .ScikitLearnBase import SKLTransformer, SKLCharacterizer +from ...utils import InputTypes + + +class MaxAbsScaler(SKLCharacterizer): + """ Wrapper of sklearn.preprocessing.MaxAbsScaler """ + _features = ['scale'] + templateTransformer = skl.MaxAbsScaler() + + @classmethod + def getInputSpecification(cls): + """ + Method to get a reference to a class that specifies the input data for + class cls. + @ In, None + @ Out, inputSpecification, InputData.ParameterInput, class to use for + specifying input of cls. + """ + specs = super().getInputSpecification() + specs.name = 'maxabsscaler' + specs.description = r"""scales the data to the interval $[-1, 1]$. This is done by dividing by + the largest absolute value of the data.""" + return specs + + +class MinMaxScaler(SKLCharacterizer): + """ Wrapper of sklearn.preprocessing.MinMaxScaler """ + _features = ['dataMin', 'dataMax'] + templateTransformer = skl.MinMaxScaler() + + @classmethod + def getInputSpecification(cls): + """ + Method to get a reference to a class that specifies the input data for + class cls. + @ In, None + @ Out, inputSpecification, InputData.ParameterInput, class to use for + specifying input of cls. + """ + specs = super().getInputSpecification() + specs.name = 'minmaxscaler' + specs.description = r"""scales the data to the interval $[0, 1]$. This is done by subtracting the + minimum value from each point and dividing by the range.""" + return specs + + +class RobustScaler(SKLCharacterizer): + """ Wrapper of sklearn.preprocessing.RobustScaler """ + _features = ['center', 'scale'] + templateTransformer = skl.RobustScaler() + + @classmethod + def getInputSpecification(cls): + """ + Method to get a reference to a class that specifies the input data for + class cls. + @ In, None + @ Out, inputSpecification, InputData.ParameterInput, class to use for + specifying input of cls. + """ + specs = super().getInputSpecification() + specs.name = 'robustscaler' + specs.description = r"""centers and scales the data by subtracting the median and dividing by + the interquartile range.""" + return specs + + +class StandardScaler(SKLCharacterizer): + """ Wrapper of sklearn.preprocessing.StandardScaler """ + _features = ['mean', 'scale'] + templateTransformer = skl.StandardScaler() + + @classmethod + def getInputSpecification(cls): + """ + Method to get a reference to a class that specifies the input data for + class cls. + @ In, None + @ Out, inputSpecification, InputData.ParameterInput, class to use for + specifying input of cls. + """ + specs = super().getInputSpecification() + specs.name = 'standardscaler' + specs.description = r"""centers and scales the data by subtracting the mean and dividing by + the standard deviation.""" + return specs + + +class QuantileTransformer(SKLTransformer): + """ Wrapper of scikit-learn's QuantileTransformer """ + templateTransformer = skl.QuantileTransformer() + + @classmethod + def getInputSpecification(cls): + """ + Method to get a reference to a class that specifies the input data for + class cls. + @ In, None + @ Out, inputSpecification, InputData.ParameterInput, class to use for + specifying input of cls. + """ + specs = super().getInputSpecification() + specs.name = 'quantiletransformer' + specs.description = r"""transforms the data to fit a given distribution by mapping the data to + a uniform distribution and then to the desired distribution.""" + specs.addParam('nQuantiles', param_type=InputTypes.IntegerType, + descr=r"""number of quantiles to use in the transformation. If \xmlAttr{nQuantiles} + is greater than the number of data, then the number of data is used instead.""", + required=False, default=1000) + distType = InputTypes.makeEnumType('outputDist', 'outputDistType', ['normal', 'uniform']) + specs.addParam('outputDistribution', param_type=distType, + descr=r"""distribution to transform to. Must be either 'normal' or 'uniform'.""", + required=False, default='normal') + return specs + + def handleInput(self, spec): + """ + Reads user inputs into this object. + @ In, spec, InputData.InputParams, input specifications + @ Out, settings, dict, initialization settings for this algorithm + """ + settings = super().handleInput(spec) + settings['nQuantiles'] = spec.parameterValues.get('nQuantiles', settings['nQuantiles']) + settings['outputDistribution'] = spec.parameterValues.get('outputDistribution', settings['outputDistribution']) + self.templateTransformer.set_params(n_quantiles=settings['nQuantiles'], + output_distribution=settings['outputDistribution']) + return settings + + def setDefaults(self, settings): + """ + Fills default values for settings with default values. + @ In, settings, dict, existing settings + @ Out, settings, dict, modified settings + """ + settings = super().setDefaults(settings) + if 'nQuantiles' not in settings: + settings['nQuantiles'] = 1000 + if 'outputDistribution' not in settings: + settings['outputDistribution'] = 'normal' + return settings diff --git a/ravenframework/TSA/Transformers/ScikitLearnBase.py b/ravenframework/TSA/Transformers/ScikitLearnBase.py new file mode 100644 index 0000000000..8a3883dffe --- /dev/null +++ b/ravenframework/TSA/Transformers/ScikitLearnBase.py @@ -0,0 +1,162 @@ +# Copyright 2017 Battelle Energy Alliance, LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Created on June 20, 2023 +@author: j-bryan + +Base classes for wrapping scikit-learn style transformers and characterizers. +""" + +import abc +from copy import deepcopy + +from ..TimeSeriesAnalyzer import TimeSeriesTransformer, TimeSeriesCharacterizer +from ...utils import xmlUtils + + +class SKLTransformer(TimeSeriesTransformer): + """ Wrapper for scikit-learn transformers """ + @property + @abc.abstractmethod + def templateTransformer(self): + """ Template transformer that must be implemented in child classes """ + + def fit(self, signal, pivot, targets, settings): + """ + Fits the algorithm/model using the provided time series ("signal") using methods specific to + the algorithm. + @ In, signal, np.array, time-dependent series + @ In, pivot, np.array, time-like parameter + @ In, targets, list(str), names of targets + @ In, settings, dict, additional settings specific to algorithm + @ Out, params, dict, characterization of signal; structure as: + params[target variable][characteristic] = value + """ + params = {} + for tg, target in enumerate(targets): + transformer = deepcopy(self.templateTransformer) + transformer.fit(signal) + params[target] = {'model': transformer} + return params + + def getResidual(self, initial, params, pivot, settings): + """ + Removes trained signal from data and find residual + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values + @ In, settings, dict, additional settings specific to algorithm + @ Out, residual, np.array, reduced signal shaped [pivotValues, targets] + """ + residual = initial.copy() + for tg, (target, data) in enumerate(params.items()): + residual[:, tg] = data['model'].transform(residual[:, tg].reshape(-1, 1)).flatten() + return residual + + def getComposite(self, initial, params, pivot, settings): + """ + Combines two component signals to form a composite signal. This is essentially the inverse + operation of the getResidual method. + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values + @ In, settings, dict, additional settings specific to algorithm + @ Out, composite, np.array, resulting composite signal + """ + composite = initial.copy() + for tg, (target, data) in enumerate(params.items()): + composite[:, tg] = data['model'].inverse_transform(composite[:, tg].reshape(-1, 1)).flatten() + return composite + + def writeXML(self, writeTo, params): + """ + Allows the engine to put whatever it wants into an XML to print to file. + @ In, writeTo, xmlUtils.StaticXmlElement, entity to write to + @ In, params, dict, trained parameters as from self.fit + @ Out, None + """ + # Add model settings as subnodes to writeTO node + for target, info in params.items(): + # Add model attributes as a attributes in the node + base = xmlUtils.newNode(target) + writeTo.append(base) + + +class SKLCharacterizer(SKLTransformer, TimeSeriesCharacterizer): + """ Wrapper for scikit-learn transformers that also provide a characterization of the data """ + def fit(self, signal, pivot, targets, settings): + """ + Fits the algorithm/model using the provided time series ("signal") using methods specific to + the algorithm. + @ In, signal, np.array, time-dependent series + @ In, pivot, np.array, time-like parameter + @ In, targets, list(str), names of targets + @ In, settings, dict, additional settings specific to algorithm + @ Out, params, dict, characterization of signal; structure as: + params[target variable][characteristic] = value + """ + params = {} + for tg, target in enumerate(targets): + transformer = deepcopy(self.templateTransformer) + transformer.fit(signal) + # Attributes of interest in the transformer have the convention of ending with an underscore, + # so that underscore is added here to the feature names before fetching them. + # Also, the transformer features are stored in an array, so we take the first (and only) element. + params[target] = {feat: getattr(transformer, self.camelToSnake(feat))[0] for feat in self._features} + params[target]['model'] = transformer + return params + + def getParamsAsVars(self, params): + """ + Map characterization parameters into flattened variable format + @ In, params, dict, trained parameters (as from fit) + @ Out, rlz, dict, realization-style response + """ + rlz = {} + for target, info in params.items(): + base = f'{self.name}__{target}' + for feat in self._features: + rlz[f'{base}__{feat}'] = info[feat] + return rlz + + def writeXML(self, writeTo, params): + """ + Allows the engine to put whatever it wants into an XML to print to file. + @ In, writeTo, xmlUtils.StaticXmlElement, entity to write to + @ In, params, dict, trained parameters as from self.fit + @ Out, None + """ + for target, info in params.items(): + base = xmlUtils.newNode(target) + # Add features as subnodes + features = {k: v for k, v in info.items() if k in self._features} + for featureName, featureValue in features.items(): + base.append(xmlUtils.newNode(featureName, text=featureValue)) + writeTo.append(base) + + @staticmethod + def camelToSnake(camelName): + """ + Converts a parameter name from camel case to snake case with a trailing underscore. Parameter + names for scikit-learn transformers follow the convention of being snake case with a trailing + underscore (e.g. "scale_" or "data_min_"). This method converts these names to camel case + (e.g. "scale" or "dataMin") to align with the convention used in RAVEN. + @ In, camelName, str, parameter name in camel case + @ Out, paramName, str, parameter name + """ + paramName = ''.join(['_' + c.lower() if c.isupper() else c for c in camelName]).lstrip('_') + '_' + return paramName diff --git a/ravenframework/TSA/Transformers/__init__.py b/ravenframework/TSA/Transformers/__init__.py new file mode 100644 index 0000000000..474f302397 --- /dev/null +++ b/ravenframework/TSA/Transformers/__init__.py @@ -0,0 +1,26 @@ +# Copyright 2017 Battelle Energy Alliance, LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +This module defines a number of custom data transformations to expand the +capability of the TSA.Transformer.Transformer class beyond scikit-learn +and user-implemented classes. + +Created May 25, 2023 +@author: j-bryan +""" + +from .Filters import ZeroFilter +from .FunctionTransformers import LogTransformer, ArcsinhTransformer, TanhTransformer, SigmoidTransformer, OutTruncation +from .Normalizers import MaxAbsScaler, MinMaxScaler, StandardScaler, RobustScaler, QuantileTransformer diff --git a/ravenframework/TSA/Wavelet.py b/ravenframework/TSA/Wavelet.py index cc231f2987..20e01d225b 100644 --- a/ravenframework/TSA/Wavelet.py +++ b/ravenframework/TSA/Wavelet.py @@ -17,11 +17,11 @@ import numpy as np from ..utils import InputData, InputTypes, xmlUtils -from .TimeSeriesAnalyzer import TimeSeriesGenerator, TimeSeriesCharacterizer +from .TimeSeriesAnalyzer import TimeSeriesTransformer, TimeSeriesCharacterizer, TimeSeriesGenerator # utility methods -class Wavelet(TimeSeriesGenerator, TimeSeriesCharacterizer): +class Wavelet(TimeSeriesTransformer, TimeSeriesCharacterizer, TimeSeriesGenerator): """ Perform Discrete Wavelet Transformation on time-dependent data. """ @@ -84,7 +84,6 @@ def __init__(self, *args, **kwargs): # general infrastructure super().__init__(*args, **kwargs) - def handleInput(self, spec): """ Reads user inputs into this object. @@ -95,8 +94,7 @@ def handleInput(self, spec): settings['family'] = spec.findFirst('family').value return settings - - def characterize(self, signal, pivot, targets, settings): + def fit(self, signal, pivot, targets, settings): """ This function utilizes the Discrete Wavelet Transform to characterize a time-dependent series of data. @@ -114,7 +112,6 @@ def characterize(self, signal, pivot, targets, settings): print("This RAVEN TSA Module requires the PYWAVELETS library to be installed in the current python environment") raise ModuleNotFoundError - ## The pivot input parameter isn't used explicity in the ## transformation as it assumed/required that each element in the ## time-dependent series is independent, uniquely indexed and @@ -123,6 +120,10 @@ def characterize(self, signal, pivot, targets, settings): params = {target: {'results': {}} for target in targets} for i, target in enumerate(targets): + if np.isnan(signal).any(): + raise ValueError(f'The history for target {target} contains NaN values.' + 'Perhaps there is a Filter transformer that is causing this?') + results = params[target]['results'] results['coeff_a'], results['coeff_d'] = pywt.dwt(signal[:, i], family) @@ -156,6 +157,35 @@ def getParamsAsVars(self, params): rlz[f'{base}__{name}__{v}'] = val return rlz + def getResidual(self, initial, params, pivot, settings): + """ + Removes trained signal from data and find residual + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values + @ In, settings, dict, additional settings specific to algorithm + @ Out, residual, np.array, reduced signal shaped [pivotValues, targets] + """ + synthetic = self.generate(params, pivot, settings) + residual = initial - synthetic + return residual + + def getComposite(self, initial, params, pivot, settings): + """ + Combines two component signals to form a composite signal. This is essentially the inverse + operation of the getResidual method. + @ In, initial, np.array, original signal shaped [pivotValues, targets], targets MUST be in + same order as self.target + @ In, params, dict, training parameters as from self.characterize + @ In, pivot, np.array, time-like array values + @ In, settings, dict, additional settings specific to algorithm + @ Out, composite, np.array, resulting composite signal + """ + synthetic = self.generate(params, pivot, settings) + composite = initial + synthetic + return composite + def generate(self, params, pivot, settings): """ Generates a synthetic history from fitted parameters. @@ -179,7 +209,6 @@ def generate(self, params, pivot, settings): synthetic[:, t] = pywt.idwt(cA, cD, family) return synthetic - def writeXML(self, writeTo, params): """ Allows the engine to put whatever it wants into an XML to print to file. diff --git a/ravenframework/TSA/__init__.py b/ravenframework/TSA/__init__.py index bd4749177e..ea44d3f269 100644 --- a/ravenframework/TSA/__init__.py +++ b/ravenframework/TSA/__init__.py @@ -24,6 +24,10 @@ from .ARMA import ARMA from .RWD import RWD +from .Transformers import MaxAbsScaler, MinMaxScaler, StandardScaler, RobustScaler, \ + LogTransformer, ArcsinhTransformer, TanhTransformer, SigmoidTransformer, \ + QuantileTransformer, OutTruncation, ZeroFilter + from .Factory import factory from .TSAUser import TSAUser # needs to be imported AFTER factory! diff --git a/tests/framework/PostProcessors/TSACharacterizer/gold/Basic/chz.csv b/tests/framework/PostProcessors/TSACharacterizer/gold/Basic/chz.csv index 1241b0c7ea..9d12e276c3 100644 --- a/tests/framework/PostProcessors/TSACharacterizer/gold/Basic/chz.csv +++ b/tests/framework/PostProcessors/TSACharacterizer/gold/Basic/chz.csv @@ -1,3 +1,3 @@ ARMA__signal_fa__AR__0,ARMA__signal_fa__MA__0,ARMA__signal_a__variance,Fourier__signal_f__period2.0__amplitude,ARMA__signal_a__MA__0,ARMA__signal_a__MA__2,Fourier__signal_f__fit_intercept,Fourier__signal_fa__period10.0__amplitude,Fourier__signal_f__period10.0__phase,Fourier__signal_f__period5.0__amplitude,Fourier__signal_fa__period2.0__amplitude,Fourier__signal_f__period5.0__phase,ARMA__signal_fa__variance,Fourier__signal_fa__period10.0__phase,ARMA__signal_fa__AR__1,Fourier__signal_fa__period2.0__phase,ARMA__signal_a__MA__1,ARMA__signal_fa__constant,Fourier__signal_f__period2.0__phase,ARMA__signal_a__constant,Fourier__signal_fa__period5.0__amplitude,ARMA__signal_fa__MA__1,ARMA__signal_a__AR__1,ARMA__signal_fa__MA__2,ARMA__signal_a__AR__0,Fourier__signal_f__period10.0__amplitude,Fourier__signal_fa__fit_intercept,Fourier__signal_fa__period5.0__phase -1.35283996982,-0.758810167613,0.531122354439,2.0,-1.14427852989,-0.076477629994,42.0,3.6485771704,-3.14159265359,3.0,2.27119924552,0.785398163397,0.545082800467,-3.08854058527,-0.439315122861,-0.165113659694,0.226235050274,0.0118581671617,3.33066907388e-15,0.00810342748135,3.00629571435,0.177036359223,-0.758871345573,-0.0784345793487,1.75724083583,4.0,41.8908824287,0.763083169957 -1.77466810604,-1.11598524403,0.274702459947,3.0,-1.09280887354,-0.239683970685,20.0,2.27417407299,-3.14159265359,1.0,2.77834476114,0.785398163397,0.277903101725,-3.13023980907,-0.78093138234,0.00410650639164,0.403930541596,0.0212214313493,3.25665420557e-15,0.0180684339995,0.678339437727,0.418116538363,-0.772078781249,-0.24007592617,1.76475307449,2.0,20.0760911024,0.587758626516 +1.35283996982,-0.758810167613,0.531122354439,2.0,-1.14427852989,-0.076477629994,42.0,3.6485771704,3.14159265359,3.0,2.27119924552,0.785398163397,0.545082800467,-3.08854058527,-0.439315122861,-0.165113659694,0.226235050274,0.0118581671617,3.3306690738799997e-15,0.00810342748135,3.00629571435,0.177036359223,-0.758871345573,-0.0784345793487,1.75724083583,4.0,41.8908824287,0.763083169957 +1.77466810604,-1.11598524403,0.274702459947,3.0,-1.09280887354,-0.239683970685,20.0,2.27417407299,3.14159265359,1.0,2.77834476114,0.785398163397,0.277903101725,-3.13023980907,-0.78093138234,0.00410650639164,0.403930541596,0.0212214313493,3.25665420557e-15,0.0180684339995,0.678339437727,0.418116538363,-0.772078781249,-0.24007592617,1.76475307449,2.0,20.0760911024,0.587758626516 diff --git a/tests/framework/PostProcessors/TSACharacterizer/gold/Basic/windowsChz.csv b/tests/framework/PostProcessors/TSACharacterizer/gold/Basic/windowsChz.csv new file mode 100644 index 0000000000..d5714b4ea4 --- /dev/null +++ b/tests/framework/PostProcessors/TSACharacterizer/gold/Basic/windowsChz.csv @@ -0,0 +1,3 @@ +Fourier__signal_fa__period5.0__amplitude,Fourier__signal_f__period5.0__amplitude,ARMA__signal_a__AR__1,ARMA__signal_fa__variance,ARMA__signal_a__MA__0,ARMA__signal_fa__MA__0,Fourier__signal_fa__period5.0__phase,Fourier__signal_f__period2.0__phase,Fourier__signal_f__period5.0__phase,Fourier__signal_fa__period10.0__phase,ARMA__signal_a__constant,ARMA__signal_fa__AR__1,Fourier__signal_f__fit_intercept,ARMA__signal_a__AR__0,Fourier__signal_f__period10.0__amplitude,ARMA__signal_fa__AR__0,Fourier__signal_fa__period2.0__amplitude,ARMA__signal_a__MA__2,Fourier__signal_fa__fit_intercept,ARMA__signal_a__MA__1,Fourier__signal_fa__period2.0__phase,ARMA__signal_fa__MA__1,ARMA__signal_fa__constant,Fourier__signal_f__period2.0__amplitude,ARMA__signal_a__variance,ARMA__signal_fa__MA__2,Fourier__signal_fa__period10.0__amplitude,Fourier__signal_f__period10.0__phase +3.00629571435,3.0,-0.758871358213,0.545082802337,-1.14427854971,-0.758810275391,0.763083169957,4.32970716571e-15,0.785398163397,-3.08854058527,0.00810344196454,-0.439315188474,42.0,1.75724084838,4.0,1.35284007659,2.27119924552,-0.0764776166682,41.8908824287,0.226235056286,-0.165113659694,0.177036377857,0.0118581485984,2.0,0.531122352253,-0.0784346202601,3.6485771704,-3.14159265359 +0.678339437727,1.0,-0.772077661797,0.277962706364,-1.09280680446,-1.11636311438,0.587758626516,3.5726370231e-15,0.785398163397,-3.13023980907,0.0180749755218,-0.781270094972,20.0,1.76475180647,2.0,1.7751141812,2.77834476114,-0.239683165251,20.0760911024,0.403928915669,0.00410650639164,0.418299687551,0.0195526464911,3.0,0.27470228442,-0.24022599586,2.27417407299,-3.14159265359 diff --git a/tests/framework/PostProcessors/TSACharacterizer/tests b/tests/framework/PostProcessors/TSACharacterizer/tests index f2fed5855b..08e04dee06 100644 --- a/tests/framework/PostProcessors/TSACharacterizer/tests +++ b/tests/framework/PostProcessors/TSACharacterizer/tests @@ -2,10 +2,14 @@ [./Basic] type = 'RavenFramework' input = 'basic.xml' - output = 'Basic/chz.xml' - csv = 'Basic/chz.csv' - rel_err = 1.5e-1 # limited by ARMA__signal_fa__constant - zero_threshold = 1e-12 + [./csv] + type = OrderedCSV + output = 'Basic/chz.csv' + windows_gold = 'Basic/windowsChz.csv' + mac_gold = 'Basic/windowsChz.csv' + rel_err = 1.5e-1 # limited by ARMA__signal_fa__constant + zero_threshold = 1e-12 + [../] [../] [./RWD] type = 'RavenFramework' diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/ARMA_A_0.csv b/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/ARMA_A_0.csv index 96ad768cfc..a402c826a3 100644 --- a/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/ARMA_A_0.csv +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/ARMA_A_0.csv @@ -1,1001 +1,101 @@ seconds,signal0,signal1 -0.000000000000000000e+00,-5.090858396301225497e-01,-7.827265155780997741e-02 -1.000000000000000056e-01,-1.662943036895392801e+00,-3.447802104278029356e-01 -2.000000000000000111e-01,-9.435128267237837818e-01,8.130212000530288030e-01 -2.999999999999999889e-01,-1.385104233178894972e+00,8.163410276516710473e-01 -4.000000000000000222e-01,-2.801618785625646701e+00,8.813930937996309334e-01 -5.000000000000000000e-01,-2.454988080825822649e+00,1.324347424287433350e+00 -5.999999999999999778e-01,-1.756036439155592932e+00,3.033140807130466410e+00 -6.999999999999999556e-01,-1.222504753422120061e+00,1.998889997369789340e+00 -8.000000000000000444e-01,5.233042759875690120e-01,2.395748129194369191e+00 -9.000000000000000222e-01,-3.539246749511770207e-01,2.170267816675788719e+00 -1.000000000000000000e+00,1.078352898674167781e-01,2.978770445725910321e+00 -1.100000000000000089e+00,6.080959616960026626e-01,1.371156396804214639e+00 -1.199999999999999956e+00,4.709214947347680202e-01,2.123865234860826234e+00 -1.300000000000000044e+00,-8.381372932250814589e-01,3.663124234014431657e+00 -1.399999999999999911e+00,2.513847807424368086e-01,5.450294844313198439e+00 -1.500000000000000000e+00,2.011683625038571954e-01,3.242387701633355768e+00 -1.600000000000000089e+00,-1.534116610834717620e-01,3.622341567347343805e+00 -1.699999999999999956e+00,6.871015628187739921e-01,3.466402785475086734e+00 -1.800000000000000044e+00,-9.727460593650638643e-01,2.261479281056283597e+00 -1.899999999999999911e+00,-1.517201746006112129e-01,1.188714976533879808e+00 -2.000000000000000000e+00,-1.130779946275477510e+00,7.849487696408683490e-01 -2.100000000000000089e+00,-1.246948873755913345e+00,1.195772094775713335e+00 -2.200000000000000178e+00,-1.641228421257041381e+00,5.065800362570239690e-01 -2.299999999999999822e+00,-5.435050103146976674e-01,8.199277619904574710e-01 -2.399999999999999911e+00,-6.060980536434763533e-01,-2.474549226994602058e-01 -2.500000000000000000e+00,-8.571092119455885339e-01,1.881143163330692980e+00 -2.600000000000000089e+00,3.395052288708239052e-01,1.674986686583715745e+00 -2.700000000000000178e+00,6.127050777118945302e-01,1.611868686739516221e+00 -2.799999999999999822e+00,1.667589928040662084e+00,1.600202647089981944e+00 -2.899999999999999911e+00,2.917438154693834829e+00,3.827961822663173419e-01 -3.000000000000000000e+00,1.517961224010541565e+00,1.657562281071323307e+00 -3.100000000000000089e+00,8.930627952917283841e-01,2.329380813484557278e-01 -3.200000000000000178e+00,4.802486695444726505e-01,8.119054870145839820e-01 -3.299999999999999822e+00,6.202094085224356679e-01,1.992142057325344551e+00 -3.399999999999999911e+00,1.532605333749822218e+00,-1.254875777224766953e+00 -3.500000000000000000e+00,7.873908633278727809e-01,-7.555796179386334854e-01 -3.600000000000000089e+00,1.756945908935515943e+00,3.562784971882243523e-02 -3.700000000000000178e+00,1.646782848367296825e+00,1.476975207247700039e+00 -3.799999999999999822e+00,2.089673695743358373e+00,5.228034856509541362e-01 -3.899999999999999911e+00,1.603489792799172697e+00,-3.718119147083836507e-01 -4.000000000000000000e+00,3.709944251488494493e-01,-3.450231002538725056e-01 -4.099999999999999645e+00,7.371176256947180594e-01,-1.227597723025154020e+00 -4.200000000000000178e+00,-6.364517475934057256e-01,-1.011836716833905303e+00 -4.299999999999999822e+00,-2.342209571613296681e+00,-3.912962371826377295e-01 -4.400000000000000355e+00,-2.451505095328354145e+00,5.604828376733156370e-01 -4.500000000000000000e+00,-1.817563692112718954e+00,-1.033504051496581644e+00 -4.599999999999999645e+00,-1.499740004104877400e+00,-1.510167953825927833e+00 -4.700000000000000178e+00,9.376434945627440953e-01,-2.943384574996245728e+00 -4.799999999999999822e+00,-1.468129109378907060e+00,-2.676890440980080221e+00 -4.900000000000000355e+00,-8.175164878141158997e-01,-1.876161456777797110e+00 -5.000000000000000000e+00,-1.063337835883285898e+00,2.344588342403438608e-01 -5.099999999999999645e+00,-1.462453677364648374e+00,1.096770739074939938e+00 -5.200000000000000178e+00,-1.316744592117402357e+00,2.963739342152867717e+00 -5.299999999999999822e+00,2.504361382656759005e-01,3.489103488466800851e+00 -5.400000000000000355e+00,-3.236793918468106046e-01,2.379038888193974799e+00 -5.500000000000000000e+00,1.107938350580001535e-01,1.829591223163825608e+00 -5.599999999999999645e+00,-1.334274025360806526e+00,7.416444490567719594e-01 -5.700000000000000178e+00,-1.790952715469661172e+00,3.343226438465050077e-01 -5.799999999999999822e+00,-9.117366846025604099e-01,1.353097825123200426e+00 -5.900000000000000355e+00,-1.239681071258013079e-01,2.761274680653371671e+00 -6.000000000000000000e+00,2.396352174793391909e-01,1.740806512092977876e+00 -6.099999999999999645e+00,-1.388825167444263653e-01,8.681655944330959329e-01 -6.200000000000000178e+00,-1.051090789354924837e+00,1.775221197275940188e+00 -6.299999999999999822e+00,-1.739143742241406221e+00,1.006388050943582302e+00 -6.400000000000000355e+00,-6.055786627479116113e-01,1.731149029411299223e+00 -6.500000000000000000e+00,-1.319491814698917631e-01,1.430598210847919827e+00 -6.599999999999999645e+00,-4.739330622620116507e-02,1.470396592023959226e+00 -6.700000000000000178e+00,-1.391283607350251250e+00,-1.689376859512305984e-01 -6.799999999999999822e+00,-9.745083395656025660e-01,5.862805823570320651e-01 -6.900000000000000355e+00,-2.905857709127155797e+00,1.122102607237708716e+00 -7.000000000000000000e+00,-2.562775710810679008e+00,6.305711191056225795e-01 -7.099999999999999645e+00,-3.453100793147330094e+00,5.364060822833977005e-01 -7.200000000000000178e+00,-1.830112996697487837e+00,9.223330652255266049e-01 -7.299999999999999822e+00,-1.702849642242440842e+00,2.151568084239086076e+00 -7.400000000000000355e+00,-2.577367531660347932e+00,9.435142259812140386e-02 -7.500000000000000000e+00,-2.419913513045900189e+00,1.973448113195783060e+00 -7.599999999999999645e+00,-2.003305567996609415e+00,7.963094403005520627e-01 -7.700000000000000178e+00,-2.900452201689101450e+00,1.189979630675870981e+00 -7.799999999999999822e+00,-4.759610028149769967e-01,2.391675872368143274e+00 -7.900000000000000355e+00,-3.432291076860458201e+00,1.000531844989406283e+00 -8.000000000000000000e+00,-2.733307054625502275e+00,2.684294873643469082e+00 -8.099999999999999645e+00,-1.015350648376653231e+00,2.408997139591444903e+00 -8.199999999999999289e+00,-1.398290819538265950e+00,1.142440921660673681e+00 -8.300000000000000711e+00,-1.280434615052794545e-02,9.656630572155880943e-01 -8.400000000000000355e+00,1.976937741112685942e-01,1.291369921758275252e+00 -8.500000000000000000e+00,1.331632564754503534e+00,-2.398863643175618288e-01 -8.599999999999999645e+00,1.015031972013103356e+00,4.469713809035547047e-02 -8.699999999999999289e+00,1.619142247311579741e+00,-3.573316781645208273e-01 -8.800000000000000711e+00,1.364957098099065735e+00,5.143681151198316037e-01 -8.900000000000000355e+00,1.632554380444023234e+00,-1.116017095998773079e-01 -9.000000000000000000e+00,7.037573830550194476e-01,4.482331958811216488e-01 -9.099999999999999645e+00,1.525220512431347597e+00,-8.158894378146065440e-01 -9.199999999999999289e+00,-7.708933809166502726e-01,-7.669817114308039030e-02 -9.300000000000000711e+00,6.886790029574514360e-01,1.894789714810297010e+00 -9.400000000000000355e+00,7.528981120936356630e-01,1.917234110361296873e+00 -9.500000000000000000e+00,1.743494187895829217e+00,3.040363419380639698e+00 -9.599999999999999645e+00,3.823068279684211368e-01,1.195934647886583990e+00 -9.699999999999999289e+00,1.989650648601133831e+00,1.998466779098266866e+00 -9.800000000000000711e+00,1.813498131614768472e+00,1.952422152253239229e+00 -9.900000000000000355e+00,2.886169677238975328e+00,3.917270574843016107e+00 -1.000000000000000000e+01,3.461938283882579626e+00,1.140439954361506025e+00 -1.009999999999999964e+01,3.354277444390209695e+00,5.827892560086362916e-01 -1.019999999999999929e+01,1.204060197303942648e+00,4.610725361489113050e-01 -1.030000000000000071e+01,5.329173977010284169e-01,1.334255240973651002e+00 -1.040000000000000036e+01,6.708795286442306161e-01,5.148266096230899591e-02 -1.050000000000000000e+01,2.892375974873995781e-01,1.370520789435078823e+00 -1.059999999999999964e+01,2.433508353683476733e-01,1.800989036696495793e+00 -1.069999999999999929e+01,2.807376849971698896e-02,7.950403747954044587e-01 -1.080000000000000071e+01,-1.590986415996325176e+00,7.246711753512402598e-02 -1.090000000000000036e+01,-2.762149749629789319e+00,2.065778046310168536e-01 -1.100000000000000000e+01,-2.083087225023734668e+00,1.023902174458956926e+00 -1.109999999999999964e+01,-2.892317113558456665e+00,-1.181591440695373696e-01 -1.119999999999999929e+01,-1.512359884468430504e+00,-1.920243322459621815e+00 -1.130000000000000071e+01,-9.151604570352080970e-01,-2.695586568868777899e+00 -1.140000000000000036e+01,7.437933426504121925e-01,-2.614741774923263762e+00 -1.150000000000000000e+01,6.227695971511408857e-01,-1.194026693240653358e+00 -1.159999999999999964e+01,-6.390535005413644498e-02,-1.708206214323060745e+00 -1.169999999999999929e+01,-9.760692048740710058e-01,-1.507210043119321163e+00 -1.180000000000000071e+01,-1.131675119472178581e-01,-3.361203266158423908e+00 -1.190000000000000036e+01,1.194379178366320460e-01,-2.998632745499789642e+00 -1.200000000000000000e+01,-8.405590403100713370e-01,-1.802902653301079017e+00 -1.209999999999999964e+01,-1.919243263368984875e-01,-2.689754966622620369e+00 -1.219999999999999929e+01,-2.945560527918221760e-01,-2.196823575010931062e+00 -1.230000000000000071e+01,1.715617955109610016e+00,-1.754249679677046370e+00 -1.240000000000000036e+01,2.325631264226819095e+00,-5.644974869703589526e-02 -1.250000000000000000e+01,1.620545306047926015e+00,-9.182858909188702512e-01 -1.259999999999999964e+01,1.182042085670307774e+00,-5.224532557863859061e-01 -1.269999999999999929e+01,-1.223541498953623630e-01,-7.551241211431622968e-01 -1.280000000000000071e+01,-4.529941159386541294e-01,-1.721470037267514019e-02 -1.290000000000000036e+01,-9.529339004425407822e-01,-1.213696184399958078e+00 -1.300000000000000000e+01,-1.370595805860157945e+00,-5.023215806428377173e-01 -1.309999999999999964e+01,6.231278421755830355e-01,-8.761709037063010186e-01 -1.319999999999999929e+01,9.552975744774839795e-01,-6.892490806284019556e-01 -1.330000000000000071e+01,2.080263204509243735e+00,-3.613527354956445614e-01 -1.340000000000000036e+01,2.285907938675591389e+00,-1.555887584692815517e+00 -1.350000000000000000e+01,1.545392025804388281e+00,-1.816121314704218115e+00 -1.359999999999999964e+01,7.709812319593080110e-01,-2.583100737458345897e+00 -1.369999999999999929e+01,-1.646518152650044975e+00,-3.718802721989320048e+00 -1.380000000000000071e+01,-2.310490197999437889e+00,-1.954751135139486173e+00 -1.390000000000000036e+01,-2.742656313227574305e+00,-2.180826631156250084e+00 -1.400000000000000000e+01,-2.554260705945311738e+00,-1.153728017629499725e+00 -1.409999999999999964e+01,-1.083474895060917653e+00,-1.085614943593398385e+00 -1.419999999999999929e+01,6.463653958726435222e-01,1.828128059383422044e-01 -1.430000000000000071e+01,5.013879121261513028e-01,6.981909035122302321e-03 -1.440000000000000036e+01,-1.324438324916742626e+00,-5.323341865816733076e-02 -1.450000000000000000e+01,-7.136359237268632416e-01,2.874669991304537250e-02 -1.459999999999999964e+01,2.436398934713692177e-01,1.487783016279863979e+00 -1.469999999999999929e+01,-4.761358668467925437e-01,1.201161070019821198e+00 -1.480000000000000071e+01,1.301201323970369028e+00,-7.864673575581355713e-01 -1.490000000000000036e+01,2.430630905872384950e+00,-1.468847546086590627e+00 -1.500000000000000000e+01,1.658893425097392349e+00,-2.883104943282997379e+00 -1.509999999999999964e+01,2.415513847210394083e+00,-2.160281665497629788e+00 -1.519999999999999929e+01,2.007251204036032188e+00,-1.527428256558080566e+00 -1.530000000000000071e+01,-3.459197407034699800e-01,-4.829782327610883108e+00 -1.540000000000000036e+01,-2.202002841773034181e-01,-3.139055169005693369e+00 -1.550000000000000000e+01,-9.674238799960237500e-01,-5.037168473114693512e+00 -1.559999999999999964e+01,5.213434205056877158e-01,-2.156445250780751888e+00 -1.569999999999999929e+01,-7.064785995029396748e-01,-2.977136665689386064e+00 -1.580000000000000071e+01,-1.845088711181520624e-01,-3.142286796972328489e+00 -1.590000000000000036e+01,9.573159238335378074e-01,-2.946412446461134316e+00 -1.600000000000000000e+01,1.283807631163826901e+00,-2.118139990706406017e+00 -1.610000000000000142e+01,2.144597494857965803e+00,-1.552397269101816413e+00 -1.619999999999999929e+01,1.364113500839947202e+00,-1.656780781100765321e+00 -1.630000000000000071e+01,1.265224593346754300e+00,-1.626187584960057331e+00 -1.639999999999999858e+01,-1.032004159449136038e+00,-1.469339895852303846e+00 -1.650000000000000000e+01,-5.439424246841952915e-01,-2.383092710282739279e+00 -1.660000000000000142e+01,-7.014107159337152897e-01,4.784442684712922333e-01 -1.669999999999999929e+01,1.322052012479713712e+00,-9.810185923395605689e-01 -1.680000000000000071e+01,2.628010397286846711e+00,1.945222837684927208e+00 -1.689999999999999858e+01,2.541949118439101873e+00,5.913706177010559228e-01 -1.700000000000000000e+01,2.739247020957184198e+00,1.229106991758669665e+00 -1.710000000000000142e+01,1.298167115663682258e+00,3.001703780333571103e-01 -1.719999999999999929e+01,2.433360629073874293e+00,1.272778027675649737e+00 -1.730000000000000071e+01,2.041138042288483501e+00,1.221454179543946639e+00 -1.739999999999999858e+01,1.643952178240804196e+00,2.566974097101638042e-01 -1.750000000000000000e+01,2.145099713812877340e+00,1.901174787859101878e+00 -1.760000000000000142e+01,1.784138429647491364e+00,3.592137049635531376e+00 -1.769999999999999929e+01,-2.021874585816042513e-01,4.340140954286574981e+00 -1.780000000000000071e+01,1.228270106829413733e+00,3.908365967703955945e+00 -1.789999999999999858e+01,9.662713094812196424e-01,4.647995549433124651e+00 -1.800000000000000000e+01,1.029524564147127341e-01,2.997007035453256307e+00 -1.810000000000000142e+01,9.516210397246291364e-02,3.118047837961255730e+00 -1.819999999999999929e+01,-9.733651587293505880e-01,9.364733715709980810e-01 -1.830000000000000071e+01,-2.633209514450130406e+00,1.864688124752257981e+00 -1.839999999999999858e+01,-2.548810862909160591e+00,1.786672279861508450e+00 -1.850000000000000000e+01,-3.058466484012191788e+00,8.194831673344603606e-01 -1.860000000000000142e+01,-1.867243806853791988e+00,-5.068560558633448121e-01 -1.869999999999999929e+01,-9.251831021141778688e-01,2.696453521488190175e-01 -1.880000000000000071e+01,3.454941220189581275e-01,2.030645445673288918e-01 -1.889999999999999858e+01,1.605012721321486424e+00,9.354718375612676162e-01 -1.900000000000000000e+01,1.733096533568593056e+00,1.688670199091300894e+00 -1.910000000000000142e+01,2.099652202065271922e-01,2.297002256544974585e+00 -1.919999999999999929e+01,1.859020794571983215e+00,1.123716445060956026e+00 -1.930000000000000071e+01,2.308539167147228177e+00,-1.054369681276148718e+00 -1.939999999999999858e+01,1.116819494694220705e+00,5.013154027006611058e-01 -1.950000000000000000e+01,1.916662193092764976e+00,4.409296294644643455e-01 -1.960000000000000142e+01,1.287967554844525964e+00,-1.093817415966265583e-01 -1.969999999999999929e+01,1.146434030320149899e+00,-1.058639968212478077e+00 -1.980000000000000071e+01,1.887651264394138995e-01,-1.153201923131343287e+00 -1.989999999999999858e+01,8.181602814017844283e-01,-1.974259838644047749e+00 -2.000000000000000000e+01,1.868287748949750693e+00,-9.756475572953015041e-01 -2.010000000000000142e+01,1.565339306934567576e+00,-2.238460178107784415e+00 -2.019999999999999929e+01,3.363791151390320255e+00,-1.595777426888387307e+00 -2.030000000000000071e+01,2.448884990276866347e+00,-6.670205253017932323e-01 -2.039999999999999858e+01,1.634786342996879860e+00,-6.621491439325721817e-01 -2.050000000000000000e+01,-1.279436453313517741e-01,-1.470598474075011097e+00 -2.060000000000000142e+01,6.834135661694942243e-01,-3.773984798364830029e-01 -2.069999999999999929e+01,5.664850005794757060e-01,-9.576238474888130181e-01 -2.080000000000000071e+01,5.083142141452807738e-01,-2.847537549068002161e-01 -2.089999999999999858e+01,-5.772106053451998564e-01,-2.301532410654016647e-01 -2.100000000000000000e+01,-5.877049544861048802e-02,-6.501652886771146500e-01 -2.110000000000000142e+01,-2.078513266106644941e-01,-3.365553315308832116e-02 -2.119999999999999929e+01,-2.962877581530045101e-01,6.792069290163280648e-01 -2.130000000000000071e+01,-5.134122118864098416e-01,2.105763355188620789e+00 -2.139999999999999858e+01,1.870200724390393143e-01,-5.466193867351828994e-02 -2.150000000000000000e+01,-1.250626927027677748e+00,-1.596774709168133466e+00 -2.160000000000000142e+01,-1.303276476832782693e+00,-1.183919468241825257e+00 -2.169999999999999929e+01,2.063416797770646904e-01,-8.003517331509065746e-01 -2.180000000000000071e+01,-3.086983656495638328e+00,3.099892998557820523e-01 -2.189999999999999858e+01,-6.881715221779974856e-01,3.535520599985428891e-01 -2.200000000000000000e+01,-3.071905089332514827e+00,1.609184037514286736e+00 -2.210000000000000142e+01,-1.613155445790176667e+00,1.178117429314645692e+00 -2.219999999999999929e+01,-1.231600254303363062e+00,9.393560222668663195e-01 -2.230000000000000071e+01,-2.687270130443805138e-01,-8.307387874419221996e-01 -2.239999999999999858e+01,3.431261125768382270e-01,-5.476011660618834709e-02 -2.250000000000000000e+01,1.915933046535957529e-01,-6.493073890719215369e-01 -2.260000000000000142e+01,-1.112594651097375653e+00,-1.773177130347352914e+00 -2.269999999999999929e+01,3.168966384597151631e-01,-1.239668093186819142e+00 -2.280000000000000071e+01,3.086506420090537328e-02,-1.875272825134369103e+00 -2.289999999999999858e+01,-2.505487331104947479e-01,-2.519386825975656663e+00 -2.300000000000000000e+01,2.490228194133518869e-01,-2.567618616754723693e+00 -2.310000000000000142e+01,1.616458670218128835e-01,-1.090565516651163414e+00 -2.319999999999999929e+01,1.217438452002035154e+00,2.987771255774812618e-01 -2.330000000000000071e+01,3.930279569110645133e-01,-1.067900685507178760e-01 -2.339999999999999858e+01,2.041397091877404701e+00,8.947595740699394451e-01 -2.350000000000000000e+01,4.350432477024768207e-02,8.467056982879483940e-01 -2.360000000000000142e+01,3.845767385543860661e-01,1.313561451041006523e+00 -2.369999999999999929e+01,-1.489002107227153981e+00,2.868528214597299897e+00 -2.380000000000000071e+01,-9.169341582868286711e-01,9.954789324001585005e-01 -2.389999999999999858e+01,-5.165891841732737078e-01,1.118658537083520033e+00 -2.400000000000000000e+01,-1.183572813612621566e+00,1.274976534453787780e+00 -2.410000000000000142e+01,-1.075171829340502816e+00,6.648437515058973624e-01 -2.419999999999999929e+01,1.727157873546237288e-01,1.602558246341705850e+00 -2.430000000000000071e+01,3.497403875442099963e-01,2.171149480562119205e+00 -2.439999999999999858e+01,-1.125862241213027914e+00,2.538236017654119880e+00 -2.450000000000000000e+01,-7.830613267700000657e-01,1.562605842287754232e+00 -2.460000000000000142e+01,8.320422120783657061e-01,1.681413937122676838e+00 -2.469999999999999929e+01,1.025553086165293504e+00,-1.158191749893309197e-01 -2.480000000000000071e+01,1.523805468101429472e+00,1.025535819257320735e+00 -2.489999999999999858e+01,-3.513018286219237174e-01,1.227157237841462606e-01 -2.500000000000000000e+01,-8.982760501845336032e-01,1.544633999837713656e+00 -2.510000000000000142e+01,-1.629865936007789839e+00,1.711672979386603677e+00 -2.519999999999999929e+01,-7.009274194880880104e-01,1.987312486419603452e+00 -2.530000000000000071e+01,9.830592170438560151e-01,1.477851436514005856e+00 -2.539999999999999858e+01,5.203019469954001108e-01,1.980997732544969470e+00 -2.550000000000000000e+01,1.133304667767029095e+00,8.922953281739003373e-01 -2.560000000000000142e+01,6.680950925304490751e-01,2.599566134439258436e-01 -2.569999999999999929e+01,3.129333603905937178e-02,1.955723293422093889e-01 -2.580000000000000071e+01,2.022759238489351130e-01,1.869035025385915594e-01 -2.589999999999999858e+01,8.186512412473686551e-01,2.587471362473628966e-01 -2.600000000000000000e+01,5.932557802523751311e-01,-1.791878751872232334e-01 -2.610000000000000142e+01,2.399217673231295311e+00,-1.375273850682218746e-01 -2.619999999999999929e+01,3.688269680914546544e-01,1.105735961645467613e+00 -2.630000000000000071e+01,1.852194499492092694e+00,1.008873181943455544e+00 -2.639999999999999858e+01,9.239246452014826527e-01,1.339102003947397090e+00 -2.650000000000000000e+01,3.273317401267929472e-01,4.082246637815412638e-01 -2.660000000000000142e+01,-1.953013977065632956e-01,1.346025798202664436e+00 -2.669999999999999929e+01,-6.626409836211821780e-01,6.151573102207331945e-02 -2.680000000000000071e+01,-3.228717205033178050e-01,8.749615216268471496e-01 -2.689999999999999858e+01,2.972846223158202572e-01,-2.718937455141849924e-01 -2.700000000000000000e+01,8.169129371478759394e-01,2.447389614567263560e-01 -2.710000000000000142e+01,-4.885826850381335129e-01,1.405516368040252928e+00 -2.719999999999999929e+01,-3.465089389149826893e-01,5.983059642045469584e-01 -2.730000000000000071e+01,-2.929652933596976205e-01,-4.814640434415297654e-01 -2.739999999999999858e+01,-1.568901115210837305e-01,-1.695838516110169891e+00 -2.750000000000000000e+01,7.357781863777443920e-01,-1.184965297761819136e-01 -2.760000000000000142e+01,1.491822371519763823e+00,-1.410172802941371151e+00 -2.769999999999999929e+01,1.231861773957345363e-01,4.911913148406256147e-01 -2.780000000000000071e+01,1.546539017585835118e-01,7.908068583168537113e-01 -2.789999999999999858e+01,-8.389768957867365096e-01,-1.251849512471747694e+00 -2.800000000000000000e+01,-9.158044399025132565e-01,-8.692488484054904374e-01 -2.810000000000000142e+01,-8.784017043534592117e-01,-2.353832630521545788e+00 -2.819999999999999929e+01,1.875665125752577600e+00,-9.818004614920468054e-01 -2.830000000000000071e+01,2.155881944512555659e+00,-2.512874498854813510e+00 -2.839999999999999858e+01,1.985301441291806190e+00,-1.603914492215817278e+00 -2.850000000000000000e+01,2.703342517004897250e+00,-2.298380755631203698e+00 -2.860000000000000142e+01,-8.263206157088054393e-02,-2.090945539806100761e+00 -2.869999999999999929e+01,1.000777387319042866e+00,-1.714722651501580097e-01 -2.880000000000000071e+01,6.882198475871635912e-01,-1.175209302945072309e+00 -2.889999999999999858e+01,-4.984199537527003177e-01,8.409416946984118457e-01 -2.900000000000000000e+01,1.217778361809660037e+00,1.350541750832823684e+00 -2.910000000000000142e+01,1.216081264046492416e-02,1.063584976817933736e+00 -2.919999999999999929e+01,-6.690562060126750143e-01,-1.149184538611348616e-01 -2.930000000000000071e+01,8.918297783235823450e-01,-3.876649420567434556e-01 -2.939999999999999858e+01,9.799589376276083286e-01,-8.274790086076685980e-02 -2.950000000000000000e+01,3.831729839331332599e-01,-2.077470790505047127e+00 -2.960000000000000142e+01,2.176425014054645946e-01,-3.633925174683030335e+00 -2.969999999999999929e+01,-2.181116660903933968e-01,-3.621104407103575173e+00 -2.980000000000000071e+01,-6.825125186962218704e-01,-4.389841976925563216e+00 -2.989999999999999858e+01,-1.218958309917281158e+00,-1.721468094773163982e+00 -3.000000000000000000e+01,-1.601775636344143772e+00,-3.875974829016414436e+00 -3.010000000000000142e+01,-1.841251488761370680e+00,-2.456761947493252496e+00 -3.019999999999999929e+01,-3.188941248861917543e+00,-2.365017554371425135e+00 -3.030000000000000071e+01,-1.506842889262933305e+00,1.396840467472416858e+00 -3.039999999999999858e+01,-1.823698326894710675e+00,1.158481481319116213e+00 -3.050000000000000000e+01,-2.391997853611999680e+00,-7.048416787748017498e-01 -3.060000000000000142e+01,-9.053969490269586640e-01,3.009468041635486868e-01 -3.069999999999999929e+01,-5.264436688126578057e-02,-7.352540168214417582e-01 -3.080000000000000071e+01,-3.668998219100224611e-01,5.993557127296227360e-01 -3.089999999999999858e+01,1.174957628719437652e+00,-4.547593994289392816e-01 -3.100000000000000000e+01,6.621166409324737989e-01,6.110387998453823410e-01 -3.110000000000000142e+01,-3.681281624088988957e-02,-1.436386246284078183e+00 -3.119999999999999929e+01,-2.338757647559924768e-01,-1.895307177449024660e+00 -3.130000000000000071e+01,-1.131491811950243953e+00,-3.307836444130017206e+00 -3.139999999999999858e+01,5.070558686226442902e-01,-2.296660097027142022e+00 -3.150000000000000000e+01,2.490581643975605108e-01,-2.449680008267494102e+00 -3.160000000000000142e+01,7.894030614378307886e-01,-1.038075790260222231e+00 -3.169999999999999929e+01,4.876637717293866303e-01,3.165047024870486503e-01 -3.180000000000000071e+01,1.188013850917857939e+00,-1.249008425957095048e+00 -3.189999999999999858e+01,1.478056096695184340e+00,-7.080442336730761177e-01 -3.200000000000000000e+01,1.031566261478528146e+00,2.026641261121978066e-01 -3.210000000000000142e+01,2.032500357343745456e+00,1.361690527387989513e-01 -3.220000000000000284e+01,9.398169276703033370e-01,-4.650175555260541715e-01 -3.229999999999999716e+01,1.154476761125640127e+00,-2.886526948754452260e+00 -3.239999999999999858e+01,1.537703463829996231e+00,-1.524024909708590503e+00 -3.250000000000000000e+01,3.534341195664595592e+00,-1.646186500627672800e+00 -3.260000000000000142e+01,2.449077329633607025e+00,-2.451743001218659401e+00 -3.270000000000000284e+01,3.812122635248101243e+00,-3.666858410382420885e+00 -3.279999999999999716e+01,3.339826846636560376e+00,-2.657179162503621850e+00 -3.289999999999999858e+01,2.839410493307636951e-02,-4.375120707300260037e+00 -3.300000000000000000e+01,6.681149209638812536e-01,-2.383907042999890091e+00 -3.310000000000000142e+01,4.039860325959155896e-01,-4.922456477370269923e+00 -3.320000000000000284e+01,8.259570542322030029e-01,-4.472710990626154626e+00 -3.329999999999999716e+01,2.659968656345829130e-01,-4.319045808060431035e+00 -3.339999999999999858e+01,1.398190083650219684e+00,-3.771583738126589758e+00 -3.350000000000000000e+01,-3.340403903222199933e-01,-3.090412778436078867e+00 -3.360000000000000142e+01,6.033736339427878126e-02,-2.381920642617756378e+00 -3.370000000000000284e+01,1.483087128976549707e+00,-2.192585698791100768e+00 -3.379999999999999716e+01,2.297885562762972178e+00,-7.879715152663500088e-01 -3.389999999999999858e+01,2.795852404629732391e+00,3.776422032682424934e-01 -3.400000000000000000e+01,2.734473703049195237e+00,1.385557675744285788e+00 -3.410000000000000142e+01,2.459615256627674995e+00,1.721480935641982901e+00 -3.420000000000000284e+01,5.900386497813868703e-01,1.616708410503030269e+00 -3.429999999999999716e+01,2.799366208665565736e-01,-1.101141518271444575e-01 -3.439999999999999858e+01,1.710346346496356973e-01,1.885410807032038560e-01 -3.450000000000000000e+01,-1.667591447577319697e+00,9.803869943194729597e-01 -3.460000000000000142e+01,-1.846348439751756221e+00,1.623503455052312638e+00 -3.470000000000000284e+01,-2.245526538395246074e+00,3.203579253447358943e-01 -3.479999999999999716e+01,-2.474662869889562522e+00,3.101786186948110924e+00 -3.489999999999999858e+01,-1.709078231500753997e+00,1.133731966344408315e+00 -3.500000000000000000e+01,-5.452886517902362229e-01,1.764927901518623665e+00 -3.510000000000000142e+01,-1.001661998969157530e+00,1.784416167529379926e+00 -3.520000000000000284e+01,4.610229957779615750e-01,1.226776175917178691e+00 -3.529999999999999716e+01,9.211033037027978043e-01,1.068421502439145243e+00 -3.539999999999999858e+01,1.047438218166233614e+00,2.517867565190899382e-01 -3.550000000000000000e+01,-1.680751512313187479e-01,1.957503094250297171e-01 -3.560000000000000142e+01,4.160037541332617939e-01,1.617211745121227118e+00 -3.570000000000000284e+01,1.012776864745710936e+00,3.403007627902099763e+00 -3.579999999999999716e+01,-3.079865515073820226e-01,4.236279731577999641e+00 -3.589999999999999858e+01,1.393470054449204465e+00,2.684842431539868457e+00 -3.600000000000000000e+01,1.126696324581611952e+00,1.207380578146043160e+00 -3.610000000000000142e+01,3.688971855755546869e+00,-7.332283321942926202e-01 -3.620000000000000284e+01,1.670128648391077775e+00,-1.724752385099069585e+00 -3.629999999999999716e+01,3.296559277026543722e+00,-2.873073156700033159e+00 -3.639999999999999858e+01,1.460697853625165354e+00,-1.455530187895117677e+00 -3.650000000000000000e+01,1.602822044312373961e+00,-6.750198631630383028e-01 -3.660000000000000142e+01,1.724611822827347485e+00,-9.540353858075567572e-01 -3.670000000000000284e+01,1.730364820238149193e+00,7.445755901537696175e-01 -3.679999999999999716e+01,1.224243535787417958e+00,-2.839949066437594816e-01 -3.689999999999999858e+01,-5.706765389321024617e-01,6.416087224401756384e-01 -3.700000000000000000e+01,-5.169331670078416430e-01,7.186134595199864528e-01 -3.710000000000000142e+01,7.313748085955245060e-01,1.235088214215251057e+00 -3.720000000000000284e+01,1.510398361171653825e+00,2.880407835029354047e+00 -3.729999999999999716e+01,8.588926767169999255e-02,-4.359515540441781245e-01 -3.739999999999999858e+01,-3.101720408042896171e-02,3.096239702397555860e+00 -3.750000000000000000e+01,-3.155458223171523913e-01,2.298926577343601174e+00 -3.760000000000000142e+01,-1.532173113928284147e+00,2.390968688544448106e+00 -3.770000000000000284e+01,-1.212715822178939140e+00,1.079984500446217854e+00 -3.779999999999999716e+01,-1.515558707511157621e+00,2.031065371275339704e+00 -3.789999999999999858e+01,-2.114755363604162719e-01,1.151187638887003484e+00 -3.800000000000000000e+01,-6.333660389743145380e-03,1.963572412074194418e+00 -3.810000000000000142e+01,8.229432209581624136e-01,8.270135479500290154e-01 -3.820000000000000284e+01,-1.364604799989431808e-02,2.259184304625679651e+00 -3.829999999999999716e+01,1.067028404819506948e-01,2.574314428550867451e+00 -3.839999999999999858e+01,5.548480672116159473e-01,1.105222954132424551e+00 -3.850000000000000000e+01,1.895367479844367375e+00,9.726163692094889068e-01 -3.860000000000000142e+01,6.954939789134091388e-01,-1.681979565081050398e-01 -3.870000000000000284e+01,1.399038552253852430e+00,9.786431188096075817e-02 -3.879999999999999716e+01,-1.889789085070700536e-02,2.011355149016694766e-01 -3.889999999999999858e+01,-1.408170944930851265e+00,-2.657209091644653909e-01 -3.900000000000000000e+01,1.069040610846028194e-01,-5.962312636197354687e-02 -3.910000000000000142e+01,3.389041705595008391e-03,7.927379907269352932e-01 -3.920000000000000284e+01,-2.189940433864419056e+00,-8.830959288276486463e-01 -3.929999999999999716e+01,-3.127554511736521548e+00,-1.107062565752551908e+00 -3.939999999999999858e+01,-2.575731031658191839e+00,1.050429311852063563e-03 -3.950000000000000000e+01,-3.228137762451333881e+00,-9.358912382968924693e-01 -3.960000000000000142e+01,-8.840744532635093078e-01,-2.615568660062487449e+00 -3.970000000000000284e+01,3.469809127326342058e-01,-9.112372838727866853e-01 -3.979999999999999716e+01,8.972222423143310088e-01,1.875168945300518253e-01 -3.989999999999999858e+01,1.885739742883693060e-01,1.461594897817134697e+00 -4.000000000000000000e+01,-3.159387093536448754e-01,5.870715976700622285e-01 -4.010000000000000142e+01,-9.876611048372815338e-01,2.074129897415960322e+00 -4.020000000000000284e+01,6.485735165257068280e-01,2.110096599512936155e+00 -4.029999999999999716e+01,9.684793639463677994e-01,2.497942362574737007e+00 -4.039999999999999858e+01,6.075821086055683828e-01,7.637829454773934490e-01 -4.050000000000000000e+01,1.341467947866676447e+00,6.227083533001294136e-01 -4.060000000000000142e+01,1.772508840792337725e+00,3.066466973327785506e-01 -4.070000000000000284e+01,1.941636752198236282e+00,-1.598712428951543085e-03 -4.079999999999999716e+01,2.977922526395481384e+00,4.559664838978456647e-01 -4.089999999999999858e+01,3.254528560638602741e+00,1.375269770851410112e+00 -4.100000000000000000e+01,2.752891065032291307e-01,2.099846190416569947e+00 -4.110000000000000142e+01,-7.645932993382482667e-01,2.679437292286483085e+00 -4.120000000000000284e+01,-8.438644639479913057e-01,7.858019827079036901e-01 -4.129999999999999716e+01,-2.662301151017196776e-01,8.376272476978814385e-01 -4.139999999999999858e+01,-8.735870620161929612e-01,1.300687010714455027e+00 -4.150000000000000000e+01,-1.698405133452963178e-01,1.420448787962453663e+00 -4.160000000000000142e+01,-1.574918979616038994e+00,2.272802898000275906e+00 -4.170000000000000284e+01,-1.870482143316624546e+00,2.707306644557023301e+00 -4.179999999999999716e+01,-1.417330313021813337e+00,2.537326843946523081e+00 -4.189999999999999858e+01,-2.473178076718066665e-01,2.761437139506673688e+00 -4.200000000000000000e+01,-8.373273954652006301e-01,2.117994619423953395e+00 -4.210000000000000142e+01,6.384187448100405726e-01,7.038589000108186333e-01 -4.220000000000000284e+01,-7.272938921636717957e-01,9.213204007693504005e-01 -4.229999999999999716e+01,-1.257691587948638334e-01,3.027175151155724331e-01 -4.239999999999999858e+01,-1.714418012296926586e+00,1.229083456970354371e+00 -4.250000000000000000e+01,-2.297630077698399553e+00,1.117456583798855096e-02 -4.260000000000000142e+01,-2.907904502529438773e+00,2.875036831191664644e-01 -4.270000000000000284e+01,-6.606002861792936720e-01,6.927519428401952561e-01 -4.279999999999999716e+01,5.633043194646588647e-01,1.060547917469074619e+00 -4.289999999999999858e+01,5.836650980658384391e-01,1.341611160493038080e+00 -4.300000000000000000e+01,1.963437801153852247e+00,2.349855185293377335e+00 -4.310000000000000142e+01,2.397779682967218662e+00,1.590781956522911766e+00 -4.320000000000000284e+01,1.535556009775174813e+00,1.227305725120793500e+00 -4.329999999999999716e+01,1.651889959495901561e+00,4.518964810936572096e-01 -4.339999999999999858e+01,1.596407011541557175e+00,-6.358432742847596186e-01 -4.350000000000000000e+01,1.663794655947230972e+00,2.369630925919210818e-01 -4.360000000000000142e+01,1.090561756557803186e+00,1.077691877866862047e+00 -4.370000000000000284e+01,2.398457441399198142e+00,-1.845260157416007907e+00 -4.379999999999999716e+01,1.826871932624170913e+00,8.756268928765365001e-01 -4.389999999999999858e+01,9.871597674488258312e-01,-2.202020114494105840e+00 -4.400000000000000000e+01,1.294244644276969503e+00,-6.171965934072788373e-01 -4.410000000000000142e+01,-3.865253608109860961e-01,-5.811971625787086815e-01 -4.420000000000000284e+01,4.164489259026326051e-01,1.118402519423154773e-01 -4.429999999999999716e+01,4.609568525018892804e-01,2.851285243552211801e-01 -4.439999999999999858e+01,8.004778898080645855e-02,1.288776840351675557e-02 -4.450000000000000000e+01,8.006441381749158648e-01,-3.146052339810337939e-01 -4.460000000000000142e+01,2.741636377634567578e-01,-2.115282287190124677e+00 -4.470000000000000284e+01,1.133920820631497545e-01,-1.608976072626657983e+00 -4.479999999999999716e+01,1.703362443538003923e+00,-3.095475744748478863e+00 -4.489999999999999858e+01,1.327210020399384183e+00,-1.078464586314437978e+00 -4.500000000000000000e+01,1.200834843970468135e+00,-2.282097915417830691e+00 -4.510000000000000142e+01,1.885487025307077680e+00,-1.315758959228476632e+00 -4.520000000000000284e+01,2.546571603850437349e+00,-1.140726823740123130e+00 -4.529999999999999716e+01,1.757102414038593130e+00,-1.582265733017116371e+00 -4.539999999999999858e+01,1.763308522049803706e+00,-7.688636036022474807e-01 -4.550000000000000000e+01,2.169553082137319233e+00,-8.758077329789906162e-01 -4.560000000000000142e+01,1.327007000870754405e+00,1.156866393674808036e-01 -4.570000000000000284e+01,1.785467579587611375e+00,1.702773617364181202e+00 -4.579999999999999716e+01,1.877399542782549613e+00,2.055608944845727315e+00 -4.589999999999999858e+01,4.197453187694983323e-01,1.950021315918910592e+00 -4.600000000000000000e+01,-5.928441679107543383e-01,1.849420103002326066e+00 -4.610000000000000142e+01,-6.577468082979127662e-01,5.129071405483504043e-01 -4.620000000000000284e+01,-1.724565627517520017e-01,-1.451544744646459328e+00 -4.629999999999999716e+01,9.815846306052203318e-02,-1.961044305961695988e+00 -4.639999999999999858e+01,7.788928956347890287e-01,-3.008096915515869885e+00 -4.650000000000000000e+01,1.813079278621529067e+00,-3.849304232645953672e+00 -4.660000000000000142e+01,1.183889172378990384e+00,-3.353534199769210744e+00 -4.670000000000000284e+01,9.570590275245669520e-01,-3.995230551994301216e+00 -4.679999999999999716e+01,1.859264954454813878e+00,-1.976257900562050640e+00 -4.689999999999999858e+01,2.674137077602606549e+00,-2.043176075895136723e+00 -4.700000000000000000e+01,2.240078230843911111e+00,-2.160792680113519992e+00 -4.710000000000000142e+01,1.343250017461894874e+00,-1.907140488789584643e+00 -4.720000000000000284e+01,1.457926673707617971e+00,-3.263878657944562001e+00 -4.729999999999999716e+01,3.179733858799852264e+00,-2.821843072730244373e+00 -4.739999999999999858e+01,2.353986983922897736e+00,-4.111066850388439775e+00 -4.750000000000000000e+01,1.936651796531638992e+00,-3.002989675284708504e+00 -4.760000000000000142e+01,2.303720477835213831e+00,-4.431434650087167526e+00 -4.770000000000000284e+01,2.582240310146029838e+00,-2.939152433867277203e+00 -4.779999999999999716e+01,2.484632621536280617e+00,-3.854399946132105903e+00 -4.789999999999999858e+01,2.345780342147735453e+00,-2.405082519818025233e+00 -4.800000000000000000e+01,1.948740051354034275e+00,-1.302010814599703359e+00 -4.810000000000000142e+01,-2.337645245690053719e-01,-9.706727013624901756e-01 -4.820000000000000284e+01,-1.988613505824781136e-01,-1.710100518413615545e+00 -4.829999999999999716e+01,-1.467906767625811737e+00,1.340005061577455914e+00 -4.839999999999999858e+01,-1.382572056138123617e+00,-4.953916127147353077e-01 -4.850000000000000000e+01,-1.724419665134074853e+00,1.014962483316643960e+00 -4.860000000000000142e+01,-1.638547855275158449e+00,-1.239344775239111796e+00 -4.870000000000000284e+01,-2.318867845701680253e+00,1.022957065303762292e+00 -4.879999999999999716e+01,-3.604827689719567463e+00,7.577778851283029082e-01 -4.889999999999999858e+01,-1.992628209719530474e+00,2.939738918675721902e+00 -4.900000000000000000e+01,-1.230177076190464902e+00,1.601153104039936714e+00 -4.910000000000000142e+01,-5.787650968056160528e-01,1.319255671642873162e+00 -4.920000000000000284e+01,-1.803054695102140448e+00,1.420204204558239258e+00 -4.929999999999999716e+01,-1.032514370534393322e+00,2.189836042672342664e+00 -4.939999999999999858e+01,-2.069691233312656919e+00,-2.057202323681485701e-01 -4.950000000000000000e+01,1.136274950600262956e+00,8.712254670279550028e-01 -4.960000000000000142e+01,1.617097402413138818e+00,5.962434989500954297e-01 -4.970000000000000284e+01,2.728151686788571784e+00,1.234826002022221703e+00 -4.979999999999999716e+01,7.229468790082876906e-01,1.097406741436937283e+00 -4.989999999999999858e+01,-1.319780124467811344e+00,1.728939499017247972e+00 -5.000000000000000000e+01,-6.628850336108991215e-01,7.828506490391625716e-01 -5.010000000000000142e+01,-1.333902479473239477e+00,1.860141669118984709e+00 -5.020000000000000284e+01,-2.389256202039330645e+00,8.577783853309621787e-01 -5.029999999999999716e+01,-3.716028041910984125e+00,1.725535012248278210e-01 -5.039999999999999858e+01,-3.550579579738457170e+00,4.318439118193233006e-01 -5.050000000000000000e+01,-2.697266548638336925e+00,-1.259074328167784917e-02 -5.060000000000000142e+01,-6.452302072401321364e-01,-7.155453035602901135e-01 -5.070000000000000284e+01,-6.681961762272253802e-02,-1.230638137103362117e+00 -5.079999999999999716e+01,8.960503278645141068e-01,-1.157648070324573730e+00 -5.089999999999999858e+01,-1.048045051426802904e-01,-1.691719258925781011e+00 -5.100000000000000000e+01,-8.206698451634650837e-01,-1.374770850204392270e+00 -5.110000000000000142e+01,-2.197259237943713472e+00,-1.854001904009120683e+00 -5.120000000000000284e+01,-4.098285733529887231e+00,-1.518426876677630100e+00 -5.129999999999999716e+01,-4.517838156059861277e+00,-1.927554054232965886e+00 -5.139999999999999858e+01,-3.851547693114904636e+00,-5.951583951175967169e-01 -5.150000000000000000e+01,-3.450305983143112876e+00,-1.699279789960328468e+00 -5.160000000000000142e+01,-1.150518945240464497e+00,-1.057224605805112128e-01 -5.170000000000000284e+01,-1.811714760804126634e+00,-9.884447103746596408e-01 -5.179999999999999716e+01,-1.196723282613760375e+00,7.309596224044063728e-01 -5.189999999999999858e+01,-1.041724957199898105e+00,-2.098263454697811614e+00 -5.200000000000000000e+01,-2.367389264399502924e+00,-2.049885478993458854e+00 -5.210000000000000142e+01,2.986116797791230626e-01,-2.014887232553535412e+00 -5.220000000000000284e+01,-5.712687226369039806e-01,-3.235173705033978386e+00 -5.229999999999999716e+01,-7.280885211305256066e-02,-3.260488124495970919e+00 -5.239999999999999858e+01,-1.066986609263659513e+00,-3.048145358718498343e+00 -5.250000000000000000e+01,-2.694543319324177233e+00,-2.183545097851626426e+00 -5.260000000000000142e+01,-2.856638949281648632e+00,-2.952759737976477172e+00 -5.270000000000000284e+01,-3.343089031437763481e+00,-1.308684154827438606e-01 -5.279999999999999716e+01,-2.961433965141684332e+00,-3.411777972586945706e-01 -5.289999999999999858e+01,-3.273221364787255894e+00,5.020618163857881733e-01 -5.300000000000000000e+01,-2.060382164235216695e+00,1.019962762227323072e+00 -5.310000000000000142e+01,-8.065977709743489266e-01,-2.231600168363545578e-03 -5.320000000000000284e+01,-1.150350011466892308e+00,-6.317828152476223647e-02 -5.329999999999999716e+01,-8.797972492414574130e-01,-9.448518336971928333e-01 -5.339999999999999858e+01,-1.002612306745978010e+00,8.597564084048625599e-02 -5.350000000000000000e+01,-1.646790965620892777e+00,1.040544350922904426e+00 -5.360000000000000142e+01,-2.527966771646564581e+00,1.473257177437916177e+00 -5.370000000000000284e+01,-2.468663326813021808e+00,1.041638373419368158e+00 -5.379999999999999716e+01,-2.825764486539424247e+00,8.976561307909131093e-01 -5.389999999999999858e+01,-1.018373594834647289e+00,1.413226213620204952e+00 -5.400000000000000000e+01,-6.103803561394374189e-01,1.213736485800833043e+00 -5.410000000000000142e+01,-1.817001417603727020e+00,5.154299863269627968e-01 -5.420000000000000284e+01,-5.676697356830190389e-02,1.870231953228776556e+00 -5.429999999999999716e+01,-1.418041579857090895e+00,1.384504101089627293e+00 -5.439999999999999858e+01,2.876608827180263894e+00,1.602344279068695032e+00 -5.450000000000000000e+01,5.973705854366517798e-01,1.728004801825251180e+00 -5.460000000000000142e+01,1.677429543428893499e+00,2.471491075466310861e+00 -5.470000000000000284e+01,2.113613769509184337e+00,3.660437562864223615e+00 -5.479999999999999716e+01,1.120654604316292158e+00,2.370110614156949680e+00 -5.489999999999999858e+01,9.233396777370267428e-02,3.190121785365539253e+00 -5.500000000000000000e+01,3.869468454681117553e-01,5.078240193999952190e+00 -5.510000000000000142e+01,-6.440007188261764881e-01,4.055876450342924322e+00 -5.520000000000000284e+01,8.421703632859850464e-01,5.153003014507095969e+00 -5.529999999999999716e+01,7.502217816036562681e-01,4.528621808485574718e+00 -5.539999999999999858e+01,1.041739807789265004e+00,4.282231381701517847e+00 -5.550000000000000000e+01,1.028926454633561693e+00,2.603440760842393509e+00 -5.560000000000000142e+01,1.913694646291231871e-01,3.718557340941895273e+00 -5.570000000000000284e+01,-1.002263653093600881e+00,2.106158019033151696e+00 -5.579999999999999716e+01,-1.774599934146210201e+00,3.297534089719097228e+00 -5.589999999999999858e+01,-3.759600048610336476e-01,4.078986202500549663e-01 -5.600000000000000000e+01,-1.079151383837440914e+00,1.123167134427395686e+00 -5.610000000000000142e+01,1.063324096794893148e-01,7.064530151399877056e-01 -5.620000000000000284e+01,1.451685976647814513e+00,9.845403383796057506e-01 -5.629999999999999716e+01,2.428635529005684468e+00,5.931931409354280760e-01 -5.639999999999999858e+01,1.621210351097517766e+00,-8.526835991196808351e-01 -5.650000000000000000e+01,2.710978284237890445e+00,-8.554399050139883665e-01 -5.660000000000000142e+01,2.789212156361656758e-01,-1.954104828938937333e+00 -5.670000000000000284e+01,7.912059731470317825e-01,-5.311851926413243552e-01 -5.679999999999999716e+01,-1.201183149814376294e-02,-1.298620265387044004e+00 -5.689999999999999858e+01,-6.760982774187827005e-01,-2.476162995359533880e+00 -5.700000000000000000e+01,-2.377207075774448730e-01,-1.114966772929994576e+00 -5.710000000000000142e+01,-1.942549046687715553e+00,-1.208965815402849309e+00 -5.720000000000000284e+01,8.556570593147300174e-02,3.737602276613418151e-01 -5.729999999999999716e+01,-9.142919163404537031e-01,-9.261770446007611124e-01 -5.739999999999999858e+01,-1.194174812142694719e+00,-3.687690531218774104e-01 -5.750000000000000000e+01,-7.960351004819253840e-01,-1.218935705918390733e+00 -5.760000000000000142e+01,6.278081235882188027e-01,-1.233593138808154022e+00 -5.770000000000000284e+01,4.467720911117302185e-01,-2.054941496513175814e+00 -5.779999999999999716e+01,3.647443194748112294e-01,-1.168665842921890352e+00 -5.789999999999999858e+01,-6.989997056528526875e-02,-3.486842338968542787e+00 -5.800000000000000000e+01,-1.947488457396191697e+00,-1.350902779869324277e+00 -5.810000000000000142e+01,-1.245830126177611685e-01,-1.212130024472682255e+00 -5.820000000000000284e+01,4.866995110613631104e-02,-4.810530941681107620e-01 -5.829999999999999716e+01,1.901830525985878317e+00,-2.916910114416370048e-01 -5.839999999999999858e+01,1.652095557774383439e+00,-4.475420864651319941e-01 -5.850000000000000000e+01,3.863910105082702273e+00,1.478856872880500273e+00 -5.860000000000000142e+01,3.960084783673409881e+00,1.568632304236542874e+00 -5.870000000000000284e+01,4.036005777746397349e+00,1.573907680298195055e+00 -5.879999999999999716e+01,2.740001601467856318e+00,-9.799665529463508218e-02 -5.889999999999999858e+01,2.696785113581907645e+00,1.574938324511127918e+00 -5.900000000000000000e+01,2.578312717281955546e+00,5.348233076549328002e-01 -5.910000000000000142e+01,1.188836293800132005e+00,4.959719807161445670e-01 -5.920000000000000284e+01,-3.483035301206012235e-01,4.959153181019899659e-01 -5.929999999999999716e+01,-6.032840397026875134e-01,6.937162919383604853e-01 -5.939999999999999858e+01,-1.692031644067357288e+00,3.377037626538908488e-01 -5.950000000000000000e+01,-7.367395780265073579e-01,1.424351434276176498e+00 -5.960000000000000142e+01,-6.442635804699787805e-01,1.207371293778062737e+00 -5.970000000000000284e+01,-1.227865624136476486e+00,1.241916673191872711e+00 -5.979999999999999716e+01,-1.003254310024192186e+00,5.661740064036764331e-01 -5.989999999999999858e+01,-3.417399220728933873e-02,-1.672048111709731333e-01 -6.000000000000000000e+01,-2.557953321693091087e-01,-8.655813568010136683e-01 -6.010000000000000142e+01,-1.162652200367821687e+00,-9.662659635218973087e-01 -6.020000000000000284e+01,-5.181797071836792556e-02,3.812650787974465327e-01 -6.029999999999999716e+01,2.196436016254936341e+00,1.019623666155548003e+00 -6.039999999999999858e+01,1.550499961286915473e+00,2.256374163462329940e-01 -6.050000000000000000e+01,1.014940004423795505e+00,1.699547735147437955e+00 -6.060000000000000142e+01,1.177062133597698512e+00,2.882452675429844069e-01 -6.070000000000000284e+01,-3.046193225799845861e-01,2.099826034852502410e+00 -6.079999999999999716e+01,-3.030734411391822758e-01,2.507918275193874447e-01 -6.089999999999999858e+01,-2.371811973357490499e-01,-1.120178955628630568e+00 -6.100000000000000000e+01,-5.568338856227267319e-02,-8.662526795243872257e-01 -6.110000000000000142e+01,-2.427195479329505648e-02,-1.669144678245846336e+00 -6.120000000000000284e+01,-2.530005517024683792e-01,-2.544820085646271601e-01 -6.129999999999999716e+01,-5.439925717759734880e-01,-6.375176907445454511e-01 -6.139999999999999858e+01,-5.885237802957149489e-01,-1.646356677283441705e+00 -6.150000000000000000e+01,-1.225469007200176375e+00,-1.440856985104405963e+00 -6.160000000000000142e+01,-2.184113746527658328e-01,1.227648435006515881e-01 -6.170000000000000284e+01,-1.003538267385169602e+00,-1.237481387060499260e+00 -6.179999999999999716e+01,1.037559520758924853e-01,7.825528004530901693e-01 -6.189999999999999858e+01,-1.076947801685144812e+00,9.112232032323974718e-01 -6.200000000000000000e+01,2.135718745746447572e-02,1.727058033954257388e-01 -6.210000000000000142e+01,-1.032125036023122444e+00,3.305232704055455217e-01 -6.220000000000000284e+01,-6.951699060766551863e-01,-1.417376355514170294e+00 -6.229999999999999716e+01,-1.093722491833367449e+00,-7.320109623011308297e-01 -6.239999999999999858e+01,-3.999410589712479869e-01,-2.725176362135995234e+00 -6.250000000000000000e+01,5.415742200684382501e-01,-1.359421480245163405e+00 -6.260000000000000142e+01,3.488333862008676789e-01,-1.030536766918979330e+00 -6.270000000000000284e+01,2.959955805700261733e-01,-1.928035588407780998e-01 -6.279999999999999716e+01,-1.030387271171901015e-01,5.655176992231686350e-02 -6.289999999999999858e+01,-1.741509710017816182e-01,6.498853625350576868e-01 -6.300000000000000000e+01,-6.825586445540898772e-01,2.341887263803181796e+00 -6.310000000000000142e+01,2.231528896721339250e-01,1.534509454939456230e+00 -6.320000000000000284e+01,-1.057594822274865676e+00,1.467268636920327385e+00 -6.329999999999999716e+01,2.167303097192327666e-01,2.297855657666121765e+00 -6.339999999999999858e+01,2.940699103292507277e-01,2.069643670406267066e+00 -6.350000000000000000e+01,6.843745155422359394e-01,9.863056540185333176e-01 -6.360000000000000142e+01,9.415043357748278385e-01,1.745235375353040075e+00 -6.370000000000000284e+01,-3.779470861824557604e-01,1.183226151201043574e+00 -6.379999999999999716e+01,-1.035130158344506057e+00,1.379042547786319517e+00 -6.389999999999999858e+01,-9.721427823811327196e-01,1.297558809655556589e+00 -6.400000000000000000e+01,-9.955988475351387201e-01,1.495021206385643620e+00 -6.409999999999999432e+01,-1.515022097019601555e+00,1.187523063080897723e+00 -6.420000000000000284e+01,-1.962324306841289667e+00,-5.870322576861469743e-02 -6.429999999999999716e+01,-5.474083929586326391e-02,1.659511551091330805e-01 -6.440000000000000568e+01,2.964156047559440843e-01,-2.110572747140162034e-02 -6.450000000000000000e+01,8.228952015915720342e-01,6.846234253498172384e-01 -6.459999999999999432e+01,-2.186243342379994847e-01,-2.184383140745194823e-02 -6.470000000000000284e+01,-1.091063492085676323e+00,-4.452377636455711052e-01 -6.479999999999999716e+01,-1.179396952089395656e+00,7.824048688898221915e-01 -6.490000000000000568e+01,-1.448505526281417932e+00,1.914178181788557698e+00 -6.500000000000000000e+01,-2.114416841769733324e+00,-2.408544153718360503e-01 -6.509999999999999432e+01,-1.699755422440369923e+00,-5.963671140609491106e-01 -6.520000000000000284e+01,-4.367676900396288975e-01,-6.847649777197166721e-01 -6.529999999999999716e+01,-8.193360658464763358e-01,-3.412520950564962297e-01 -6.540000000000000568e+01,-1.469285948344563275e+00,-1.548996621797164464e+00 -6.550000000000000000e+01,-4.564084451554257793e-01,-8.867369045559061469e-01 -6.559999999999999432e+01,-9.271572994036575421e-02,-1.474183896334554600e+00 -6.570000000000000284e+01,-2.023119642978805643e+00,-9.725034293432852639e-01 -6.579999999999999716e+01,-5.723450733140320601e-01,1.974504021963900402e-01 -6.590000000000000568e+01,-1.449373649237198913e+00,-5.389896366942689143e-01 -6.600000000000000000e+01,-1.184089969617099003e+00,-7.986175102955386240e-01 -6.609999999999999432e+01,-7.819081241202686661e-01,2.863036683850712638e-01 -6.620000000000000284e+01,1.122015000246454619e+00,-4.084111982763573012e-01 -6.629999999999999716e+01,1.848622509737851471e+00,-1.496101289882108665e+00 -6.640000000000000568e+01,3.025569297049730544e+00,-6.293701909740517797e-01 -6.650000000000000000e+01,3.910440700942814818e+00,-4.841612007800488171e-01 -6.659999999999999432e+01,2.444442003859593537e+00,-9.583753837170283507e-01 -6.670000000000000284e+01,3.408854266313829484e+00,-1.229725057629825091e+00 -6.679999999999999716e+01,1.838651673206354031e+00,5.152416554689162043e-01 -6.690000000000000568e+01,2.892153274801601892e+00,8.253561624343098702e-01 -6.700000000000000000e+01,2.862260460851337562e+00,2.349746496737806556e+00 -6.709999999999999432e+01,2.158339085999791074e+00,1.622989557169408847e+00 -6.720000000000000284e+01,2.401874254041117762e+00,1.286615445135392166e+00 -6.729999999999999716e+01,2.849465228423905039e+00,1.415005600269603869e+00 -6.740000000000000568e+01,1.708627966552375810e+00,9.573481607755390810e-01 -6.750000000000000000e+01,2.484435448934353197e+00,1.500355847522700126e+00 -6.759999999999999432e+01,2.657561740836176245e+00,1.380852786711522784e+00 -6.770000000000000284e+01,2.300857324898694323e+00,-2.552590923219649754e-01 -6.779999999999999716e+01,2.459008654441015018e+00,8.283982236766049834e-01 -6.790000000000000568e+01,1.724508571986486771e+00,3.343618045789867321e-01 -6.800000000000000000e+01,1.824171049720397120e+00,1.792434890988214402e+00 -6.809999999999999432e+01,2.337904976456640416e+00,1.151660503509025046e+00 -6.820000000000000284e+01,2.448060789731448139e+00,1.498704796022943819e-01 -6.829999999999999716e+01,1.405324003819855339e+00,-1.860829424176713709e-01 -6.840000000000000568e+01,2.386533137771674529e+00,4.452456321110803139e-01 -6.850000000000000000e+01,1.129931941407512630e+00,-9.358156895883602555e-01 -6.859999999999999432e+01,8.317411482906523768e-01,-9.238257768453642660e-01 -6.870000000000000284e+01,3.308627757316667806e-02,-1.143545556678939867e+00 -6.879999999999999716e+01,1.115067385506558262e+00,-1.714103494974980268e+00 -6.890000000000000568e+01,-2.882663287972066501e-01,-6.837116635680688947e-01 -6.900000000000000000e+01,-1.125523365957873612e+00,1.091249178564385858e+00 -6.909999999999999432e+01,-1.694273203748588141e+00,1.206803508966366456e+00 -6.920000000000000284e+01,-1.814589644217313724e+00,2.936171147180026142e-01 -6.929999999999999716e+01,3.305867780343188511e-01,1.138279355281790917e+00 -6.940000000000000568e+01,-1.689418487045512896e+00,-8.392834092257106526e-02 -6.950000000000000000e+01,-2.092854199118960867e+00,1.263944666985378662e+00 -6.959999999999999432e+01,-1.270916987440244839e-01,3.068696328273394780e-01 -6.970000000000000284e+01,2.675393515020301205e-01,9.329403668232489899e-01 -6.979999999999999716e+01,1.015609959669305118e+00,1.858537228933875740e+00 -6.990000000000000568e+01,-6.248572135865084615e-02,1.163711143861560604e+00 -7.000000000000000000e+01,-3.653726561911418980e-01,2.229392909005111889e+00 -7.009999999999999432e+01,-1.125706089701682400e+00,2.262228776016905307e+00 -7.020000000000000284e+01,-2.039521324973371019e+00,2.627166232950246982e+00 -7.029999999999999716e+01,6.720270816248883339e-01,8.522799659423688778e-01 -7.040000000000000568e+01,1.632878884561505872e+00,1.102020852375264592e+00 -7.050000000000000000e+01,-8.956399681318667483e-01,4.710851087045346275e-01 -7.059999999999999432e+01,-3.361144210299964463e-01,-3.236316670279787977e-01 -7.070000000000000284e+01,-8.469428925732339075e-02,5.528247396059050855e-02 -7.079999999999999716e+01,4.151385383699198184e-01,2.439672710269902289e+00 -7.090000000000000568e+01,5.650006944273091580e-01,1.656460354653394695e+00 -7.100000000000000000e+01,2.024052629231056333e+00,3.361688876459183906e+00 -7.109999999999999432e+01,1.374766382835613587e+00,3.880476959833035089e+00 -7.120000000000000284e+01,1.249856748670246764e+00,4.283424489345757813e+00 -7.129999999999999716e+01,-1.676480468155716608e-02,3.689074075528479213e+00 -7.140000000000000568e+01,-3.941984716297644020e-01,4.604392831344839010e+00 -7.150000000000000000e+01,-1.957031126100779783e+00,2.129464899319268856e+00 -7.159999999999999432e+01,-2.291320812551324693e+00,2.230381230922456659e+00 -7.170000000000000284e+01,-3.618849010744360939e+00,5.393141238902567913e-01 -7.179999999999999716e+01,-3.366768189847447079e+00,-8.024875360032268645e-03 -7.190000000000000568e+01,-3.115582237308405222e+00,-1.372623838822527143e+00 -7.200000000000000000e+01,-1.752248906133769157e+00,5.238702722521667576e-01 -7.209999999999999432e+01,-1.074990585979509916e+00,8.560675657073011369e-01 -7.220000000000000284e+01,-2.428994415300675946e+00,1.776002352396953032e+00 -7.229999999999999716e+01,-3.619980415908057747e+00,1.449455005391105278e+00 -7.240000000000000568e+01,-1.745661488839401754e+00,2.196580176249878669e+00 -7.250000000000000000e+01,-1.048182327634739064e+00,2.840503912500897066e+00 -7.259999999999999432e+01,3.547370956619257942e-01,2.960573868972926181e+00 -7.270000000000000284e+01,4.228396271870394907e-01,1.813662628048668513e+00 -7.279999999999999716e+01,-2.606345237370971679e-01,1.375668987463747328e+00 -7.290000000000000568e+01,-1.604968772342923455e-01,1.518597044591233791e+00 -7.300000000000000000e+01,-9.478498156673879071e-01,1.691111877731217739e+00 -7.309999999999999432e+01,-6.777851372630318005e-01,2.264936402763222389e-01 -7.320000000000000284e+01,1.412595196419199339e-01,5.967161520680973608e-01 -7.329999999999999716e+01,9.276414502950824925e-01,3.517874073654547740e-01 -7.340000000000000568e+01,1.374625282846419827e+00,4.762819646391024397e-01 -7.350000000000000000e+01,1.918589976282435217e+00,2.864436044901291112e+00 -7.359999999999999432e+01,7.563440572094541903e-01,-5.861209571064025514e-01 -7.370000000000000284e+01,-7.479043757781740354e-01,-4.464174928947489684e-01 -7.379999999999999716e+01,-3.271037653849563354e-01,-5.167278840035691712e-01 -7.390000000000000568e+01,-6.387006169327585914e-01,8.946030108413867143e-01 -7.400000000000000000e+01,-5.264848530329413467e-01,5.041133027805339006e-02 -7.409999999999999432e+01,-2.221240394013487496e+00,9.340582364082699041e-01 -7.420000000000000284e+01,-9.755303347711076212e-01,2.288165434282792177e+00 -7.429999999999999716e+01,2.738365432040925085e-01,1.286937747870571469e+00 -7.440000000000000568e+01,5.565876007851916496e-01,1.314939064382318445e+00 -7.450000000000000000e+01,1.613325289699982790e-01,6.588841329710823924e-01 -7.459999999999999432e+01,5.737638274074282618e-01,-1.286976246697612569e-01 -7.470000000000000284e+01,1.261288450601743216e+00,-9.399000685148076184e-02 -7.479999999999999716e+01,1.014486918258971970e+00,-6.462104840012475870e-01 -7.490000000000000568e+01,4.526540384224916336e-01,-1.475385461663161202e-01 -7.500000000000000000e+01,-3.309658611474806111e-01,-1.216758371585745291e+00 -7.509999999999999432e+01,-1.691198405868036270e+00,4.149876790505151875e-02 -7.520000000000000284e+01,-9.546014365374665411e-01,-2.502411479124222460e-01 -7.529999999999999716e+01,1.245115759123181176e+00,3.927064201260108689e-01 -7.540000000000000568e+01,-9.176407102901273927e-02,-8.399943858315658263e-01 -7.550000000000000000e+01,4.174271633446698937e-01,4.713944722133583953e-01 -7.559999999999999432e+01,1.688776582808906301e-01,2.408938293167209310e-01 -7.570000000000000284e+01,2.179804731356590253e+00,1.958566970730104329e+00 -7.579999999999999716e+01,1.769524687760977599e+00,2.752001164547295264e-01 -7.590000000000000568e+01,2.007205727863061284e+00,2.829066885327592207e+00 -7.600000000000000000e+01,1.679652014290068163e+00,1.383592143941005492e+00 -7.609999999999999432e+01,1.297121886660769774e-01,1.845684655254360651e+00 -7.620000000000000284e+01,6.471487928556362013e-01,-1.529170488145101592e+00 -7.629999999999999716e+01,-8.901186732831027904e-01,-1.230257598919080042e-01 -7.640000000000000568e+01,3.705845475782105769e-01,7.689910651832972954e-01 -7.650000000000000000e+01,-7.477314277126131392e-01,-5.512698490062403756e-03 -7.659999999999999432e+01,-9.336672472210977292e-01,-2.524614331955989943e-01 -7.670000000000000284e+01,-8.169953132472522750e-01,2.216693402253909762e-01 -7.679999999999999716e+01,-3.241053427776853457e+00,-5.167067037496999582e-01 -7.690000000000000568e+01,-1.660362190193692022e+00,4.007003098900077664e-01 -7.700000000000000000e+01,-6.371567451451868314e-01,-2.069695014922887655e+00 -7.709999999999999432e+01,-2.000109110045377170e-01,-1.779227693798488108e+00 -7.720000000000000284e+01,-3.686882361730963176e-01,-2.468953505326561881e+00 -7.729999999999999716e+01,-2.170746747750847749e+00,-2.220286243241318402e+00 -7.740000000000000568e+01,-2.830764204907644910e+00,-1.952230505308425901e+00 -7.750000000000000000e+01,-1.233762040794687209e+00,-5.298929594684027578e-01 -7.759999999999999432e+01,-2.894515315130121280e+00,-5.038392834331906212e-02 -7.770000000000000284e+01,-1.712298463368331136e+00,1.312191488065313216e-01 -7.779999999999999716e+01,-2.974099979527021542e+00,-1.175471428146089403e+00 -7.790000000000000568e+01,-1.914758501410210201e+00,6.653889176431793118e-01 -7.800000000000000000e+01,-8.780174300327674430e-01,5.720223198664403652e-02 -7.809999999999999432e+01,-7.954498551624382685e-01,-1.441174568749038265e+00 -7.820000000000000284e+01,-9.818613780051183015e-01,-1.482810795897117506e+00 -7.829999999999999716e+01,-9.328582372381465371e-01,-1.409638868538509948e+00 -7.840000000000000568e+01,-3.160891430550192727e+00,-3.842111008775839665e+00 -7.850000000000000000e+01,-2.306905943850046548e+00,-3.855267246379165069e+00 -7.859999999999999432e+01,-2.645905621068231017e+00,-3.399961118123570714e+00 -7.870000000000000284e+01,-3.235985603808087863e+00,-4.520794994584035109e+00 -7.879999999999999716e+01,-3.246119707604119053e+00,-3.236876133117459808e+00 -7.890000000000000568e+01,-2.759738416420470131e+00,-7.845766892989158858e-01 -7.900000000000000000e+01,-2.178832009374232825e+00,-1.765986022269138145e+00 -7.909999999999999432e+01,-1.347375952432414703e+00,-1.081815856003965681e+00 -7.920000000000000284e+01,-1.259395069974042158e+00,-3.188650530060540778e+00 -7.929999999999999716e+01,-4.228909247106443225e-01,-2.942745610777202647e-01 -7.940000000000000568e+01,-1.153378042659695346e+00,-1.096076463403941936e+00 -7.950000000000000000e+01,2.567088130486805397e-01,-1.142227645810665937e+00 -7.959999999999999432e+01,-3.791372547875324073e-01,-1.040502419698096315e+00 -7.970000000000000284e+01,9.137491061658087332e-02,-9.112454084533923027e-01 -7.979999999999999716e+01,-5.016265120614908923e-01,-1.701668810570772794e-01 -7.990000000000000568e+01,-1.356787638501163018e+00,-8.288646544233438385e-02 -8.000000000000000000e+01,-1.486739103824817443e+00,-6.732762766846567271e-01 -8.009999999999999432e+01,-7.255280215420740753e-01,5.980293002758595433e-01 -8.020000000000000284e+01,-8.787970663442830066e-01,1.029453759975981431e+00 -8.029999999999999716e+01,1.378290292011258966e+00,2.622182100988582842e+00 -8.040000000000000568e+01,1.045516829735611275e-01,3.157026297918647195e+00 -8.050000000000000000e+01,9.707975797865295853e-01,7.309160910322842764e-02 -8.059999999999999432e+01,5.950791144833067481e-01,5.806337270360054648e-01 -8.070000000000000284e+01,2.141681472696630451e+00,-2.499738876805840115e-01 -8.079999999999999716e+01,2.720879060856460363e+00,5.050192896227955197e-01 -8.090000000000000568e+01,2.392169200964413545e+00,-2.020052517487569421e-01 -8.100000000000000000e+01,2.208501802835016736e-01,-3.529593413396717727e-01 -8.109999999999999432e+01,9.443911548751662277e-01,-1.084663097756638717e+00 -8.120000000000000284e+01,1.430076584896115000e+00,-7.005715027117136451e-01 -8.129999999999999716e+01,1.032831666724167707e+00,-9.682395444992737410e-01 -8.140000000000000568e+01,-4.949429319348155332e-01,-1.936162423112556707e+00 -8.150000000000000000e+01,-1.148756064490515705e+00,-2.220390856554332437e+00 -8.159999999999999432e+01,-3.086296271509645806e+00,-1.004375863240746902e+00 -8.170000000000000284e+01,-2.997648913848716568e+00,-3.008735492437458525e+00 -8.179999999999999716e+01,-2.231438713012228625e+00,-2.050689547637169152e+00 -8.190000000000000568e+01,-2.038298241466965699e+00,-1.113033608304103694e+00 -8.200000000000000000e+01,-2.374288944502517928e+00,-1.766364855589108274e+00 -8.209999999999999432e+01,-9.566773912214576736e-01,-1.834145841706873004e+00 -8.220000000000000284e+01,-1.910040189185992499e-01,-4.304080875768290682e+00 -8.229999999999999716e+01,-4.448700958598838517e-01,-3.373999641560252449e+00 -8.240000000000000568e+01,3.322518338798937099e-01,-3.510913657910533558e+00 -8.250000000000000000e+01,1.733157286242341666e-01,-2.833151327860268687e+00 -8.259999999999999432e+01,1.495907552786737371e+00,-1.495333653275083829e+00 -8.270000000000000284e+01,2.690390842006143979e-01,-2.700334892063993575e+00 -8.279999999999999716e+01,8.103719551776913388e-01,-2.769515672257758077e+00 -8.290000000000000568e+01,-6.451999153354421868e-01,-1.844387888433125067e+00 -8.300000000000000000e+01,-5.683743576671920206e-01,-3.496446067024319149e+00 -8.309999999999999432e+01,2.453790683554678276e-01,-3.694520698410509230e+00 -8.320000000000000284e+01,4.597487670478367372e-02,-2.013315997890036790e+00 -8.329999999999999716e+01,4.914902592358838529e-01,-3.545098956397260359e+00 -8.340000000000000568e+01,-3.565254981115856814e-01,-4.808390936291432105e+00 -8.350000000000000000e+01,-2.852046897260508973e-01,-4.316634088438176420e+00 -8.359999999999999432e+01,1.648960915627333823e-01,-2.641726394184717108e+00 -8.370000000000000284e+01,1.585865178761211303e-01,-2.909059938284211277e+00 -8.379999999999999716e+01,-6.996928193935857410e-01,-3.158629054853431484e+00 -8.390000000000000568e+01,-5.241158941247238134e-01,-2.575337619769203723e+00 -8.400000000000000000e+01,-8.017114844969157605e-01,-1.885298014764844599e+00 -8.409999999999999432e+01,6.224332024385550444e-01,-1.978347914314953382e+00 -8.420000000000000284e+01,1.103582941583380328e-01,-1.076663035301272053e+00 -8.429999999999999716e+01,-4.863070427393084705e-02,-6.185541237852809626e-02 -8.440000000000000568e+01,8.937989238302661565e-01,-7.614169868336381208e-01 -8.450000000000000000e+01,2.254379434734611887e-01,-1.247275589690009623e+00 -8.459999999999999432e+01,7.459509571624345359e-01,-1.105380961966921927e-01 -8.470000000000000284e+01,2.432226434476171040e+00,-6.548541532441345403e-01 -8.479999999999999716e+01,6.545474167502092211e-01,-7.214780622373562213e-01 -8.490000000000000568e+01,-3.757693138867452820e-01,-1.100618426106511727e+00 -8.500000000000000000e+01,-1.526231855387728320e+00,-1.479783871760165237e+00 -8.509999999999999432e+01,-2.110154473102095363e+00,3.690057526394813214e-02 -8.520000000000000284e+01,-3.857610464532170269e+00,-4.231990469379500741e-01 -8.529999999999999716e+01,-3.104119923277055548e+00,-1.036383163345887759e+00 -8.540000000000000568e+01,-3.306977831937530254e+00,-1.112892994638605026e+00 -8.550000000000000000e+01,-3.000424569341128223e+00,-1.161873062225043718e+00 -8.559999999999999432e+01,-1.731922662905671206e+00,-3.958039360859109124e-01 -8.570000000000000284e+01,-5.826347559469290394e-01,-3.020026199791119859e-01 -8.579999999999999716e+01,4.079741668295017165e-02,2.100126608608551937e+00 -8.590000000000000568e+01,8.867087664003334146e-03,2.400237243048449098e+00 -8.600000000000000000e+01,-4.391662817337819158e-01,1.831706815244460884e+00 -8.609999999999999432e+01,-8.489748980844247228e-01,2.297184826924006273e+00 -8.620000000000000284e+01,-1.103499832644395662e+00,1.254049539269807223e+00 -8.629999999999999716e+01,-6.538680843239119689e-01,1.046709993026967433e-01 -8.640000000000000568e+01,-6.533574518193655534e-01,9.357371319400847876e-02 -8.650000000000000000e+01,1.081699380355687912e-01,-6.347785106180392489e-01 -8.659999999999999432e+01,1.939176481865255042e+00,-2.419265178734223198e+00 -8.670000000000000284e+01,1.596361003858510097e+00,-1.797725629119779178e+00 -8.679999999999999716e+01,1.201835975110657095e+00,-3.060684834447474856e+00 -8.690000000000000568e+01,1.243367834416610807e+00,-1.905105529619195881e+00 -8.700000000000000000e+01,-9.073605319186232032e-01,-1.043944935469995672e+00 -8.709999999999999432e+01,1.171008656532121162e+00,-4.782511353235124885e-01 -8.720000000000000284e+01,9.675534339987735821e-01,9.763467834396464262e-01 -8.729999999999999716e+01,4.969161413481968936e-01,-1.552808591095578006e-03 -8.740000000000000568e+01,1.710204297152455810e+00,1.672440839903663878e+00 -8.750000000000000000e+01,-2.243503056239291027e+00,9.901135437286430196e-01 -8.759999999999999432e+01,3.189524155816980122e-01,8.250649180099838276e-01 -8.770000000000000284e+01,9.218185740193542976e-01,1.741937093911584578e+00 -8.779999999999999716e+01,9.976962263506520268e-01,-1.604891125859269074e-01 -8.790000000000000568e+01,-1.664914629816862668e-01,2.605928244919436310e+00 -8.800000000000000000e+01,-2.053228806256304662e+00,1.650492087760383919e+00 -8.809999999999999432e+01,-1.501326633444115544e+00,4.419172466581339220e-01 -8.820000000000000284e+01,-3.726561561419980961e-01,9.393742027378195747e-01 -8.829999999999999716e+01,5.987794969302110415e-01,1.447888847483705277e+00 -8.840000000000000568e+01,2.068427749335756405e-02,1.080697129422145908e+00 -8.850000000000000000e+01,6.863044384999653635e-01,1.969473574839668562e-01 -8.859999999999999432e+01,-1.059623292032068509e+00,-1.853895324042326820e+00 -8.870000000000000284e+01,-7.802653288910860185e-01,-1.920990711849736687e+00 -8.879999999999999716e+01,9.537359495784314412e-02,-3.470263345291453749e+00 -8.890000000000000568e+01,-4.560953811363937516e-01,-1.893653799338908872e+00 -8.900000000000000000e+01,1.429787957425328271e+00,-1.868242333697094804e+00 -8.909999999999999432e+01,2.242940460784030865e-01,-2.533454219770208127e+00 -8.920000000000000284e+01,-4.274336383975264053e-01,-3.016319234132670335e+00 -8.929999999999999716e+01,-1.577378566199247878e-01,-3.307433803453627696e+00 -8.940000000000000568e+01,-7.872165901436813940e-01,-1.620514260365269799e+00 -8.950000000000000000e+01,-2.421540588459400123e+00,-2.726171441985114186e+00 -8.959999999999999432e+01,-2.059154621529327933e+00,-1.155943163848574651e+00 -8.970000000000000284e+01,-1.612436701816014173e+00,-1.669034593183414739e+00 -8.979999999999999716e+01,-1.414666937257743062e-01,-1.045270908269510524e-01 -8.990000000000000568e+01,-2.274638058044180511e-01,-1.049418674988130906e+00 -9.000000000000000000e+01,8.330908865324971879e-01,5.041065329365103098e-01 -9.009999999999999432e+01,-6.155191554868210124e-01,6.730388274798411175e-01 -9.020000000000000284e+01,-1.240854385320597997e+00,1.150348603133683589e+00 -9.029999999999999716e+01,-8.857913351987993789e-01,1.468666115378474135e+00 -9.040000000000000568e+01,-1.721396961291351002e-01,8.646116156617950077e-02 -9.050000000000000000e+01,-2.493334680502159173e-01,-1.321409589742864155e+00 -9.059999999999999432e+01,-3.920934856428020532e-01,5.072043661983794971e-01 -9.070000000000000284e+01,-8.616913268962383965e-01,7.075632799551077046e-01 -9.079999999999999716e+01,-2.136803798036295277e+00,-5.087166633643555591e-02 -9.090000000000000568e+01,-5.914233832347726150e-02,-1.981621217319644357e+00 -9.100000000000000000e+01,-1.599324409340204367e+00,1.386945200792036315e-01 -9.109999999999999432e+01,4.821209581395742294e-01,-1.225907354420502138e+00 -9.120000000000000284e+01,4.439613294235003615e-01,-9.285490627113618389e-01 -9.129999999999999716e+01,-2.346647504600469503e-01,-7.495926593370203506e-01 -9.140000000000000568e+01,-9.843104182672819391e-01,-9.762506787064644254e-01 -9.150000000000000000e+01,-1.315009377379515954e+00,-2.691577236570532161e+00 -9.159999999999999432e+01,-9.407397770450347529e-01,-1.368654946820924145e-01 -9.170000000000000284e+01,-1.298702248034515394e+00,-6.086116264622991601e-01 -9.179999999999999716e+01,-1.156730116425712218e+00,-2.885293010301575034e-01 -9.190000000000000568e+01,-2.738000245061714466e+00,-1.229340038447141348e+00 -9.200000000000000000e+01,-1.314261091748552213e+00,1.556740656504550513e-01 -9.209999999999999432e+01,-4.763452560287545490e-01,4.519815829791260509e-01 -9.220000000000000284e+01,1.956617205372288004e-01,2.894965867716202124e-01 -9.229999999999999716e+01,-6.006355248663209911e-01,7.925636033085752263e-01 -9.240000000000000568e+01,1.149482604899159766e+00,5.504765115376337725e-01 -9.250000000000000000e+01,1.480852008489346394e+00,-4.714999830054690255e-01 -9.259999999999999432e+01,2.086946072837012611e+00,2.188729469224902413e+00 -9.270000000000000284e+01,1.382511079896940220e+00,6.529021035893894931e-01 -9.279999999999999716e+01,2.120971669047790886e-01,1.199942595429273950e+00 -9.290000000000000568e+01,8.888768809248031033e-01,-4.537219149888288561e-02 -9.300000000000000000e+01,-1.298995170986742553e-01,-1.218059134871562810e+00 -9.309999999999999432e+01,-7.848587833923813539e-01,-1.767470415290199881e+00 -9.320000000000000284e+01,-2.810738235437147292e+00,-1.780116931044857465e+00 -9.329999999999999716e+01,-1.282133041527459882e+00,2.944398963951139203e-01 -9.340000000000000568e+01,-2.130538633574696750e+00,-5.296249267615174006e-01 -9.350000000000000000e+01,-1.160886289063491006e+00,2.172614245842934833e-01 -9.359999999999999432e+01,1.196040175368936254e+00,-1.380679840079706899e+00 -9.370000000000000284e+01,1.432198258281122794e+00,6.917475272879156645e-01 -9.379999999999999716e+01,1.733923258788427679e+00,1.244259409135632710e+00 -9.390000000000000568e+01,2.661433979650619008e+00,1.454534902755635795e+00 -9.400000000000000000e+01,1.782618597477247047e+00,5.107186253445004098e-01 -9.409999999999999432e+01,1.552648634657480819e+00,2.007079655591724521e+00 -9.420000000000000284e+01,4.414230004404506302e-01,1.984432711923549864e+00 -9.429999999999999716e+01,-1.671010125297858195e+00,1.771002480270835733e+00 -9.440000000000000568e+01,-1.159740426353296217e+00,2.105505917067794108e+00 -9.450000000000000000e+01,-1.233384411306498896e+00,1.479600863987242221e+00 -9.459999999999999432e+01,2.770334906382994067e-01,7.469482113204718443e-01 -9.470000000000000284e+01,4.735755507070730230e-01,9.263776070447928834e-01 -9.479999999999999716e+01,-2.921282250631013211e-01,2.802082772250005238e-01 -9.490000000000000568e+01,5.499724128164390491e-01,-2.043819299059361771e+00 -9.500000000000000000e+01,-1.086763677184905408e+00,-3.127945409050562731e+00 -9.509999999999999432e+01,-1.616400502348071200e+00,-2.177587095699643704e+00 -9.520000000000000284e+01,-1.919710223737044252e+00,-4.854520713128173348e+00 -9.529999999999999716e+01,-2.416817185273170132e+00,-4.311400739201786791e+00 -9.540000000000000568e+01,-1.964088964160852768e-01,-3.258526482743531183e+00 -9.550000000000000000e+01,-1.921464171772268026e+00,-3.403315862467338970e+00 -9.559999999999999432e+01,1.146414737776721315e+00,-2.375173106499285147e+00 -9.570000000000000284e+01,1.228339563481199992e-01,-2.119282028209961588e+00 -9.579999999999999716e+01,1.282942455598664822e+00,-2.726668899403722257e+00 -9.590000000000000568e+01,2.872934830909152470e+00,-1.175635261242481855e+00 -9.600000000000000000e+01,4.277899056677670231e+00,2.215645976888362956e-01 -9.609999999999999432e+01,2.801784282709316010e+00,-6.811690451466527740e-01 -9.620000000000000284e+01,3.847641262505172577e+00,-1.528529518423018096e+00 -9.629999999999999716e+01,1.821364781599144944e+00,-5.203640366025230612e-01 -9.640000000000000568e+01,1.474176476174280381e+00,-1.194767890171622327e+00 -9.650000000000000000e+01,1.592525481805583176e+00,-1.547315717391489764e-01 -9.659999999999999432e+01,1.380143781753558008e+00,7.452915219008310332e-02 -9.670000000000000284e+01,1.946664765880302683e+00,3.443123234386538667e-01 -9.679999999999999716e+01,1.595166079880753429e+00,-2.656732748305492109e+00 -9.690000000000000568e+01,-2.576148104769260261e-02,-1.701893842883939634e+00 -9.700000000000000000e+01,9.898061037977596843e-01,-1.793435374144834782e+00 -9.709999999999999432e+01,-1.325857914825992745e-01,7.860597026246091135e-01 -9.720000000000000284e+01,1.408229536303527318e+00,8.711469868341195077e-01 -9.729999999999999716e+01,2.470260792402601435e+00,2.287499931237734874e+00 -9.740000000000000568e+01,8.974921821203794003e-01,1.649805433583900749e+00 -9.750000000000000000e+01,9.665481730422833540e-01,1.818707023810470336e+00 -9.759999999999999432e+01,8.191712168077056044e-02,4.599414145806796084e-01 -9.770000000000000284e+01,-4.554469539207270379e-01,6.891988944774090076e-01 -9.779999999999999716e+01,1.480058958701980565e+00,2.689535111206704077e+00 -9.790000000000000568e+01,1.001799224084991335e+00,-1.947408435989974318e-01 -9.800000000000000000e+01,1.478977005654552590e+00,3.749581325596041959e-01 -9.809999999999999432e+01,7.186969863599720898e-02,5.347860674992765961e-01 -9.820000000000000284e+01,1.911947808035770802e+00,4.412042795161394970e-01 -9.829999999999999716e+01,1.276901052355062127e+00,1.614707455544500903e+00 -9.840000000000000568e+01,1.040954648422709905e+00,7.289283752932359528e-01 -9.850000000000000000e+01,-5.609105356893505645e-01,2.634623162066362934e-01 -9.859999999999999432e+01,-8.009321987393419606e-01,1.049802744702672541e+00 -9.870000000000000284e+01,-1.818470891898195996e+00,3.516073538248053465e-01 -9.879999999999999716e+01,-4.199978561212801331e+00,2.059827381010454150e+00 -9.890000000000000568e+01,-7.011491335344579579e-01,1.258164047670701668e+00 -9.900000000000000000e+01,-2.355399596487358638e-01,7.033003130730450803e-01 -9.909999999999999432e+01,9.680000580487635453e-01,1.180127354481304680e+00 -9.920000000000000284e+01,2.177966714324353514e+00,1.786199218586515425e+00 -9.929999999999999716e+01,2.268014128531194107e+00,2.635986643800364959e+00 -9.940000000000000568e+01,4.279209879112634951e+00,1.909590486538515819e+00 -9.950000000000000000e+01,3.973841548297193604e+00,1.660044379360874789e+00 -9.959999999999999432e+01,2.935263295801270989e+00,1.392161752359666327e+00 -9.970000000000000284e+01,1.970836408857212341e+00,3.695458753215811853e+00 -9.979999999999999716e+01,1.283504798985948270e+00,5.067625763384904225e-01 -9.990000000000000568e+01,-1.741226057869130206e-01,9.986443970313456653e-01 +0.000000000000000000e+00,-6.689530006224132519e-01,1.226965545981027805e+00 +1.000000000000000056e-01,1.525820214912274042e-01,2.304151709976853812e-02 +2.000000000000000111e-01,1.060038560500837113e+00,5.839071040176448957e-01 +2.999999999999999889e-01,-7.285107023990139430e-02,9.169807343719854620e-01 +4.000000000000000222e-01,3.044463020998466884e-01,-8.082708502872737455e-01 +5.000000000000000000e-01,2.746446834101543555e-01,-9.158106204471316847e-01 +5.999999999999999778e-01,8.019185427047053061e-01,-1.008950973161909737e+00 +6.999999999999999556e-01,6.496962094753289119e-01,-9.802974268400396207e-01 +8.000000000000000444e-01,5.003837546417768678e-01,-6.517998871821866214e-01 +9.000000000000000222e-01,-6.454208421259132189e-01,-1.253420261542325109e+00 +1.000000000000000000e+00,5.708030639571187725e-01,1.458994839133687937e-01 +1.100000000000000089e+00,7.714913191430758932e-01,-8.161494121416172920e-01 +1.199999999999999956e+00,6.517000932556066273e-02,1.690464201034040270e+00 +1.300000000000000044e+00,-7.799671930215553717e-01,1.786918409743949221e+00 +1.399999999999999911e+00,-1.971664398112162653e+00,3.071150053026735716e+00 +1.500000000000000000e+00,-2.993049238879117002e+00,9.961010682405487815e-01 +1.600000000000000089e+00,-3.287837483748594192e+00,6.426728291467966869e-01 +1.699999999999999956e+00,-2.050037684567035168e+00,-9.335344007759182050e-01 +1.800000000000000044e+00,-2.037415507821120464e+00,2.043438448738541524e-01 +1.899999999999999911e+00,-1.581264883384870590e+00,-1.018469534167985469e+00 +2.000000000000000000e+00,-2.532049529820891376e+00,-1.000400127953715801e+00 +2.100000000000000089e+00,-3.162993109096386313e+00,-1.149673716288976077e+00 +2.200000000000000178e+00,-2.083949930694611652e+00,-1.405282661795219878e+00 +2.299999999999999822e+00,-1.102653038817972053e+00,-1.274818953572669722e+00 +2.399999999999999911e+00,5.245770924757833242e-01,-3.454291343648089874e-01 +2.500000000000000000e+00,9.983275872123120731e-01,-4.704076731402005440e-01 +2.600000000000000089e+00,-1.373637434520200928e+00,2.475988497998085069e-01 +2.700000000000000178e+00,-6.944961819212596144e-01,5.170055585813344567e-01 +2.799999999999999822e+00,-5.378417494364574614e-01,9.816476358955262826e-01 +2.899999999999999911e+00,-2.994037458947018671e-01,4.948132159560528764e-01 +3.000000000000000000e+00,5.349217794622714850e-01,1.219742860317513111e-02 +3.100000000000000089e+00,1.756124863792940249e-01,-1.059271400668740037e+00 +3.200000000000000178e+00,1.515119046089031363e+00,4.861947008800894809e-01 +3.299999999999999822e+00,1.584874655733584659e+00,-5.474634016246593404e-02 +3.399999999999999911e+00,2.162062301396482145e+00,3.491056037319180128e+00 +3.500000000000000000e+00,2.002299919782515758e+00,1.529900534977200355e+00 +3.600000000000000089e+00,1.852167817471430000e+00,1.611107385161880678e-02 +3.700000000000000178e+00,9.598272120276368780e-01,1.028982329911506954e-01 +3.799999999999999822e+00,-4.468063449446891822e-01,-6.844867003030381536e-01 +3.899999999999999911e+00,-4.920353949426164997e-02,-4.222930634631735236e-01 +4.000000000000000000e+00,-2.329003974228771590e-01,-1.084733028020369972e+00 +4.099999999999999645e+00,-4.765875498337532323e-02,2.785266978410061434e-01 +4.200000000000000178e+00,-3.340792809195271551e-01,4.824833147102389197e-01 +4.299999999999999822e+00,9.151749687967930535e-01,5.916542329347176388e-01 +4.400000000000000355e+00,1.844239945592150764e+00,-2.071841503059877743e-01 +4.500000000000000000e+00,1.814407244165226363e+00,8.176264470333485246e-01 +4.599999999999999645e+00,-1.611103328297085024e+00,1.407427176216989206e+00 +4.700000000000000178e+00,5.869500180523931077e-01,8.950812282631697148e-01 +4.799999999999999822e+00,-2.106298538714954649e+00,-1.300653127938597997e-01 +4.900000000000000355e+00,-1.529363478476520433e+00,9.974484911688035194e-01 +5.000000000000000000e+00,-1.427214402122022108e+00,1.180875701767877040e+00 +5.099999999999999645e+00,-1.596880265286133360e+00,1.027199437551509664e+00 +5.200000000000000178e+00,1.687851657848062681e+00,4.799626602226723104e-01 +5.299999999999999822e+00,-2.470385024715088251e-01,1.257213620150649858e+00 +5.400000000000000355e+00,1.613906055816961560e+00,2.343055878817950965e+00 +5.500000000000000000e+00,2.210529209788326011e+00,6.796842142407626408e-01 +5.599999999999999645e+00,5.367865834377546497e-01,1.400099736243633597e+00 +5.700000000000000178e+00,5.259311155754043954e-01,5.767362728694735985e-01 +5.799999999999999822e+00,-1.311536382539214785e+00,-1.246673225091450843e-01 +5.900000000000000355e+00,-8.928563388273764723e-01,8.027904518250944532e-01 +6.000000000000000000e+00,-1.067073300666860902e+00,3.028943068655428617e-01 +6.099999999999999645e+00,-5.378118336601520610e-01,6.890070672257715412e-01 +6.200000000000000178e+00,-9.145087903482957969e-01,6.845499681642529533e-01 +6.299999999999999822e+00,-1.120782759262653805e+00,1.736710356459598703e+00 +6.400000000000000355e+00,-4.026084431759138216e-01,1.244259994833860183e+00 +6.500000000000000000e+00,-7.073583809126635091e-02,1.074063203516460785e+00 +6.599999999999999645e+00,1.684178031420414112e-01,6.769113737274070619e-01 +6.700000000000000178e+00,-5.004138277045240280e-01,2.603973809811600315e+00 +6.799999999999999822e+00,8.975842289709830002e-01,1.214626797865513641e+00 +6.900000000000000355e+00,-1.888250525521327494e-01,2.721380128533975373e+00 +7.000000000000000000e+00,-1.809429045270833925e+00,1.644477349996496418e+00 +7.099999999999999645e+00,-2.050416577727904865e+00,2.811391997657396669e+00 +7.200000000000000178e+00,-1.587501966839690137e+00,2.180281687999437779e+00 +7.299999999999999822e+00,1.348751151477305843e+00,2.752836935949353858e+00 +7.400000000000000355e+00,1.628149007832688566e+00,9.631442775804197609e-01 +7.500000000000000000e+00,1.993091255157534825e+00,5.449144985575286038e-01 +7.599999999999999645e+00,2.689815615372204149e+00,-3.446598924176204615e-01 +7.700000000000000178e+00,1.905268613271468015e+00,-1.387146812268379437e+00 +7.799999999999999822e+00,2.506783711006724147e+00,5.239896962065119235e-01 +7.900000000000000355e+00,2.002705486951091629e+00,-1.464100102042806828e+00 +8.000000000000000000e+00,2.062106746197084117e+00,-6.794946673799580061e-01 +8.099999999999999645e+00,7.644775839930690875e-01,-9.100292330770574090e-01 +8.199999999999999289e+00,-1.871498115345054947e-02,-1.729291882573541050e+00 +8.300000000000000711e+00,-6.581591334407205229e-01,-1.263383104740030793e+00 +8.400000000000000355e+00,1.223764505729870999e-01,-1.329137997605384092e-01 +8.500000000000000000e+00,-1.061056082251549793e+00,1.410323777980294069e-01 +8.599999999999999645e+00,-1.292464730109302296e-01,-1.517075966291689948e+00 +8.699999999999999289e+00,-7.472811085906914119e-01,-2.930612574990979713e+00 +8.800000000000000711e+00,-7.992202648317283664e-01,-3.142056807033338117e+00 +8.900000000000000355e+00,-4.372732544080791817e-01,-2.638075917125962455e+00 +9.000000000000000000e+00,3.915348079745088472e-01,-1.766201881173290023e+00 +9.099999999999999645e+00,9.868196774552024930e-01,-1.587916981281517703e+00 +9.199999999999999289e+00,1.992972008506483261e+00,3.273615144173910307e-01 +9.300000000000000711e+00,2.450184958688369719e+00,-1.641338491124519350e-01 +9.400000000000000355e+00,1.519812459655131232e+00,-4.165469402818231526e-01 +9.500000000000000000e+00,9.381467441286008846e-01,1.166044768820136690e-01 +9.599999999999999645e+00,1.765112356417673611e+00,-1.643590025709867675e+00 +9.699999999999999289e+00,-3.952855280396883608e-01,6.405297953411949186e-01 +9.800000000000000711e+00,-2.730470082366233342e+00,1.517048798566578149e-02 +9.900000000000000355e+00,-6.345621492817080656e-01,1.184328116171538214e+00 diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/LogARMA.csv b/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/LogARMA.csv new file mode 100644 index 0000000000..661c3b588d --- /dev/null +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/LogARMA.csv @@ -0,0 +1,2 @@ +scaling,filename +1,LogARMA_0.csv diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/LogARMA_0.csv b/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/LogARMA_0.csv new file mode 100644 index 0000000000..1adb4463e3 --- /dev/null +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/LogARMA_0.csv @@ -0,0 +1,101 @@ +seconds,signal0,signal1 +0.000000000000000000e+00,1.219062883484986065e-01,1.465073089857878985e+00 +1.000000000000000000e+00,2.059542926235730764e+00,2.389698233319637488e+00 +2.000000000000000000e+00,1.827718274464432469e+00,1.045283970443331212e+00 +3.000000000000000000e+00,5.665490267768455990e-01,3.160880856296693242e+00 +4.000000000000000000e+00,1.365891874301122799e+00,5.113707039336836679e+00 +5.000000000000000000e+00,1.639817914911827490e+00,6.265021446243728143e-01 +6.000000000000000000e+00,1.740345685519758545e+00,2.223399752000086327e+00 +7.000000000000000000e+00,1.954896904897090337e+00,1.310157796243177186e+00 +8.000000000000000000e+00,2.601748643578094544e-02,2.335192796316691299e-01 +9.000000000000000000e+00,-4.692924406767601253e-01,1.731706060722037144e+00 +1.000000000000000000e+01,-2.556820572873759190e+00,3.184660840401622561e+00 +1.100000000000000000e+01,-1.887651462641419808e+00,1.181310004172034356e+00 +1.200000000000000000e+01,-2.945948993366800828e+00,1.013149874509343018e+00 +1.300000000000000000e+01,-2.597970692815205762e+00,2.065141889434367606e+00 +1.400000000000000000e+01,-1.962213886270962604e+00,3.496136004286619414e+00 +1.500000000000000000e+01,-1.659345272284989958e+00,2.841730139093680219e+00 +1.600000000000000000e+01,1.427086498262990499e-01,1.211848055018034609e+00 +1.700000000000000000e+01,-1.437507921409808542e-02,1.085796627247736623e+01 +1.800000000000000000e+01,7.293963451160115907e-01,3.878326890124810244e+00 +1.900000000000000000e+01,-5.553229181684947724e-01,1.059626783469599376e+00 +2.000000000000000000e+01,-1.398494875307378038e+00,2.847624283493633612e+00 +2.100000000000000000e+01,-1.000599097652266067e+00,3.445795966017277223e+00 +2.200000000000000000e+01,5.898271004507278370e-01,4.443973557678625674e+00 +2.300000000000000000e+01,5.157355246514810920e-02,8.154307674441186871e-01 +2.400000000000000000e+01,8.740241775972827920e-01,7.945769202234301831e-01 +2.500000000000000000e+01,-3.396489037984443127e-01,1.773797513082094657e+00 +2.600000000000000000e+01,5.288016032844065073e-01,6.189725168117337084e+00 +2.700000000000000000e+01,2.053917211467871651e-01,5.560024527881514800e+00 +2.800000000000000000e+01,-8.217633457000921016e-02,6.933571654500934933e+00 +2.900000000000000000e+01,-2.974068623417158719e-01,1.702000226982087128e+01 +3.000000000000000000e+01,-7.748517284097866664e-02,6.836052742687864558e+00 +3.100000000000000000e+01,2.482407651502370749e-01,8.221188454160314407e+00 +3.200000000000000000e+01,8.304797027363538531e-01,6.094796820929306413e+00 +3.300000000000000000e+01,-1.031012961619300061e-01,4.208137912132019487e+00 +3.400000000000000000e+01,-5.564446540182194090e-02,4.980762340662340470e+00 +3.500000000000000000e+01,4.485458362191730997e-01,3.542813186387699931e-01 +3.600000000000000000e+01,8.951479045934931933e-02,4.997107189406815309e-01 +3.700000000000000000e+01,-1.752770248250342000e+00,1.593359567788267261e-01 +3.800000000000000000e+01,-1.512611722579516593e+00,5.408277239023355776e-01 +3.900000000000000000e+01,-2.525791076985705264e+00,6.964506945818002004e-01 +4.000000000000000000e+01,-3.257494934265332098e+00,7.343578056101969231e-01 +4.100000000000000000e+01,-1.864826299376322050e-01,9.299804596172852600e-01 +4.200000000000000000e+01,8.786520053014617027e-01,1.562709333034111303e+00 +4.300000000000000000e+01,1.778380299563060651e+00,5.576584114277399751e-01 +4.400000000000000000e+01,2.230648523788656412e+00,1.400524758283431703e+00 +4.500000000000000000e+01,1.816720317174120192e+00,2.614420820654308475e-01 +4.600000000000000000e+01,2.653332133360579270e+00,3.340321284591953321e-01 +4.700000000000000000e+01,2.874692609984724534e+00,9.008394137363852361e-02 +4.800000000000000000e+01,2.019127332381631224e+00,1.122522497027178129e-01 +4.900000000000000000e+01,1.505425188798898972e+00,1.483596397878168827e-01 +5.000000000000000000e+01,5.033732505956591829e-01,1.961589973605087911e-01 +5.100000000000000000e+01,1.407547726489450368e-01,2.063993067959250804e-01 +5.200000000000000000e+01,1.372834267539818076e-01,1.758962135425806358e-02 +5.300000000000000000e+01,-7.434505237751020124e-01,3.927055620478551307e-02 +5.400000000000000000e+01,-2.707205486713465392e-01,1.938018274796421067e-02 +5.500000000000000000e+01,3.308119868038176259e-01,3.248961868075089104e-02 +5.600000000000000000e+01,-2.851050482439319023e-01,1.462754293488112700e-01 +5.700000000000000000e+01,3.078146094944388955e-01,2.686170992368005495e-01 +5.800000000000000000e+01,3.166212493832181729e-01,1.357331878116858404e+00 +5.900000000000000000e+01,1.533672118142916485e+00,3.138762081041984509e+00 +6.000000000000000000e+01,-4.992170571592953188e-01,2.668598278938217883e-01 +6.100000000000000000e+01,3.762606294498828663e-01,7.537417720599411952e-01 +6.200000000000000000e+01,-8.037025830625432743e-01,5.950068036773942248e-01 +6.300000000000000000e+01,-9.257731668782007706e-01,3.993954368487997009e+00 +6.400000000000000000e+01,-5.940210755775165996e-01,2.182081128414970206e-01 +6.500000000000000000e+01,-1.698430360782122062e+00,5.804699544131763922e-01 +6.600000000000000000e+01,-1.790091028547794449e+00,7.000229442549273928e-01 +6.700000000000000000e+01,-1.713609087949830911e+00,1.355030740264542510e+00 +6.800000000000000000e+01,-1.477917500297501796e+00,7.037912014280028883e-01 +6.900000000000000000e+01,-1.802261882315890462e+00,2.624215407081123552e-01 +7.000000000000000000e+01,-2.589284671313152320e+00,4.554723900698729455e-01 +7.100000000000000000e+01,-2.450474668750626694e+00,4.271626679660942560e-01 +7.200000000000000000e+01,-9.129251629973387239e-01,6.549584271939131730e-01 +7.300000000000000000e+01,-3.297614949354601976e-01,2.100733562025666190e-01 +7.400000000000000000e+01,-1.012455122551484177e+00,6.840621833900023541e-01 +7.500000000000000000e+01,-1.039130851797908650e-01,6.129281262121963891e-01 +7.600000000000000000e+01,1.840335097949508336e+00,2.092238119300860177e-01 +7.700000000000000000e+01,4.747996965459136964e-01,4.803973014058993685e-01 +7.800000000000000000e+01,2.707080557011240618e+00,1.069726465525776771e+00 +7.900000000000000000e+01,2.482957637017797481e+00,3.221954489836336144e+00 +8.000000000000000000e+01,3.347970735400958908e+00,3.139469866379124507e+00 +8.100000000000000000e+01,3.405599869273335578e+00,5.817340758448958482e+00 +8.200000000000000000e+01,2.731904661864343886e+00,7.571830951489809669e-01 +8.300000000000000000e+01,-2.605485601682877572e-02,3.023560670123073835e-01 +8.400000000000000000e+01,7.360201582514398488e-01,1.495569303649048887e-01 +8.500000000000000000e+01,8.864450823436252902e-01,3.332849866443958475e-02 +8.600000000000000000e+01,2.407036890270813245e+00,4.115340890348170855e-02 +8.700000000000000000e+01,2.723625162373640940e+00,1.821405053059636792e-02 +8.800000000000000000e+01,3.258831611529301231e+00,1.628578002178202727e-02 +8.900000000000000000e+01,9.302513901042015476e-01,3.727049371228385172e-02 +9.000000000000000000e+01,1.126191079045185672e+00,1.038561883237183875e-01 +9.100000000000000000e+01,-6.526754661459802653e-01,3.021931310552550612e-02 +9.200000000000000000e+01,1.022620912390657555e+00,3.480018193273454880e-02 +9.300000000000000000e+01,-1.757368017470832544e-01,2.782926706766212371e-02 +9.400000000000000000e+01,-1.098873868409766530e+00,6.887832325324141913e-02 +9.500000000000000000e+01,-4.918651237478203209e-01,2.071368035070778324e-01 +9.600000000000000000e+01,-9.083335911297388821e-01,6.710034749401753151e-01 +9.700000000000000000e+01,-5.699225202360047593e-01,1.491405382193729423e+00 +9.800000000000000000e+01,-2.642629904683786002e+00,1.159689598220601914e+00 +9.900000000000000000e+01,-1.645759494483826968e+00,2.277156022210395037e+00 diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/generateARMA.py b/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/generateARMA.py index cf69feb2ee..0a508082f4 100644 --- a/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/generateARMA.py +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/generateARMA.py @@ -24,7 +24,7 @@ ########## # normally-distributed noise with 0 loc, 1 scale -seconds = np.arange(1000) / 10. # 0 to 100 in 0.1 increments +seconds = np.arange(100) / 10. # 0 to 10 in 0.1 increments slags = [0.4, 0.2] nlags = [0.3, 0.2, 0.1] diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/generateLogARMA.py b/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/generateLogARMA.py new file mode 100644 index 0000000000..0b0ebc17eb --- /dev/null +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/TrainingData/generateLogARMA.py @@ -0,0 +1,22 @@ +import numpy as np +from generators import arma, toFile + +########## +# ARMA A # +########## +# normally-distributed noise with 0 loc, 1 scale + +seconds = np.arange(100) + +slags = [0.4, 0.2] +nlags = [0.3, 0.2, 0.1] +signal0, _ = arma(slags, nlags, seconds) +slags = [0.5, 0.3] +nlags = [0.1, 0.05, 0.01] +signal1, _ = arma(slags, nlags, seconds) + +out = np.zeros((len(seconds), 3)) +out[:, 0] = seconds +out[:, 1] = signal0 +out[:, 2] = np.exp(signal1) +toFile(out, 'LogARMA', pivotName='seconds') diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/pk_samples_0.csv b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/pk_samples_0.csv index 184d468a12..b45587184f 100644 --- a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/pk_samples_0.csv +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/pk_samples_0.csv @@ -1,1001 +1,101 @@ seconds,signal0,signal1 -0.0,1.61885779857,-0.736687849124 -0.1,1.71376454324,-3.70590651049 -0.2,2.02917440555,-0.773267799284 -0.3,2.57473466575,-0.261227241248 -0.4,1.69928326376,1.09317764975 -0.5,2.33085875092,1.62202717576 -0.6,0.0104716866508,2.09687825117 -0.7,-0.168858082533,1.37521740607 -0.8,-0.931027758298,0.00144220361669 -0.9,0.18286656687,1.45156014597 -1.0,-0.116283354071,0.799907225281 -1.1,1.71196418301,1.11926120704 -1.2,2.50514322712,-0.518791202552 -1.3,2.16425024223,0.844693240953 -1.4,2.2493447304,-0.766051789374 -1.5,1.29076412959,-0.195235091788 -1.6,1.65895449578,-1.39940914004 -1.7,1.20381879178,-1.55676866067 -1.8,0.580565729276,-1.29874022468 -1.9,0.0149571342657,-2.06398470088 -2.0,-0.776988254157,-1.69556946755 -2.1,-1.09607657779,-1.54314073105 -2.2,0.0357137698787,-1.63331590403 -2.3,0.564942215119,-4.52749398681 -2.4,1.88132300422,-1.20778696525 -2.5,1.12648413596,-1.04857832247 -2.6,1.36870575085,-2.85428553758 -2.7,0.601757712722,-4.28030018475 -2.8,-0.0955581378165,0.226031398579 -2.9,2.34368273085,-0.59173922703 -3.0,2.67493980336,0.931975272683 -3.1,3.86451168716,0.141662037254 -3.2,0.315200141847,0.976171875618 -3.3,-0.85002590715,-1.29283012594 -3.4,-0.759073555049,-1.47423875889 -3.5,-0.810827207712,-0.910835509166 -3.6,-1.12393611055,-1.18697427946 -3.7,-0.764554951452,1.67205464883 -3.8,-0.415616098375,1.45412985985 -3.9,1.19617871104,1.43317696578 -4.0,-0.722646455448,0.786559941606 -4.1,-1.21126964347,2.23931689753 -4.2,-1.06020200879,1.8780693814 -4.3,-0.0941612160423,4.10106086627 -4.4,-1.18145036036,3.89385221451 -4.5,-0.843283395574,2.1532173014 -4.6,-0.616532911818,1.2429417476 -4.7,-0.800045208278,1.05294270246 -4.8,-1.00780669272,-1.10608034778 -4.9,-0.480963922523,-2.01157716583 -5.0,0.143203465787,-2.47716838125 -5.1,0.371717792559,-2.72417018208 -5.2,1.79116195201,-0.219003428691 -5.3,2.30776763756,-1.08126679959 -5.4,2.71249347108,-1.38504236933 -5.5,2.24440493595,-1.79136628052 -5.6,3.4454678062,-2.56336056393 -5.7,3.49298691527,-0.770194040583 -5.8,4.23008197662,0.499610221008 -5.9,2.87869427816,-1.0974719961 -6.0,2.37022494597,-0.588832542325 -6.1,1.41313086764,0.011483360627 -6.2,0.102935813717,-0.994876586158 -6.3,0.0694364267919,-0.819046501006 -6.4,-0.130125131934,1.1653183667 -6.5,-0.11856485108,-1.03696096054 -6.6,-0.0230371437764,0.636569981791 -6.7,-0.579867694427,-0.328804351494 -6.8,-1.37480382075,-2.52234294626 -6.9,-1.80257799431,0.193012843898 -7.0,-1.52705470487,0.958795314373 -7.1,-1.54278324784,-0.0451615697 -7.2,-1.0250691296,0.866604001768 -7.3,-0.299608800068,-1.83201848165 -7.4,-0.682198196211,0.179053391689 -7.5,1.56943931471,0.699731150097 -7.599999999999999,0.968012105574,1.05877291333 -7.7,2.39496551986,1.52831158299 -7.8,2.00810932389,0.964768394177 -7.9,3.82768460491,-1.53198575648 -8.0,2.57580254571,0.261564933401 -8.099999999999998,2.51599378348,0.794667840042 -8.199999999999998,1.72933128743,1.06068106641 -8.3,2.23536204591,-0.0812201799457 -8.4,1.81059946653,1.78179258964 -8.5,0.0342597649365,1.04803160213 -8.599999999999998,1.6347923027,0.955822606092 -8.699999999999998,-0.278318892102,1.38000013597 -8.8,0.17116943543,2.08216073663 -8.9,0.208890731113,0.924966642186 -9.0,1.23018861805,1.41458431388 -9.1,2.43585229248,1.74900677845 -9.2,1.6544784204,0.615195169723 -9.3,1.78368283646,0.404859052941 -9.4,3.38865364867,-2.86384245968 -9.5,2.3220648496,-0.448937897458 -9.6,1.08140758839,-0.152834212351 -9.7,0.969158079216,-0.0179664826433 -9.8,-0.829758710557,0.250309599519 -9.9,-1.1256358933,-0.816817615451 -10.0,-0.614731513811,-1.20237564209 -10.1,0.534967995919,-0.951809880923 -10.2,-0.0175915496254,-1.65646997425 -10.3,-0.276999330432,-1.47005448754 -10.4,-0.0180324839874,-1.79013578756 -10.5,-0.350398742233,-3.47190217675 -10.6,1.01659682345,-1.72242586269 -10.7,1.25142599721,-3.72122904789 -10.8,2.06127437366,-3.69761057476 -10.9,0.964547299591,-1.95796276994 -11.0,1.03765877659,-1.41475751672 -11.1,-0.205204808582,0.134038407718 -11.2,-1.32397344086,-1.43063834467 -11.3,-0.721666522244,-1.05039289633 -11.4,-3.10441967463,-0.298569659015 -11.5,-0.401317557088,-1.00932110139 -11.6,-3.40686732912,-0.488935196556 -11.7,-2.89252594941,-1.22852386534 -11.8,-2.1856755679,-2.53137463487 -11.9,-2.63355516058,0.481191606501 -12.0,-2.32358778657,-0.468598989367 -12.1,-2.71515821779,0.802881655616 -12.2,-1.45619941948,0.0170806355195 -12.3,-2.44857080183,-1.72001806458 -12.4,0.139408669514,-1.22168090028 -12.5,-1.65457754473,-1.78792040266 -12.6,-2.47712593894,-0.735699376594 -12.7,-2.29290972374,-2.43688850093 -12.8,1.39096247913,-2.18886086709 -12.9,-0.252606013445,-3.05476634269 -13.0,-0.71970990958,-1.70780451481 -13.1,-1.41185881254,-4.54187555677 -13.2,-2.07469812652,-2.50086083283 -13.3,-1.99731234266,-1.73720366017 -13.4,-3.06267103487,-0.643112980493 -13.5,-1.16171068617,-0.0321953431353 -13.6,-0.00325452119471,-1.61702189841 -13.7,-0.30010339001,0.257570077352 -13.8,-0.037370943436,0.389809939069 -13.9,-0.526854727188,2.29965656043 -14.0,-1.95819588984,1.49704702323 -14.1,-0.909863350299,1.03147385406 -14.2,-2.289112272,1.45363967657 -14.3,-1.73944065989,1.21798507436 -14.4,-0.743906910262,0.51001347092 -14.5,0.781288620935,0.22260872052 -14.6,0.180064367955,-1.95438561276 -14.7,0.264613925265,1.34172771036 -14.8,-0.901863304816,1.21916225254 -14.9,-1.16360124131,4.26998154442 -15.0,-1.13843096605,1.2260998513 -15.1,-1.22265813532,2.97285864335 -15.2,-0.740868351224,1.79419875469 -15.3,-0.0710164098068,3.06002542693 -15.4,-2.1688113126,2.18740101336 -15.5,-1.57892374131,1.30393271885 -15.6,-1.18352344524,0.510421259518 -15.7,-2.37152075783,2.40554376969 -15.8,-1.1697687599,1.33998237198 -15.9,-0.354212990339,0.460858590002 -16.0,1.48873270903,-0.52819430368 -16.1,1.51512976918,0.340790586167 -16.2,2.61270156329,1.05893848081 -16.3,1.72197833322,1.65109394973 -16.399999999999995,1.30499628338,1.9431160983 -16.5,1.93427762285,1.71062804542 -16.6,0.386362987181,1.46342153137 -16.7,2.18383949701,0.0943113980383 -16.8,1.70256171974,-1.60654308732 -16.899999999999995,0.929864038349,-1.86847038325 -17.0,-0.162825588961,-1.94683356266 -17.1,1.41762550185,-0.913455488984 -17.2,-0.303465228013,-2.6947426354 -17.3,-0.416545924691,-1.01283585665 -17.399999999999995,-3.02722690843,-3.0103950629 -17.5,-1.46380817684,-2.77918728348 -17.6,-3.58266468316,-2.59409746705 -17.7,-3.46214636943,-1.91424183248 -17.8,-4.18423859532,-0.595616788374 -17.899999999999995,-2.17200288164,-0.62571929269 -18.0,-3.48681790925,-0.50633293805 -18.1,-3.95639278013,-2.90810013667 -18.2,-3.61569600899,-0.447545773279 -18.3,-2.14851580607,-2.88555756981 -18.4,-1.01077022786,-3.66742778535 -18.5,-2.64442151429,-1.97270597826 -18.6,-2.16871005173,-2.58914940714 -18.7,-0.992654752661,-2.63786236893 -18.8,-2.26215890414,-0.969631749812 -18.9,-1.62234750167,-3.31546690146 -19.0,-0.932335062196,-1.62878979173 -19.1,-0.903139097671,0.921780802735 -19.2,-1.80577471226,0.027126899472 -19.3,-1.37098916079,-1.93249203118 -19.4,-0.195983791061,-2.85250127436 -19.5,-1.4629785287,-2.41072855942 -19.6,-2.46974696366,-2.59814675236 -19.7,0.144655348289,-0.564228408273 -19.8,0.0159014403536,-3.02088963167 -19.9,-2.17352813795,-0.0617483356992 -20.0,0.00618759816413,-2.36665500251 -20.1,1.15874204963,0.716244274766 -20.2,-0.202850833729,-1.67307773828 -20.3,1.76028516328,-1.65863717808 -20.4,-0.142253139627,-2.95822695551 -20.5,0.589484422668,-0.77968915672 -20.6,2.29127716267,-4.1631546364 -20.7,0.717690392924,-3.53927156504 -20.8,-1.23683697973,-2.50642803719 -20.9,-1.42881319371,-4.69342117591 -21.0,-3.59234661384,-4.61206354465 -21.1,-1.41404852835,-3.51106157491 -21.2,-2.38647571128,-2.32472837502 -21.3,-2.68158894504,-3.87508147972 -21.4,-0.207702307676,-4.03292910637 -21.5,0.562321925946,-1.83483932257 -21.6,1.86243466571,-2.23625759903 -21.7,2.54517911237,-1.95337151813 -21.8,1.38999523353,-2.2211936594 -21.9,2.00628154748,-2.78176967165 -22.0,0.781965633364,-2.6239351381 -22.1,2.25745802857,-0.639036074727 -22.2,3.79613052961,-0.879932858128 -22.3,2.73194190052,0.0365368276068 -22.4,1.7549452144,-2.14222507737 -22.5,0.163002627777,0.666077522369 -22.6,-0.339469146989,0.363559521171 -22.7,-0.644615020235,0.874840964462 -22.8,-3.08361446609,1.38615046282 -22.9,-1.45832857504,1.16704594771 -23.0,-1.14879051622,0.955789711341 -23.1,-0.393301758522,1.53345062473 -23.2,-0.454573309593,0.477897036325 -23.3,-0.240533270228,0.736986166074 -23.4,2.43843712047,1.58809784502 -23.5,0.178412871276,1.38651268888 -23.6,1.99393458644,0.444502055972 -23.7,1.45218679903,1.73883504123 -23.8,1.79169970395,0.39552885923 -23.9,0.799139163158,-0.511882958671 -24.0,-0.0425060195586,-3.01540387295 -24.1,-0.218572835742,-0.932246629895 -24.2,1.72416638224,-0.147339082779 -24.3,0.576846143673,-0.249830485256 -24.4,-1.0363054642,0.146943234592 -24.5,-1.36129157265,-1.82048432434 -24.6,-0.0118096464184,-2.51607522443 -24.7,1.20486151102,-3.04928922736 -24.8,1.15845638617,-2.20725683224 -24.9,-0.0112566587176,0.0747591965439 -25.0,0.0879778923978,0.506313919199 -25.1,-0.385448080574,1.03411733004 -25.2,-1.82864287788,-0.344125426337 -25.3,-2.68959115961,1.27346723762 -25.4,-2.37918111632,-1.89297035754 -25.5,-1.43823168245,-1.90305973409 -25.6,-0.269267726506,-0.990107565989 -25.7,2.17047559493,-0.938552712509 -25.8,3.19282591751,0.21585001712 -25.9,3.91009004081,1.39860986572 -26.0,3.99840410288,0.379157583532 -26.1,2.29315194431,0.553587664765 -26.2,1.53298373716,1.323699674 -26.3,0.35269693615,1.04495112881 -26.4,0.419088068576,0.247681898361 -26.5,-1.01163697801,0.722483924974 -26.6,-0.591920233162,0.14438334236 -26.7,-0.371248797976,1.5202823541 -26.8,0.891973655311,2.08793430529 -26.9,-1.04282074209,1.42866268519 -27.0,1.17508142539,2.83262851452 -27.1,1.57077278531,2.07887502164 -27.2,0.342411889927,4.45953278638 -27.3,1.4306070389,2.48972819938 -27.4,-0.309112065636,2.57411379828 -27.5,1.18972407415,1.57029513131 -27.6,1.98681294826,1.6843843354 -27.7,-0.241600490788,2.40573315653 -27.8,0.0552103826749,1.84332573926 -27.9,1.13031293353,1.19911042945 -28.0,1.31340999649,0.890236136577 -28.1,-0.0600168938483,1.44488846888 -28.2,-2.86800205645,1.98105399182 -28.3,-3.3797956582,2.48478704982 -28.4,-1.96854035758,1.86042419454 -28.5,-0.574823344982,-0.621506263239 -28.6,1.46913452861,0.857944094926 -28.7,0.752009815165,-0.437915529263 -28.8,-0.712836363737,0.695785718099 -28.9,1.79990848646,-1.51171361218 -29.0,1.00961139425,-2.50086865821 -29.1,1.64292368241,-1.891271025 -29.2,0.841903520242,-2.46839205955 -29.3,0.819717958849,-1.02779687098 -29.4,-0.559294576555,-0.72430184922 -29.5,0.368825548548,-0.0748029784193 -29.6,-0.502183255932,0.626202347587 -29.7,-0.819513248402,2.12328676425 -29.8,-1.02512479816,3.61842836572 -29.9,-0.698734702805,4.52397605336 -30.0,-1.81178363862,3.63653108162 -30.1,-2.53412444657,4.85316110735 -30.2,-3.7435839246,2.26951850004 -30.3,-3.89350645502,3.8967110843 -30.4,-3.27767353055,1.35050269872 -30.5,-3.01562090577,4.1705527103 -30.6,-3.0721831805,0.930293536392 -30.7,-2.62169066857,2.07172528293 -30.8,-2.72392624916,1.23089213613 -30.9,-2.51118004992,1.35145306397 -31.0,-3.11690150792,-0.199403727645 -31.1,-0.55853134881,-1.38456736486 -31.2,-2.4187846674,0.0614466027093 -31.3,0.254481440933,1.18436967784 -31.4,-1.01228109297,0.417805598288 -31.5,-1.31383813389,0.144668793811 -31.6,0.268061497872,1.42159797694 -31.7,-0.769630982693,0.0702424264433 -31.8,-0.930445709436,1.27214082128 -31.9,0.329355663176,1.62774001222 -32.0,0.102016802819,1.93317276826 -32.1,0.271868061002,1.11022216594 -32.2,-1.25024326057,1.30100603758 -32.3,-0.697474784783,0.39867369467 -32.4,-0.83812433663,-0.619188847034 -32.5,-1.01829142974,-0.246203215343 -32.6,0.333019513242,-0.442499092816 -32.7,0.136671646219,0.168341323994 -32.8,2.26848677026,-0.60153331492 -32.9,3.80228613632,-0.148466053172 -33.0,3.21180835422,-2.67698941314 -33.1,4.01521264691,-1.0905216968 -33.2,1.56580493366,-1.83260541826 -33.3,1.57718938397,-1.80381604989 -33.4,-1.05474195186,-4.15165211872 -33.5,-2.52101490245,-3.2403740336 -33.6,-0.612492961957,-3.54444055936 -33.7,0.133045545578,-4.24841837215 -33.8,2.12742794854,-4.10705750529 -33.9,-0.0837206430535,-3.47295641355 -34.0,1.03662719633,-3.60901883943 -34.1,1.04264941411,-3.51361994025 -34.2,2.65275913281,-3.0197229826 -34.3,1.57370953302,-1.85382360651 -34.4,1.74065544331,-1.23613435774 -34.5,1.90410366154,-0.125016753629 -34.6,3.6322277414,-0.1167108561 -34.7,2.64915667041,-1.93551989377 -34.8,3.50310014973,-0.117192879378 -34.9,1.05679568364,1.56735153447 -35.0,0.406215142125,-0.127134898141 -35.1,0.0806765848945,0.664036404757 -35.2,0.0667474580192,1.62948708987 -35.3,-1.20831196815,2.80650529502 -35.4,1.04143891681,3.14595887726 -35.5,-0.272760494953,3.61075063637 -35.6,-1.14350547008,2.84985353252 -35.7,-0.910820913838,2.01731689089 -35.8,-0.749009061516,3.59769806117 -35.9,-0.399623448489,2.16750310198 -36.0,0.248471370723,1.95684482864 -36.1,0.111194614811,1.2475046477 -36.2,0.857139638401,2.10902225117 -36.3,0.667269401231,1.17981222774 -36.4,-1.19407666132,0.742814490676 -36.5,-2.9020618885,0.96452396133 -36.6,-2.69841211111,-1.75828567233 -36.7,-3.10984709058,0.113699533408 -36.8,-1.66192367174,-0.828664705325 -36.9,-1.68025194918,-0.552164766409 -37.0,-1.11565973279,-1.03923649385 -37.1,-1.03310864188,0.512652983222 -37.2,-1.96083739362,0.859462169219 -37.3,-1.05848928863,0.0673461911517 -37.4,-2.26612477229,1.14746684722 -37.5,-3.00122929756,-0.0501498076804 -37.6,-1.14379161217,0.753842799331 -37.7,-0.338286937714,2.058468554 -37.8,0.109897457961,0.604946888227 -37.9,-0.129024681342,0.612352292552 -38.0,1.96547469046,1.60236536452 -38.1,-0.379064005391,-0.201279461872 -38.2,-0.225647356539,1.09113547696 -38.3,0.953632535826,-1.73472335991 -38.4,0.879348016229,-1.70397059071 -38.5,-0.31339711974,-0.157299010502 -38.6,-0.223817662468,0.727321379443 -38.7,-0.717926819241,0.704264785757 -38.8,-2.49452566928,-2.26976053455 -38.9,-3.65290676279,-1.08125756559 -39.0,-3.48300420148,-4.7116424833 -39.1,-3.70063583941,-0.0409273680366 -39.2,-2.75563690606,-1.36159637954 -39.3,-1.00296795483,-0.151214376788 -39.4,0.723680764832,-0.289217624694 -39.5,0.620306687288,-1.50162785755 -39.6,-0.365654145712,-0.681493982567 -39.7,-1.04854211332,-0.476005141396 -39.8,0.976303529303,-0.0862376337171 -39.9,1.67479287924,-1.17611212945 -40.0,0.86114647834,-2.00530616794 -40.1,0.20264357345,-2.17515109811 -40.2,-0.982228389383,0.154006575351 -40.3,1.25144462529,-1.63420737079 -40.4,-1.27820635847,0.372554786083 -40.5,0.0438766034648,1.12638929366 -40.6,-1.90978039049,0.595595862347 -40.7,-1.83339241556,-1.51823547652 -40.8,-3.54725724844,0.945632132222 -40.9,-3.36623620721,0.107062933248 -41.0,-4.38223431367,1.43728536301 -41.1,-3.41545508028,0.954645093094 -41.2,-2.86131798982,2.92664454074 -41.3,-3.40208786248,1.12163392204 -41.4,-2.93507854548,0.734718581084 -41.5,-1.86799711671,1.32670773712 -41.6,-0.720728809042,0.326626464116 -41.7,0.92746353299,1.85644097862 -41.8,1.95563136184,-0.61027935084 -41.9,1.60142204558,-0.757683981369 -42.0,2.33891086928,-3.57610009225 -42.1,2.04921064707,-1.13024858937 -42.2,2.21783700486,-1.43863601165 -42.3,1.77413176054,0.625683176248 -42.4,0.181674792453,0.271732083376 -42.5,-0.602575597946,0.726296964179 -42.6,-1.66561149873,-2.68055562179 -42.7,-2.87172855975,-1.18800519578 -42.8,-1.55681102293,-1.54912738513 -42.9,-0.351160811076,-3.15239399815 -43.0,1.08354742651,-4.36687768961 -43.1,0.502811610888,-2.08236322723 -43.2,0.917066240339,-2.74972659177 -43.3,-0.134068746376,-1.79961533878 -43.4,-0.0543983702917,-1.9691516034 -43.5,-0.00138237584425,0.458969654683 -43.6,-0.252400499666,0.648430518587 -43.7,-1.00280792454,1.51046150946 -43.8,1.389980669,2.88853821411 -43.9,0.554723293718,-0.0889633621275 -44.0,1.72701412215,1.26794254602 -44.1,1.59751824671,2.08549136677 -44.2,1.31676113699,1.44332019405 -44.3,2.41521004959,3.65660779117 -44.4,0.03633933532,3.37696976338 -44.5,-0.698835939825,1.86942393411 -44.6,1.59041427678,1.53997912972 -44.7,-0.143498172641,-0.371890534741 -44.8,0.234762751676,-1.94732859563 -44.9,0.357849384027,-2.36430348334 -45.0,1.3401530983,-2.84855954796 -45.1,0.281224762473,-2.01765877579 -45.2,0.513984553902,-1.85243407291 -45.3,-1.62216924067,-0.617200231159 -45.4,-0.048635247154,-0.744514164151 -45.5,-1.11160587085,0.680307434189 -45.6,-0.578949682602,0.386868381827 -45.7,-2.45988513587,1.8820458387 -45.8,-0.972874220865,1.81072998727 -45.9,-3.00946940426,0.806279394732 -46.0,-0.8628026728,0.357204004893 -46.1,1.05665420384,-0.731612014653 -46.2,1.58807742414,0.509726711941 -46.3,2.27764500117,-1.64032080548 -46.4,1.68700427759,-0.859033706693 -46.5,0.553174797148,-3.56816989802 -46.6,-0.271158403517,-1.31185700599 -46.7,-0.934120191288,-1.49278166874 -46.8,0.200870080152,-1.49433996215 -46.9,1.54062039332,-2.6534124499 -47.0,0.421821413726,-2.67631185988 -47.1,0.373586616501,-0.221969774108 -47.2,-0.322222624189,-2.30646881218 -47.3,-1.62464655653,-1.49408620469 -47.4,-1.77602477903,-3.36033571777 -47.5,-1.19117713961,-1.85926911213 -47.6,-1.65861617417,-3.72286893852 -47.7,-2.52466862566,-1.6362014693 -47.8,-2.09204952726,-1.69447283973 -47.9,-2.69230645403,-0.4213847586 -48.0,-0.482109435652,-1.58216119275 -48.1,-1.49784656889,-1.04189039277 -48.2,-1.70729042028,-0.0515864705585 -48.3,-1.68134494982,3.05960230964 -48.4,-3.13180586666,1.56803456419 -48.5,-1.69975898063,2.95495880132 -48.6,-2.43672703434,2.86525026853 -48.7,-2.11311396085,3.13694987244 -48.8,-2.82691575584,1.27178074208 -48.9,-0.352868948116,-1.64068006287 -49.0,-1.69179045679,0.372327928403 -49.1,-0.438130459535,-1.3852573949 -49.2,-0.906169686951,-2.35893988925 -49.3,-0.879236209528,-2.63298735008 -49.4,-2.17874426452,-2.40392209972 -49.5,-0.964140398897,0.3842787072 -49.6,0.148985102046,0.483865232837 -49.7,0.565763929481,-0.389902034818 -49.8,0.745109869077,-1.16374292513 -49.9,0.258001959628,1.13876452509 -50.0,-0.749549311872,-0.63779195663 -50.1,0.334210698036,-3.22490892436 -50.2,-2.08984320696,0.0568383337023 -50.3,-0.786443846165,-2.5529640921 -50.4,-1.08274109104,-2.70317952716 -50.5,-1.80026741116,-1.98011586371 -50.6,-1.20169800926,-1.62525907168 -50.7,-2.83399200828,-1.06233370575 -50.8,-2.3780085982,-0.0711829608803 -50.9,0.00756242445581,-0.15086297386 -51.0,0.968902021289,0.251266321918 -51.1,0.418571471457,1.03999942617 -51.2,1.21316220582,-0.242423264262 -51.3,0.62174116548,2.36853932579 -51.4,-0.457664861231,0.982042323278 -51.5,-1.51129176312,0.442281400746 -51.6,-1.21187860251,-0.351883884129 -51.7,-1.31966227916,0.0569008748803 -51.8,-1.34095698746,-1.8272383609 -51.9,-0.944530294105,-0.0396625078332 -52.0,0.000489044225776,-0.724952268079 -52.1,-2.24057342311,1.62120642988 -52.2,-1.12951113611,1.96166482264 -52.3,-2.99955853478,2.52696757112 -52.4,-2.45484791299,2.82797618499 -52.5,-3.59556232232,0.755074049677 -52.6,-2.31517076636,2.48185140441 -52.7,-1.11974740096,3.14169082538 -52.8,-0.252109364354,2.46084409086 -52.9,2.71262717479,1.49310681309 -53.0,2.61141551914,1.09299964503 -53.1,1.31487831554,-0.243574150189 -53.2,0.768338130906,0.702704121913 -53.3,0.304230953246,-0.931349941019 -53.4,-0.65386026747,-1.55668970278 -53.5,-0.929674324877,-2.56434858776 -53.6,-0.779988919187,-0.539813196674 -53.7,0.295335855033,0.0121038414835 -53.8,1.54285542624,-1.34212144402 -53.9,1.04312153998,-0.957867754994 -54.0,0.26056173357,0.0458393049244 -54.1,1.82214103069,0.239491900778 -54.2,-0.661264338059,0.516456630282 -54.3,0.0993462998053,0.56170445735 -54.4,-0.853050236626,0.756285957247 -54.5,-1.95763227632,-0.031648174522 -54.6,-3.18907368418,-0.170843449288 -54.7,-2.50128706143,-0.889114248492 -54.8,-3.44156195893,1.15793621422 -54.9,-2.61633573397,-0.581820064774 -55.0,-2.81105301118,0.53326107476 -55.1,-1.65230209998,0.713218778286 -55.2,-3.37912768904,1.80195333378 -55.3,-1.12726641567,2.91526134187 -55.4,-2.95509830376,1.76622948394 -55.5,-2.7187661075,1.50427625385 -55.6,-1.79423768723,1.8222620198 -55.7,-1.4105440564,4.57114656331 -55.8,0.0280092294422,2.65766003761 -55.9,-0.63922829106,2.15213002811 -56.0,-0.978755411053,1.90309150645 -56.1,-1.14664985815,0.541763634395 -56.2,-1.78004600416,1.41445469808 -56.3,-2.60684711828,0.932326888059 -56.4,-2.07960555988,-0.0329268045214 -56.5,-2.87787916972,0.867347036722 -56.6,-3.34397411535,-0.340790654662 -56.7,-3.6815329673,0.312585779186 -56.8,-2.14955958493,-0.551880524011 -56.9,-2.35949023593,0.963701844977 -57.0,0.600644469824,0.475708905339 -57.1,0.646245502745,-0.024315243239 -57.2,0.536484992257,0.910515445339 -57.3,1.71665058731,1.25492163661 -57.4,1.19972669343,-1.7805815381 -57.5,1.76423062826,-1.49148043269 -57.6,-0.157069807287,-0.187450221337 -57.7,1.49985056618,0.946709968982 -57.8,0.281562940859,2.02562076445 -57.9,0.217089967399,1.36597442747 -58.0,-0.128658324604,2.1230744529 -58.1,-1.22769162304,1.90603255939 -58.2,0.990952756111,0.586338606014 -58.3,1.24653026248,1.14800203828 -58.4,1.93337628494,1.59541882309 -58.5,2.25803551675,1.8166971831 -58.6,2.62076179156,4.46968663039 -58.7,2.86955724056,0.345455917631 -58.8,2.19885149609,1.39081650686 -58.9,-1.33818052834,-0.050625399391 -59.0,-1.23948490734,0.0641454327396 -59.1,-1.82702196923,-3.06586819074 -59.2,-1.84100741133,-0.43811864215 -59.3,-0.970036201074,0.499764601917 -59.4,-0.430193435742,2.16689258483 -59.5,-0.80617763314,1.95334026946 -59.6,0.505790866785,5.26256657465 -59.7,-0.647884843937,3.14803318045 -59.8,-0.00536877431057,2.92535295062 -59.9,-0.0925200672201,2.8349543334 -60.0,0.338280694818,1.71086930166 -60.1,-0.38311486397,1.99866285286 -60.2,-0.73548542777,0.0979115985489 -60.3,-2.877661337,0.593292087594 -60.4,-1.61510221907,1.85853180499 -60.5,-0.666805599318,0.994719118126 -60.6,-1.24879628712,2.54815317632 -60.7,-0.140019719814,1.35414489276 -60.8,0.643899389663,2.19393089862 -60.9,1.28568388972,0.568982968106 -61.0,2.3113583289,1.27276273015 -61.1,2.2213038563,2.18078555438 -61.2,2.41686281316,0.464188819231 -61.3,1.46021568925,1.89965095256 -61.4,1.34458256358,-0.752316988366 -61.5,0.544242954565,-0.387827227658 -61.6,0.761293256782,-3.32805108436 -61.7,1.5422310823,-2.80650672619 -61.8,2.01654019568,-1.96869110551 -61.9,3.84905387408,-1.30787010952 -62.0,2.80035764408,-0.297160652906 -62.1,2.59982566778,0.437316426079 -62.2,1.93064240151,-1.7159318625 -62.3,1.93148958888,0.970019676211 -62.4,1.60762992645,2.55858614641 -62.5,-0.751173544815,1.53852873454 -62.6,0.779723223648,-0.979033759174 -62.7,0.418577965233,-0.0874654973131 -62.8,0.277620878473,-0.0912586762753 -62.9,0.889295448175,-2.04048541791 -63.0,0.2502360421,-0.71872102156 -63.1,1.64644256008,0.000914176835433 -63.2,1.19482932019,0.0416241756134 -63.3,0.295421162688,-0.105828721844 -63.4,-0.549290818477,1.02698930372 -63.5,0.458136392306,-1.00346244331 -63.6,-0.939514949342,-0.996166592982 -63.7,-3.14118214286,-0.737262660766 -63.8,-2.35747314039,1.42225552949 -63.9,-0.509827868909,2.78302125545 -64.0,0.000412856595945,1.85438707266 -64.1,-0.332623312193,2.92166916069 -64.2,0.0526177659597,1.92127007224 -64.3,-2.4225254567,2.16795188674 -64.40000000000002,-4.03974536586,2.31355117482 -64.5,-2.26985870375,1.6749251459 -64.6,-0.891123588681,2.46855406308 -64.7,0.303537108486,1.93460405244 -64.8,-0.767872039361,0.657744811077 -64.90000000000002,-1.19486170107,-0.959696393169 -65.0,-0.240147740241,1.85586357762 -65.1,-0.616852848237,1.02416050042 -65.2,0.152193612197,1.12142243657 -65.3,0.359577501166,1.30214133626 -65.40000000000002,-1.16867048819,1.54021036811 -65.5,-0.444602654112,1.44292192707 -65.6,-2.35910157271,-0.454416354309 -65.7,-1.87137211364,0.378198546919 -65.8,-0.777007714736,0.212956433991 -65.90000000000002,-1.37557692703,0.39339008393 -66.0,-1.92376052078,-1.05728011715 -66.1,-0.992074054792,-1.02127280584 -66.2,0.942603152711,0.290403995564 -66.3,-0.107238146415,-0.108577330549 -66.40000000000002,1.63449500803,-0.954464265419 -66.5,2.88781556919,-1.12820300092 -66.6,2.27331947611,-1.49093295598 -66.7,1.07255603225,-0.00807351670193 -66.8,-1.0427266269,0.217871917858 -66.90000000000002,0.223798002349,0.785969553987 -67.0,0.354434472201,2.46960785562 -67.1,0.758172154787,2.55333731108 -67.2,2.13352622604,3.60595978841 -67.3,1.87173758951,2.19786078979 -67.40000000000002,1.44970602283,1.84589806024 -67.5,-0.474404364087,2.58349486302 -67.6,-0.0400950521867,3.71155794955 -67.7,0.752720043972,3.95637441176 -67.8,0.29613780253,1.83987915525 -67.90000000000002,1.59844473447,1.59602458876 -68.0,1.19995192165,0.0528446988094 -68.1,3.97426903876,1.39319213082 -68.2,3.4673411039,-0.432299095669 -68.3,2.78535725069,1.24083124956 -68.40000000000002,1.21818265564,1.01022286448 -68.5,0.385714529973,1.37064575346 -68.6,2.18201218476,0.924061401069 -68.7,1.40997593953,0.178596303552 -68.8,1.11135245422,1.88168322482 -68.90000000000002,-0.0271030424882,-1.12339897414 -69.0,-2.11423630198,-1.01114664016 -69.1,-2.75984520357,-0.951383040775 -69.2,-1.15235952232,-3.07361664613 -69.3,-1.6162333667,-1.84461902916 -69.40000000000002,-3.307110989,-1.22796788647 -69.5,-2.19550491177,-1.12761643538 -69.6,-1.9272702359,0.289657035535 -69.7,-0.0609588077531,-1.9414950098 -69.8,-0.379832623338,-1.8381379735 -69.90000000000002,1.04222059701,-0.834891736144 -70.0,0.171311206575,-1.22744167705 -70.1,1.89048067408,-1.34937105897 -70.2,-0.855699078872,-0.461048127794 -70.3,0.105537109564,0.155498665483 -70.40000000000002,-1.00380092412,0.00264489914168 -70.5,-2.68385651232,-0.0274682126619 -70.6,-1.06453836818,-0.529207429935 -70.7,-0.81668952704,-1.93541374232 -70.8,-0.658889060485,-2.62770701604 -70.90000000000002,-0.0177242466463,-0.972084630998 -71.0,-1.98103173985,-1.06291267041 -71.1,-2.78358456066,-0.962164079598 -71.2,-3.47899046326,0.705022211447 -71.3,-0.678468586807,-0.526189783329 -71.40000000000002,-2.97181108102,0.060804045912 -71.5,-2.77424633875,-0.540603398262 -71.6,-1.30830665739,-1.19042313502 -71.7,-1.91934690052,0.0693804443307 -71.8,-2.06440304795,0.126313720533 -71.90000000000002,0.983078733073,0.464337762592 -72.0,-0.272569997664,1.22237358383 -72.09999999999998,-0.419278995664,2.5322257321 -72.2,-0.475910295002,0.934826885022 -72.29999999999998,-0.820716677742,0.141702083718 -72.4,-1.88898802993,0.297203915748 -72.5,-1.58249637838,0.411780587572 -72.59999999999998,-2.64597254469,0.295715331235 -72.7,-1.58836765324,0.214869278666 -72.79999999999998,-2.83913856981,-0.149744254644 -72.9,-1.73720473662,-3.32054816757 -73.0,-3.0263634452,-2.23294204668 -73.09999999999998,-3.22302331556,-0.622755444988 -73.2,-2.27498126315,0.927900987658 -73.29999999999998,-0.487914907195,-1.99672353318 -73.4,1.47196473313,-1.69661859023 -73.5,2.77231198264,-1.00900853536 -73.59999999999998,1.33298220243,0.034757358474 -73.7,1.56659375924,-0.421198411667 -73.79999999999998,1.44464691011,0.557987657847 -73.9,0.476519364892,0.326904950253 -74.0,0.514115936167,-1.84331368088 -74.09999999999998,1.79907981384,0.338753523615 -74.2,0.99388599327,0.458022303807 -74.29999999999998,-0.127380817861,0.999293178309 -74.4,1.46489617397,0.290866872525 -74.5,0.388095608594,0.962874308051 -74.59999999999998,-0.341714366151,-0.163477882249 -74.7,-1.64764266439,-1.18058266837 -74.79999999999998,-0.803643789047,-0.656776749144 -74.9,-1.20853744043,-1.99544105843 -75.0,2.25257218152,-1.27483022923 -75.09999999999998,-0.413629200588,-2.25358035872 -75.2,1.56357290662,-2.64615834777 -75.29999999999998,-0.0256592658645,-0.796218149803 -75.4,0.748796209549,0.431993987588 -75.5,1.03869770099,1.07390776448 -75.59999999999998,-0.1566404615,1.3766499023 -75.7,-0.783161743407,1.54729351643 -75.79999999999998,-3.53775099143,1.96628110409 -75.9,-0.489268647306,1.29231894759 -76.0,-1.08413732258,0.824433583037 -76.09999999999998,1.5283105307,0.084218358153 -76.2,1.62455813198,1.03550299457 -76.29999999999998,1.42423499586,0.878330464804 -76.4,0.093655171162,0.106834914821 -76.5,-1.65463763948,1.95592961724 -76.59999999999998,-3.66607787893,2.09696580876 -76.7,-0.865741881132,1.34474857601 -76.79999999999998,-2.54954528483,0.0997456897735 -76.9,-1.49906931092,-3.24089928154 -77.0,-1.86169026839,-0.0905377116856 -77.09999999999998,-2.87472797174,-3.32188928379 -77.2,-0.253423023636,-1.71569613439 -77.29999999999998,-0.924145605483,-2.75159799613 -77.4,-1.14247238695,-0.94289367617 -77.5,-2.85940232168,-1.22377411082 -77.59999999999998,-2.37898480056,-0.751501576251 -77.7,-3.9290152557,1.49802471078 -77.79999999999998,-2.01330374657,1.47542661161 -77.9,-1.97434678579,0.338177512861 -78.0,0.655743860946,1.61873774988 -78.09999999999998,-0.115244579697,0.367752000523 -78.2,-0.365441459124,0.369993053324 -78.29999999999998,-0.848964497492,1.93454098791 -78.4,-0.537743883005,0.504072148533 -78.5,-0.580251781389,-0.279054788496 -78.59999999999998,0.216233638107,-0.0739295764478 -78.7,-0.308764772025,-1.10318489977 -78.79999999999998,1.34704873745,-0.10225384041 -78.9,1.60222253345,-1.29576760708 -79.0,1.89705242225,-1.63330339012 -79.09999999999998,2.55891941376,-3.47951076304 -79.2,0.113004417798,-3.18199737458 -79.29999999999998,2.00063673443,-1.38330170609 -79.4,0.102905738078,-2.91472745493 -79.5,0.680309373637,-2.02401374791 -79.59999999999998,0.749146333824,-2.85893625447 -79.7,-1.89784258342,-2.15073041611 -79.79999999999998,-3.29215626563,-3.39684589521 -79.9,-4.38354928232,-4.96341048235 -80.0,-3.83079959461,-1.60077023012 -80.09999999999998,-4.27522123574,-3.34756282568 -80.2,-2.16831857255,-1.46460283626 -80.29999999999998,0.282604390641,-4.66967069241 -80.4,2.49079456344,-1.0333524502 -80.5,0.639345150527,-2.01638480199 -80.59999999999998,2.41366972842,-0.000680096052399 -80.7,0.363729941494,-3.14235603851 -80.79999999999998,-0.170185770547,-1.44376508838 -80.9,-1.56183460374,-2.19147080222 -81.0,-1.65706182424,-1.35385517485 -81.09999999999998,-1.58746179058,-3.14138687906 -81.2,-0.777117031951,-2.70254847906 -81.29999999999998,-0.992867994992,-4.31017056657 -81.4,-1.09420675248,-2.89195683129 -81.5,0.573319685069,-4.76227286698 -81.59999999999998,-0.612678916125,-1.87180831075 -81.7,-1.6429293182,-2.10681249814 -81.79999999999998,-0.383030537305,-3.40598049749 -81.9,0.466187641027,-2.4932222588 -82.0,-0.509241681942,-2.93841573193 -82.09999999999998,0.181634058616,-2.05959774028 -82.2,1.03209008862,-1.84993585675 -82.29999999999998,-0.850897863736,-0.165431179096 -82.4,0.535936056863,-2.02087698147 -82.5,0.944790426052,-2.33790551121 -82.59999999999998,0.121892224837,-2.95279277622 -82.7,-1.06402408081,-3.19974180054 -82.79999999999998,-0.603484061236,-2.31152121178 -82.9,0.174944858418,-1.44974908804 -83.0,-0.649187750274,-1.23487693403 -83.09999999999998,-1.21007555082,0.0688629660567 -83.2,-0.097953150625,0.492421969349 -83.29999999999998,1.45255938697,-1.1550831792 -83.4,1.44721445889,-1.35466602701 -83.5,1.31520749375,-1.05218012545 -83.59999999999998,1.32678188615,0.744558688263 -83.7,0.0252277866676,1.00855018902 -83.79999999999998,0.242653595186,1.22453085926 -83.9,1.53416921629,1.54186198425 -84.0,2.57390463382,5.19547031024 -84.09999999999998,1.80457190908,4.26069292302 -84.2,1.05013752706,4.46197501911 -84.29999999999998,0.513485943879,4.99620711072 -84.4,1.61642082417,4.665028022 -84.5,1.12714495773,4.40683912977 -84.59999999999998,0.427515947716,2.79244053136 -84.7,1.10623777434,4.34300127922 -84.79999999999998,0.862676575935,0.955983104259 -84.9,0.874067746365,0.949673257578 -85.0,-0.777786389803,1.37460753503 -85.09999999999998,-0.66439207771,1.02089900939 -85.2,-3.66126304347,-0.44938757692 -85.29999999999998,-4.02319453928,-1.11846651461 -85.4,-3.51360474946,-0.983635427644 -85.5,-3.79098324035,0.916485221991 -85.59999999999998,-3.09759674391,2.15522610357 -85.7,-1.63251323391,2.55772232716 -85.79999999999998,-2.114593573,2.15165612176 -85.9,0.509146138271,0.890701587055 -86.0,0.468417741234,0.789351266235 -86.09999999999998,-1.01307282767,1.01992015695 -86.2,-1.8461426948,1.80726678522 -86.29999999999998,-1.23101119605,1.36051225513 -86.4,-1.7115938048,0.252758647843 -86.5,-0.932625461944,-0.0236350735806 -86.59999999999998,-0.567476935181,-0.929904708864 -86.7,-1.1001328091,-1.01543629009 -86.79999999999998,0.308596259802,-1.51729088316 -86.9,-1.93523184429,-0.722757929403 -87.0,-1.71540831966,1.09617272074 -87.09999999999998,-3.23863666578,1.07940627323 -87.2,-3.09413099888,0.661964098589 -87.29999999999998,-4.39237399792,-0.33907783938 -87.4,-2.22313518712,-0.987904728984 -87.5,-2.20093996671,1.42274230241 -87.59999999999998,-1.63799347974,1.92332495493 -87.7,-3.18939195981,-1.06188857201 -87.79999999999998,-1.22079992484,-0.908693919953 -87.9,-1.19159197579,-2.8517651262 -88.0,-1.90296154854,-1.71917162682 -88.09999999999998,-0.350518027086,-1.89954206258 -88.2,1.02676769107,-0.383902733693 -88.29999999999998,1.57840306056,0.243642308642 -88.4,0.273828067478,0.362813020844 -88.5,0.412229851152,-0.460077324982 -88.59999999999998,-0.94179664569,0.291055895104 -88.7,-1.18852719653,-0.10684039519 -88.79999999999998,-1.12761951052,-1.44135969678 -88.9,0.267108189457,0.342454541821 -89.0,1.71035448398,-1.40444118241 -89.09999999999998,3.87096051436,1.08551397652 -89.2,4.22140310372,1.63458690107 -89.29999999999998,4.27479564534,-0.261114037803 -89.4,4.00913481766,0.208763143177 -89.5,3.84070711038,1.3734921728 -89.59999999999998,2.49722958158,0.98522486466 -89.7,1.2268142553,2.58842939311 -89.79999999999998,0.748134217525,0.0530985776238 -89.9,1.55346995101,1.55596223157 -90.0,0.981679869229,2.3534782594 -90.1,0.0267715488629,0.883840803673 -90.2,-0.634366760764,1.45244772136 -90.3,-0.553426781498,0.186457285289 -90.4,-1.50432941715,0.678368629585 -90.5,-1.94116454843,0.29082354232 -90.6,-3.3315313888,0.417838624206 -90.7,-2.92731029457,0.662219625525 -90.8,-1.99308330599,0.398233511558 -90.9,-0.601320915873,1.30225322029 -91.0,-1.52873250899,1.2795065464 -91.1,-2.47772140283,0.0538593877858 -91.2,-1.52479041405,-0.656822660067 -91.3,-0.804304896089,-0.270769369775 -91.4,-1.59307215334,-1.62942239441 -91.5,1.29400140412,-0.0188553058326 -91.6,-1.06591350053,-0.0643494381362 -91.7,-0.784108432854,-2.49883023254 -91.8,1.28236861071,-2.42941304851 -91.9,1.40642532103,-2.07909580347 -92.0,1.76134425895,0.0537157609772 -92.1,2.58408790097,-1.37049795959 -92.2,3.87505330352,-0.562329146132 -92.3,1.73734811166,-2.60468899274 -92.4,1.83496842471,-1.53816509123 -92.5,1.76619862014,-2.03811220147 -92.6,2.75856304243,-0.000865779000499 -92.7,0.707205199174,0.536858962433 -92.8,1.72668120507,0.741774099144 -92.9,1.5902381347,-0.2658372677 -93.0,-0.430440251218,-2.05627431983 -93.1,-0.855374355317,-1.47527192969 -93.2,0.38467188157,0.421291419706 -93.3,-0.779727773258,1.30238620391 -93.4,-0.345387137853,1.63321935264 -93.5,-1.46977473915,-1.82287558395 -93.6,-2.48487329427,-1.42061941107 -93.7,-2.16790062861,-3.2656409205 -93.8,-0.584791960167,-4.79931997883 -93.9,0.289620768503,-4.07754372968 -94.0,-0.648382562422,-4.23656476478 -94.1,-0.42204151956,-4.88229148814 -94.2,0.353955572079,-4.59257504198 -94.3,0.432614617242,-4.53746839656 -94.4,0.758226056087,-2.32151302201 -94.5,0.662965207897,-4.45063332639 -94.6,-0.325299463292,-2.48239242817 -94.7,1.77534986739,-2.54667396505 -94.8,0.637104277516,-1.41751927828 -94.9,0.130570137787,-3.26081415917 -95.0,-2.87331899762,-0.643849642644 -95.1,-0.333298392185,0.302613295601 -95.2,0.0572800417887,0.388346840478 -95.3,-0.634710962307,0.684258148997 -95.4,0.44015216057,0.135393804475 -95.5,-2.23502788743,0.436571150565 -95.6,0.291760257,-0.401892324772 -95.7,-0.661568819089,0.237229873428 -95.8,1.16692141085,-2.44131486485 -95.9,1.66362549794,-0.769602314426 -96.0,1.92886116421,-1.99980912774 -96.1,0.335674159616,-1.76001751282 -96.2,-0.765751850439,-0.00543555294476 -96.3,-0.516734645371,-1.95336663507 -96.4,-1.43465735434,-1.42608410984 -96.5,1.07885891145,-3.31395149414 -96.6,-0.837768987595,-3.79872743565 -96.7,1.9351964656,-2.08520524797 -96.8,-0.487925762688,0.569240618754 -96.9,0.493586958232,-0.779270404027 -97.0,-0.621449788818,0.669559853174 -97.1,-1.63725583352,-0.707349503089 -97.2,-1.47162359015,1.10443031085 -97.3,-1.91565865608,-1.29440443445 -97.4,-2.09330119067,0.197077315983 -97.5,-1.11684593759,-0.30543056381 -97.6,-2.38407616431,0.925813954688 -97.7,-0.582166569705,0.617984672823 -97.8,0.991983592688,1.41108561958 -97.9,1.07199156732,2.9462212404 -98.0,1.76583050853,2.24949529818 -98.1,1.23303466647,2.92095680994 -98.2,1.74450930953,2.92396894578 -98.3,0.9158606963,3.95461297032 -98.4,1.75546721949,1.05081439033 -98.5,1.1804441657,1.28300050463 -98.6,2.68341792635,1.52244061412 -98.7,2.49825132656,1.42304497549 -98.8,2.8102077957,0.240814334676 -98.9,3.57858523662,0.604073302699 -99.0,1.9123612589,0.673483953918 -99.1,-0.601721170417,3.03730996696 -99.2,0.325237972469,1.25998153743 -99.3,-0.332879802363,2.26608365857 -99.4,0.312540295447,4.33514990425 -99.5,-1.89327340403,3.40158721163 -99.6,-0.561649278576,4.90691059065 -99.7,-1.10266222984,5.29359816288 -99.8,-0.82398708742,4.03170119415 -99.9,-0.715583014651,5.33384985958 +0.0,-3.20062063034,-3.09181255719 +0.1,-0.986246612345,-1.5949812477 +0.2,-0.744229693428,-3.13970184521 +0.3,-0.305809561476,-1.06322825516 +0.4,-1.58966339359,-3.04496914375 +0.5,-0.124086034506,-1.12440594558 +0.6,-0.725709087967,-1.1921895183 +0.7,-0.621846159301,-1.78813061539 +0.8,0.462126315313,-3.08872472095 +0.9,-1.84447135567,-0.916082835023 +1.0,-0.718932500849,0.510539258834 +1.1,-0.0187629403667,1.00471650473 +1.2,-0.54776061348,-0.278363707855 +1.3,-1.90013303406,2.87043169245 +1.4,-3.27479916294,0.924555236325 +1.5,-2.38944164152,-0.15056524583 +1.6,-3.28607748716,0.564788817679 +1.7,-3.21242047611,0.598292318232 +1.8,2.04893671879,-1.66417158043 +1.9,-2.03075187548,-0.598310322028 +2.0,1.84960676704,1.01045667673 +2.1,-1.90774005257,1.31968650188 +2.2,-0.244557298209,-0.370795131961 +2.3,-1.04418814561,-1.46163552604 +2.4,-3.1936187534,0.155131849637 +2.5,-1.99141118207,-3.12148991287 +2.6,-2.56445033889,0.134273795384 +2.7,-1.94223798441,0.211869370108 +2.8,1.73371578052,0.829035713973 +2.9,-1.66215782675,0.381637967154 +3.0,-2.13052672604,-2.56562564586 +3.1,1.37614897899,-3.11777708309 +3.2,-0.441998877361,-2.9393544356 +3.3,2.62621638385,-3.14117936056 +3.4,0.318944048388,0.748331517888 +3.5,1.99807628349,0.908633328841 +3.6,1.77461345249,-0.00552030694761 +3.7,1.57581228926,1.46621799324 +3.8,2.68576537268,0.663964512167 +3.9,1.9759837484,-3.13517953492 +4.0,1.67205762121,-2.79557813706 +4.1,1.86117794044,-3.10861666937 +4.2,-0.440804749873,-0.776772828339 +4.3,2.53032019125,1.51803756946 +4.4,-0.187604970658,-1.09531917678 +4.5,1.04267342283,0.832585764085 +4.6,2.68972012709,1.17945753849 +4.7,2.58668303514,-0.446850527417 +4.8,2.46156447442,3.08593414171 +4.9,0.370576583913,1.6581653058 +5.0,0.115959157245,0.259232077764 +5.1,-1.77362126746,0.206388686118 +5.2,-0.63709744987,-2.51906093866 +5.3,-1.81099467342,-1.10017439715 +5.4,-1.96888742834,-0.291404593733 +5.5,-3.0868711822,-3.0596661606 +5.6,2.06897983451,-2.82769267448 +5.7,-1.93502798377,-3.13006467458 +5.8,-1.68048219174,-1.66272959326 +5.9,-2.83837083887,2.42686101985 +6.0,1.98331443194,1.34781064708 +6.1,-0.674036143436,0.813146679279 +6.2,0.951388515151,-0.114865537233 +6.3,1.06011163928,-0.910987991037 +6.4,-1.07909253625,-0.592184666578 +6.5,1.67775173702,2.69048000313 +6.6,2.18310310311,1.19102281893 +6.7,2.67174823373,2.66028400259 +6.8,-0.828874656542,1.59995212643 +6.9,-1.8463567867,0.908801691988 +7.0,-2.1596751608,1.64574344786 +7.1,-3.25876300657,0.680708010467 +7.2,-3.22661881997,-1.0953994686 +7.3,-3.12325692466,1.60132986944 +7.4,-3.13117673251,0.41744813457 +7.5,0.0846975757593,0.664175720374 +7.6,-0.608715905479,3.17077001519 +7.7,-0.236768345816,0.560865787516 +7.8,-0.635636793608,3.4792295264 +7.9,1.71286220494,1.27297765058 +8.0,-1.18688477679,0.743961028125 +8.1,-0.72049316768,0.0571761963809 +8.2,2.56787056021,0.755927885432 +8.3,-0.368582404924,1.79952295324 +8.4,1.74644545341,1.49832135185 +8.5,-0.723582841043,3.33342719631 +8.6,-0.328035678329,1.07437808172 +8.7,1.81774857178,-1.12613406523 +8.8,0.498528321498,-0.976779908585 +8.9,1.91089431332,-1.45818637905 +9.0,0.825095378386,0.390214375145 +9.1,1.51424170031,-0.629621385691 +9.2,2.35295480965,0.585094458817 +9.3,-0.871478612422,0.630480308442 +9.4,-0.383785195043,-0.178882563952 +9.5,1.1912604208,-0.756813763986 +9.6,1.94400241404,0.67027423022 +9.7,2.34516868554,-1.09109961761 +9.8,-3.1606196263,0.800908466469 +9.9,2.55098647392,-1.29913140547 diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/pk_samples_1.csv b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/pk_samples_1.csv index 2de8ff5baf..d594bfb8a8 100644 --- a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/pk_samples_1.csv +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/pk_samples_1.csv @@ -1,1001 +1,101 @@ seconds,signal0,signal1 -0.0,-1.32731385777,1.40818238412 -0.1,-0.872223862184,0.487378688094 -0.2,1.23468200845,0.624965945727 -0.3,1.63635370802,-0.0626502279837 -0.4,3.65929437564,1.42198658258 -0.5,2.56837003884,0.102417781119 -0.6,2.72179367437,0.688288733018 -0.7,0.809060431832,2.04329774359 -0.8,-0.221028351187,3.20726732197 -0.9,0.269913296412,3.80446268841 -1.0,-0.244204903826,1.86937811564 -1.1,0.484712869805,3.08921553925 -1.2,0.272563000778,-0.174191782104 -1.3,2.68651427021,1.04048497419 -1.4,0.759455631162,0.150128561096 -1.5,1.67777763331,-0.0588124397121 -1.6,0.878156850481,-0.508121905135 -1.7,0.941901357787,-0.69684138168 -1.8,2.0491772813,0.0633507652371 -1.9,1.14872351633,0.276053457623 -2.0,2.37798009621,0.0790016387366 -2.1,2.51994698893,-0.796466240765 -2.2,2.1519375754,-3.18755898554 -2.3,1.28447813287,-3.62426570477 -2.4,0.840475039194,-2.43212812859 -2.5,-2.77480637933,-0.744479827847 -2.6,-1.38595615824,-3.62275968159 -2.7,-2.27466778914,0.0413629476879 -2.8,-0.220753759923,0.037982436455 -2.9,-0.0848204860514,0.509481364454 -3.0,1.1242415904,-1.98566790082 -3.1,0.153931419748,-0.111958235413 -3.2,0.899527758069,0.618037831272 -3.3,0.319144311292,-0.187240852273 -3.4,-0.604014227927,1.64910118047 -3.5,-2.01152598466,1.82401392009 -3.6,-3.12299665969,3.85609964917 -3.7,-3.57151982316,3.28547390374 -3.8,-3.67780210888,0.972010637237 -3.9,-3.95612062814,1.00692874131 -4.0,-2.48641534303,-1.66072461017 -4.1,-1.18600409975,-0.455486130744 -4.2,-1.08278302061,-0.507861870808 -4.3,-2.3974255571,0.471184574242 -4.4,-1.76394279257,0.502059169838 -4.5,-1.8797640755,0.681025518887 -4.6,-3.30724190921,0.711478702938 -4.7,-2.56651061578,0.694976162042 -4.8,-2.03173426333,1.87601041092 -4.9,-1.56990213731,2.59489330091 -5.0,2.3676680462,3.00865889991 -5.1,1.57346134845,3.07963066605 -5.2,1.76692927765,2.6155553787 -5.3,1.27492132887,1.13237422892 -5.4,1.76520912113,0.274445694416 -5.5,1.61036631254,1.98210352161 -5.6,1.780747069,1.44048464471 -5.7,1.39192446471,1.63791472606 -5.8,2.63698769844,3.11717887714 -5.9,2.64029156961,0.250232479666 -6.0,4.2430037831,1.99892124957 -6.1,4.05981993079,2.2683115927 -6.2,2.87730970824,0.829704774994 -6.3,1.82891408409,2.18602168943 -6.4,0.565354519889,0.492264817147 -6.5,0.707554339512,1.83953695541 -6.6,1.14503803307,0.755853113865 -6.7,0.931385803862,0.69131956174 -6.8,2.80932951719,3.00693851626 -6.9,1.68466505852,3.69087633019 -7.0,2.32916036339,3.93197515367 -7.1,0.788937741957,2.42732051105 -7.2,1.02835163896,2.99957194095 -7.3,-0.316836747833,0.18246666274 -7.4,0.136660532265,1.34495998338 -7.5,-0.523765015352,1.34957021126 -7.599999999999999,0.213472339373,2.52985312197 -7.7,-0.443687692447,1.62350055133 -7.8,-0.405623447821,2.21008727283 -7.9,0.289604632268,3.95113992926 -8.0,0.949342425432,2.30392290481 -8.099999999999998,2.29138476317,4.04438645076 -8.199999999999998,-0.320502392945,4.94124057339 -8.3,-1.07095214281,2.32828069836 -8.4,-1.3238906431,3.29293167339 -8.5,1.32007340099,0.724939660663 -8.599999999999998,0.20948751304,0.947585724754 -8.699999999999998,-0.634050844221,-0.204162174054 -8.8,-0.99934793124,-0.764276117653 -8.9,-0.751555252089,0.160748139833 -9.0,0.828089979305,0.35788410376 -9.1,2.83446097938,0.550717419131 -9.2,1.42235113626,-2.08229996858 -9.3,0.992360965075,-2.21637967668 -9.4,-0.983913889957,-1.6202557638 -9.5,-2.60262987222,0.0795293565623 -9.6,-3.45246521248,-0.929193733314 -9.7,-3.11530859135,1.63429306977 -9.8,-3.07176663479,-0.132314350145 -9.9,-2.52539565501,0.584126460173 -10.0,-1.80148933444,1.19964192367 -10.1,-1.16963038074,2.35481060897 -10.2,1.75224524013,2.31111934652 -10.3,1.32430559311,1.16211086246 -10.4,1.7230720781,2.10402567611 -10.5,0.22970720758,2.22156476591 -10.6,1.14421182758,-0.365114154419 -10.7,-0.994508222632,0.374804359505 -10.8,-1.14469143535,1.34841233051 -10.9,0.521750318398,1.83988583049 -11.0,2.02900174792,0.118390975215 -11.1,0.558563572263,0.0208459681998 -11.2,1.60228898401,-0.159944884895 -11.3,1.63038733321,2.38695239685 -11.4,1.20903581428,0.740166260054 -11.5,1.17238342283,2.20631879418 -11.6,-0.187078016324,0.39250514974 -11.7,2.12035403159,2.16284534769 -11.8,2.70408620611,1.60945087739 -11.9,-0.168841913125,2.29945069063 -12.0,-0.263377835182,1.16688111641 -12.1,-2.00441403846,1.08681925435 -12.2,-2.28900163323,-0.284719269443 -12.3,-0.0278458748481,0.196807734325 -12.4,0.131216159002,0.94510307993 -12.5,-0.921162391611,-0.018800022271 -12.6,0.708239066034,-0.0960302762973 -12.7,1.23446462239,0.473292652845 -12.8,-0.382552290616,0.436537018871 -12.9,0.699274037477,0.874749946696 -13.0,-0.0663433198154,2.07308857652 -13.1,0.416190088619,2.165270822 -13.2,0.472916937713,2.66705127169 -13.3,1.9024391547,1.78011786296 -13.4,1.18265945404,1.21241355308 -13.5,1.18338771571,0.993966972705 -13.6,1.31158317786,0.906318668692 -13.7,-0.0375332753739,0.561725005639 -13.8,-1.22780877017,1.07039327677 -13.9,-2.21477756475,0.888747713203 -14.0,-0.934782248562,2.2034522012 -14.1,-1.47763077497,1.19134466965 -14.2,-2.79136210802,-0.686192755361 -14.3,-0.779369607741,0.246506419422 -14.4,-0.745854351136,-1.64875834494 -14.5,-0.2440327416,-1.57253905277 -14.6,0.107128726624,-1.92470327034 -14.7,1.19328566341,-1.9416561567 -14.8,1.08836138391,-3.08315261073 -14.9,1.74625699296,-3.55521667444 -15.0,-0.157980981443,-3.37663838585 -15.1,-0.920667282625,-3.40007527913 -15.2,-0.771403030283,-3.1764595574 -15.3,1.35012629341,-1.33835071543 -15.4,1.74557793916,-0.0766971272939 -15.5,1.03818595975,-1.05178417386 -15.6,0.835829812348,-0.238697560853 -15.7,-0.506283299261,0.657336307014 -15.8,0.495029011171,1.35634075004 -15.9,0.456677750546,-0.729949539005 -16.0,-0.797906944349,-0.421751668679 -16.1,-1.39902709944,0.271696120164 -16.2,-0.699300242979,-1.34430361537 -16.3,-1.05566694985,-0.660892485507 -16.399999999999995,-1.59660863022,-1.74926560954 -16.5,-3.12748543671,-2.57120083076 -16.6,-3.68736882163,0.299377831674 -16.7,-3.17152979216,-2.02711474191 -16.8,-3.40043603688,0.853856143805 -16.899999999999995,-1.84144631142,-0.526541428496 -17.0,-3.30701445949,0.352928386771 -17.1,-1.09891415301,-0.162642550381 -17.2,-1.02902878478,-2.31461533276 -17.3,0.0676300256214,-2.76086166085 -17.399999999999995,-0.113805550621,-2.21450983494 -17.5,0.702973739488,-2.02423567341 -17.6,0.269581839709,-3.06695885898 -17.7,-0.160651878,-3.30696027 -17.8,-1.12686220991,-1.53454525619 -17.899999999999995,-0.0542351529514,-0.998358585023 -18.0,0.645583570467,-1.87185213605 -18.1,-0.492646076124,-1.66935564249 -18.2,1.85291175836,0.711518978782 -18.3,0.102582515438,-0.55301883897 -18.4,0.345455655855,1.14464986212 -18.5,1.19693252489,-1.3838553997 -18.6,-0.749756937043,-0.182895304395 -18.7,0.874964793968,0.43103855348 -18.8,0.969733437861,0.136149272611 -18.9,-0.317374555443,1.68987794284 -19.0,1.34892156832,2.32250442123 -19.1,-1.3953028455,0.97156331731 -19.2,0.332912782318,1.84386957786 -19.3,-1.16854555029,2.96136707548 -19.4,-0.794605989478,3.22959110882 -19.5,1.96929190201,1.17888373783 -19.6,0.726518556162,2.49662763791 -19.7,1.67936496599,1.68594067584 -19.8,0.269457140604,-0.0756670342779 -19.9,1.40593357174,1.44657409243 -20.0,2.0726328986,-1.15884636755 -20.1,4.272432506,-0.391033124966 -20.2,4.27222471649,0.0147545936791 -20.3,3.51930281273,-1.29275523754 -20.4,2.96539213305,-2.36002320547 -20.5,-0.875310610585,-1.83873174826 -20.6,-1.00847938456,-2.06445710252 -20.7,-2.32281970795,-1.69396249793 -20.8,-3.17624243423,-1.79086005106 -20.9,-2.92612233707,-0.266327498718 -21.0,-1.42022252819,-1.65580413263 -21.1,-2.5119719469,-3.38239438686 -21.2,-3.59825152095,-1.72896003042 -21.3,-2.61788332421,0.0270463480113 -21.4,-2.98399193081,-0.377189969485 -21.5,1.32451358281,-0.449784209989 -21.6,-1.31336707648,0.394057424646 -21.7,-0.849904482211,-1.02696192911 -21.8,0.789700907115,0.955799015491 -21.9,0.645174905749,2.14407827617 -22.0,1.67477888956,0.336650324714 -22.1,0.37441487103,-0.339979579504 -22.2,2.03507106784,-0.277946368845 -22.3,-0.927874583125,-0.577108139594 -22.4,0.851396353398,-1.0949723108 -22.5,1.32626209278,0.0706960564022 -22.6,2.08323351132,-0.747137831544 -22.7,0.981040130958,-0.427489245198 -22.8,-0.763879612916,1.57003417278 -22.9,-1.01316258307,0.971350891641 -23.0,-0.639551789199,1.92575009954 -23.1,-1.19803974978,3.20607210763 -23.2,-2.36823253813,2.17834880556 -23.3,-2.04148607798,1.83317764863 -23.4,-1.02580537006,-0.224075704727 -23.5,-0.956253022065,0.383096826773 -23.6,-0.0488799451901,-0.610195732586 -23.7,0.584460127569,-1.28487445398 -23.8,-0.767106974571,-2.79570441755 -23.9,0.0149305026193,-3.90160321583 -24.0,-0.592438851156,-2.90462489277 -24.1,-0.910490505588,-4.99768963906 -24.2,0.730309277736,-5.03478304864 -24.3,0.0410274833756,-5.00402842323 -24.4,0.195717308422,-4.98055231111 -24.5,1.76678306649,-4.45607565335 -24.6,2.77690149949,-3.21531570057 -24.7,2.49313722752,-1.95677897139 -24.8,2.84288582348,-2.80319343959 -24.9,1.58842980377,-0.943127803402 -25.0,0.00120490436243,-1.19727498309 -25.1,-0.657962179735,1.44946636704 -25.2,0.619084421777,0.294739409891 -25.3,-0.574598429365,0.293437123702 -25.4,0.43609586056,-1.40538346237 -25.5,-0.636596502726,1.07665635316 -25.6,-0.73731388749,0.659956216439 -25.7,2.21198718163,3.07570795648 -25.8,3.57412180609,1.10298357755 -25.9,4.22932471223,2.91346974072 -26.0,3.7969256787,1.75043817222 -26.1,2.39148520582,1.75297233763 -26.2,2.26767101573,1.72274867893 -26.3,2.2787585294,0.610217396429 -26.4,2.03081471469,3.55074091275 -26.5,1.85790553724,0.86956288365 -26.6,1.31559236666,0.26941798795 -26.7,1.57419073368,-0.800116286325 -26.8,1.60342336402,1.47842123342 -26.9,0.824467175001,-1.53744612529 -27.0,0.493769095425,0.362431122543 -27.1,-0.0279605495094,-0.706977735705 -27.2,0.827515204609,-0.496502317421 -27.3,2.20124989244,-0.496807098101 -27.4,1.44825245519,1.09685143323 -27.5,1.72142619177,-1.11189466434 -27.6,-1.17649868078,0.162052192386 -27.7,-1.20270306177,-1.29865815996 -27.8,-1.80236244806,-0.764964677247 -27.9,-1.33089966675,-2.57674730081 -28.0,0.0340469163285,-3.35633853776 -28.1,1.67588831002,-4.1321235638 -28.2,3.41921773343,-3.01015939801 -28.3,2.57648160527,-2.94306920386 -28.4,0.63132398428,-3.95647924901 -28.5,0.683037092756,-4.16785677716 -28.6,-0.115579227618,-3.66891271046 -28.7,-0.984749310275,-3.15020556227 -28.8,0.175136420124,-2.6231732119 -28.9,0.0701720467147,-1.54547615963 -29.0,-1.11678003431,-2.14566706652 -29.1,0.184014740109,-3.25204169869 -29.2,0.87296122176,-2.8047281373 -29.3,-0.723873442594,-2.23415516431 -29.4,-1.45198995821,-2.73403006698 -29.5,-2.97027962382,-4.20164990468 -29.6,-1.93972407312,-4.08670606332 -29.7,-1.57952920791,-5.02669225503 -29.8,0.468073294488,-4.35404805396 -29.9,-1.72973641544,-3.67511819719 -30.0,0.917294805045,-0.753045244199 -30.1,0.904298895788,-3.04606723897 -30.2,1.23419341013,-2.7820226479 -30.3,0.526225183588,-0.923566966783 -30.4,-0.963359759195,-0.930469170691 -30.5,-0.272649448574,-1.84047462094 -30.6,-1.12221632517,-1.82717943738 -30.7,-1.20118283613,-1.37358527099 -30.8,-1.06003055785,-1.76423347776 -30.9,0.521965890753,-2.80291912723 -31.0,-1.01939050442,-1.73136201062 -31.1,-1.04206280362,-0.585914419495 -31.2,-0.259419075617,0.340632359311 -31.3,-1.71550614235,-2.21259199914 -31.4,-1.07983986759,-3.26626004093 -31.5,-1.44087779869,0.803747520127 -31.6,-1.31057123826,-1.01680174878 -31.7,-2.97373305167,-1.23494893091 -31.8,-1.3226252103,-0.0935331069301 -31.9,-2.38202568772,-1.08313159996 -32.0,-1.35238014237,0.804374619724 -32.1,-0.820926001944,0.165612110271 -32.2,0.402567706063,1.06719159881 -32.3,1.5118820848,-1.77635919064 -32.4,-0.226573821485,0.259280977076 -32.5,-0.741718173325,-4.06539113935 -32.6,1.2478947415,-1.7933750498 -32.7,1.34017665192,-0.703933716336 -32.8,1.97990469547,-0.197562023884 -32.9,0.61032086141,1.26579067414 -33.0,0.45784142311,-0.262350444019 -33.1,-0.0690104931804,0.881500927633 -33.2,1.61858114942,-2.80103269557 -33.3,1.3847301017,-2.04740521583 -33.4,2.18475472771,-1.91005756884 -33.5,0.169883088237,-2.87874124009 -33.6,-0.27265177037,0.280079800728 -33.7,-0.208832014366,0.504896263093 -33.8,-1.19585582019,0.893216047767 -33.9,-1.6332571221,-0.203447172265 -34.0,-3.14062100117,1.67459449902 -34.1,-1.89332022462,-1.38013239377 -34.2,-1.17013860782,-0.781048669146 -34.3,-0.26895296419,-2.1294078057 -34.4,1.62582044411,-2.63076542303 -34.5,-0.225922204815,-1.26379817429 -34.6,-0.501036593189,-1.06350203426 -34.7,-3.06860815443,-0.15312118689 -34.8,-0.921412037806,1.09567326691 -34.9,-3.40540201936,0.248933316515 -35.0,-1.53605608946,-0.24866078314 -35.1,-1.77647467207,-2.3087839219 -35.2,-2.53926216727,-2.85310347702 -35.3,-0.443041661058,-1.29817238256 -35.4,0.70068709843,-1.21983735494 -35.5,0.114407878952,-1.71690997894 -35.6,0.105511511332,-3.32898440452 -35.7,3.20311726652,-3.14136987707 -35.8,2.12451631309,-1.89079325808 -35.9,1.40064114212,-3.05925752106 -36.0,2.2943965053,-1.35601676147 -36.1,-0.0907657326134,-1.82451598 -36.2,1.15498887837,-0.745689234317 -36.3,-2.67329764766,0.363283006864 -36.4,-2.35532561548,-1.10158429378 -36.5,-2.92818601621,1.89111241403 -36.6,0.0207088759499,-0.312658783125 -36.7,0.162854177833,-3.05649535844 -36.8,1.9464742039,-1.86922222133 -36.9,0.0989047070113,-1.50009512909 -37.0,0.191723939603,-1.97941622084 -37.1,1.34772636347,-0.640315227671 -37.2,-0.0528038141979,0.341001987797 -37.3,-0.280029154961,0.874338919366 -37.4,0.585977975047,0.431492472947 -37.5,1.48423909189,1.39406850008 -37.6,0.97532871832,-0.932831922235 -37.7,-2.46317054991,1.56256721065 -37.8,-2.12248131992,0.14405998678 -37.9,-3.09073069831,3.2402296273 -38.0,-1.13350531584,0.193245759291 -38.1,-0.848151635901,1.47783188711 -38.2,-0.159058678452,0.571161039659 -38.3,0.729644917541,1.17863763983 -38.4,-0.5050820412,1.54841275712 -38.5,-1.02979363917,1.00200872981 -38.6,-0.852939783734,0.719058439012 -38.7,-0.263558125274,-0.384492611375 -38.8,-1.84627369444,-1.74973853291 -38.9,-0.238319770682,-2.09903889691 -39.0,-0.627696359669,-2.37307252591 -39.1,0.465422707913,-0.741126405532 -39.2,0.420167165345,-0.618536144899 -39.3,1.46076287169,1.22484181458 -39.4,1.84029264873,0.0606830385272 -39.5,1.22948208118,0.0846208019916 -39.6,1.21655191858,-0.566066626321 -39.7,-0.276862016379,-0.415757700305 -39.8,-2.1964803228,-0.804244172075 -39.9,-0.133593233279,-0.475326315989 -40.0,2.26376021041,-1.16698254418 -40.1,2.26528215767,0.143677541841 -40.2,1.59950794217,-0.887510892176 -40.3,1.7396373034,-1.43124368184 -40.4,0.467168317433,0.650864334306 -40.5,2.52745476277,1.45910630907 -40.6,2.50132767291,0.154005794535 -40.7,2.70017539923,0.626978044395 -40.8,0.393468149441,0.074612176536 -40.9,3.13695807236,-3.29779287029 -41.0,0.178517899621,-3.46986789394 -41.1,2.16854982841,-3.15935241089 -41.2,0.206554865101,-3.59596796029 -41.3,-0.369962537407,-1.86854569897 -41.4,-0.331319808164,-2.63783485071 -41.5,0.666636650868,-1.2962363741 -41.6,0.717457394855,-2.65339219345 -41.7,-0.554554617106,-1.80765222456 -41.8,-1.15099683295,-1.72631782413 -41.9,-1.77864314539,0.586905720804 -42.0,-2.89387143749,-0.448083145802 -42.1,-3.59157985079,1.32157386346 -42.2,-4.51182544645,1.47745717774 -42.3,-4.50395554641,3.75364188834 -42.4,-4.47884091531,1.32301136708 -42.5,-4.10195212539,0.757314698981 -42.6,-3.85992453768,1.42556540352 -42.7,-3.09285150689,1.90109657583 -42.8,-1.98192963156,2.97569894914 -42.9,-2.0126762812,1.99791102852 -43.0,-1.46415577616,3.76008951508 -43.1,-2.07887460159,2.15548916556 -43.2,-3.98746537295,1.63225111859 -43.3,-3.41778777541,1.39573657824 -43.4,-2.77768471083,1.60632230751 -43.5,-2.507977642,0.523727360069 -43.6,-2.14764525486,2.52340930451 -43.7,-0.745815691654,1.85281198275 -43.8,-0.810927571965,0.452115519016 -43.9,0.919884347797,1.13320771672 -44.0,0.956882810781,0.871159916107 -44.1,2.10091337008,3.01963351661 -44.2,2.39342463153,3.12142950772 -44.3,0.743153998635,5.25681485645 -44.4,2.19647130723,3.80168025687 -44.5,-1.28706682706,1.41656069823 -44.6,-1.09868155566,1.20373557722 -44.7,-2.02801036028,2.02229832696 -44.8,0.232336790748,1.2918257809 -44.9,-1.07517299482,3.1125809226 -45.0,-1.84311437629,0.840762247391 -45.1,-1.09395903301,1.48099312494 -45.2,-2.58125615412,0.663646377772 -45.3,-1.15253521423,0.202676162505 -45.4,-0.308968813104,1.36861312854 -45.5,-1.31319016009,1.92597230796 -45.6,-1.29271211633,1.89333610169 -45.7,-2.5286344447,1.64242926716 -45.8,-3.8458388798,3.39844804448 -45.9,-3.03336007377,2.6315615106 -46.0,-2.21618179991,3.89731542272 -46.1,-1.03238036538,2.02109147474 -46.2,-0.596179079307,3.07031573098 -46.3,-0.425165560819,1.43325028336 -46.4,-1.02202228118,1.25649552721 -46.5,-0.812533299954,1.72726814161 -46.6,-0.776402586608,1.24247716052 -46.7,-1.49581184051,2.09076428967 -46.8,-1.72263662759,1.92533521585 -46.9,-1.43493315592,2.1074626303 -47.0,-1.38443068582,1.53111323895 -47.1,-3.43669208256,1.88668465954 -47.2,-1.85703761921,1.90014210111 -47.3,-0.259411942134,1.34610699164 -47.4,0.233386578907,1.95404699689 -47.5,-1.30732928657,-1.3517604729 -47.6,-1.0210681553,0.637754778999 -47.7,-2.55450203876,0.705409626751 -47.8,-3.22289513833,-3.24214170379 -47.9,-3.5786099029,-3.26603336132 -48.0,-0.991179199633,-1.17935341379 -48.1,-1.8729266924,-0.202684577022 -48.2,-0.255848785135,-0.338057147026 -48.3,0.352072039127,-1.95005974476 -48.4,-0.0222417107241,-1.48189385771 -48.5,1.44795831477,-2.77769928532 -48.6,0.533558885057,-0.676190050643 -48.7,0.389862963236,-0.677657877218 -48.8,2.41205761318,-0.813142750741 -48.9,1.44627776441,-1.27969159572 -49.0,0.628954478601,-0.804500213686 -49.1,-0.0947863138682,-0.15344218117 -49.2,0.600006896542,-0.398471752705 -49.3,1.66739694636,1.34955154605 -49.4,1.99152138038,0.153507562004 -49.5,0.861305063083,1.15236903736 -49.6,0.116621084946,1.2976064172 -49.7,-1.68451510558,1.70068423634 -49.8,-0.561692114663,-0.384997354229 -49.9,-1.20352940149,-1.92283692915 -50.0,0.766736310159,-1.55924862393 -50.1,0.813903200234,-2.21414578641 -50.2,0.520597538577,0.576803086231 -50.3,-1.1146685951,-1.47659530444 -50.4,-1.07174931943,-1.93399523561 -50.5,-1.31956435549,-2.87876651874 -50.6,-2.46519273126,-0.842141260976 -50.7,-1.28139078268,-2.00756587132 -50.8,-0.72963813644,-0.798854503119 -50.9,-1.2200156838,1.12576822839 -51.0,-1.05432463097,1.49504201637 -51.1,-3.32792305525,1.2573232388 -51.2,-3.25732765431,0.309816122307 -51.3,-3.47891038763,1.3322451501 -51.4,-0.597082656309,1.62164071086 -51.5,-0.523291188931,-0.204701212828 -51.6,-3.44340835878,-0.360425682606 -51.7,-1.01644266816,-0.845297144375 -51.8,-1.36694042574,0.841203808436 -51.9,-0.290967834385,1.45947278144 -52.0,1.20942692526,2.1106147792 -52.1,1.95504314415,0.514658611714 -52.2,-0.31086508311,0.876842053043 -52.3,0.3453007218,-0.609400305045 -52.4,-0.232450802456,-1.10135521774 -52.5,-1.33092266415,-2.06428419113 -52.6,-0.75517831339,-3.51393999422 -52.7,0.620562813995,-0.731031219933 -52.8,-0.685897150481,-3.50006891437 -52.9,-0.496723383755,-0.740326823366 -53.0,0.651279124971,-2.43258337334 -53.1,0.0424893286098,-1.08426071766 -53.2,1.35682094229,-0.826487730532 -53.3,-0.922235793242,1.1154622986 -53.4,-2.26690617205,0.690674803664 -53.5,-2.65986126883,0.903768338841 -53.6,-0.442258743314,1.43463152054 -53.7,-1.19424573178,0.613814701754 -53.8,-0.384852454008,-0.0689565492193 -53.9,-0.784125984145,0.374188495728 -54.0,-1.8832111879,0.493877741854 -54.1,-0.152940261139,-0.0525962877782 -54.2,0.0400566097856,0.59660631101 -54.3,0.611776948576,0.14364051635 -54.4,-0.825263716094,-1.05895477111 -54.5,-1.43034662295,-1.69648007645 -54.6,-3.66497941743,-1.5719555158 -54.7,-4.01227608401,-0.969555860319 -54.8,-2.01052461321,-1.44101675869 -54.9,-1.55948986348,-1.65625868659 -55.0,-2.21853090393,-2.95531689854 -55.1,-2.63723333614,-2.67503656017 -55.2,-0.33952004794,-0.347912715379 -55.3,-3.08186192242,0.905856477408 -55.4,-2.96615407718,3.4001263898 -55.5,-1.82777146138,2.61729535281 -55.6,-1.10713282174,2.34912368078 -55.7,-0.615924650599,1.30479875752 -55.8,-0.148737752422,1.51552119973 -55.9,-0.190877974039,2.38060665335 -56.0,-0.829278703999,3.8988319498 -56.1,-0.150391662209,3.23443352956 -56.2,-0.759404549237,4.08729682722 -56.3,-1.9983938605,4.2338659156 -56.4,-2.49067657933,2.21242054826 -56.5,-1.67832846262,3.74430093473 -56.6,-1.09009154661,4.68983232808 -56.7,-2.30784359562,3.38619986545 -56.8,-2.84548468236,2.75535905633 -56.9,-2.11928437458,4.60064299629 -57.0,-2.07604770111,3.45288860814 -57.1,-1.21246013932,1.4560435639 -57.2,-0.993173320183,3.90252063074 -57.3,-0.908664986862,1.24730343699 -57.4,0.217617960394,1.97346656307 -57.5,0.0341513935687,0.504523068432 -57.6,-0.00315150844901,0.731869712453 -57.7,1.22425054166,-1.83912804981 -57.8,0.931991753596,-3.1971748584 -57.9,1.39477030833,-3.25151356547 -58.0,-0.796712314494,-1.77605185259 -58.1,-1.04980837095,-0.322426131209 -58.2,0.160601839345,-0.290351329377 -58.3,0.913739824622,-2.23502748489 -58.4,1.44397752103,0.613967932797 -58.5,3.60851557899,-2.72594200187 -58.6,2.86645101705,-0.363009632 -58.7,2.58417734381,-2.60605007297 -58.8,2.84902636435,-1.26943242077 -58.9,1.99064459752,-2.33816370426 -59.0,1.81592680615,-3.31725920592 -59.1,-0.541244774746,-2.00293129638 -59.2,0.658800266454,-1.93278257476 -59.3,-0.676192663622,-1.14854766699 -59.4,-0.308406619595,-1.87417727844 -59.5,0.0268780085857,-1.47177059 -59.6,-0.309993289168,-1.2629278308 -59.7,-0.393837042692,-0.537156631985 -59.8,-0.454060906501,1.23384510379 -59.9,-0.182586469809,0.322138954774 -60.0,-0.377145234011,0.664250096759 -60.1,-0.546997010748,1.735751309 -60.2,0.741728318879,1.27953309768 -60.3,0.321990294979,2.36249076067 -60.4,0.690288195081,2.5087603197 -60.5,1.0434746336,4.25358787744 -60.6,0.0271611068012,5.16065514141 -60.7,-1.44777687395,4.49739356754 -60.8,0.170328654449,5.43747163089 -60.9,-1.56497063991,4.60724703201 -61.0,-0.550758227554,3.22025639587 -61.1,0.189689835899,4.4448976522 -61.2,-0.224413812461,3.50518844743 -61.3,1.95420114786,2.81779514381 -61.4,1.39846040683,4.6219026349 -61.5,1.64216311127,2.4692317268 -61.6,0.0774721082748,1.63925019272 -61.7,-0.799946292116,2.91529136567 -61.8,-0.49063710675,3.24844754839 -61.9,-1.06806550133,1.46731724275 -62.0,1.42807935769,1.29026370935 -62.1,-0.379378858438,0.159915295168 -62.2,0.245057955904,1.6627210321 -62.3,-0.625128731057,0.236934910912 -62.4,0.0230725261326,0.716683362772 -62.5,-0.829402858105,0.672390821993 -62.6,-1.51034054185,1.24681248247 -62.7,-3.74486794252,0.0454442755786 -62.8,-1.10054769777,1.44696230079 -62.9,-4.21791711954,-0.972179186207 -63.0,-2.06857050679,0.570573937991 -63.1,-0.843504524028,1.2479040926 -63.2,-1.72092174178,1.73724368205 -63.3,-0.856487790013,1.46917230245 -63.4,-1.29301521894,1.97150380349 -63.5,-2.76575345264,0.947094680033 -63.6,-1.16151319794,-0.427846463404 -63.7,-0.827144995745,1.55949888706 -63.8,0.436333413054,1.73624037209 -63.9,-1.28170898383,-0.69609497291 -64.0,-0.02268519837,1.40622376815 -64.1,1.22203339641,1.51665434491 -64.2,1.57706518281,0.527518462962 -64.3,1.42663795048,0.0441563891064 -64.40000000000002,0.329533664187,1.2854002906 -64.5,-0.439919543049,0.433300124965 -64.6,-0.181050689176,0.111198994318 -64.7,2.15784852401,1.77758537267 -64.8,1.37591092306,1.73891773822 -64.90000000000002,2.7863586744,2.63737487008 -65.0,1.92822516027,2.88210876542 -65.1,3.25004608888,1.95747071915 -65.2,-0.22190587818,1.26885617985 -65.3,-0.523076547141,0.579849467019 -65.40000000000002,0.21244443247,0.725191868303 -65.5,-0.128124737207,-1.16673011076 -65.6,1.25924766751,0.0683443300692 -65.7,-0.542575223193,1.05052543659 -65.8,1.78341488408,0.438931684154 -65.90000000000002,2.29480176199,2.0581516991 -66.0,2.75695254908,1.6703111506 -66.1,2.15309313135,1.61191930428 -66.2,2.98347172456,1.67963447444 -66.3,1.95267988543,-0.718991230791 -66.40000000000002,2.03704474366,-0.949386445866 -66.5,1.44031783944,-0.525937337855 -66.6,0.830413237085,-0.0155730561036 -66.7,0.356124471531,0.326223070343 -66.8,-2.67092546303,-0.787610903841 -66.90000000000002,-1.49746455885,-1.16294886798 -67.0,-2.56606834595,-2.01920237224 -67.1,-2.92879806833,-2.70914668336 -67.2,-3.10058482866,0.999378378932 -67.3,-1.39172883547,1.13398283383 -67.40000000000002,0.0641745820176,0.528611525136 -67.5,0.304875357762,1.94526866954 -67.6,1.40925694163,1.24882307213 -67.7,1.10365385871,-0.451389227277 -67.8,1.38561811007,-1.31221070032 -67.90000000000002,1.06504658192,-1.68552760549 -68.0,0.401512005922,-2.09220170387 -68.1,1.56044981056,-1.31433477214 -68.2,0.674947315328,-1.44672619025 -68.3,-0.333884200247,-1.6884386231 -68.40000000000002,-1.32733935391,0.0388487472591 -68.5,-1.12541812786,-1.35391927671 -68.6,-0.241808465075,0.0424380443122 -68.7,1.00385869629,2.03869126891 -68.8,-0.550648765544,1.57468178851 -68.90000000000002,-0.590977631895,2.96695834098 -69.0,-1.70478525631,2.01760874419 -69.1,-0.422615258488,1.80462536251 -69.2,-1.90744004208,-0.882902951452 -69.3,-1.94596690734,-1.04988741076 -69.40000000000002,-0.892522796634,-0.731656794295 -69.5,-1.9730998577,-0.427428028812 -69.6,0.384512361583,0.0327577432309 -69.7,-1.37614419328,-1.22284258264 -69.8,0.880115996349,-1.022870494 -69.90000000000002,0.169558062696,-3.31391548992 -70.0,0.851060224003,-3.6997405567 -70.1,1.03684801411,-1.10251363393 -70.2,2.87463043483,-1.37813378013 -70.3,1.04341101512,-2.20613865991 -70.40000000000002,1.87928266481,-2.13648872919 -70.5,-0.828398420382,-2.39917024394 -70.6,-0.375412504331,-0.10304143087 -70.7,2.21591985657,-0.495905677394 -70.8,1.69508127288,0.478232767861 -70.90000000000002,1.04985999712,0.751650333224 -71.0,3.44778767487,0.331928322129 -71.1,3.8112139362,0.807647966591 -71.2,4.00281749865,-0.558916970095 -71.3,2.66457531105,-1.08671406621 -71.40000000000002,1.80822847818,0.604718204704 -71.5,2.794897182,-0.355552785473 -71.6,2.0508802429,1.75052758605 -71.7,1.95767475876,1.55391711387 -71.8,1.03396685386,-0.809671273706 -71.90000000000002,-0.340380398833,-1.82266953971 -72.0,-0.488035928073,-1.23064485765 -72.09999999999998,-1.08111658427,-1.51703490593 -72.2,-2.18779764225,-2.8329137927 -72.29999999999998,-0.933870485473,-2.13684351848 -72.4,-2.03209622315,-3.1146368538 -72.5,-0.0718261182983,-0.977248592255 -72.59999999999998,-0.853409970102,-1.65073156216 -72.7,-1.00627305739,1.59572632912 -72.79999999999998,-0.287395153876,0.977675775462 -72.9,0.983350596508,2.48106816972 -73.0,1.8355830979,1.21235434388 -73.09999999999998,2.16018134129,0.854210186852 -73.2,0.216337135404,-1.48026669733 -73.29999999999998,0.0258674522182,0.0889855450869 -73.4,0.166954655209,1.5928372797 -73.5,-0.271936554399,0.645293418299 -73.59999999999998,0.132877157944,1.37812431179 -73.7,0.280938858232,3.19173586654 -73.79999999999998,-0.159456149472,3.83725847819 -73.9,-1.4581772614,4.62304996782 -74.0,-0.88061566976,3.76031026398 -74.09999999999998,-1.61283550281,2.90979744174 -74.2,-0.682764718273,0.498089313515 -74.29999999999998,-1.4502139027,0.576763877623 -74.4,0.107725602755,0.235239151004 -74.5,-0.412518227417,1.01919596058 -74.59999999999998,-1.31695663512,1.48053989202 -74.7,1.010266913,2.83032176016 -74.79999999999998,0.841174234953,1.18783231074 -74.9,2.12521086921,1.26892315071 -75.0,1.54171717591,2.07885950504 -75.09999999999998,3.09088083278,2.3145041837 -75.2,1.57109395038,1.78296338107 -75.29999999999998,0.459495168302,1.90775832901 -75.4,-1.02974462955,1.41337385189 -75.5,-0.772434051575,-0.25385396187 -75.59999999999998,-0.176296963254,1.24448997628 -75.7,-1.6213863508,0.722056045214 -75.79999999999998,-2.23159553755,1.32382501488 -75.9,0.14369758105,0.967097543284 -76.0,-1.89272179644,0.579410024933 -76.09999999999998,1.67701703394,0.877684121706 -76.2,-0.0109732637109,0.328578302606 -76.29999999999998,0.181486709472,1.36168534906 -76.4,0.348406299248,0.400033836243 -76.5,0.361112416231,1.6366231182 -76.59999999999998,-0.805549276944,0.736051236324 -76.7,0.273104754347,1.7054632204 -76.79999999999998,1.27035171009,2.17136682501 -76.9,0.206330156871,2.44936284975 -77.0,0.867907343924,1.61683538995 -77.09999999999998,0.524002846743,1.90503287708 -77.2,1.17144212387,2.56578522513 -77.29999999999998,-0.858283901427,1.09026970702 -77.4,-0.572685262713,1.4897062478 -77.5,-1.67462865766,1.83159927512 -77.59999999999998,-0.989157237344,0.385825349249 -77.7,-0.225228577512,1.06285498231 -77.79999999999998,-0.620253534312,-0.155906801635 -77.9,-1.11669092717,-0.104928364803 -78.0,-0.350180159797,0.358259560422 -78.09999999999998,-0.661233312235,-1.93344090509 -78.2,-2.6129437031,-2.28167505 -78.29999999999998,-1.46439344954,-1.78581583049 -78.4,-2.07230151906,-0.728920623722 -78.5,-0.953905307285,-1.38846359167 -78.59999999999998,0.370901155073,0.447762097292 -78.7,2.01237587123,0.531942424109 -78.79999999999998,1.17411476481,0.569021721012 -78.9,0.474554941418,1.30888830418 -79.0,1.67477285921,1.91523346487 -79.09999999999998,2.61790236891,-0.00697010717189 -79.2,-0.166639977027,0.788098103798 -79.29999999999998,-0.281679227165,0.336431320937 -79.4,-2.92486772448,0.0543401423031 -79.5,-2.22132836429,0.816379300222 -79.59999999999998,-2.78095242864,-1.46689363649 -79.7,-4.2172844414,0.302141681818 -79.79999999999998,-4.51771820399,-0.254359525446 -79.9,-4.37788672522,-0.331585297058 -80.0,-3.07974576772,-1.88392413808 -80.09999999999998,-1.00524250888,0.421888433463 -80.2,-1.10699125011,-0.549922968809 -80.29999999999998,-3.27965907421,-1.18166953858 -80.4,-2.77411234486,0.675081930486 -80.5,-2.19640092495,1.24464843019 -80.59999999999998,-1.37929829573,1.16794692718 -80.7,0.909161846852,-0.0526506123566 -80.79999999999998,1.1912565547,1.48184780066 -80.9,1.28003343705,-0.264530978574 -81.0,2.6401730216,-2.659977621 -81.09999999999998,2.41212476321,-3.45852739131 -81.2,0.361280762521,-1.57682162121 -81.29999999999998,-0.795043358197,-4.9757908945 -81.4,0.534974894355,-4.32717869445 -81.5,1.37798018819,-4.36161118525 -81.59999999999998,4.21409233566,-3.45643718896 -81.7,4.02540680085,-2.85627478946 -81.79999999999998,3.91101102328,-2.51253918928 -81.9,3.04966335649,-0.233475818773 -82.0,2.04296120246,-0.608924858129 -82.09999999999998,-0.385564297551,0.60931632646 -82.2,-0.457123328906,0.383829721939 -82.29999999999998,-1.44972253389,-0.962423988953 -82.4,-1.68033566725,0.686964037179 -82.5,-0.785057405109,-0.928371965148 -82.59999999999998,-1.43965662641,0.324410933123 -82.7,-1.42786161394,0.163997839116 -82.79999999999998,-1.06287980285,-0.439011495857 -82.9,-1.75705369783,0.100679509405 -83.0,-2.38948563737,0.221909933253 -83.09999999999998,-2.87043047582,1.16216062186 -83.2,-0.672915363338,-0.456570999062 -83.29999999999998,-2.30364354672,-0.356459215315 -83.4,-0.433830636895,-1.11312002753 -83.5,0.263221352899,0.0298380827408 -83.59999999999998,0.209807507752,-2.42972048263 -83.7,1.16876515612,-1.35908538798 -83.79999999999998,0.546345942192,-1.48389185824 -83.9,2.05037192637,-1.07700050885 -84.0,2.65935374863,2.02084928919 -84.09999999999998,3.40479598954,1.85958875912 -84.2,1.78718413927,2.04759491605 -84.29999999999998,1.57524168631,1.82715433547 -84.4,1.41293299953,0.730961021849 -84.5,1.33426195506,1.29647350999 -84.59999999999998,0.326825040987,0.0485425993609 -84.7,0.489420722738,2.42920042047 -84.79999999999998,0.246560274044,0.535387312231 -84.9,-0.593406039367,1.48606868768 -85.0,-0.266640081681,0.971930357916 -85.09999999999998,-0.768825537761,1.80794037385 -85.2,-1.97214152778,3.03096903999 -85.29999999999998,-0.375179453312,1.48837384711 -85.4,0.0292200430158,2.38873825701 -85.5,0.874575190983,2.49659997333 -85.59999999999998,-0.00506175366871,0.527457158438 -85.7,1.50345389322,1.0632476336 -85.79999999999998,-1.29156947785,-1.26506717962 -85.9,-1.79955626239,-0.943521448024 -86.0,-1.51829606552,0.26969861188 -86.09999999999998,-1.19663825849,-1.75101016287 -86.2,0.112858540018,-0.458786612386 -86.29999999999998,2.12827773646,0.881853635279 -86.4,1.41181211916,1.7787647149 -86.5,1.29710845973,0.445999159462 -86.59999999999998,0.0544124765231,-1.29505427131 -86.7,1.17990004002,0.069849556678 -86.79999999999998,0.425592789904,-1.97648928798 -86.9,0.234214656323,-1.88837210045 -87.0,-0.0215884361922,-1.366721017 -87.09999999999998,0.17818762007,-1.77789147585 -87.2,-2.77839482398,-1.40567250219 -87.29999999999998,-0.258463599468,-3.92138192188 -87.4,-1.93947174,-3.47514302818 -87.5,-1.35487827691,-1.53168206258 -87.59999999999998,-0.0138883903808,-2.68203001878 -87.7,-1.46231567544,-4.35214463027 -87.79999999999998,-1.76875625171,-2.09897346663 -87.9,-0.82187805152,-1.17827022385 -88.0,-0.163640573706,1.9728010337 -88.09999999999998,-0.308608546207,1.59777645319 -88.2,-0.76652023518,2.05740082237 -88.29999999999998,-3.04648954991,2.38046434772 -88.4,-1.53031136264,1.4182817433 -88.5,-2.96717623032,2.31992140559 -88.59999999999998,-2.13240618263,3.68058432559 -88.7,-0.44696259634,4.74524197727 -88.79999999999998,0.124946406291,3.71382174278 -88.9,0.0594280388754,0.586323725528 -89.0,1.75959641536,2.64737532231 -89.09999999999998,1.24506675386,1.2887070933 -89.2,0.693151151007,2.10652780752 -89.29999999999998,1.18092032563,1.59687484947 -89.4,1.0226829606,1.48950393734 -89.5,1.69935346047,3.53461828167 -89.59999999999998,1.61188276091,1.97939731614 -89.7,1.77556297314,4.27357291932 -89.79999999999998,2.00006142423,2.13764760649 -89.9,0.109858409806,3.01741249569 -90.0,0.716057530039,1.92861147344 -90.1,0.482240431663,2.03105948999 -90.2,0.709184265062,1.94024792669 -90.3,1.31400772331,1.11426718966 -90.4,1.59548093341,2.31049877383 -90.5,0.418604892482,4.49161975043 -90.6,1.00741632791,3.72529776534 -90.7,1.04728146863,4.74381014067 -90.8,0.364777378753,0.922359001159 -90.9,0.756927943502,1.81629480269 -91.0,2.17988887355,2.11858399348 -91.1,1.75005409434,0.699911550732 -91.2,2.21745121771,1.81668218043 -91.3,2.90623037367,-2.05167680432 -91.4,3.36443886235,-0.745896553987 -91.5,3.98099167489,-1.65172813396 -91.6,3.34662169538,0.35824002746 -91.7,1.25546229577,-4.2026007013 -91.8,0.0839371241066,-1.1396698405 -91.9,-0.0190911824475,-1.20964610592 -92.0,-0.0955170856397,-1.03388245157 -92.1,0.368023966761,0.892240504748 -92.2,0.710089207993,0.352373478272 -92.3,-0.310451359445,-2.60697475921 -92.4,-0.0294948653937,-2.32517904039 -92.5,-0.949095459855,-1.01109187705 -92.6,-1.0173772823,-1.99698203021 -92.7,-0.322017522959,-1.9968935083 -92.8,-1.42925907953,-3.2982900125 -92.9,-0.906290861591,-2.20804077521 -93.0,-1.15315144329,-1.84429407406 -93.1,0.344518093361,-0.947192846234 -93.2,-0.305630048339,0.307800919934 -93.3,0.184689270201,-0.423791204186 -93.4,-1.43014500246,-2.12472564768 -93.5,-0.987579732055,-1.72798831789 -93.6,-3.14334811387,-2.5522273959 -93.7,-1.53699793185,-3.85718850438 -93.8,-2.07749995201,-2.78003046867 -93.9,-1.77146279871,-2.08219006935 -94.0,-0.454069808177,-1.42386186228 -94.1,-0.341773223033,-1.47917628545 -94.2,1.55001562461,-2.97788125919 -94.3,-2.03355131138,-0.553367084848 -94.4,-0.253761442634,-0.662554201984 -94.5,-0.335611999717,1.17796739353 -94.6,0.260118694203,2.5321519271 -94.7,-2.9750682927,2.48111924481 -94.8,-0.735839096378,0.978238061185 -94.9,-1.7586916324,1.76759095921 -95.0,-1.72031814344,1.48169533201 -95.1,-1.35725553362,2.01793424066 -95.2,-0.989563824306,1.58157827889 -95.3,0.141480236653,3.31530860916 -95.4,1.26201191684,1.35042196605 -95.5,0.300749240298,3.79723530025 -95.6,-1.23582915078,1.98707969101 -95.7,-0.882120014275,2.54776702391 -95.8,-1.98948551536,2.33620747728 -95.9,-1.94858094071,2.25970876237 -96.0,-1.65972932158,2.13453791797 -96.1,-1.48140406798,4.43885766274 -96.2,-2.33295637792,3.78489761826 -96.3,-1.55202856136,3.77462707775 -96.4,-1.5701511085,4.50911658608 -96.5,0.0610885417357,2.03033281492 -96.6,-2.57615865921,1.21163770246 -96.7,-0.134153144379,1.66693439261 -96.8,-1.04028124566,1.1408292886 -96.9,-0.363617674785,3.6628030617 -97.0,-1.13577920542,1.62757157641 -97.1,-0.365652285842,3.89110970276 -97.2,0.0255812248218,1.34351867123 -97.3,-0.415328769694,1.23550242639 -97.4,1.88967422205,0.465299722781 -97.5,0.272231885607,-1.52717999292 -97.6,0.491684282271,1.24520601712 -97.7,-0.149354344917,-1.24712954386 -97.8,1.05448978747,0.0671466115951 -97.9,2.07572798969,-2.12420995989 -98.0,1.81577875238,-1.19364171198 -98.1,0.000256439531002,-1.19556981334 -98.2,1.75489329495,-2.77179589521 -98.3,0.203025551444,-3.49439712044 -98.4,0.672455722586,-3.26120244901 -98.5,-1.4735940129,-3.20278925008 -98.6,-1.90396764937,-3.9245075984 -98.7,-2.93625044807,-0.430148719652 -98.8,-3.33737589606,-0.850591274749 -98.9,-0.756570405741,0.818526195216 -99.0,-1.57277762291,0.485508241211 -99.1,-1.13800476332,1.29015725265 -99.2,-0.683162780432,0.579659472146 -99.3,-0.56572988953,0.351673889821 -99.4,-1.27977743428,0.999942782313 -99.5,-0.487992975343,0.0651790445833 -99.6,0.0763311198094,-2.02577878485 -99.7,1.8204869783,-3.62547637753 -99.8,0.567605216004,-2.81097406781 -99.9,0.329332992617,-0.764362503158 +0.0,1.55147450899,0.996686974445 +0.1,2.5725579012,-2.68218429968 +0.2,-0.908108401906,2.63443726459 +0.3,1.77979286421,-0.864949697151 +0.4,-1.39667951275,-0.46055277805 +0.5,-0.888261993087,-0.890895712192 +0.6,-0.423902450082,-0.0168961870737 +0.7,-1.17454136321,-1.46197724855 +0.8,0.948565237968,-1.14159150807 +0.9,1.00958854579,-1.52935912335 +1.0,2.08058191284,-2.95703802051 +1.1,2.68714073414,0.0713787231931 +1.2,2.59426324454,0.672353790287 +1.3,0.858498446141,-1.43473945645 +1.4,0.120890267122,0.519066838659 +1.5,0.0913768736025,-1.67569786535 +1.6,-0.541378147144,0.426759732291 +1.7,2.54277432165,-0.67185523732 +1.8,0.768757217521,-0.377052358095 +1.9,2.47831271584,-2.63128887969 +2.0,0.74091809257,0.213011114471 +2.1,1.84543371019,-0.830221730661 +2.2,0.245394574366,-0.212675345743 +2.3,-0.854527097598,0.584120092418 +2.4,0.378723890439,0.434240166705 +2.5,1.00056143825,3.24250082149 +2.6,1.57925607741,0.761476926259 +2.7,-0.797886744606,3.48542494977 +2.8,-0.407823959185,2.73264524453 +2.9,-1.18108987004,3.47537899212 +3.0,-3.13927482102,-0.611028594601 +3.1,1.59967804593,1.72554841333 +3.2,-1.09168050523,3.48911453784 +3.3,0.451554239647,-0.00632967356743 +3.4,-0.840620417567,-1.37357655748 +3.5,1.13888122349,0.648233079685 +3.6,0.172419397768,-0.808160704218 +3.7,-0.368045455416,-3.0208036337 +3.8,-0.739028469036,-3.0678136947 +3.9,-0.0607122590594,0.135939638945 +4.0,0.43115998094,-2.55231316597 +4.1,0.147504076837,-1.30218589125 +4.2,2.07846764328,-1.27441555887 +4.3,-0.640299508345,3.18994502297 +4.4,-1.17120961228,-1.42497959099 +4.5,0.576155371936,1.24793470166 +4.6,0.173053567521,-0.0203781431833 +4.7,0.915839511736,0.455347883503 +4.8,1.94893271226,-2.83202440897 +4.9,1.91319075006,-3.13245504957 +5.0,-0.188259590659,-3.04227061694 +5.1,0.818315602504,-0.45726174869 +5.2,1.61738105146,-1.26448244979 +5.3,-0.204224430506,-1.02033613964 +5.4,0.899538362109,0.814051808442 +5.5,0.626809366243,0.389349986023 +5.6,2.4877358493,1.147492717 +5.7,-0.136038326496,1.04822346376 +5.8,-1.76015314718,-0.511272567133 +5.9,0.989474919304,-0.0733205331863 +6.0,-3.25835020853,0.877418996451 +6.1,-3.13282008867,-0.30904539385 +6.2,-3.07336995382,-2.6877404125 +6.3,2.07359152677,0.631600684661 +6.4,-1.97866086811,-3.02911953367 +6.5,1.96087923649,-1.14675093436 +6.6,1.95562668943,-1.77586608365 +6.7,1.06094206895,-1.26677921538 +6.8,2.4814740481,-1.55959148559 +6.9,-1.16511952629,-1.01774710266 +7.0,1.84054973775,-0.686520239644 +7.1,-1.25608809056,1.21764021708 +7.2,0.949573690995,1.78017790917 +7.3,2.68514669427,3.25293145042 +7.4,1.88019073764,1.4029027216 +7.5,2.45964049825,0.608098186404 +7.6,2.68969884845,-0.681110394035 +7.7,2.63988249633,-1.66761381968 +7.8,2.02397089911,0.976825043953 +7.9,0.932105525716,-0.0102508895316 +8.0,-2.06477906209,-0.0752642320148 +8.1,2.05282301023,0.843090696534 +8.2,-1.90674734723,0.466309802968 +8.3,-2.30705674642,-1.43454420986 +8.4,-0.290677687218,-1.27188270109 +8.5,0.555318041731,-1.72220161179 +8.6,-0.119957023045,-0.929733828052 +8.7,-0.453505458589,0.728227782944 +8.8,2.53948233869,0.398986233949 +8.9,1.77023425419,2.85463814907 +9.0,-0.491662012174,-1.44492298979 +9.1,-3.14025834413,-0.00654328519919 +9.2,0.983200913882,-1.13490903803 +9.3,2.61959675414,-0.124836854556 +9.4,2.42037502151,-1.77292850586 +9.5,2.51266828234,0.0813873201948 +9.6,0.120077968135,-1.12424208687 +9.7,-1.23759495428,2.5087464906 +9.8,-1.27843348723,-0.0622326622025 +9.9,0.203984486603,0.892004046013 diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/romMeta.xml b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/romMeta.xml index a904315a68..ce944c4e01 100644 --- a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/romMeta.xml +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/romMeta.xml @@ -7,22 +7,22 @@ - -8.487403095e-04 - -2.251450591e-01 - 5.970548339e-01 - 8.635805490e-01 - 1.868328913e-01 - 2.082017682e-01 - 5.125426086e-01 + -1.816699659e-02 + 1.349330695e+00 + -5.323313246e-01 + -9.932019129e-01 + 4.122686108e-01 + -5.798144759e-02 + 1.617564027e+00 - 2.174315588e-04 - 1.892071060e-01 - 5.607341789e-01 - 3.326118808e-01 - -5.850544951e-02 - 2.025052807e-02 - 4.612197407e-01 + 1.261518139e-03 + 9.276136604e-01 + -1.026231711e-01 + -5.846080735e-01 + 1.129634763e-01 + -1.359830697e-01 + 1.718513202e+00 diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/samples_0.csv b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/samples_0.csv index 4fb72d1d68..b45587184f 100644 --- a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/samples_0.csv +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/samples_0.csv @@ -1,1001 +1,101 @@ seconds,signal0,signal1 -0.0,1.61887819371,-0.736687848427 -0.1,1.71377870704,-3.70590650997 -0.2,2.02919148087,-0.773267798397 -0.3,2.57475650022,-0.26122724046 -0.4,1.69930171109,1.09317765051 -0.5,2.33088060873,1.62202717635 -0.6,0.0104843658403,2.09687825158 -0.7,-0.168851006455,1.37521740638 -0.8,-0.931025495785,0.00144220384577 -0.9,0.182880447829,1.45156014613 -1.0,-0.116265736668,0.799907225416 -1.1,1.71198415228,1.11926120729 -1.2,2.50516641783,-0.518791202377 -1.3,2.16428827481,0.844693241143 -1.4,2.24936793454,-0.766051789152 -1.5,1.29078480654,-0.195235091392 -1.6,1.65896791675,-1.39940913973 -1.7,1.20383739812,-1.55676866022 -1.8,0.580585204063,-1.29874022411 -1.9,0.0149663810255,-2.0639847004 -2.0,-0.776977441911,-1.69556946678 -2.1,-1.09607147744,-1.54314073026 -2.2,0.035727523527,-1.6333159031 -2.3,0.564967654521,-4.527493986 -2.4,1.88135378834,-1.20778696413 -2.5,1.12651501906,-1.04857832145 -2.6,1.36872861647,-2.85428553613 -2.7,0.601775700966,-4.28030018376 -2.8,-0.0955432605894,0.226031399514 -2.9,2.34369787583,-0.591739225512 -3.0,2.67496758371,0.93197527379 -3.1,3.86452964785,0.141662038071 -3.2,0.315221480383,0.976171876389 -3.3,-0.850028659794,-1.29283012507 -3.4,-0.759077450683,-1.47423875803 -3.5,-0.810814735803,-0.910835508342 -3.6,-1.1239231578,-1.18697427858 -3.7,-0.764543334561,1.67205464957 -3.8,-0.415594344514,1.45412986031 -3.9,1.19620359505,1.43317696629 -4.0,-0.72261746947,0.786559941977 -4.1,-1.21126321307,2.23931689787 -4.2,-1.06019421231,1.87806938161 -4.3,-0.0941452787683,4.10106086649 -4.4,-1.18142898288,3.89385221442 -4.5,-0.843273325337,2.15321730128 -4.6,-0.616511581258,1.24294174735 -4.7,-0.800028567149,1.05294270209 -4.8,-1.00778792562,-1.10608034809 -4.9,-0.480949457418,-2.01157716597 -5.0,0.143228525473,-2.47716838125 -5.1,0.371737028332,-2.72417018185 -5.2,1.79118540811,-0.219003428126 -5.3,2.30779564832,-1.08126679905 -5.4,2.71252039676,-1.38504236861 -5.5,2.24442904693,-1.79136627992 -5.6,3.44548973438,-2.56336056315 -5.7,3.49303331978,-0.770194039599 -5.8,4.23008592745,0.499610221665 -5.9,2.87870891365,-1.09747199518 -6.0,2.37023906162,-0.588832541303 -6.1,1.4131345517,0.0114833612049 -6.2,0.102944593236,-0.994876585329 -6.3,0.0694393037547,-0.819046500137 -6.4,-0.130115939594,1.16531836725 -6.5,-0.118552302057,-1.03696095978 -6.6,-0.0230228071718,0.636569982477 -6.7,-0.579849454557,-0.328804350848 -6.8,-1.37479210924,-2.52234294547 -6.9,-1.80256736581,0.193012844444 -7.0,-1.52704462456,0.958795314877 -7.1,-1.54276495556,-0.045161569046 -7.2,-1.02505424198,0.866604002284 -7.3,-0.299590625428,-1.83201848116 -7.4,-0.682175236772,0.1790533922 -7.5,1.5694615069,0.699731150536 -7.599999999999999,0.968048926185,1.05877291384 -7.7,2.39499187418,1.52831158345 -7.8,2.00813477455,0.964768394471 -7.9,3.82770158937,-1.53198575606 -8.0,2.57582458072,0.261564933641 -8.099999999999998,2.5160100349,0.794667840325 -8.199999999999998,1.729343314,1.06068106678 -8.3,2.2353782002,-0.0812201796389 -8.4,1.81062217083,1.78179258986 -8.5,0.0342719787368,1.04803160233 -8.599999999999998,1.63480020404,0.955822606329 -8.699999999999998,-0.278306655101,1.38000013608 -8.8,0.171182074437,2.08216073669 -8.9,0.208899288656,0.924966642281 -9.0,1.23021541589,1.41458431388 -9.1,2.43587282574,1.7490067784 -9.2,1.65450684927,0.615195169682 -9.3,1.78369562122,0.404859052934 -9.4,3.38867519783,-2.86384245975 -9.5,2.32209483468,-0.44893789723 -9.6,1.08142936086,-0.152834212141 -9.7,0.969163718142,-0.0179664822625 -9.8,-0.829748330092,0.25030959986 -9.9,-1.12563386632,-0.816817615041 -10.0,-0.614722468445,-1.20237564155 -10.1,0.534989814011,-0.95180988046 -10.2,-0.0175662317526,-1.65646997364 -10.3,-0.276986050882,-1.47005448681 -10.4,-0.0180188964225,-1.79013578686 -10.5,-0.350384452532,-3.4719021759 -10.6,1.01662085602,-1.72242586178 -10.7,1.2514549563,-3.72122904714 -10.8,2.06129965397,-3.69761057378 -10.9,0.964575380058,-1.9579627689 -11.0,1.0376784194,-1.41475751542 -11.1,-0.20519408489,0.134038408839 -11.2,-1.32396362923,-1.43063834348 -11.3,-0.721661377894,-1.05039289509 -11.4,-3.10441239154,-0.298569657792 -11.5,-0.401309634132,-1.00932110028 -11.6,-3.40685655392,-0.488935195237 -11.7,-2.89252096979,-1.22852386432 -11.8,-2.18566537346,-2.53137463374 -11.9,-2.6335262,0.481191607284 -12.0,-2.32356823025,-0.468598988195 -12.1,-2.71514004407,0.802881656531 -12.2,-1.45617888959,0.0170806361515 -12.3,-2.44854868861,-1.72001806377 -12.4,0.139430651097,-1.22168089944 -12.5,-1.65455080988,-1.78792040193 -12.6,-2.47710829198,-0.735699375473 -12.7,-2.29290595187,-2.43688849992 -12.8,1.39098998243,-2.18886086583 -12.9,-0.252573412132,-3.05476634175 -13.0,-0.719688028933,-1.70780451369 -13.1,-1.41185110957,-4.54187555576 -13.2,-2.07468378343,-2.50086083135 -13.3,-1.99729840603,-1.73720365892 -13.4,-3.06266310638,-0.64311297877 -13.5,-1.16169923525,-0.032195342039 -13.6,-0.00323073370093,-1.61702189717 -13.7,-0.300074937488,0.257570078335 -13.8,-0.0373529994554,0.389809939853 -13.9,-0.526829062199,2.29965656137 -14.0,-1.95818222897,1.49704702372 -14.1,-0.909852636104,1.03147385461 -14.2,-2.28909641369,1.45363967686 -14.3,-1.73942648745,1.21798507461 -14.4,-0.743893380916,0.510013471208 -14.5,0.781327421412,0.222608720713 -14.6,0.180091764518,-1.9543856125 -14.7,0.264634869337,1.34172771061 -14.8,-0.901850133367,1.21916225278 -14.9,-1.16359157804,4.26998154484 -15.0,-1.13842189847,1.2260998514 -15.1,-1.22263765864,2.97285864342 -15.2,-0.740851365982,1.79419875454 -15.3,-0.0709959713147,3.06002542678 -15.4,-2.16878470206,2.1874010131 -15.5,-1.57891815428,1.30393271858 -15.6,-1.18351157772,0.510421259269 -15.7,-2.37149924324,2.40554376934 -15.8,-1.16975702751,1.33998237179 -15.9,-0.354197182373,0.460858589806 -16.0,1.48876710522,-0.528194304002 -16.1,1.51516388965,0.340790585998 -16.2,2.61272332702,1.05893848078 -16.3,1.72200016605,1.65109394973 -16.399999999999995,1.30502044955,1.94311609831 -16.5,1.9342918273,1.71062804534 -16.6,0.386382782237,1.46342153129 -16.7,2.18385534846,0.0943113978761 -16.8,1.70258296229,-1.60654308743 -16.899999999999995,0.92988806119,-1.86847038327 -17.0,-0.162817457101,-1.9468335625 -17.1,1.41763612121,-0.913455488574 -17.2,-0.303447321873,-2.6947426349 -17.3,-0.416533865083,-1.01283585598 -17.399999999999995,-3.02722325272,-3.01039506224 -17.5,-1.46380983987,-2.77918728241 -17.6,-3.58265691499,-2.59409746612 -17.7,-3.46214509092,-1.91424183155 -17.8,-4.1842361249,-0.595616786989 -17.899999999999995,-2.17199423176,-0.625719291403 -18.0,-3.4867963036,-0.506332936683 -18.1,-3.95638832761,-2.9081001356 -18.2,-3.6156902884,-0.447545772077 -18.3,-2.14849888969,-2.88555756874 -18.4,-1.01073449737,-3.66742778435 -18.5,-2.64439359887,-1.97270597729 -18.6,-2.1686850235,-2.58914940585 -18.7,-0.992645953802,-2.63786236747 -18.8,-2.26211830017,-0.969631748493 -18.9,-1.62234026445,-3.3154669003 -19.0,-0.93231046572,-1.62878979028 -19.1,-0.903122801961,0.921780803781 -19.2,-1.80573757237,0.0271269005094 -19.3,-1.37098360928,-1.93249203008 -19.4,-0.195961425747,-2.85250127322 -19.5,-1.46295767012,-2.41072855823 -19.6,-2.46972656632,-2.59814675112 -19.7,0.144659210574,-0.564228406707 -19.8,0.0159393093236,-3.02088963042 -19.9,-2.17350671293,-0.0617483346464 -20.0,0.00619930422425,-2.36665500124 -20.1,1.15876650523,0.716244275911 -20.2,-0.202818817727,-1.6730777372 -20.3,1.76029533202,-1.65863717691 -20.4,-0.142228673615,-2.9582269544 -20.5,0.589496779121,-0.779689155548 -20.6,2.29130375732,-4.16315463521 -20.7,0.717724950456,-3.53927156382 -20.8,-1.23681813481,-2.50642803576 -20.9,-1.42882158122,-4.69342117498 -21.0,-3.59234232069,-4.61206354338 -21.1,-1.41405019191,-3.51106157342 -21.2,-2.38644768384,-2.32472837293 -21.3,-2.68157400043,-3.87508147769 -21.4,-0.207687046458,-4.03292910461 -21.5,0.562354535852,-1.83483932093 -21.6,1.86247801818,-2.23625759687 -21.7,2.54520067844,-1.95337151652 -21.8,1.39003313964,-2.2211936574 -21.9,2.00629339169,-2.78176966968 -22.0,0.78199644423,-2.62393513644 -22.1,2.25747184017,-0.639036072837 -22.2,3.79615184891,-0.879932856478 -22.3,2.73196437673,0.0365368288039 -22.4,1.75496347438,-2.1422250757 -22.5,0.163003305031,0.666077523509 -22.6,-0.339462859446,0.363559522054 -22.7,-0.644612957274,0.87484096543 -22.8,-3.08360661491,1.38615046345 -22.9,-1.4583351695,1.16704594827 -23.0,-1.14877337833,0.955789711911 -23.1,-0.393286091758,1.53345062513 -23.2,-0.454541837236,0.477897036676 -23.3,-0.240520436216,0.736986166402 -23.4,2.43846243909,1.58809784526 -23.5,0.178441655617,1.38651268906 -23.6,1.99395637291,0.444502056178 -23.7,1.45220679041,1.73883504132 -23.8,1.79172182452,0.395528859308 -23.9,0.799158145666,-0.511882958437 -24.0,-0.0424905591912,-3.01540387281 -24.1,-0.218568220198,-0.932246629572 -24.2,1.72418190449,-0.147339082268 -24.3,0.576876611334,-0.249830484543 -24.4,-1.03629190922,0.146943235072 -24.5,-1.3612918303,-1.82048432385 -24.6,-0.0117997985941,-2.51607522369 -24.7,1.20489390875,-3.04928922674 -24.8,1.15849053878,-2.20725683117 -24.9,-0.0112355679075,0.0747591973077 -25.0,0.0879864916614,0.506313919978 -25.1,-0.385434843153,1.03411733081 -25.2,-1.82862992718,-0.344125425455 -25.3,-2.68958438473,1.27346723814 -25.4,-2.37917854521,-1.89297035702 -25.5,-1.4382111837,-1.90305973344 -25.6,-0.269250067943,-0.990107565366 -25.7,2.17051677729,-0.938552711706 -25.8,3.19287380027,0.21585001784 -25.9,3.91010926268,1.39860986621 -26.0,3.99841316421,0.379157584128 -26.1,2.29318135275,0.553587665315 -26.2,1.53299020846,1.32369967433 -26.3,0.352704289019,1.04495112916 -26.4,0.419093712606,0.247681898707 -26.5,-1.01162571382,0.722483925243 -26.6,-0.591915979771,0.144383342607 -26.7,-0.371237306955,1.5202823544 -26.8,0.891996759386,2.08793430546 -26.9,-1.04279828261,1.42866268535 -27.0,1.17509276695,2.83262851463 -27.1,1.57079990358,2.07887502157 -27.2,0.342434908002,4.45953278632 -27.3,1.43062615706,2.48972819912 -27.4,-0.309099939728,2.57411379784 -27.5,1.18974385873,1.57029513084 -27.6,1.98683235483,1.68438433499 -27.7,-0.241575297166,2.40573315613 -27.8,0.0552124518608,1.84332573889 -27.9,1.13033336692,1.19911042913 -28.0,1.31343694204,0.89023613613 -28.1,-0.059992803072,1.4448884686 -28.2,-2.86800200904,1.98105399152 -28.3,-3.37979975104,2.48478704958 -28.4,-1.96854121966,1.8604241942 -28.5,-0.574791237005,-0.621506263718 -28.6,1.46916698937,0.857944094606 -28.7,0.752057330964,-0.43791552965 -28.8,-0.712819236187,0.695785718064 -28.9,1.79991951945,-1.51171361226 -29.0,1.00964631626,-2.50086865806 -29.1,1.64294854057,-1.89127102479 -29.2,0.841924777062,-2.4683920591 -29.3,0.819740872365,-1.02779687029 -29.4,-0.559280566121,-0.724301848481 -29.5,0.368835778038,-0.0748029777885 -29.6,-0.502163727175,0.626202348206 -29.7,-0.819499814693,2.12328676468 -29.8,-1.02511541248,3.61842836622 -29.9,-0.69872105894,4.52397605364 -30.0,-1.81176051678,3.63653108165 -30.1,-2.53411792713,4.85316110701 -30.2,-3.74357869701,2.26951849962 -30.3,-3.89350775849,3.89671108356 -30.4,-3.27766485494,1.35050269821 -30.5,-3.01560817531,4.17055270963 -30.6,-3.07216687824,0.930293535775 -30.7,-2.62167321298,2.07172528253 -30.8,-2.72389798434,1.2308921356 -30.9,-2.51116459198,1.35145306357 -31.0,-3.11688810903,-0.199403728165 -31.1,-0.55851480078,-1.38456736529 -31.2,-2.41874649232,0.0614466025704 -31.3,0.254496479483,1.18436967772 -31.4,-1.01225175374,0.417805598383 -31.5,-1.31381992859,0.144668793835 -31.6,0.268079121986,1.42159797697 -31.7,-0.769608294597,0.0702424264762 -31.8,-0.930424346635,1.2721408214 -31.9,0.329364321338,1.62774001221 -32.0,0.102048945808,1.93317276833 -32.1,0.271883085517,1.11022216594 -32.2,-1.25021559288,1.30100603751 -32.3,-0.697472582478,0.398673694593 -32.4,-0.838103192101,-0.619188847081 -32.5,-1.01828039395,-0.2462032153 -32.6,0.333041088819,-0.442499092705 -32.7,0.136691171526,0.168341324215 -32.8,2.26852183342,-0.601533314596 -32.9,3.80230535691,-0.148466052728 -33.0,3.21186173252,-2.67698941277 -33.1,4.01522419624,-1.09052169627 -33.2,1.56583165612,-1.83260541775 -33.3,1.57719088163,-1.80381604915 -33.4,-1.05473359316,-4.15165211793 -33.5,-2.5210239728,-3.24037403275 -33.6,-0.61248925717,-3.54444055835 -33.7,0.133063141531,-4.24841837104 -33.8,2.12747130864,-4.10705750382 -33.9,-0.0836969319255,-3.47295641207 -34.0,1.03664814882,-3.60901883797 -34.1,1.04266567497,-3.51361993862 -34.2,2.65278622794,-3.01972298087 -34.3,1.57373322093,-1.85382360492 -34.4,1.74067346701,-1.23613435592 -34.5,1.90411787742,-0.125016751697 -34.6,3.63227398238,-0.116710854924 -34.7,2.64918198583,-1.93551989256 -34.8,3.50314364221,-0.117192878369 -34.9,1.05681684761,1.56735153543 -35.0,0.4062188474,-0.127134896792 -35.1,0.0806813872252,0.66403640565 -35.2,0.066757839817,1.62948709045 -35.3,-1.20830060434,2.80650529579 -35.4,1.04144731551,3.14595887765 -35.5,-0.272737774356,3.61075063662 -35.6,-1.14349654136,2.84985353256 -35.7,-0.910811697208,2.01731689078 -35.8,-0.748998836937,3.59769806089 -35.9,-0.399593245487,2.16750310173 -36.0,0.248485379912,1.95684482837 -36.1,0.111223421537,1.24750464732 -36.2,0.857158235886,2.10902225087 -36.3,0.66730203876,1.17981222741 -36.4,-1.19406787112,0.742814490361 -36.5,-2.90205545309,0.96452396103 -36.6,-2.69842255607,-1.7582856726 -36.7,-3.10983660265,0.113699533355 -36.8,-1.66191574195,-0.828664705434 -36.9,-1.68022410925,-0.55216476612 -37.0,-1.11564642549,-1.03923649364 -37.1,-1.03308452361,0.512652983465 -37.2,-1.96082138374,0.859462169529 -37.3,-1.05847189783,0.0673461914451 -37.4,-2.26611005969,1.1474668475 -37.5,-3.00121593264,-0.0501498074983 -37.6,-1.14378732923,0.753842799659 -37.7,-0.338260410008,2.05846855414 -37.8,0.109922790616,0.604946888459 -37.9,-0.129000118926,0.612352292768 -38.0,1.96549353231,1.60236536456 -38.1,-0.379036678238,-0.201279461693 -38.2,-0.225640718862,1.09113547711 -38.3,0.953653384013,-1.73472335984 -38.4,0.879377683314,-1.70397059038 -38.5,-0.313376806588,-0.157299010173 -38.6,-0.223813355832,0.72732137983 -38.7,-0.717909400177,0.70426478624 -38.8,-2.49451860532,-2.26976053406 -38.9,-3.65290486492,-1.08125756508 -39.0,-3.48300937252,-4.71164248307 -39.1,-3.70062226715,-0.0409273673618 -39.2,-2.75562579363,-1.3615963788 -39.3,-1.00294134549,-0.151214375533 -39.4,0.723719733156,-0.289217623713 -39.5,0.620352793249,-1.50162785668 -39.6,-0.36563796565,-0.68149398149 -39.7,-1.04852774152,-0.4760051405 -39.8,0.976316381903,-0.0862376329784 -39.9,1.67482532622,-1.17611212861 -40.0,0.861179080793,-2.00530616721 -40.1,0.202661773475,-2.17515109708 -40.2,-0.982223777341,0.154006576082 -40.3,1.25146263217,-1.63420736983 -40.4,-1.27818171113,0.372554786894 -40.5,0.0438909290047,1.12638929428 -40.6,-1.9097691876,0.595595863101 -40.7,-1.83337696026,-1.51823547573 -40.8,-3.5472560004,0.945632132716 -40.9,-3.36623299416,0.107062933722 -41.0,-4.38223327614,1.43728536346 -41.1,-3.4154520604,0.954645093497 -41.2,-2.86129654209,2.92664454115 -41.3,-3.40207345177,1.12163392226 -41.4,-2.93506465711,0.734718581273 -41.5,-1.86797517362,1.32670773718 -41.6,-0.720696144111,0.326626464162 -41.7,0.927499092029,1.85644097879 -41.8,1.95567325802,-0.610279350839 -41.9,1.60144941693,-0.757683981085 -42.0,2.33894106087,-3.57610009215 -42.1,2.04923026058,-1.1302485889 -42.2,2.21786927427,-1.4386360111 -42.3,1.77414458586,0.62568317689 -42.4,0.181692775878,0.271732083908 -42.5,-0.602575219685,0.726296964713 -42.6,-1.66560413816,-2.68055562122 -42.7,-2.87172967993,-1.18800519517 -42.8,-1.55680199811,-1.54912738448 -42.9,-0.351147168625,-3.15239399734 -43.0,1.08358743617,-4.36687768892 -43.1,0.502843504688,-2.08236322647 -43.2,0.917095343857,-2.74972659031 -43.3,-0.134055326609,-1.79961533753 -43.4,-0.0543824417182,-1.9691516023 -43.5,-0.00136877638468,0.458969655679 -43.6,-0.252384101923,0.648430519658 -43.7,-1.00279584498,1.51046151014 -43.8,1.38999828179,2.88853821499 -43.9,0.55475692921,-0.0889633616249 -44.0,1.72703464093,1.26794254646 -44.1,1.59754030152,2.08549136695 -44.2,1.31678619479,1.44332019433 -44.3,2.41522883986,3.6566077914 -44.4,0.0363599849454,3.37696976334 -44.5,-0.698828364105,1.8694239341 -44.6,1.59041917737,1.53997912949 -44.7,-0.143473047766,-0.371890535095 -44.8,0.234774170494,-1.94732859576 -44.9,0.357863951522,-2.36430348339 -45.0,1.34017470167,-2.84855954772 -45.1,0.281248670051,-2.0176587754 -45.2,0.513998665685,-1.85243407235 -45.3,-1.62215383786,-0.617200230248 -45.4,-0.0486329186676,-0.744514163255 -45.5,-1.1115872868,0.680307434896 -45.6,-0.57893598232,0.386868382389 -45.7,-2.45986688448,1.88204583925 -45.8,-0.972871202531,1.81072998762 -45.9,-3.00945354045,0.806279395098 -46.0,-0.862797110582,0.357204005137 -46.1,1.05669345992,-0.731612014407 -46.2,1.58810797912,0.509726712209 -46.3,2.2776868895,-1.64032080516 -46.4,1.68702055419,-0.859033706154 -46.5,0.553204867957,-3.56816989761 -46.6,-0.271157589308,-1.31185700526 -46.7,-0.934104806657,-1.49278166797 -46.8,0.20087267226,-1.49433996116 -46.9,1.54065247685,-2.65341244898 -47.0,0.421839527778,-2.67631185898 -47.1,0.37360806082,-0.221969772865 -47.2,-0.322219040499,-2.30646881099 -47.3,-1.62462805652,-1.49408620338 -47.4,-1.77602900144,-3.36033571697 -47.5,-1.19116241665,-1.85926911099 -47.6,-1.65860505473,-3.72286893762 -47.7,-2.52464869229,-1.63620146792 -47.8,-2.09204561924,-1.69447283844 -47.9,-2.69228128534,-0.421384757026 -48.0,-0.482094535337,-1.58216119139 -48.1,-1.4978108498,-1.04189039156 -48.2,-1.70727788488,-0.0515864696235 -48.3,-1.68132882687,3.05960231054 -48.4,-3.13179976667,1.568034565 -48.5,-1.69974514189,2.95495880202 -48.6,-2.43671013042,2.8652502689 -48.7,-2.11308523391,3.13694987262 -48.8,-2.82690421457,1.27178074214 -48.9,-0.352851497501,-1.64068006293 -49.0,-1.69176577776,0.372327928411 -49.1,-0.438102786711,-1.38525739488 -49.2,-0.906152494176,-2.35893988878 -49.3,-0.879214570242,-2.63298734973 -49.4,-2.17872772428,-2.40392209909 -49.5,-0.964128892975,0.384278707795 -49.6,0.149007360533,0.483865233418 -49.7,0.565798820296,-0.389902033875 -49.8,0.745145071219,-1.16374292443 -49.9,0.258019892878,1.13876452556 -50.0,-0.749531944494,-0.637791955882 -50.1,0.334219380411,-3.22490892368 -50.2,-2.08981542174,0.0568383342099 -50.3,-0.786440258674,-2.55296409138 -50.4,-1.0827247628,-2.70317952617 -50.5,-1.8002484334,-1.980115863 -50.6,-1.20168573237,-1.62525907063 -50.7,-2.83398078824,-1.06233370463 -50.8,-2.37799273927,-0.0711829600627 -50.9,0.00757482471706,-0.150862972616 -51.0,0.968951386592,0.251266322684 -51.1,0.418596354327,1.03999942686 -51.2,1.21319156739,-0.242423263357 -51.3,0.621760710571,2.36853932638 -51.4,-0.457637791843,0.982042323674 -51.5,-1.51128905596,0.442281401205 -51.6,-1.21186995274,-0.351883883753 -51.7,-1.31965037544,0.0569008751696 -51.8,-1.34093301061,-1.82723836046 -51.9,-0.944518669451,-0.0396625074356 -52.0,0.000512814712584,-0.724952267446 -52.1,-2.24055099702,1.62120643038 -52.2,-1.12950238011,1.96166482304 -52.3,-2.99955097278,2.52696757168 -52.4,-2.45483537712,2.82797618523 -52.5,-3.59555751211,0.75507404969 -52.6,-2.31515808375,2.48185140442 -52.7,-1.11972866036,3.14169082519 -52.8,-0.252083634684,2.46084409079 -52.9,2.71265406533,1.4931068129 -53.0,2.61144531179,1.09299964472 -53.1,1.31491584681,-0.243574150578 -53.2,0.768349558807,0.702704121699 -53.3,0.304244504613,-0.931349941174 -53.4,-0.653848170949,-1.55668970272 -53.5,-0.929663628058,-2.56434858763 -53.6,-0.779981308958,-0.539813196307 -53.7,0.295354968642,0.0121038418425 -53.8,1.5428789409,-1.34212144346 -53.9,1.04316022859,-0.957867754391 -54.0,0.260576433524,0.045839305329 -54.1,1.82216056279,0.239491901305 -54.2,-0.661240785724,0.516456630755 -54.3,0.0993569387215,0.561704457848 -54.4,-0.853040885054,0.756285957679 -54.5,-1.95761666805,-0.0316481741624 -54.6,-3.18907330062,-0.170843448766 -54.7,-2.50128275378,-0.889114248041 -54.8,-3.44155211943,1.15793621459 -54.9,-2.61632121542,-0.581820064205 -55.0,-2.81103362938,0.53326107519 -55.1,-1.65228359632,0.713218778625 -55.2,-3.37911414747,1.80195333409 -55.3,-1.12725759378,2.91526134221 -55.4,-2.95507691621,1.76622948406 -55.5,-2.71875200683,1.50427625392 -55.6,-1.79421429355,1.8222620197 -55.7,-1.41052131838,4.57114656323 -55.8,0.028039467332,2.65766003732 -55.9,-0.639201029082,2.15213002793 -56.0,-0.978732117484,1.90309150602 -56.1,-1.14664365594,0.541763633956 -56.2,-1.78001669702,1.41445469782 -56.3,-2.60684045683,0.932326887698 -56.4,-2.07958361944,-0.0329268046863 -56.5,-2.87787092167,0.867347036521 -56.6,-3.34396211453,-0.340790654852 -56.7,-3.68153245259,0.312585779205 -56.8,-2.1495373152,-0.551880524028 -56.9,-2.35946561037,0.963701845099 -57.0,0.600680210116,0.475708905443 -57.1,0.646282759834,-0.0243152430668 -57.2,0.536524787335,0.910515445497 -57.3,1.71666693385,1.25492163672 -57.4,1.19976159328,-1.78058153783 -57.5,1.76424788956,-1.49148043242 -57.6,-0.157052308453,-0.187450221025 -57.7,1.49986183169,0.946709969363 -57.8,0.281582686467,2.02562076481 -57.9,0.217105010472,1.36597442771 -58.0,-0.128647678503,2.12307445308 -58.1,-1.22767724486,1.90603255942 -58.2,0.990967989057,0.586338606071 -58.3,1.2465612395,1.14800203826 -58.4,1.93340777042,1.59541882301 -58.5,2.25806162618,1.8166971831 -58.6,2.62078035986,4.46968663029 -58.7,2.86957149859,0.345455917452 -58.8,2.19888068949,1.39081650675 -58.9,-1.33817111821,-0.0506253997262 -59.0,-1.23949652944,0.0641454326614 -59.1,-1.8270206479,-3.06586819079 -59.2,-1.84099183124,-0.438118642027 -59.3,-0.970024346831,0.499764602102 -59.4,-0.430168416463,2.16689258506 -59.5,-0.806155733687,1.95334026971 -59.6,0.505811973617,5.26256657467 -59.7,-0.647855998144,3.14803318036 -59.8,-0.00535371349387,2.92535295036 -59.9,-0.0925006913119,2.83495433284 -60.0,0.338298616372,1.7108693012 -60.1,-0.383097216665,1.9986628525 -60.2,-0.735474033539,0.097911598054 -60.3,-2.87765124814,0.593292087263 -60.4,-1.61510190098,1.85853180461 -60.5,-0.666781662931,0.994719117923 -60.6,-1.24876861081,2.54815317602 -60.7,-0.14000162569,1.35414489249 -60.8,0.643922146381,2.19393089837 -60.9,1.28572405528,0.568982967729 -61.0,2.31138403528,1.27276272993 -61.1,2.22134278028,2.18078555404 -61.2,2.41688156066,0.464188819007 -61.3,1.46024239672,1.89965095241 -61.4,1.34459418665,-0.752316988806 -61.5,0.544263243792,-0.387827227714 -61.6,0.761305503774,-3.32805108448 -61.7,1.54225188155,-2.80650672593 -61.8,2.01655954926,-1.9686911052 -61.9,3.84907184915,-1.30787010891 -62.0,2.80037712369,-0.297160652013 -62.1,2.59984288379,0.437316426609 -62.2,1.93065279728,-1.71593186177 -62.3,1.93150769622,0.970019676761 -62.4,1.60764157487,2.55858614712 -62.5,-0.751159276369,1.53852873504 -62.6,0.779722351272,-0.979033758716 -62.7,0.418595865534,-0.0874654971252 -62.8,0.277637334024,-0.0912586760306 -62.9,0.889316223566,-2.04048541752 -63.0,0.250252027121,-0.718721020916 -63.1,1.64646039717,0.000914177232126 -63.2,1.19485500256,0.0416241761662 -63.3,0.295440393442,-0.10582872136 -63.4,-0.549282469692,1.02698930418 -63.5,0.458150321123,-1.00346244276 -63.6,-0.939498824063,-0.996166592376 -63.7,-3.14117752331,-0.737262660169 -63.8,-2.35747992989,1.4222555299 -63.9,-0.509808598168,2.78302125609 -64.0,0.000443550045293,1.85438707303 -64.1,-0.332601635663,2.92166916096 -64.2,0.0526348422447,1.92127007222 -64.3,-2.42250779743,2.16795188675 -64.40000000000002,-4.03974626101,2.31355117464 -64.5,-2.26986350299,1.67492514573 -64.6,-0.891099743574,2.46855406289 -64.7,0.303569086971,1.93460405214 -64.8,-0.76784345976,0.657744810814 -64.90000000000002,-1.19485036023,-0.959696393522 -65.0,-0.240136601045,1.85586357739 -65.1,-0.616825623162,1.02416050026 -65.2,0.152215033365,1.12142243657 -65.3,0.359597556313,1.30214133613 -65.40000000000002,-1.16865273618,1.54021036798 -65.5,-0.444592674907,1.442921927 -65.6,-2.35908458036,-0.454416354517 -65.7,-1.87136292422,0.378198546866 -65.8,-0.776992917456,0.2129564339 -65.90000000000002,-1.37554989915,0.393390084028 -66.0,-1.92373991902,-1.05728011704 -66.1,-0.992064078608,-1.02127280563 -66.2,0.94263532902,0.290403995771 -66.3,-0.107206759883,-0.108577330275 -66.40000000000002,1.63451673242,-0.954464264941 -66.5,2.88783140448,-1.12820300048 -66.6,2.27336114999,-1.49093295543 -66.7,1.07257763597,-0.0080735162345 -66.8,-1.04272084637,0.217871918351 -66.90000000000002,0.223798797802,0.785969554551 -67.0,0.354452920341,2.46960785601 -67.1,0.758201344405,2.55333731159 -67.2,2.13355451599,3.60595978868 -67.3,1.87176695463,2.19786078977 -67.40000000000002,1.44973075417,1.84589806015 -67.5,-0.474391598449,2.58349486267 -67.6,-0.0400895932984,3.71155794927 -67.7,0.752738130839,3.95637441126 -67.8,0.296160849708,1.83987915488 -67.90000000000002,1.59846163211,1.59602458828 -68.0,1.19997983339,0.0528446982975 -68.1,3.97427784576,1.39319213051 -68.2,3.46741658023,-0.432299096144 -68.3,2.78537568241,1.24083124941 -68.40000000000002,1.21819630442,1.01022286428 -68.5,0.385717893523,1.37064575338 -68.6,2.1820261248,0.924061400962 -68.7,1.41000253412,0.178596303422 -68.8,1.1113756715,1.88168322476 -68.90000000000002,-0.027095573598,-1.12339897429 -69.0,-2.11422769859,-1.01114664002 -69.1,-2.75985317602,-0.951383040803 -69.2,-1.15235310418,-3.07361664581 -69.3,-1.61621385794,-1.84461902872 -69.40000000000002,-3.30709941781,-1.22796788595 -69.5,-2.19550395155,-1.12761643454 -69.6,-1.92724645898,0.289657036122 -69.7,-0.0609353700098,-1.94149500917 -69.8,-0.379806870102,-1.83813797274 -69.90000000000002,1.04224928243,-0.834891735377 -70.0,0.171337391805,-1.22744167614 -70.1,1.89050347786,-1.34937105802 -70.2,-0.855673726267,-0.461048126746 -70.3,0.105543500168,0.155498666198 -70.40000000000002,-1.00378660631,0.00264489982876 -70.5,-2.68384732054,-0.0274682120169 -70.6,-1.06453189451,-0.529207429045 -70.7,-0.816673728878,-1.93541374166 -70.8,-0.658856142381,-2.62770701524 -70.90000000000002,-0.0177098253547,-0.972084630136 -71.0,-1.98100164847,-1.06291266948 -71.1,-2.78358580384,-0.962164078549 -71.2,-3.47898425736,0.705022212256 -71.3,-0.678462104296,-0.526189782279 -71.40000000000002,-2.97178313046,0.0608040466209 -71.5,-2.77423987939,-0.540603397406 -71.6,-1.30828611132,-1.19042313418 -71.7,-1.91932245603,0.0693804449369 -71.8,-2.06436942013,0.126313721109 -71.90000000000002,0.983094979104,0.464337763217 -72.0,-0.272533908997,1.22237358431 -72.09999999999998,-0.419261220034,2.53222573285 -72.2,-0.475886080852,0.934826885385 -72.29999999999998,-0.82070664392,0.141702084005 -72.4,-1.88895981915,0.297203915906 -72.5,-1.58249478707,0.411780587781 -72.59999999999998,-2.64594592306,0.295715331516 -72.7,-1.5883630315,0.214869278917 -72.79999999999998,-2.83911150368,-0.149744254237 -72.9,-1.73719954995,-3.32054816725 -73.0,-3.02634544634,-2.23294204605 -73.09999999999998,-3.22302083834,-0.622755444321 -73.2,-2.27495887309,0.927900988317 -73.29999999999998,-0.487894512834,-1.99672353252 -73.4,1.47201178118,-1.69661858949 -73.5,2.77233576046,-1.00900853468 -73.59999999999998,1.33303253649,0.0347573591298 -73.7,1.56660259626,-0.421198410667 -73.79999999999998,1.44467445694,0.557987658545 -73.9,0.476533438567,0.326904950835 -74.0,0.514140065772,-1.84331368023 -74.09999999999998,1.79908772691,0.338753524172 -74.2,0.99392664042,0.458022304264 -74.29999999999998,-0.127374084262,0.999293178923 -74.4,1.46491445945,0.290866872972 -74.5,0.388109797463,0.962874308474 -74.59999999999998,-0.341695980518,-0.163477881726 -74.7,-1.64764439923,-1.18058266786 -74.79999999999998,-0.803632133594,-0.65677674858 -74.9,-1.20852904929,-1.99544105799 -75.0,2.25260302445,-1.27483022849 -75.09999999999998,-0.413592891413,-2.25358035793 -75.2,1.56359234499,-2.64615834689 -75.29999999999998,-0.0256436213361,-0.796218148855 -75.4,0.748822619283,0.431993988326 -75.5,1.03871893722,1.07390776525 -75.59999999999998,-0.15662191905,1.37664990285 -75.7,-0.78315197323,1.54729351698 -75.79999999999998,-3.53775034404,1.96628110446 -75.9,-0.489266782801,1.29231894785 -76.0,-1.08411785071,0.824433583267 -76.09999999999998,1.52834302654,0.0842183582942 -76.2,1.62458462143,1.03550299473 -76.29999999999998,1.42427090465,0.87833046497 -76.4,0.0936687469245,0.106834915022 -76.5,-1.65462760145,1.9559296174 -76.59999999999998,-3.66608072748,2.09696580883 -76.7,-0.865741076002,1.34474857613 -76.79999999999998,-2.54952188422,0.0997456897663 -76.9,-1.49905038909,-3.24089928154 -77.0,-1.86167139569,-0.090537711555 -77.09999999999998,-2.87471439333,-3.32188928358 -77.2,-0.253410465906,-1.71569613374 -77.29999999999998,-0.92411927323,-2.75159799545 -77.4,-1.14245132585,-0.942893675311 -77.5,-2.85939459926,-1.2237741099 -77.59999999999998,-2.37897328105,-0.751501575221 -77.7,-3.9290113547,1.49802471136 -77.79999999999998,-2.01329032926,1.47542661207 -77.9,-1.97432234543,0.338177513473 -78.0,0.655779645816,1.61873775025 -78.09999999999998,-0.11521270566,0.367752000838 -78.2,-0.365421129187,0.369993053676 -78.29999999999998,-0.848952280023,1.93454098814 -78.4,-0.537724567823,0.50407214875 -78.5,-0.580228753036,-0.279054788078 -78.59999999999998,0.21625182338,-0.0739295763132 -78.7,-0.308744756422,-1.10318489946 -78.79999999999998,1.34706955654,-0.102253840078 -78.9,1.6022513373,-1.29576760664 -79.0,1.89707909483,-1.63330338954 -79.09999999999998,2.55894063653,-3.47951076244 -79.2,0.113022581852,-3.18199737384 -79.29999999999998,2.00064964189,-1.38330170521 -79.4,0.102920687676,-2.91472745381 -79.5,0.680329553461,-2.02401374693 -79.59999999999998,0.749159529043,-2.85893625327 -79.7,-1.89781800209,-2.15073041453 -79.79999999999998,-3.29216338526,-3.39684589425 -79.9,-4.38355134483,-4.96341048217 -80.0,-3.83080493137,-1.60077022861 -80.09999999999998,-4.27521471242,-3.34756282448 -80.2,-2.16830202551,-1.46460283431 -80.29999999999998,0.282636669335,-4.6696706914 -80.4,2.49083257799,-1.03335244853 -80.5,0.639393107572,-2.01638480073 -80.59999999999998,2.41368701786,-0.000680094747721 -80.7,0.36375409506,-3.14235603704 -80.79999999999998,-0.170175916594,-1.44376508682 -80.9,-1.5618255011,-2.19147080054 -81.0,-1.65706010035,-1.35385517345 -81.09999999999998,-1.58744713486,-3.14138687762 -81.2,-0.777104473423,-2.70254847777 -81.29999999999998,-0.992844020406,-4.31017056541 -81.4,-1.09419617885,-2.89195682964 -81.5,0.573346879249,-4.76227286629 -81.59999999999998,-0.612653696233,-1.87180830919 -81.7,-1.64290842016,-2.10681249599 -81.79999999999998,-0.383029146002,-3.40598049559 -81.9,0.466222606263,-2.4932222569 -82.0,-0.509215684998,-2.93841573027 -82.09999999999998,0.181653755478,-2.05959773884 -82.2,1.03210886779,-1.84993585528 -82.29999999999998,-0.850869262719,-0.165431177153 -82.4,0.535943549975,-2.02087698023 -82.5,0.94482221562,-2.33790550952 -82.59999999999998,0.121912925036,-2.95279277479 -82.7,-1.06400982355,-3.19974179916 -82.79999999999998,-0.60348107186,-2.31152121004 -82.9,0.174964604791,-1.4497490864 -83.0,-0.64916518627,-1.2348769324 -83.09999999999998,-1.21006192349,0.0688629671936 -83.2,-0.0979459432176,0.492421970382 -83.29999999999998,1.4525915353,-1.15508317788 -83.4,1.44724663212,-1.35466602588 -83.5,1.31523978234,-1.05218012445 -83.59999999999998,1.32679956821,0.744558689192 -83.7,0.025248129776,1.00855018982 -83.79999999999998,0.242661254407,1.22453085994 -83.9,1.53418896,1.54186198485 -84.0,2.57392429891,5.19547031046 -84.09999999999998,1.80459721624,4.2606929233 -84.2,1.05015455494,4.46197501918 -84.29999999999998,0.513500256105,4.99620711028 -84.4,1.61643218536,4.66502802163 -84.5,1.12717483625,4.40683912925 -84.59999999999998,0.427529383602,2.79244053039 -84.7,1.106255493,4.34300127843 -84.79999999999998,0.862697396062,0.955983103432 -84.9,0.874094148342,0.949673256915 -85.0,-0.777774949965,1.37460753441 -85.09999999999998,-0.664382951757,1.02089900888 -85.2,-3.66126208756,-0.449387577498 -85.29999999999998,-4.02319905632,-1.11846651509 -85.4,-3.51360753443,-0.98363542788 -85.5,-3.79096948249,0.916485221923 -85.59999999999998,-3.09758826863,2.15522610361 -85.7,-1.63249080648,2.55772232719 -85.79999999999998,-2.11455731366,2.15165612171 -85.9,0.5091742426,0.890701586855 -86.0,0.468459183274,0.789351266021 -86.09999999999998,-1.01304800233,1.01992015673 -86.2,-1.8461321936,1.80726678511 -86.29999999999998,-1.23100192663,1.36051225502 -86.4,-1.71157492756,0.252758647734 -86.5,-0.932610258874,-0.0236350736974 -86.59999999999998,-0.567450312894,-0.929904708956 -86.7,-1.10011556783,-1.01543628999 -86.79999999999998,0.308614786849,-1.51729088296 -86.9,-1.9352065491,-0.722757928992 -87.0,-1.71539821148,1.09617272106 -87.09999999999998,-3.23863330913,1.07940627357 -87.2,-3.0941248985,0.661964098973 -87.29999999999998,-4.39237288479,-0.339077839039 -87.4,-2.22312710875,-0.987904728661 -87.5,-2.20090833125,1.42274230265 -87.59999999999998,-1.63796399281,1.9233249552 -87.7,-3.18937663771,-1.06188857161 -87.79999999999998,-1.220785625,-0.908693919641 -87.9,-1.19156974016,-2.85176512593 -88.0,-1.90293262066,-1.71917162627 -88.09999999999998,-0.350502438023,-1.89954206204 -88.2,1.02679877744,-0.383902732781 -88.29999999999998,1.5784408563,0.243642309284 -88.4,0.273848957425,0.362813021455 -88.5,0.412247047245,-0.460077324071 -88.59999999999998,-0.941788454881,0.291055895607 -88.7,-1.18851525261,-0.106840394696 -88.79999999999998,-1.1276154286,-1.44135969607 -88.9,0.267129838027,0.342454542342 -89.0,1.71037586163,-1.40444118181 -89.09999999999998,3.87098238607,1.08551397712 -89.2,4.22140851967,1.63458690151 -89.29999999999998,4.27479620329,-0.261114037068 -89.4,4.00915154794,0.208763143589 -89.5,3.84071787119,1.37349217302 -89.59999999999998,2.49723680958,0.985224865041 -89.7,1.22682533674,2.58842939357 -89.79999999999998,0.748136386644,0.0530985777802 -89.9,1.55348046041,1.55596223177 -90.0,0.981701620077,2.3534782594 -90.1,0.0267848008928,0.883840803764 -90.2,-0.634360073225,1.4524477214 -90.3,-0.553418607104,0.186457285168 -90.4,-1.50431571094,0.678368629656 -90.5,-1.94115588144,0.290823542289 -90.6,-3.33152698192,0.417838624303 -90.7,-2.92730840681,0.662219625625 -90.8,-1.99306479703,0.398233511663 -90.9,-0.60129383903,1.30225322042 -91.0,-1.52870103788,1.27950654647 -91.1,-2.47770874909,0.0538593879172 -91.2,-1.52477764385,-0.65682265993 -91.3,-0.804285863035,-0.270769369609 -91.4,-1.5930432548,-1.62942239413 -91.5,1.29402161599,-0.0188553055116 -91.6,-1.06588304105,-0.0643494378213 -91.7,-0.784097345252,-2.49883023192 -91.8,1.2823906502,-2.42941304783 -91.9,1.40646019784,-2.07909580298 -92.0,1.7613709119,0.0537157616548 -92.1,2.58410292984,-1.37049795874 -92.2,3.87507149632,-0.562329145021 -92.3,1.73736959729,-2.60468899192 -92.4,1.83498593104,-1.53816509025 -92.5,1.76620508365,-2.03811220072 -92.6,2.75858200035,-0.000865778184443 -92.7,0.707229116033,0.536858963341 -92.8,1.72669232123,0.741774099958 -92.9,1.59024998048,-0.265837266706 -93.0,-0.430416204575,-2.05627431925 -93.1,-0.855375206494,-1.47527192884 -93.2,0.38468056912,0.421291420299 -93.3,-0.779707498096,1.30238620454 -93.4,-0.345375886861,1.63321935326 -93.5,-1.46976209361,-1.82287558337 -93.6,-2.48486510446,-1.42061941051 -93.7,-2.16789298293,-3.26564092004 -93.8,-0.584773668278,-4.79931997851 -93.9,0.289648693623,-4.07754372861 -94.0,-0.648352844844,-4.23656476376 -94.1,-0.422021275858,-4.88229148775 -94.2,0.353969612701,-4.59257504076 -94.3,0.432647958695,-4.53746839509 -94.4,0.758253126895,-2.32151301988 -94.5,0.66299140534,-4.45063332459 -94.6,-0.325287008255,-2.48239242598 -94.7,1.77536398004,-2.54667396313 -94.8,0.637132601073,-1.41751927643 -94.9,0.130590544101,-3.26081415758 -95.0,-2.87331683461,-0.643849640623 -95.1,-0.33329771313,0.302613296875 -95.2,0.0573009075749,0.388346841694 -95.3,-0.634678022829,0.684258150205 -95.4,0.440169084891,0.135393805331 -95.5,-2.2350071223,0.436571151405 -95.6,0.291768346036,-0.401892323793 -95.7,-0.661543676324,0.237229874145 -95.8,1.16695036161,-2.44131486396 -95.9,1.6636485464,-0.769602313403 -96.0,1.92889326524,-1.99980912706 -96.1,0.335692697674,-1.76001751184 -96.2,-0.765743317412,-0.00543555218939 -96.3,-0.516728526911,-1.95336663425 -96.4,-1.43464352076,-1.42608410878 -96.5,1.0788788926,-3.31395149338 -96.6,-0.837744189825,-3.79872743424 -96.7,1.93521698738,-2.08520524705 -96.8,-0.487897378063,0.569240619894 -96.9,0.493605343504,-0.779270402615 -97.0,-0.621434715902,0.669559854233 -97.1,-1.63724288349,-0.70734950197 -97.2,-1.47161781546,1.1044303116 -97.3,-1.91564406055,-1.29440443361 -97.4,-2.09328186603,0.197077316661 -97.5,-1.11683558506,-0.305430562976 -97.6,-2.38405002194,0.925813955321 -97.7,-0.582153358495,0.617984673462 -97.8,0.992021937026,1.41108561997 -97.9,1.07203012102,2.94622124089 -98.0,1.76585619259,2.24949529845 -98.1,1.23305729086,2.92095681017 -98.2,1.74453042504,2.92396894568 -98.3,0.915880434599,3.95461297014 -98.4,1.75548591258,1.05081439007 -98.5,1.18046287526,1.2830005044 -98.6,2.68343890228,1.52244061373 -98.7,2.49827067603,1.42304497529 -98.8,2.81022684889,0.240814334487 -98.9,3.57862075492,0.604073302462 -99.0,1.91238882938,0.673483953761 -99.1,-0.60171689839,3.03730996685 -99.2,0.325235964117,1.25998153733 -99.3,-0.332870587713,2.26608365844 -99.4,0.312555793955,4.33514990392 -99.5,-1.89325734987,3.40158721109 -99.6,-0.561644039614,4.90691059001 -99.7,-1.10264905514,5.29359816265 -99.8,-0.823970381704,4.03170119312 -99.9,-0.715565200973,5.33384985936 +0.0,-3.20062063034,-3.09181255719 +0.1,-0.986246612345,-1.5949812477 +0.2,-0.744229693428,-3.13970184521 +0.3,-0.305809561476,-1.06322825516 +0.4,-1.58966339359,-3.04496914375 +0.5,-0.124086034506,-1.12440594558 +0.6,-0.725709087967,-1.1921895183 +0.7,-0.621846159301,-1.78813061539 +0.8,0.462126315313,-3.08872472095 +0.9,-1.84447135567,-0.916082835023 +1.0,-0.718932500849,0.510539258834 +1.1,-0.0187629403667,1.00471650473 +1.2,-0.54776061348,-0.278363707855 +1.3,-1.90013303406,2.87043169245 +1.4,-3.27479916294,0.924555236325 +1.5,-2.38944164152,-0.15056524583 +1.6,-3.28607748716,0.564788817679 +1.7,-3.21242047611,0.598292318232 +1.8,2.04893671879,-1.66417158043 +1.9,-2.03075187548,-0.598310322028 +2.0,1.84960676704,1.01045667673 +2.1,-1.90774005257,1.31968650188 +2.2,-0.244557298209,-0.370795131961 +2.3,-1.04418814561,-1.46163552604 +2.4,-3.1936187534,0.155131849637 +2.5,-1.99141118207,-3.12148991287 +2.6,-2.56445033889,0.134273795384 +2.7,-1.94223798441,0.211869370108 +2.8,1.73371578052,0.829035713973 +2.9,-1.66215782675,0.381637967154 +3.0,-2.13052672604,-2.56562564586 +3.1,1.37614897899,-3.11777708309 +3.2,-0.441998877361,-2.9393544356 +3.3,2.62621638385,-3.14117936056 +3.4,0.318944048388,0.748331517888 +3.5,1.99807628349,0.908633328841 +3.6,1.77461345249,-0.00552030694761 +3.7,1.57581228926,1.46621799324 +3.8,2.68576537268,0.663964512167 +3.9,1.9759837484,-3.13517953492 +4.0,1.67205762121,-2.79557813706 +4.1,1.86117794044,-3.10861666937 +4.2,-0.440804749873,-0.776772828339 +4.3,2.53032019125,1.51803756946 +4.4,-0.187604970658,-1.09531917678 +4.5,1.04267342283,0.832585764085 +4.6,2.68972012709,1.17945753849 +4.7,2.58668303514,-0.446850527417 +4.8,2.46156447442,3.08593414171 +4.9,0.370576583913,1.6581653058 +5.0,0.115959157245,0.259232077764 +5.1,-1.77362126746,0.206388686118 +5.2,-0.63709744987,-2.51906093866 +5.3,-1.81099467342,-1.10017439715 +5.4,-1.96888742834,-0.291404593733 +5.5,-3.0868711822,-3.0596661606 +5.6,2.06897983451,-2.82769267448 +5.7,-1.93502798377,-3.13006467458 +5.8,-1.68048219174,-1.66272959326 +5.9,-2.83837083887,2.42686101985 +6.0,1.98331443194,1.34781064708 +6.1,-0.674036143436,0.813146679279 +6.2,0.951388515151,-0.114865537233 +6.3,1.06011163928,-0.910987991037 +6.4,-1.07909253625,-0.592184666578 +6.5,1.67775173702,2.69048000313 +6.6,2.18310310311,1.19102281893 +6.7,2.67174823373,2.66028400259 +6.8,-0.828874656542,1.59995212643 +6.9,-1.8463567867,0.908801691988 +7.0,-2.1596751608,1.64574344786 +7.1,-3.25876300657,0.680708010467 +7.2,-3.22661881997,-1.0953994686 +7.3,-3.12325692466,1.60132986944 +7.4,-3.13117673251,0.41744813457 +7.5,0.0846975757593,0.664175720374 +7.6,-0.608715905479,3.17077001519 +7.7,-0.236768345816,0.560865787516 +7.8,-0.635636793608,3.4792295264 +7.9,1.71286220494,1.27297765058 +8.0,-1.18688477679,0.743961028125 +8.1,-0.72049316768,0.0571761963809 +8.2,2.56787056021,0.755927885432 +8.3,-0.368582404924,1.79952295324 +8.4,1.74644545341,1.49832135185 +8.5,-0.723582841043,3.33342719631 +8.6,-0.328035678329,1.07437808172 +8.7,1.81774857178,-1.12613406523 +8.8,0.498528321498,-0.976779908585 +8.9,1.91089431332,-1.45818637905 +9.0,0.825095378386,0.390214375145 +9.1,1.51424170031,-0.629621385691 +9.2,2.35295480965,0.585094458817 +9.3,-0.871478612422,0.630480308442 +9.4,-0.383785195043,-0.178882563952 +9.5,1.1912604208,-0.756813763986 +9.6,1.94400241404,0.67027423022 +9.7,2.34516868554,-1.09109961761 +9.8,-3.1606196263,0.800908466469 +9.9,2.55098647392,-1.29913140547 diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/samples_1.csv b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/samples_1.csv index df997266c3..d594bfb8a8 100644 --- a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/samples_1.csv +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ARMA/samples_1.csv @@ -1,1001 +1,101 @@ seconds,signal0,signal1 -0.0,-1.32722293835,1.40818238482 -0.1,-0.872086411138,0.487378688794 -0.2,1.23482022324,0.62496594668 -0.3,1.63642316737,-0.0626502272358 -0.4,3.65952538721,1.42198658334 -0.5,2.56833626324,0.102417781855 -0.6,2.72174557728,0.688288734009 -0.7,0.80872002235,2.04329774428 -0.8,-0.221231868655,3.20726732351 -0.9,0.26964479251,3.80446268906 -1.0,-0.24439580712,1.86937811638 -1.1,0.484587187178,3.08921554008 -1.2,0.272492965631,-0.174191780938 -1.3,2.686481484,1.04048497522 -1.4,0.759313068422,0.150128561987 -1.5,1.67776117003,-0.0588124386808 -1.6,0.877929692611,-0.508121903722 -1.7,0.941710366918,-0.696841380167 -1.8,2.04903115251,0.0633507661727 -1.9,1.14850978974,0.276053458565 -2.0,2.37787087335,0.0790016396072 -2.1,2.51977516328,-0.796466239568 -2.2,2.15168992407,-3.18755898444 -2.3,1.28421167491,-3.62426570366 -2.4,0.840144790875,-2.43212812713 -2.5,-2.77516325176,-0.744479826467 -2.6,-1.38611474946,-3.62275968071 -2.7,-2.27489596387,0.0413629486163 -2.8,-0.220694799984,0.0379824371617 -2.9,-0.0847355736008,0.509481365226 -3.0,1.12446719732,-1.98566790011 -3.1,0.154014357132,-0.111958234542 -3.2,0.899659399453,0.618037832075 -3.3,0.319106433811,-0.187240851117 -3.4,-0.604003611079,1.64910118121 -3.5,-2.01156710943,1.82401392071 -3.6,-3.12298422326,3.85609965042 -3.7,-3.57149542931,3.28547390484 -3.8,-3.6777135399,0.97201063795 -3.9,-3.95596602033,1.00692874214 -4.0,-2.48594332528,-1.66072460906 -4.1,-1.1856684717,-0.455486129162 -4.2,-1.08233409758,-0.507861869386 -4.3,-2.39691682145,0.471184575201 -4.4,-1.76356382488,0.502059170656 -4.5,-1.87943342226,0.68102551986 -4.6,-3.30698803517,0.71147870383 -4.7,-2.56615977068,0.694976162986 -4.8,-2.03135345935,1.87601041177 -4.9,-1.56952634226,2.59489330213 -5.0,2.36805604608,3.00865890073 -5.1,1.57366841128,3.07963066681 -5.2,1.76718192253,2.61555537988 -5.3,1.27496943288,1.1323742297 -5.4,1.76517772984,0.27444569535 -5.5,1.61022813953,1.98210352254 -5.6,1.78066736997,1.44048464544 -5.7,1.39171465526,1.63791472699 -5.8,2.63685870273,3.117178878 -5.9,2.6400660596,0.250232480508 -6.0,4.24298841764,1.99892125049 -6.1,4.0596546454,2.26831159366 -6.2,2.87713913933,0.829704775973 -6.3,1.82839350839,2.18602169053 -6.4,0.564791655991,0.492264818022 -6.5,0.706935283592,1.83953695627 -6.6,1.14462867028,0.755853114808 -6.7,0.93103067393,0.691319562842 -6.8,2.80922571886,3.00693851727 -6.9,1.68443252198,3.69087633113 -7.0,2.32903206101,3.931975155 -7.1,0.788552916399,2.42732051181 -7.2,1.02810019493,2.99957194194 -7.3,-0.317088074627,0.182466663607 -7.4,0.13651720184,1.34495998433 -7.5,-0.52401142007,1.34957021209 -7.599999999999999,0.213440709599,2.52985312364 -7.7,-0.443805739527,1.62350055218 -7.8,-0.405567377627,2.21008727397 -7.9,0.289578434259,3.9511399307 -8.0,0.94938285877,2.30392290574 -8.099999999999998,2.29138713827,4.04438645213 -8.199999999999998,-0.32050665973,4.94124057478 -8.3,-1.07096475997,2.32828069924 -8.4,-1.324000189,3.29293167512 -8.5,1.31998838491,0.72493966167 -8.599999999999998,0.209483343006,0.947585725898 -8.699999999999998,-0.633920776432,-0.204162172548 -8.8,-0.999303865978,-0.764276115974 -8.9,-0.751584506459,0.160748140892 -9.0,0.828146991915,0.357884104813 -9.1,2.83449697136,0.550717420223 -9.2,1.4223933986,-2.08229996763 -9.3,0.992410592965,-2.21637967509 -9.4,-0.984056687814,-1.62025576249 -9.5,-2.6028220105,0.0795293575578 -9.6,-3.45253862812,-0.929193732202 -9.7,-3.11528537767,1.63429307068 -9.8,-3.07166225668,-0.132314349088 -9.9,-2.5250669931,0.584126461171 -10.0,-1.80100891922,1.19964192438 -10.1,-1.16930923944,2.35481060984 -10.2,1.75253576781,2.31111934725 -10.3,1.32459801587,1.16211086319 -10.4,1.72329015193,2.10402567679 -10.5,0.229770743207,2.22156476684 -10.6,1.14420681934,-0.365114153243 -10.7,-0.994622480141,0.374804360466 -10.8,-1.14469885309,1.34841233132 -10.9,0.521691175583,1.83988583128 -11.0,2.02897476499,0.11839097603 -11.1,0.558595320809,0.0208459691429 -11.2,1.6023549483,-0.159944883534 -11.3,1.63026515673,2.38695239783 -11.4,1.20891006098,0.740166260886 -11.5,1.17223656786,2.20631879525 -11.6,-0.187208106677,0.392505150477 -11.7,2.12019525136,2.16284534846 -11.8,2.70393505476,1.60945087815 -11.9,-0.168957610517,2.29945069164 -12.0,-0.263432789832,1.16688111712 -12.1,-2.00473144176,1.08681925528 -12.2,-2.28911997137,-0.284719268178 -12.3,-0.0278648360758,0.196807735358 -12.4,0.131264858927,0.945103080881 -12.5,-0.921013995427,-0.0188000213409 -12.6,0.708454752946,-0.0960302753902 -12.7,1.23446250648,0.473292653772 -12.8,-0.382499965486,0.436537019755 -12.9,0.699353273817,0.874749947631 -13.0,-0.0664091933466,2.07308857725 -13.1,0.416188062295,2.16527082261 -13.2,0.472893459311,2.66705127285 -13.3,1.90242285428,1.78011786366 -13.4,1.18258629556,1.21241355388 -13.5,1.18334897287,0.993966973602 -13.6,1.31144240934,0.906318669666 -13.7,-0.0376874229196,0.56172500668 -13.8,-1.22795450613,1.07039327771 -13.9,-2.21490530051,0.888747714147 -14.0,-0.934829528701,2.20345220228 -14.1,-1.47761626544,1.19134467042 -14.2,-2.79117082184,-0.686192754019 -14.3,-0.779159787629,0.24650642039 -14.4,-0.745724239576,-1.64875834373 -14.5,-0.243820138377,-1.57253905143 -14.6,0.107336791004,-1.92470326926 -14.7,1.19347287253,-1.94165615559 -14.8,1.08846142186,-3.08315260949 -14.9,1.7463222806,-3.55521667327 -15.0,-0.158019273412,-3.3766383849 -15.1,-0.920682729915,-3.40007527784 -15.2,-0.771503967609,-3.17645955631 -15.3,1.35007849387,-1.33835071434 -15.4,1.74555437808,-0.0766971265574 -15.5,1.03826171523,-1.05178417299 -15.6,0.835799732367,-0.238697559799 -15.7,-0.506421398179,0.65733630779 -15.8,0.494914164193,1.35634075063 -15.9,0.456544257548,-0.729949538065 -16.0,-0.797955642647,-0.42175166755 -16.1,-1.39901279124,0.271696120936 -16.2,-0.699333671735,-1.34430361436 -16.3,-1.05566157614,-0.660892484269 -16.399999999999995,-1.59649157208,-1.74926560856 -16.5,-3.12739642293,-2.5712008296 -16.6,-3.68729344182,0.299377832556 -16.7,-3.17131833076,-2.02711474112 -16.8,-3.40025758402,0.853856144724 -16.899999999999995,-1.84085760042,-0.526541427478 -17.0,-3.3067096024,0.352928387608 -17.1,-1.09846923741,-0.162642549367 -17.2,-1.0287143759,-2.31461533154 -17.3,0.0680415676886,-2.76086165957 -17.399999999999995,-0.113506721848,-2.21450983351 -17.5,0.703276667214,-2.0242356725 -17.6,0.269698464,-3.06695885794 -17.7,-0.160542467238,-3.30696026907 -17.8,-1.12682968805,-1.53454525504 -17.899999999999995,-0.0541698428509,-0.998358584039 -18.0,0.645574640534,-1.87185213519 -18.1,-0.492546150785,-1.66935564153 -18.2,1.85301743795,0.711518979619 -18.3,0.102537644468,-0.553018837979 -18.4,0.345495379527,1.14464986282 -18.5,1.19688418535,-1.38385539892 -18.6,-0.749860202223,-0.182895303159 -18.7,0.874996303957,0.431038554184 -18.8,0.969593066147,0.136149273401 -18.9,-0.317392724084,1.68987794354 -19.0,1.34892364338,2.32250442197 -19.1,-1.39544563349,0.971563317983 -19.2,0.332944568128,1.84386957853 -19.3,-1.16863187072,2.96136707633 -19.4,-0.794542505445,3.22959111022 -19.5,1.96932653303,1.1788837385 -19.6,0.726512817362,2.4966276387 -19.7,1.67946429887,1.68594067661 -19.8,0.269405080232,-0.0756670333778 -19.9,1.40586580365,1.44657409322 -20.0,2.0725083105,-1.15884636631 -20.1,4.27243065875,-0.391033123468 -20.2,4.27222045977,0.0147545946201 -20.3,3.51888404604,-1.29275523627 -20.4,2.96442948508,-2.36002320413 -20.5,-0.875917440265,-1.83873174706 -20.6,-1.00891570818,-2.06445710155 -20.7,-2.32339608402,-1.69396249674 -20.8,-3.1764431158,-1.79086005 -20.9,-2.92614298048,-0.266327497416 -21.0,-1.42011323721,-1.65580413164 -21.1,-2.51177341175,-3.38239438601 -21.2,-3.59805928706,-1.72896002933 -21.3,-2.61745097335,0.0270463488492 -21.4,-2.98376761969,-0.377189968412 -21.5,1.3249923322,-0.449784208843 -21.6,-1.31300821405,0.39405742539 -21.7,-0.849461267998,-1.02696192819 -21.8,0.789944203336,0.955799016319 -21.9,0.645306916426,2.14407827673 -22.0,1.67492916615,0.33665032539 -22.1,0.37447204871,-0.339979578401 -22.2,2.03509226111,-0.27794636763 -22.3,-0.927993310246,-0.577108138297 -22.4,0.851401833288,-1.09497230974 -22.5,1.32608095046,0.0706960572784 -22.6,2.08316081966,-0.747137830351 -22.7,0.98094915406,-0.427489243964 -22.8,-0.763964214302,1.57003417364 -22.9,-1.01329265052,0.971350892391 -23.0,-0.639709454614,1.92575010029 -23.1,-1.19808717131,3.20607210898 -23.2,-2.36813476951,2.17834880639 -23.3,-2.04136592159,1.83317764928 -23.4,-1.02568709453,-0.224075703547 -23.5,-0.956090021348,0.383096827727 -23.6,-0.0486197818349,-0.610195731222 -23.7,0.584667995104,-1.28487445268 -23.8,-0.766943361057,-2.79570441614 -23.9,0.0150783931157,-3.90160321436 -24.0,-0.592395059079,-2.90462489135 -24.1,-0.910416682846,-4.99768963897 -24.2,0.730432014716,-5.03478304863 -24.3,0.0410521156445,-5.00402842315 -24.4,0.195830645724,-4.98055231098 -24.5,1.76681246315,-4.45607565226 -24.6,2.77688382199,-3.21531569964 -24.7,2.49309936783,-1.95677897063 -24.8,2.84283945505,-2.80319343869 -24.9,1.58819991961,-0.943127802543 -25.0,0.000961531097077,-1.19727498232 -25.1,-0.658288837513,1.44946636757 -25.2,0.618822652159,0.294739410361 -25.3,-0.574833495396,0.293437124342 -25.4,0.436097260369,-1.40538346163 -25.5,-0.636703552578,1.07665635394 -25.6,-0.737294010313,0.659956217117 -25.7,2.21197481612,3.07570795724 -25.8,3.57405375522,1.10298357806 -25.9,4.22932468714,2.91346974166 -26.0,3.79684845884,1.75043817277 -26.1,2.39123874482,1.7529723384 -26.2,2.26723781534,1.7227486796 -26.3,2.2782403576,0.610217397395 -26.4,2.03044454536,3.55074091386 -26.5,1.85752243557,0.869562884453 -26.6,1.31520732797,0.269417988871 -26.7,1.57389333895,-0.800116285114 -26.8,1.60315080122,1.47842123425 -26.9,0.824140116333,-1.53744612418 -27.0,0.493528544909,0.362431123591 -27.1,-0.0281814983789,-0.706977734472 -27.2,0.827314553127,-0.496502315877 -27.3,2.20107705218,-0.496807096801 -27.4,1.44812500252,1.09685143416 -27.5,1.72136080113,-1.11189466329 -27.6,-1.17666540275,0.162052193331 -27.7,-1.20280485788,-1.29865815893 -27.8,-1.80261170209,-0.764964675843 -27.9,-1.33092832193,-2.57674729971 -28.0,0.0341151319434,-3.35633853675 -28.1,1.67599249067,-4.13212356263 -28.2,3.41931822623,-3.01015939673 -28.3,2.57650906334,-2.9430692027 -28.4,0.631271470754,-3.95647924784 -28.5,0.682861982068,-4.16785677612 -28.6,-0.115860937939,-3.66891270956 -28.7,-0.984905376128,-3.15020556124 -28.8,0.175046327592,-2.6231732109 -28.9,0.0700824155398,-1.54547615866 -29.0,-1.11678051639,-2.14566706545 -29.1,0.184070720966,-3.25204169788 -29.2,0.87291369927,-2.80472813619 -29.3,-0.723836913673,-2.23415516317 -29.4,-1.45189935424,-2.73403006613 -29.5,-2.97027355107,-4.20164990382 -29.6,-1.93964134353,-4.08670606225 -29.7,-1.57940275605,-5.026692255 -29.8,0.468354617573,-4.3540480531 -29.9,-1.72953629592,-3.67511819642 -30.0,0.91767132845,-0.753045243094 -30.1,0.904376321047,-3.04606723833 -30.2,1.23436599679,-2.78202264684 -30.3,0.526295785197,-0.92356696598 -30.4,-0.963351695616,-0.930469169845 -30.5,-0.272678325534,-1.84047462025 -30.6,-1.12226836443,-1.82717943657 -30.7,-1.2011510578,-1.37358527013 -30.8,-1.0599549451,-1.7642334769 -30.9,0.522067075213,-2.80291912617 -31.0,-1.01929971873,-1.73136200967 -31.1,-1.04189906104,-0.585914418405 -31.2,-0.259342463146,0.340632360001 -31.3,-1.71545159013,-2.21259199817 -31.4,-1.0796735748,-3.26626004005 -31.5,-1.44076068546,0.803747521001 -31.6,-1.31035563123,-1.01680174794 -31.7,-2.97359001759,-1.23494892991 -31.8,-1.32231464971,-0.0935331062249 -31.9,-2.3818261373,-1.08313159902 -32.0,-1.35199206843,0.804374620533 -32.1,-0.820674613629,0.165612110955 -32.2,0.402827905361,1.06719159955 -32.3,1.51210997494,-1.77635918982 -32.4,-0.226418208124,0.259280977967 -32.5,-0.741584646928,-4.06539113836 -32.6,1.24793246431,-1.79337504855 -32.7,1.34011153392,-0.703933715179 -32.8,1.97997851841,-0.197562022592 -32.9,0.610268207968,1.26579067477 -33.0,0.457783644148,-0.262350442973 -33.1,-0.0691777637627,0.881500928426 -33.2,1.61850101346,-2.80103269449 -33.3,1.38456812273,-2.04740521486 -33.4,2.18472314591,-1.91005756789 -33.5,0.169734514704,-2.8787412388 -33.6,-0.272724600511,0.280079801587 -33.7,-0.209001216415,0.504896263826 -33.8,-1.1959528551,0.893216048518 -33.9,-1.6332952314,-0.203447171269 -34.0,-3.14060007808,1.6745944998 -34.1,-1.89319593528,-1.38013239294 -34.2,-1.17001164511,-0.781048667931 -34.3,-0.268759616185,-2.12940780444 -34.4,1.62607420633,-2.6307654218 -34.5,-0.225792465585,-1.26379817315 -34.6,-0.500787407998,-1.06350203317 -34.7,-3.06860229544,-0.153121185716 -34.8,-0.921305993249,1.09567326766 -34.9,-3.40539775531,0.248933317209 -35.0,-1.5357121518,-0.248660782028 -35.1,-1.77624647168,-2.30878392077 -35.2,-2.53892348708,-2.85310347572 -35.3,-0.442673653126,-1.29817238139 -35.4,0.700976630188,-1.21983735381 -35.5,0.114638657742,-1.71690997794 -35.6,0.105779506336,-3.32898440366 -35.7,3.20321830239,-3.14136987594 -35.8,2.12449114377,-1.89079325709 -35.9,1.40066490333,-3.05925752008 -36.0,2.29430313479,-1.35601676042 -36.1,-0.0910444977383,-1.82451597914 -36.2,1.15485471495,-0.745689233174 -36.3,-2.67366242285,0.363283007545 -36.4,-2.35535451417,-1.10158429293 -36.5,-2.92830022916,1.89111241477 -36.6,0.0208209250884,-0.312658782259 -36.7,0.162947696857,-3.05649535749 -36.8,1.94676400881,-1.86922222036 -36.9,0.0989818190829,-1.5000951279 -37.0,0.191852446785,-1.97941621996 -37.1,1.34763846608,-0.640315226431 -37.2,-0.052846130988,0.341001988549 -37.3,-0.280043547655,0.874338920125 -37.4,0.585963120909,0.431492473615 -37.5,1.48413040482,1.39406850071 -37.6,0.97533620313,-0.932831921348 -37.7,-2.46323729402,1.56256721156 -37.8,-2.12244399979,0.14405998746 -37.9,-3.09082328579,3.24022962895 -38.0,-1.133383343,0.193245759877 -38.1,-0.848020035918,1.47783188785 -38.2,-0.15880118268,0.571161040442 -38.3,0.729896655201,1.17863764072 -38.4,-0.504862305904,1.54841275792 -38.5,-1.02967870648,1.00200873069 -38.6,-0.852843030686,0.719058439899 -38.7,-0.263530348948,-0.384492610074 -38.8,-1.84610834868,-1.74973853179 -38.9,-0.238186119388,-2.0990388953 -39.0,-0.627592147488,-2.37307252453 -39.1,0.465596406908,-0.741126404087 -39.2,0.420279437793,-0.618536143597 -39.3,1.46086735933,1.22484181538 -39.4,1.84032906541,0.060683039241 -39.5,1.22945091313,0.0846208028166 -39.6,1.2164966465,-0.566066625146 -39.7,-0.276986699206,-0.415757699039 -39.8,-2.19662479601,-0.804244170973 -39.9,-0.133655612978,-0.47532631464 -40.0,2.26366239442,-1.16698254307 -40.1,2.26530057602,0.143677542718 -40.2,1.59956806387,-0.887510891147 -40.3,1.73957624534,-1.43124368079 -40.4,0.466922086517,0.650864335237 -40.5,2.52733409165,1.4591063097 -40.6,2.50113145333,0.154005795244 -40.7,2.70005450216,0.626978045282 -40.8,0.393246703674,0.0746121773066 -40.9,3.13650201204,-3.29779286937 -41.0,0.178131133085,-3.46986789269 -41.1,2.16839258269,-3.15935240967 -41.2,0.206233435432,-3.59596795921 -41.3,-0.370087825219,-1.8685456979 -41.4,-0.331500064034,-2.63783484967 -41.5,0.666503338986,-1.29623637301 -41.6,0.717304382973,-2.65339219253 -41.7,-0.554536670655,-1.80765222356 -41.8,-1.15103330396,-1.72631782323 -41.9,-1.7786707705,0.586905721697 -42.0,-2.89389239066,-0.448083144916 -42.1,-3.59149076575,1.32157386412 -42.2,-4.51182271165,1.47745717821 -42.3,-4.50394117325,3.75364188904 -42.4,-4.4788039945,1.32301136754 -42.5,-4.10158320156,0.757314699818 -42.6,-3.85941639814,1.42556540414 -42.7,-3.09231088938,1.90109657667 -42.8,-1.98110966919,2.97569894999 -42.9,-2.01187292858,1.99791102921 -43.0,-1.46352398195,3.76008951589 -43.1,-2.07820110602,2.15548916614 -43.2,-3.98715466488,1.63225111947 -43.3,-3.41751300282,1.39573657898 -43.4,-2.7772987192,1.60632230849 -43.5,-2.50747545665,0.523727360948 -43.6,-2.14701342345,2.52340930615 -43.7,-0.745326332491,1.85281198362 -43.8,-0.810575606183,0.452115519932 -43.9,0.920369563194,1.13320771763 -44.0,0.957145419084,0.871159917122 -44.1,2.10119986602,3.01963351765 -44.2,2.39346389053,3.12142950851 -44.3,0.743153458819,5.25681485679 -44.4,2.19638109716,3.80168025753 -44.5,-1.2873390523,1.41656069895 -44.6,-1.09875705125,1.20373557811 -44.7,-2.02820299922,2.0222983279 -44.8,0.232313345134,1.29182578177 -44.9,-1.07516039185,3.11258092359 -45.0,-1.84287697318,0.840762248307 -45.1,-1.09385296511,1.48099312578 -45.2,-2.58117561451,0.663646378788 -45.3,-1.1523474644,0.20267616356 -45.4,-0.308818435713,1.36861312938 -45.5,-1.31292791052,1.92597230891 -45.6,-1.29238042294,1.89333610257 -45.7,-2.52846341387,1.64242926805 -45.8,-3.845680331,3.39844804599 -45.9,-3.03316146483,2.63156151185 -46.0,-2.21584818879,3.89731542425 -46.1,-1.03202798077,2.02109147546 -46.2,-0.595697496241,3.07031573197 -46.3,-0.424730055198,1.43325028407 -46.4,-1.02175981983,1.25649552816 -46.5,-0.81230462553,1.72726814252 -46.6,-0.776230236911,1.24247716145 -46.7,-1.49561927406,2.09076429049 -46.8,-1.7224487345,1.92533521676 -46.9,-1.43473843344,2.10746263108 -47.0,-1.38421322302,1.53111323992 -47.1,-3.43650750617,1.88668466052 -47.2,-1.85663530667,1.90014210204 -47.3,-0.25924191172,1.34610699247 -47.4,0.233654337599,1.9540469978 -47.5,-1.30695570763,-1.35176047173 -47.6,-1.02082389176,0.637754780225 -47.7,-2.55440168834,0.705409627795 -47.8,-3.22272387765,-3.24214170264 -47.9,-3.57847961186,-3.2660333601 -48.0,-0.990896831962,-1.1793534123 -48.1,-1.87256800622,-0.202684575594 -48.2,-0.255466098709,-0.338057145751 -48.3,0.352328589064,-1.95005974383 -48.4,-0.0219733726322,-1.48189385646 -48.5,1.44817660375,-2.777699284 -48.6,0.533657925124,-0.676190049238 -48.7,0.389919394947,-0.677657876041 -48.8,2.41207204545,-0.813142749624 -48.9,1.44614872143,-1.27969159472 -49.0,0.628940236145,-0.804500212554 -49.1,-0.0949232007826,-0.153442180016 -49.2,0.599854466469,-0.39847175157 -49.3,1.66725839638,1.34955154672 -49.4,1.99145219161,0.153507562694 -49.5,0.861179638923,1.1523690381 -49.6,0.116526582642,1.29760641784 -49.7,-1.68471442615,1.70068423709 -49.8,-0.561796183304,-0.384997353214 -49.9,-1.20363336259,-1.92283692815 -50.0,0.766853237987,-1.55924862272 -50.1,0.813919838294,-2.21414578495 -50.2,0.520727865272,0.576803087284 -50.3,-1.11466195881,-1.47659530337 -50.4,-1.07171875535,-1.93399523462 -50.5,-1.319638494,-2.87876651756 -50.6,-2.46510408615,-0.842141259704 -50.7,-1.28122871506,-2.00756587049 -50.8,-0.729475193292,-0.798854501928 -50.9,-1.21978412813,1.1257682291 -51.0,-1.05408358956,1.49504201695 -51.1,-3.32781229428,1.25732323938 -51.2,-3.25710524221,0.309816123017 -51.3,-3.47876610527,1.33224515078 -51.4,-0.596664575984,1.62164071162 -51.5,-0.522932220525,-0.204701211715 -51.6,-3.44304480876,-0.360425681365 -51.7,-1.01608912623,-0.845297143207 -51.8,-1.36672588599,0.841203809416 -51.9,-0.290711692864,1.45947278209 -52.0,1.20977228936,2.11061477986 -52.1,1.95523379772,0.514658612412 -52.2,-0.310745891037,0.876842053952 -52.3,0.345388535831,-0.609400303818 -52.4,-0.232519004049,-1.10135521655 -52.5,-1.33095172533,-2.0642841902 -52.6,-0.755136600276,-3.51393999298 -52.7,0.620576107733,-0.731031218463 -52.8,-0.685853761516,-3.50006891328 -52.9,-0.496547591351,-0.74032682193 -53.0,0.651325542321,-2.43258337222 -53.1,0.0425039399088,-1.0842607165 -53.2,1.3569237671,-0.826487729553 -53.3,-0.922249094705,1.11546229941 -53.4,-2.2668521881,0.690674804355 -53.5,-2.65987090601,0.903768339628 -53.6,-0.442203146266,1.43463152109 -53.7,-1.19415754606,0.613814702582 -53.8,-0.3846294179,-0.068956548471 -53.9,-0.78395817323,0.374188496567 -54.0,-1.88298263649,0.493877742656 -54.1,-0.152791343987,-0.0525962869597 -54.2,0.0401642386697,0.596606311959 -54.3,0.611976822559,0.143640517163 -54.4,-0.825132219395,-1.05895477004 -54.5,-1.43022236482,-1.69648007535 -54.6,-3.66496090771,-1.57195551458 -54.7,-4.01217613449,-0.969555859153 -54.8,-2.01028932371,-1.44101675749 -54.9,-1.55920151359,-1.65625868549 -55.0,-2.2179923004,-2.9553168974 -55.1,-2.63666995883,-2.67503655903 -55.2,-0.339243316782,-0.34791271411 -55.3,-3.08168682289,0.905856478217 -55.4,-2.96579782124,3.40012639095 -55.5,-1.82739486852,2.61729535364 -55.6,-1.1068734541,2.34912368143 -55.7,-0.615510308348,1.30479875811 -55.8,-0.148447789555,1.51552120036 -55.9,-0.190670646625,2.38060665414 -56.0,-0.829072790547,3.89883195119 -56.1,-0.150259685374,3.2344335309 -56.2,-0.759304343165,4.08729682838 -56.3,-1.99824086301,4.23386591654 -56.4,-2.49051715456,2.21242054921 -56.5,-1.67820180516,3.74430093566 -56.6,-1.08992781396,4.68983232879 -56.7,-2.30756344605,3.38619986691 -56.8,-2.8451443076,2.75535905758 -56.9,-2.11895612442,4.60064299723 -57.0,-2.07569219522,3.45288860959 -57.1,-1.21218586443,1.45604356469 -57.2,-0.992870311232,3.90252063257 -57.3,-0.908373237172,1.24730343786 -57.4,0.217875288954,1.97346656411 -57.5,0.0343414320376,0.504523069385 -57.6,-0.00295365413359,0.731869713705 -57.7,1.2243898935,-1.83912804863 -57.8,0.932038239546,-3.19717485696 -57.9,1.39482538365,-3.25151356417 -58.0,-0.796751786065,-1.77605185116 -58.1,-1.04982151576,-0.322426129765 -58.2,0.1605290607,-0.290351328027 -58.3,0.913691223475,-2.2350274836 -58.4,1.44403176591,0.613967933857 -58.5,3.60858158896,-2.72594200094 -58.6,2.86638738604,-0.363009630582 -58.7,2.5841038193,-2.60605007198 -58.8,2.84887746541,-1.26943241948 -58.9,1.99031136012,-2.33816370317 -59.0,1.81556891015,-3.31725920491 -59.1,-0.541666924701,-2.00293129548 -59.2,0.658506022061,-1.93278257379 -59.3,-0.676520275143,-1.14854766592 -59.4,-0.30849991585,-1.87417727756 -59.5,0.0267782319606,-1.47177058892 -59.6,-0.310033422944,-1.2629278298 -59.7,-0.393828961565,-0.537156630815 -59.8,-0.45404206112,1.23384510445 -59.9,-0.182570615234,0.322138955422 -60.0,-0.377109479311,0.664250097546 -60.1,-0.546921459387,1.73575130965 -60.2,0.74182229453,1.2795330983 -60.3,0.322005306029,2.3624907614 -60.4,0.690384089938,2.50876032081 -60.5,1.04347511242,4.25358787831 -60.6,0.0271342042461,5.16065514179 -60.7,-1.44781340903,4.4973935683 -60.8,0.170319820939,5.43747163091 -60.9,-1.56507566256,4.60724703265 -61.0,-0.550610073929,3.22025639748 -61.1,0.189719866974,4.44489765303 -61.2,-0.224338221729,3.50518844869 -61.3,1.9543187592,2.81779514507 -61.4,1.39847620414,4.62190263584 -61.5,1.64219160627,2.46923172765 -61.6,0.0774062994611,1.63925019376 -61.7,-0.800049289566,2.91529136695 -61.8,-0.49076728428,3.24844755032 -61.9,-1.068155334,1.46731724354 -62.0,1.42812643248,1.29026371031 -62.1,-0.379402650691,0.159915296218 -62.2,0.245179063895,1.66272103323 -62.3,-0.625169706267,0.236934911899 -62.4,0.0231051208806,0.716683363971 -62.5,-0.829424261896,0.672390823066 -62.6,-1.51025065746,1.24681248343 -62.7,-3.74483217885,0.0454442764811 -62.8,-1.10039303645,1.44696230163 -62.9,-4.21789874522,-0.972179185093 -63.0,-2.06796359124,0.570573939184 -63.1,-0.843284718647,1.24790409341 -63.2,-1.72053719445,1.73724368293 -63.3,-0.856103147252,1.46917230309 -63.4,-1.29264317881,1.97150380433 -63.5,-2.76547164581,0.947094680859 -63.6,-1.16124276271,-0.427846462074 -63.7,-0.826977997379,1.55949888807 -63.8,0.436701617748,1.73624037292 -63.9,-1.28146951751,-0.696094971642 -64.0,-0.0224000475587,1.40622376896 -64.1,1.22208845978,1.51665434558 -64.2,1.57718743762,0.527518463824 -64.3,1.42670278867,0.0441563899811 -64.40000000000002,0.329563582095,1.28540029146 -64.5,-0.440044794104,0.433300125811 -64.6,-0.181101011173,0.11119899524 -64.7,2.15772426912,1.77758537349 -64.8,1.37585907147,1.73891773901 -64.90000000000002,2.78636017635,2.63737487132 -65.0,1.92809321008,2.88210876637 -65.1,3.24986282775,1.95747071991 -65.2,-0.22213759956,1.26885618061 -65.3,-0.523301598667,0.579849468052 -65.40000000000002,0.212183518085,0.725191869355 -65.5,-0.128310707105,-1.16673010947 -65.6,1.25920406804,0.068344331105 -65.7,-0.542670023456,1.05052543753 -65.8,1.78342989768,0.438931685054 -65.90000000000002,2.29466110626,2.05815169988 -66.0,2.75691707591,1.67031115139 -66.1,2.15295202225,1.61191930514 -66.2,2.98305269347,1.67963447525 -66.3,1.95236118468,-0.718991229517 -66.40000000000002,2.03680949496,-0.949386444599 -66.5,1.4399476087,-0.525937336352 -66.6,0.830047076029,-0.0155730551309 -66.7,0.355860438616,0.326223071252 -66.8,-2.67124245911,-0.787610902648 -66.90000000000002,-1.49759884662,-1.16294886674 -67.0,-2.56620367194,-2.01920237128 -67.1,-2.92873010788,-2.7091466822 -67.2,-3.10046232797,0.999378379903 -67.3,-1.3914492819,1.13398283457 -67.40000000000002,0.0644390425207,0.528611525879 -67.5,0.305157264856,1.94526867026 -67.6,1.40958125208,1.2488230728 -67.7,1.10382134262,-0.451389226084 -67.8,1.3857096112,-1.3122106992 -67.90000000000002,1.06502147863,-1.68552760433 -68.0,0.401459285972,-2.09220170234 -68.1,1.56037494688,-1.31433477092 -68.2,0.674793253675,-1.44672618903 -68.3,-0.333947581699,-1.68843862201 -68.40000000000002,-1.32745310057,0.0388487481097 -68.5,-1.12549116409,-1.35391927572 -68.6,-0.241838502712,0.0424380451477 -68.7,1.00392253729,2.03869126958 -68.8,-0.550564828275,1.57468178922 -68.90000000000002,-0.590832320544,2.96695834177 -69.0,-1.70479101742,2.01760874477 -69.1,-0.422534364432,1.80462536318 -69.2,-1.9073916956,-0.882902950461 -69.3,-1.94571904972,-1.04988740953 -69.40000000000002,-0.892388164242,-0.731656792926 -69.5,-1.97289799582,-0.427428027411 -69.6,0.38474540267,0.0327577441113 -69.7,-1.37596182785,-1.22284258146 -69.8,0.880440225629,-1.02287049286 -69.90000000000002,0.169639392648,-3.31391548897 -70.0,0.851246729561,-3.69974055571 -70.1,1.036913425,-1.10251363274 -70.2,2.87464352811,-1.37813377906 -70.3,1.04329406922,-2.20613865866 -70.40000000000002,1.8792680292,-2.13648872787 -70.5,-0.828635055239,-2.39917024279 -70.6,-0.375502076845,-0.103041430049 -70.7,2.21570278901,-0.495905676295 -70.8,1.69497308398,0.478232768597 -70.90000000000002,1.04983286149,0.751650333949 -71.0,3.44773128361,0.331928322843 -71.1,3.81104191589,0.807647967357 -71.2,4.00276947558,-0.558916968981 -71.3,2.66430771339,-1.08671406519 -71.40000000000002,1.80784376777,0.604718205646 -71.5,2.79458284318,-0.355552784343 -71.6,2.05047363165,1.75052758682 -71.7,1.95731916597,1.55391711459 -71.8,1.03355313924,-0.809671272685 -71.90000000000002,-0.340673130951,-1.82266953871 -72.0,-0.488343516234,-1.2306448564 -72.09999999999998,-1.08134190518,-1.51703490472 -72.2,-2.18790942984,-2.83291379139 -72.29999999999998,-0.933876846791,-2.13684351701 -72.4,-2.03205687109,-3.11463685265 -72.5,-0.0716599179504,-0.977248591072 -72.59999999999998,-0.853290474311,-1.65073156118 -72.7,-1.00608416955,1.59572632998 -72.79999999999998,-0.287262472722,0.977675776069 -72.9,0.983486786097,2.48106817038 -73.0,1.83570627866,1.2123543444 -73.09999999999998,2.16028821659,0.854210187679 -73.2,0.216330522977,-1.48026669634 -73.29999999999998,0.0258220335246,0.0889855460473 -73.4,0.166805093835,1.59283728053 -73.5,-0.27202905594,0.645293419198 -73.59999999999998,0.1328440986,1.37812431247 -73.7,0.280910210301,3.19173586807 -73.79999999999998,-0.159474060492,3.83725847948 -73.9,-1.458166567,4.62304996846 -74.0,-0.880596020236,3.76031026466 -74.09999999999998,-1.61283703169,2.90979744269 -74.2,-0.682646596611,0.498089314331 -74.29999999999998,-1.45008836245,0.576763878775 -74.4,0.107912702139,0.235239152005 -74.5,-0.412383563561,1.01919596164 -74.59999999999998,-1.31673838524,1.48053989277 -74.7,1.01045022369,2.83032176139 -74.79999999999998,0.841218031223,1.1878323115 -74.9,2.12536942256,1.26892315157 -75.0,1.54173454914,2.07885950581 -75.09999999999998,3.09083447526,2.31450418467 -75.2,1.57092171022,1.78296338184 -75.29999999999998,0.459342000601,1.90775832992 -75.4,-1.02996116298,1.41337385264 -75.5,-0.772631236861,-0.253853960482 -75.59999999999998,-0.176433622758,1.24448997723 -75.7,-1.62142488998,0.72205604624 -75.79999999999998,-2.23150756065,1.32382501574 -75.9,0.143775777063,0.967097544183 -76.0,-1.89268463093,0.579410025998 -76.09999999999998,1.67725412685,0.877684122666 -76.2,-0.0109462300118,0.328578303538 -76.29999999999998,0.181673018242,1.36168534987 -76.4,0.348425017021,0.400033837106 -76.5,0.361128181971,1.63662311914 -76.59999999999998,-0.805572063633,0.73605123722 -76.7,0.273162979531,1.70546322129 -76.79999999999998,1.27027272617,2.17136682564 -76.9,0.206355792487,2.44936285055 -77.0,0.867931730813,1.61683539074 -77.09999999999998,0.523953564973,1.90503287798 -77.2,1.17135462352,2.56578522648 -77.29999999999998,-0.858343834076,1.09026970787 -77.4,-0.572728825266,1.48970624854 -77.5,-1.67470553143,1.83159927592 -77.59999999999998,-0.989152144373,0.385825350161 -77.7,-0.225176426407,1.06285498328 -77.79999999999998,-0.62014646843,-0.155906800252 -77.9,-1.11654908951,-0.1049283638 -78.0,-0.350086330488,0.35825956138 -78.09999999999998,-0.661135397195,-1.93344090403 -78.2,-2.61276796156,-2.28167504851 -78.29999999999998,-1.46418428816,-1.78581582926 -78.4,-2.07217531626,-0.728920622281 -78.5,-0.953679966209,-1.38846359057 -78.59999999999998,0.371101342885,0.447762098184 -78.7,2.01258908344,0.531942424865 -78.79999999999998,1.17429230984,0.569021721919 -78.9,0.47470069081,1.30888830485 -79.0,1.6747467113,1.91523346563 -79.09999999999998,2.61782772002,-0.00697010645944 -79.2,-0.166745281739,0.788098104732 -79.29999999999998,-0.281709000083,0.336431321742 -79.4,-2.92506812376,0.0543401431924 -79.5,-2.22139176912,0.816379301131 -79.59999999999998,-2.78100006974,-1.46689363532 -79.7,-4.21722442855,0.302141682757 -79.79999999999998,-4.51771809584,-0.254359524216 -79.9,-4.37774978223,-0.33158529574 -80.0,-3.07947051029,-1.88392413712 -80.09999999999998,-1.00460496122,0.421888434416 -80.2,-1.10639441863,-0.54992296762 -80.29999999999998,-3.27916297397,-1.18166953737 -80.4,-2.77356579286,0.675081931405 -80.5,-2.19596239137,1.24464843094 -80.59999999999998,-1.37885975905,1.16794692787 -80.7,0.909697101982,-0.0526506116055 -80.79999999999998,1.19159764382,1.48184780133 -80.9,1.28039309658,-0.264530977463 -81.0,2.64028323922,-2.65997761988 -81.09999999999998,2.41211590621,-3.45852739007 -81.2,0.361210608366,-1.57682161985 -81.29999999999998,-0.795141613302,-4.97579089438 -81.4,0.534747602251,-4.32717869339 -81.5,1.37779019918,-4.36161118442 -81.59999999999998,4.21408502478,-3.45643718768 -81.7,4.02533848961,-2.85627478835 -81.79999999999998,3.91095178874,-2.51253918815 -81.9,3.04887510964,-0.233475817731 -82.0,2.04253350846,-0.608924857149 -82.09999999999998,-0.385951802402,0.609316327191 -82.2,-0.457593536185,0.383829722534 -82.29999999999998,-1.45015141551,-0.962423988093 -82.4,-1.6805084868,0.686964037975 -82.5,-0.785119244794,-0.928371964252 -82.59999999999998,-1.43963614166,0.324410933916 -82.7,-1.42771652536,0.163997839818 -82.79999999999998,-1.06275449865,-0.43901149473 -82.9,-1.75692784344,0.100679510165 -83.0,-2.38923394862,0.221909934054 -83.09999999999998,-2.87024073162,1.16216062259 -83.2,-0.672653993316,-0.456570997936 -83.29999999999998,-2.30340022577,-0.356459214107 -83.4,-0.433367542507,-1.11312002641 -83.5,0.263414055247,0.0298380836303 -83.59999999999998,0.210034038052,-2.42972048147 -83.7,1.1689929986,-1.35908538678 -83.79999999999998,0.54645910957,-1.48389185712 -83.9,2.05041952049,-1.07700050773 -84.0,2.65932269947,2.0208492899 -84.09999999999998,3.40472382341,1.85958875981 -84.2,1.78706663557,2.04759491664 -84.29999999999998,1.57504783675,1.82715433605 -84.4,1.41259094,0.730961022662 -84.5,1.33391620684,1.29647351073 -84.59999999999998,0.326604768884,0.0485426001737 -84.7,0.489195014937,2.42920042135 -84.79999999999998,0.246372519634,0.535387313069 -84.9,-0.593576427515,1.48606868841 -85.0,-0.26670446444,0.971930358708 -85.09999999999998,-0.768910304337,1.80794037468 -85.2,-1.97214579974,3.03096904082 -85.29999999999998,-0.375124638259,1.48837384776 -85.4,0.0292475738024,2.38873825785 -85.5,0.874739952391,2.49659997407 -85.59999999999998,-0.00496191453765,0.527457159266 -85.7,1.50355430461,1.06324763454 -85.79999999999998,-1.29164408675,-1.26506717839 -85.9,-1.79945738953,-0.943521446631 -86.0,-1.51833694055,0.269698612875 -86.09999999999998,-1.19660161738,-1.7510101617 -86.2,0.112994417162,-0.458786610867 -86.29999999999998,2.12849081543,0.881853636248 -86.4,1.41192118042,1.77876471568 -86.5,1.2972525887,0.44599916021 -86.59999999999998,0.0543404045753,-1.2950542702 -86.7,1.17982329499,0.0698495575987 -86.79999999999998,0.425445259828,-1.97648928701 -86.9,0.234180798371,-1.88837209934 -87.0,-0.0216860235827,-1.36672101585 -87.09999999999998,0.178133532706,-1.77789147473 -87.2,-2.77851217213,-1.4056725011 -87.29999999999998,-0.258393237557,-3.9213819207 -87.4,-1.93959157443,-3.47514302695 -87.5,-1.35464453983,-1.53168206138 -87.59999999999998,-0.0137806556489,-2.68203001776 -87.7,-1.46214352911,-4.3521446295 -87.79999999999998,-1.76856926176,-2.09897346519 -87.9,-0.821696931955,-1.1782702228 -88.0,-0.163551962478,1.9728010344 -88.09999999999998,-0.308426963431,1.59777645373 -88.2,-0.766350379432,2.05740082291 -88.29999999999998,-3.04637523871,2.38046434828 -88.4,-1.53015480934,1.41828174385 -88.5,-2.9670811606,2.31992140634 -88.59999999999998,-2.13205684756,3.68058432638 -88.7,-0.446620139517,4.74524197776 -88.79999999999998,0.125197401115,3.71382174348 -88.9,0.0597274335002,0.586323726374 -89.0,1.75977630969,2.64737532374 -89.09999999999998,1.2451575006,1.28870709407 -89.2,0.693227584118,2.10652780835 -89.29999999999998,1.18090495766,1.59687485034 -89.4,1.02255545816,1.48950393812 -89.5,1.69928500019,3.53461828285 -89.59999999999998,1.61177536274,1.97939731696 -89.7,1.77546939209,4.2735729204 -89.79999999999998,1.9999043741,2.13764760714 -89.9,0.10965917425,3.01741249674 -90.0,0.715861595284,1.92861147428 -90.1,0.481966313295,2.03105949091 -90.2,0.709001853887,1.94024792758 -90.3,1.31387575563,1.11426719063 -90.4,1.59538017834,2.31049877489 -90.5,0.418493136823,4.49161975151 -90.6,1.00729972357,3.72529776622 -90.7,1.04706545829,4.74381014131 -90.8,0.364663485678,0.922359002007 -90.9,0.756794721071,1.81629480364 -91.0,2.17975001827,2.11858399428 -91.1,1.749930201,0.699911551878 -91.2,2.21735838656,1.81668218134 -91.3,2.90574611243,-2.05167680331 -91.4,3.3642142793,-0.745896552277 -91.5,3.98090520439,-1.65172813265 -91.6,3.34628886619,0.358240028592 -91.7,1.25500861681,-4.20260070026 -91.8,0.0835377126672,-1.13966983889 -91.9,-0.0195268893437,-1.20964610475 -92.0,-0.0958412677612,-1.0338824503 -92.1,0.367847484461,0.892240505591 -92.2,0.709942310537,0.352373479094 -92.3,-0.310528158829,-2.60697475821 -92.4,-0.0295261151675,-2.32517903903 -92.5,-0.949186554534,-1.0110918759 -92.6,-1.01737608967,-1.99698202928 -92.7,-0.322012836699,-1.99689350739 -92.8,-1.42921034678,-3.29829001157 -92.9,-0.906169015254,-2.20804077381 -93.0,-1.15307344355,-1.84429407309 -93.1,0.344646367547,-0.947192845167 -93.2,-0.305538443835,0.307800920667 -93.3,0.184849756384,-0.423791203179 -93.4,-1.43006625381,-2.12472564652 -93.5,-0.987475666292,-1.72798831689 -93.6,-3.14331721098,-2.55222739481 -93.7,-1.53679226452,-3.85718850312 -93.8,-2.07734195988,-2.78003046734 -93.9,-1.77106062773,-2.08219006851 -94.0,-0.453750784629,-1.42386186131 -94.1,-0.341564876028,-1.47917628446 -94.2,1.55025689399,-2.97788125823 -94.3,-2.03336620467,-0.553367083641 -94.4,-0.253578053787,-0.662554200955 -94.5,-0.335609354169,1.17796739421 -94.6,0.260211852748,2.53215192805 -94.7,-2.97497999187,2.48111924534 -94.8,-0.735648886587,0.978238061766 -94.9,-1.7586907138,1.76759095988 -95.0,-1.72011255558,1.48169533257 -95.1,-1.35701735694,2.01793424139 -95.2,-0.989362215588,1.58157827965 -95.3,0.14168820658,3.31530861065 -95.4,1.2622688231,1.35042196667 -95.5,0.300882056812,3.79723530111 -95.6,-1.23564530735,1.98707969167 -95.7,-0.882082095012,2.5477670254 -95.8,-1.98948744961,2.3362074781 -95.9,-1.94845790779,2.25970876342 -96.0,-1.65957018331,2.13453791866 -96.1,-1.48121330211,4.43885766362 -96.2,-2.33265562146,3.78489761903 -96.3,-1.55174477772,3.77462707863 -96.4,-1.56989291928,4.50911658702 -96.5,0.0613576494224,2.03033281572 -96.6,-2.57593122261,1.21163770338 -96.7,-0.133878465037,1.66693439365 -96.8,-1.0401768747,1.14082928959 -96.9,-0.363415728807,3.6628030629 -97.0,-1.13563580401,1.6275715773 -97.1,-0.365494503076,3.89110970455 -97.2,0.0256888526706,1.34351867195 -97.3,-0.415145496512,1.23550242738 -97.4,1.88981977576,0.465299723715 -97.5,0.272257287055,-1.52717999144 -97.6,0.491785797021,1.24520601813 -97.7,-0.14937844141,-1.24712954257 -97.8,1.0544348007,0.0671466126586 -97.9,2.07567753979,-2.1242099584 -98.0,1.81571871299,-1.19364171052 -98.1,0.000200007514986,-1.1955698121 -98.2,1.75480991114,-2.77179589371 -98.3,0.202802300826,-3.49439711925 -98.4,0.672366010659,-3.26120244786 -98.5,-1.47376578633,-3.20278924895 -98.6,-1.90403323022,-3.92450759713 -98.7,-2.93631877168,-0.430148718346 -98.8,-3.33732511774,-0.850591273779 -98.9,-0.756394406486,0.818526196025 -99.0,-1.57255938132,0.485508241812 -99.1,-1.13770540951,1.2901572533 -99.2,-0.682877545289,0.579659472848 -99.3,-0.565484674398,0.351673890581 -99.4,-1.27949765669,0.999942783054 -99.5,-0.487744447115,0.0651790453527 -99.6,0.0764751157396,-2.025778784 -99.7,1.82065713095,-3.62547637653 -99.8,0.567720079942,-2.81097406636 -99.9,0.329429490774,-0.764362501795 +0.0,1.55147450899,0.996686974445 +0.1,2.5725579012,-2.68218429968 +0.2,-0.908108401906,2.63443726459 +0.3,1.77979286421,-0.864949697151 +0.4,-1.39667951275,-0.46055277805 +0.5,-0.888261993087,-0.890895712192 +0.6,-0.423902450082,-0.0168961870737 +0.7,-1.17454136321,-1.46197724855 +0.8,0.948565237968,-1.14159150807 +0.9,1.00958854579,-1.52935912335 +1.0,2.08058191284,-2.95703802051 +1.1,2.68714073414,0.0713787231931 +1.2,2.59426324454,0.672353790287 +1.3,0.858498446141,-1.43473945645 +1.4,0.120890267122,0.519066838659 +1.5,0.0913768736025,-1.67569786535 +1.6,-0.541378147144,0.426759732291 +1.7,2.54277432165,-0.67185523732 +1.8,0.768757217521,-0.377052358095 +1.9,2.47831271584,-2.63128887969 +2.0,0.74091809257,0.213011114471 +2.1,1.84543371019,-0.830221730661 +2.2,0.245394574366,-0.212675345743 +2.3,-0.854527097598,0.584120092418 +2.4,0.378723890439,0.434240166705 +2.5,1.00056143825,3.24250082149 +2.6,1.57925607741,0.761476926259 +2.7,-0.797886744606,3.48542494977 +2.8,-0.407823959185,2.73264524453 +2.9,-1.18108987004,3.47537899212 +3.0,-3.13927482102,-0.611028594601 +3.1,1.59967804593,1.72554841333 +3.2,-1.09168050523,3.48911453784 +3.3,0.451554239647,-0.00632967356743 +3.4,-0.840620417567,-1.37357655748 +3.5,1.13888122349,0.648233079685 +3.6,0.172419397768,-0.808160704218 +3.7,-0.368045455416,-3.0208036337 +3.8,-0.739028469036,-3.0678136947 +3.9,-0.0607122590594,0.135939638945 +4.0,0.43115998094,-2.55231316597 +4.1,0.147504076837,-1.30218589125 +4.2,2.07846764328,-1.27441555887 +4.3,-0.640299508345,3.18994502297 +4.4,-1.17120961228,-1.42497959099 +4.5,0.576155371936,1.24793470166 +4.6,0.173053567521,-0.0203781431833 +4.7,0.915839511736,0.455347883503 +4.8,1.94893271226,-2.83202440897 +4.9,1.91319075006,-3.13245504957 +5.0,-0.188259590659,-3.04227061694 +5.1,0.818315602504,-0.45726174869 +5.2,1.61738105146,-1.26448244979 +5.3,-0.204224430506,-1.02033613964 +5.4,0.899538362109,0.814051808442 +5.5,0.626809366243,0.389349986023 +5.6,2.4877358493,1.147492717 +5.7,-0.136038326496,1.04822346376 +5.8,-1.76015314718,-0.511272567133 +5.9,0.989474919304,-0.0733205331863 +6.0,-3.25835020853,0.877418996451 +6.1,-3.13282008867,-0.30904539385 +6.2,-3.07336995382,-2.6877404125 +6.3,2.07359152677,0.631600684661 +6.4,-1.97866086811,-3.02911953367 +6.5,1.96087923649,-1.14675093436 +6.6,1.95562668943,-1.77586608365 +6.7,1.06094206895,-1.26677921538 +6.8,2.4814740481,-1.55959148559 +6.9,-1.16511952629,-1.01774710266 +7.0,1.84054973775,-0.686520239644 +7.1,-1.25608809056,1.21764021708 +7.2,0.949573690995,1.78017790917 +7.3,2.68514669427,3.25293145042 +7.4,1.88019073764,1.4029027216 +7.5,2.45964049825,0.608098186404 +7.6,2.68969884845,-0.681110394035 +7.7,2.63988249633,-1.66761381968 +7.8,2.02397089911,0.976825043953 +7.9,0.932105525716,-0.0102508895316 +8.0,-2.06477906209,-0.0752642320148 +8.1,2.05282301023,0.843090696534 +8.2,-1.90674734723,0.466309802968 +8.3,-2.30705674642,-1.43454420986 +8.4,-0.290677687218,-1.27188270109 +8.5,0.555318041731,-1.72220161179 +8.6,-0.119957023045,-0.929733828052 +8.7,-0.453505458589,0.728227782944 +8.8,2.53948233869,0.398986233949 +8.9,1.77023425419,2.85463814907 +9.0,-0.491662012174,-1.44492298979 +9.1,-3.14025834413,-0.00654328519919 +9.2,0.983200913882,-1.13490903803 +9.3,2.61959675414,-0.124836854556 +9.4,2.42037502151,-1.77292850586 +9.5,2.51266828234,0.0813873201948 +9.6,0.120077968135,-1.12424208687 +9.7,-1.23759495428,2.5087464906 +9.8,-1.27843348723,-0.0622326622025 +9.9,0.203984486603,0.892004046013 diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/CustomTransformer/romMeta.xml b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/CustomTransformer/romMeta.xml new file mode 100644 index 0000000000..cfbca5b0aa --- /dev/null +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/CustomTransformer/romMeta.xml @@ -0,0 +1,35 @@ + + + + SyntheticHistoryROM + scaling + signal0,signal1,seconds + + + + + + + + + 2.439859975e-03 + 6.633597384e-01 + 3.759254799e-02 + 1.626814382e-02 + 9.578703160e-02 + 4.846720468e-02 + 4.966297816e-01 + + + 8.044622487e-03 + 8.795694309e-01 + 1.479677030e-02 + -3.899723674e-01 + 5.806226282e-02 + -5.148715383e-02 + 4.823239513e-01 + + + + + diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/CustomTransformer/samples_0.csv b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/CustomTransformer/samples_0.csv new file mode 100644 index 0000000000..192328051c --- /dev/null +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/CustomTransformer/samples_0.csv @@ -0,0 +1,1001 @@ +seconds,signal0,signal1 +0.0,1.60038588479,0.570182248078 +0.1,1.56458132508,0.0461047315093 +0.2,2.04121419037,0.611286964076 +0.3,2.68615320258,0.994777751626 +0.4,1.743264686,2.7108563631 +0.5,2.28922590449,5.06476054069 +0.6,0.240725748716,6.48354629924 +0.7,-0.1221870667,3.03559391346 +0.8,-0.768627780888,0.731679602167 +0.9,0.357928065063,3.98301699582 +1.0,0.0372211513885,2.06528423857 +1.1,1.66470427788,2.64400179443 +1.2,2.58666497586,0.654959754037 +1.3,2.14238351264,2.17068779949 +1.4,2.15560657394,0.621885161598 +1.5,1.38349260037,0.827450460323 +1.6,1.69731444705,0.394323758818 +1.7,1.3713775045,0.308622250876 +1.8,0.733715595104,0.454364528469 +1.9,0.16664073357,0.210587511049 +2.0,-0.676421442719,0.302585081805 +2.1,-1.10526447353,0.335074578604 +2.2,0.167499911766,0.294729604134 +2.3,0.731042449301,0.0235632912145 +2.4,1.83041177811,0.426852518062 +2.5,1.10199276728,0.538717355067 +2.6,1.25085304263,0.0784975201607 +2.7,0.739146451462,0.0278940102547 +2.8,0.000261075657369,1.31729676514 +2.9,2.34488029047,0.629744258167 +3.0,2.96684900328,1.82123172273 +3.1,3.56576539371,0.962422840346 +3.2,0.436285791165,1.69255863085 +3.3,-0.979349833366,0.28462013447 +3.4,-0.537011368135,0.226129711213 +3.5,-0.565898906853,0.488313239181 +3.6,-1.20101595598,0.338982499685 +3.7,-0.802966611095,5.24332552763 +3.8,-0.473403198892,3.79575755667 +3.9,1.16590770685,2.92695663242 +4.0,-0.761668248456,1.65493756399 +4.1,-1.50094543,7.40011261611 +4.2,-1.14496021349,5.63369391831 +4.3,0.0322437210779,30.3443017354 +4.4,-1.33716694946,29.2023474701 +4.5,-1.07215468403,6.21546299172 +4.6,-0.657429426193,2.80045371252 +4.7,-0.857855820411,2.59321016164 +4.8,-1.2200015024,0.460568901758 +4.9,-0.583338921836,0.238234851067 +5.0,0.151372490937,0.203566517316 +5.1,0.403630695147,0.162767904857 +5.2,1.67589527899,1.29271306616 +5.3,2.2783749719,0.583038224349 +5.4,2.75868844825,0.363966599113 +5.5,2.22233163975,0.285803978769 +5.6,3.33082694276,0.135290510052 +5.7,3.42423718295,0.648260581914 +5.8,4.20587524502,1.84936131629 +5.9,3.16663847493,0.385897481338 +6.0,2.40444862373,0.571265519271 +6.1,1.64778714212,1.00189931093 +6.2,0.455347752491,0.404427943062 +6.3,0.315161453934,0.50393965769 +6.4,0.166552279534,3.03236362575 +6.5,0.0491401550631,0.385255583807 +6.6,0.128203936393,1.58998594379 +6.7,-0.561670555049,0.732161223083 +6.8,-1.44746920909,0.0980803700007 +6.9,-1.82799690471,1.32858556351 +7.0,-1.55634583454,2.59552543709 +7.1,-1.61151227766,0.814639106549 +7.2,-1.19243427863,2.04925295085 +7.3,-0.441210583573,0.203563313517 +7.4,-0.795259118637,1.09219131297 +7.5,1.37182248033,2.1380739567 +7.6,0.997270018749,2.37118896154 +7.7,2.19267867524,4.50269117698 +7.8,2.00726276641,2.05698700847 +7.9,3.47232995433,0.251836816085 +8.0,2.7508795848,1.2881285181 +8.1,2.52820203134,2.36938823689 +8.2,1.84198401852,2.6322636882 +8.3,2.40132562877,0.896845389979 +8.4,1.9908856141,5.68974160071 +8.5,0.234444224742,2.75234794184 +8.6,1.65895503377,2.11603665079 +8.7,0.0540136436665,4.11901147233 +8.8,0.20657825402,7.64316827282 +8.9,0.432764473661,2.27901432997 +9.0,1.29511349315,3.89110514221 +9.1,2.49892231231,6.17044226571 +9.2,1.67442102824,1.74605766213 +9.3,1.72931015637,1.57073055656 +9.4,3.35142270927,0.105666258135 +9.5,2.50225515528,0.868844024354 +9.6,1.05386267756,1.309603209 +9.7,1.08566521313,1.14348544744 +9.8,-0.598676863958,1.57599387535 +9.9,-1.15254126471,0.559253318691 +10.0,-0.500104027217,0.420848247527 +10.1,0.731804201268,0.551265364587 +10.2,0.057446875491,0.303593038146 +10.3,-0.431668369129,0.346448233417 +10.4,0.0261433163039,0.280193339825 +10.5,-0.35094922707,0.0597369991401 +10.6,0.972497774736,0.297274164919 +10.7,1.27730496571,0.05184154734 +10.8,1.99571755916,0.0479866308332 +10.9,0.974820253659,0.262179411217 +11.0,0.995691033594,0.328037585178 +11.1,-0.0833070107486,1.10285681684 +11.2,-1.37509245153,0.270526587993 +11.3,-0.680739937407,0.325104226339 +11.4,-2.74777663542,0.657867478819 +11.5,-0.588173161553,0.344248401809 +11.6,-3.02308573211,0.55178033435 +11.7,-2.84279132313,0.310846055196 +11.8,-2.11819855011,0.0975864684222 +11.9,-2.51253071918,1.51175961645 +12.0,-2.47222705351,0.608160838779 +12.1,-2.62195800421,1.65210694735 +12.2,-1.72296530709,0.858532522159 +12.3,-2.43113291041,0.17791695311 +12.4,-0.0902165028018,0.335822696912 +12.5,-1.7446074301,0.222417881448 +12.6,-2.6202274441,0.536844541442 +12.7,-2.33861314136,0.129880476349 +12.8,1.32543828168,0.148794738976 +12.9,-0.300555291029,0.0802013820959 +13.0,-1.17490761723,0.250902345051 +13.1,-1.61424333048,0.0223699922194 +13.2,-2.00717669742,0.118260380226 +13.3,-2.04564063672,0.284340510753 +13.4,-2.83148609575,0.504624677621 +13.5,-1.44365729779,0.829820315348 +13.6,0.0460684220212,0.195065969133 +13.7,-0.525135553389,0.994050652086 +13.8,-0.266627165877,1.20035343029 +13.9,-0.650918690578,7.23918190027 +14.0,-2.01423881868,3.23844317263 +14.1,-1.10376279778,1.62471440627 +14.2,-2.14454838179,3.20265942607 +14.3,-1.94121670001,2.3846632004 +14.4,-0.836836118298,1.34312459512 +14.5,0.7674272076,1.08495996343 +14.6,0.11632352191,0.189103042477 +14.7,0.121394083382,4.0034395004 +14.8,-1.03387723492,3.72739176154 +14.9,-1.32493175755,37.2127644269 +15.0,-1.24573995339,2.90310734335 +15.1,-1.34180944924,12.802289499 +15.2,-0.879637986504,5.98577942365 +15.3,-0.0709130776371,14.4977575034 +15.4,-2.18932154402,10.5606347588 +15.5,-1.81158211229,3.01943091122 +15.6,-1.26995676966,1.79087640504 +15.7,-2.31056893773,13.1681354215 +15.8,-1.48412121941,4.62550919603 +15.9,-0.441393964461,1.63106326765 +16.0,1.32147068006,0.827684746191 +16.1,1.36792382903,1.75298047216 +16.2,2.47753529359,3.99157582101 +16.3,1.69663253666,6.45879388697 +16.4,1.20734425251,8.58981257329 +16.5,1.9803400858,5.8643705788 +16.6,0.626760107672,4.64209777645 +16.7,2.14160081574,1.20264774148 +16.8,1.88677779759,0.316671842252 +16.9,0.959891982775,0.303031589076 +17.0,-0.0915166277428,0.305264970783 +17.1,1.49884675872,0.728724724708 +17.2,-0.0955784988622,0.156860227836 +17.3,-0.534289921084,0.582913779065 +17.4,-2.71821911238,0.113204137669 +17.5,-1.52345051065,0.113966390795 +17.6,-3.18516247334,0.167227699988 +17.7,-3.33397389298,0.247407297984 +17.8,-4.13236986259,0.724675643707 +17.9,-2.21476891534,0.597282074222 +18.0,-3.31125686412,0.595414745764 +18.1,-4.02853007134,0.0762149698708 +18.2,-3.6047161554,0.626810130093 +18.3,-2.17401214553,0.0907844809393 +18.4,-1.35711282222,0.0426111056569 +18.5,-2.70755057517,0.23440680102 +18.6,-2.49445361861,0.115689074809 +18.7,-1.16121904832,0.10653728272 +18.8,-2.33761476889,0.453120823409 +18.9,-1.94170391799,0.0547613598426 +19.0,-1.15746892894,0.230109577739 +19.1,-1.08182999347,2.29183714873 +19.2,-2.04164384267,0.726256286113 +19.3,-1.62173632028,0.139043655019 +19.4,-0.28822241956,0.0687054385525 +19.5,-1.59187964383,0.116828874122 +19.6,-2.57232615265,0.108264968555 +19.7,0.114205734081,0.585651359104 +19.8,0.13210923539,0.0695109618154 +19.9,-2.33182942604,0.73254088342 +20.0,-0.230978792908,0.126666218108 +20.1,1.29505537069,1.46602406974 +20.2,-0.325767069955,0.234819774113 +20.3,1.51113072806,0.169674376207 +20.4,-0.0104108162998,0.0775666837101 +20.5,0.534057205641,0.437340157308 +20.6,2.31723219913,0.0296869997398 +20.7,0.879385340865,0.0445255227172 +20.8,-1.50751147546,0.146007621252 +20.9,-1.48242903818,0.0163235265125 +21.0,-3.16340743763,0.0193835183976 +21.1,-1.52623405162,0.0545519092918 +21.2,-2.18115985112,0.136567208651 +21.3,-2.64492243656,0.0333214978526 +21.4,-0.4238110769,0.0265879392424 +21.5,0.671946040192,0.197275499304 +21.6,1.62671396341,0.116235229047 +21.7,2.42798510484,0.136377388547 +21.8,1.24183350725,0.108999259752 +21.9,1.92327829023,0.0640421489879 +22.0,0.932600905777,0.0789138814815 +22.1,2.25742521514,0.445942965978 +22.2,3.68840582,0.345777760862 +22.3,2.96218086292,0.644250265716 +22.4,1.68672370336,0.105068408992 +22.5,0.371855165217,1.28579122063 +22.6,-0.180501986085,1.10529515419 +22.7,-0.459593835142,1.4136761274 +22.8,-2.74127278621,2.80000978415 +22.9,-1.54814001686,1.90527448438 +23.0,-1.07941242893,1.68565594423 +23.1,-0.508017670023,3.3552657859 +23.2,-0.625073169262,1.22678320753 +23.3,-0.372811998983,1.55756258996 +23.4,2.33166078322,4.4925075258 +23.5,0.303963660148,3.28219360626 +23.6,1.71981254854,1.32361622323 +23.7,1.54679662632,5.22608767798 +23.8,1.77816095423,1.39887820804 +23.9,0.873169474362,0.57696524563 +24.0,0.0445028381766,0.0871851724899 +24.1,-0.133564466955,0.559607806012 +24.2,1.84126226711,1.20039015615 +24.3,0.773452913878,0.849426974098 +24.4,-1.21683076659,1.29458066446 +24.5,-1.4795411359,0.228438014439 +24.6,0.21157300902,0.127450825004 +24.7,1.27118558646,0.0913627025985 +24.8,1.09568940747,0.195112002887 +24.9,-0.0952919582553,1.3214845872 +25.0,0.120386919133,1.67382588252 +25.1,-0.372716453315,2.31158281541 +25.2,-1.82711027029,0.595436416427 +25.3,-2.55714294728,2.77791447691 +25.4,-2.23655245005,0.189600842135 +25.5,-1.50915198445,0.173386348716 +25.6,-0.385785065962,0.535254646784 +25.7,2.01435051232,0.473738604404 +25.8,3.11616739143,1.31102020442 +25.9,3.51610178086,3.88080450536 +26.0,3.87079984547,1.25216962282 +26.1,2.29932141936,1.40730151146 +26.2,1.52883071763,3.28839511192 +26.3,0.663377077271,2.24928264028 +26.4,0.717471547251,1.10537775675 +26.5,-0.887252401907,1.81209828691 +26.6,-0.564459733019,1.12257605312 +26.7,-0.273231876606,4.5688641386 +26.8,0.979785255181,8.68914748447 +26.9,-1.11572021115,3.56947281108 +27.0,1.02442709051,13.9084803866 +27.1,1.68105663542,7.3028228338 +27.2,0.400891523885,43.6732538198 +27.3,1.24362662867,12.0730512902 +27.4,-0.153981583482,11.3928689214 +27.5,1.1048714063,5.09603900051 +27.6,2.13707099365,5.40070113783 +27.7,-0.228082219089,13.7799458704 +27.8,-0.0165319755446,7.17833036117 +27.9,1.28436180032,3.75256842154 +28.0,1.42078289893,2.84877926424 +28.1,-0.0636451024019,5.4840945422 +28.2,-2.65566482505,10.6821043534 +28.3,-3.08823501285,14.885153354 +28.4,-1.80138791231,7.5029098848 +28.5,-0.541923896631,0.670712193707 +28.6,1.28960119549,2.92712241841 +28.7,0.66012382659,1.05003104723 +28.8,-0.993920872987,2.57506616431 +28.9,1.70520658087,0.45959865728 +29.0,1.20760038277,0.167743280109 +29.1,1.4609257808,0.350599944567 +29.2,0.87271803109,0.203158667098 +29.3,0.876009158496,0.657871902442 +29.4,-0.534071388864,0.783008440608 +29.5,0.472488187636,1.08075806503 +29.6,-0.434394334574,2.04309362386 +29.7,-0.890004097538,9.16206278624 +29.8,-1.11828263065,25.8225618777 +29.9,-0.657087416783,42.3677095229 +30.0,-1.85923710372,18.9727103684 +30.1,-2.47869643917,54.3937443383 +30.2,-3.5926588238,7.99643678159 +30.3,-3.67208482256,28.9468258138 +30.4,-3.05491828762,4.0638286527 +30.5,-2.82446117931,39.5228264093 +30.6,-3.0126057568,3.06892459688 +30.7,-2.66664068197,8.60106569265 +30.8,-2.70412517367,5.03854659833 +30.9,-2.5710035477,4.44673824878 +31.0,-3.03306538007,1.25992705878 +31.1,-0.855701789294,0.439058053706 +31.2,-2.41002909333,1.7430907482 +31.3,-0.0505292642514,4.97200223187 +31.4,-1.17253863516,2.04573461747 +31.5,-1.657784889,1.44343623534 +31.6,0.161960189138,5.37669261556 +31.7,-0.73767910497,1.30650781974 +31.8,-1.27762461445,4.10509905606 +31.9,0.351747335596,6.45844725941 +32.0,0.156239309166,7.27285646803 +32.1,0.219428894218,3.16356670522 +32.2,-1.44977555952,3.76124210715 +32.3,-0.799240193443,1.6804524646 +32.4,-0.83066316429,0.677084119957 +32.5,-1.13101513804,1.06567609895 +32.6,0.296073187098,0.922686307621 +32.7,0.228425180332,1.52781934474 +32.8,2.07731013179,0.785080682249 +32.9,3.5207397966,1.03095160337 +33.0,3.14259908461,0.13757661289 +33.1,3.87870258752,0.515468031834 +33.2,1.67786440729,0.313545067591 +33.3,1.56768501823,0.271956403667 +33.4,-0.836790935195,0.0422764730904 +33.5,-2.26937067071,0.0774960049237 +33.6,-0.499298155052,0.0688139038435 +33.7,0.458253479034,0.0334124572779 +33.8,2.04109889582,0.0432379178009 +33.9,-0.047714872823,0.0617120650795 +34.0,0.84480468542,0.0529276382712 +34.1,1.2060649492,0.0525974003311 +34.2,2.7944908524,0.0759874798949 +34.3,1.59058747645,0.20174759802 +34.4,1.66459454551,0.306073853059 +34.5,2.00067486632,0.633324517989 +34.6,3.44378913191,0.600793536272 +34.7,2.88094848683,0.127384187611 +34.8,3.35056726727,0.610035543001 +34.9,1.23114401184,3.86573329566 +35.0,0.591623043374,0.555302258094 +35.1,0.365434136097,1.29593075068 +35.2,0.369884556088,4.0089348573 +35.3,-1.23565381463,11.3203799736 +35.4,1.09162325043,13.936410527 +35.5,-0.0868658299018,16.759675725 +35.6,-1.32747313663,11.3569828291 +35.7,-1.03542594583,5.3064648257 +35.8,-0.622033474988,21.5487574507 +35.9,-0.518459579767,7.82937824953 +36.0,0.289355835563,6.13459980755 +36.1,0.101171515989,3.48556933137 +36.2,0.831932756528,9.49448804802 +36.3,0.702884531291,3.71009718614 +36.4,-1.33168450114,2.17368897647 +36.5,-2.74258792538,3.21312389876 +36.6,-2.46917554617,0.296097807101 +36.7,-2.80731339169,1.50194333637 +36.8,-1.78503998081,0.798561505811 +36.9,-1.81022069259,0.809335415902 +37.0,-1.39966757959,0.630723689061 +37.1,-1.29646587379,2.03625874055 +37.2,-2.05873885391,2.89080632857 +37.3,-1.35195967768,1.13274850955 +37.4,-2.21550428067,3.34757509165 +37.5,-2.88643826782,1.00729001619 +37.6,-1.37036313957,2.07090117937 +37.7,-0.430533674257,10.0972713095 +37.8,-0.0312272889637,1.70104072208 +37.9,-0.357947553081,1.7414331819 +38.0,1.82527354011,5.45426777863 +38.1,-0.442974719548,0.82105742609 +38.2,-0.486755100192,2.98842694795 +38.3,1.00465325274,0.290942603613 +38.4,1.01382949473,0.276296260322 +38.5,-0.486323282057,1.25693075105 +38.6,-0.300439528111,2.36283080759 +38.7,-0.654064664163,2.22051988566 +38.8,-2.35052261984,0.15271615734 +38.9,-3.53904894452,0.46089932862 +39.0,-3.16529674002,0.0221378692359 +39.1,-3.53509134922,1.17614643579 +39.2,-2.6644386783,0.506417787389 +39.3,-1.24953508725,0.767137359675 +39.4,0.597953073179,0.897848238664 +39.5,0.434936518191,0.256799773064 +39.6,-0.665744429153,0.588398518691 +39.7,-1.32219896031,0.646090009447 +39.8,0.972169111256,0.850584844166 +39.9,1.70684187894,0.354982618284 +40.0,0.773357822959,0.174511238737 +40.1,0.104544377513,0.167536645909 +40.2,-1.01680378452,1.24593803167 +40.3,1.24163445344,0.273342219464 +40.4,-1.2106293005,1.30201124617 +40.5,-0.118220611112,2.88010601162 +40.6,-1.7954340363,1.37761650345 +40.7,-1.92952485052,0.242579322934 +40.8,-3.29574660774,2.10358916302 +40.9,-3.12045215926,1.07810245045 +41.0,-4.38811987103,3.4674615654 +41.1,-3.29773051984,2.30650538212 +41.2,-2.70035631117,13.3114251678 +41.3,-3.33436542712,2.52169620154 +41.4,-2.97374956393,1.49242508298 +41.5,-2.02001406665,3.72071149585 +41.6,-1.03485757169,1.27835743504 +41.7,0.718454037751,6.6213867238 +41.8,1.71758780926,0.621051553194 +41.9,1.37523299506,0.528940190805 +42.0,2.10127165083,0.0616517700582 +42.1,2.06432513566,0.503491969447 +42.2,2.16165612888,0.490461141175 +42.3,1.8301102583,2.02426956826 +42.4,0.299355102997,1.54455234902 +42.5,-0.571262396331,1.78386308115 +42.6,-1.58059545513,0.105056921132 +42.7,-2.55380330188,0.358056717968 +42.8,-1.58942940933,0.353638332551 +42.9,-0.318942848452,0.0707188489664 +43.0,1.00265663753,0.0305301725437 +43.1,0.467377234792,0.220445878025 +43.2,0.770543298794,0.128389271468 +43.3,-0.10146498678,0.241067170633 +43.4,-0.0470491749911,0.213671111153 +43.5,0.0874575517934,1.41869806915 +43.6,-0.24154276977,1.66170198041 +43.7,-1.12906744842,3.25361957432 +43.8,1.3318240683,12.6948169068 +43.9,0.742733794731,0.549279476787 +44.0,1.57002438423,2.34636345968 +44.1,1.56441037518,7.25337945213 +44.2,1.30251255632,3.07630996602 +44.3,2.38992280532,24.1424318442 +44.4,0.243024084102,17.8892137836 +44.5,-0.824177644704,4.82143842499 +44.6,1.70962091381,4.09728008973 +44.7,0.14166004713,0.660494550146 +44.8,0.170343140719,0.221252128372 +44.9,0.500223369787,0.201538278376 +45.0,1.40212397117,0.143128927723 +45.1,0.372999628355,0.290407587105 +45.2,0.552099889149,0.319668449963 +45.3,-1.62134823714,0.778942327755 +45.4,-0.0138703053299,0.652465518835 +45.5,-1.05389900827,1.96975039633 +45.6,-0.661139863044,1.4724694405 +45.7,-2.37752570258,5.85791677462 +45.8,-1.12239483429,5.57707188371 +45.9,-2.73184020242,1.63434244829 +46.0,-1.08488712186,1.26711449219 +46.1,1.03366967278,0.522939856277 +46.2,1.503519546,1.70435226328 +46.3,1.97936706593,0.295163201644 +46.4,1.63659620747,0.535127543908 +46.5,0.542549412153,0.0609004537965 +46.6,-0.229470237892,0.392158022457 +46.7,-0.952116502476,0.416757080599 +46.8,0.366800158472,0.305696358754 +46.9,1.57755993441,0.128681318494 +47.0,0.529669809848,0.109648508114 +47.1,0.305097027383,0.941757917029 +47.2,-0.28051315099,0.149599137801 +47.3,-1.6568663506,0.279047383386 +47.4,-1.80256782315,0.0605250874341 +47.5,-1.25452961291,0.205367693458 +47.6,-1.68987456024,0.047745668313 +47.7,-2.50828873857,0.251177850305 +47.8,-2.14143784407,0.279166757401 +47.9,-2.54723951249,0.560326885879 +48.0,-0.660740703082,0.250248905663 +48.1,-1.6267016499,0.317870631969 +48.2,-1.99366644848,0.799684359628 +48.3,-1.86755362774,14.3859021022 +48.4,-2.91509694341,3.47746690995 +48.5,-1.93780774606,10.9436915894 +48.6,-2.34692613004,11.98598113 +48.7,-2.29956172652,12.639171823 +48.8,-2.72299416522,2.44945434651 +48.9,-0.590700861621,0.191787790888 +49.0,-1.78780919805,1.49304452497 +49.1,-0.828191865172,0.376768683514 +49.2,-1.08362103397,0.157500475943 +49.3,-1.10299922919,0.158476399132 +49.4,-2.25937456584,0.178629362438 +49.5,-1.1687524391,1.90057705173 +49.6,0.179860160484,1.80338189389 +49.7,0.565184665388,0.640039438794 +49.8,0.595514179595,0.360439950385 +49.9,0.246630346627,2.89666019229 +50.0,-0.88030545349,0.57637393408 +50.1,0.392588160111,0.0581868624229 +50.2,-1.97400318333,1.21033971278 +50.3,-0.997833727438,0.133400767597 +50.4,-1.0972400142,0.0994462134013 +50.5,-1.87156023263,0.246923941034 +50.6,-1.46666903286,0.281262348357 +50.7,-2.58726546935,0.455128192379 +50.8,-2.44905750685,0.866497203691 +50.9,0.0366562149555,0.743940184516 +51.0,0.930960756808,1.07470210684 +51.1,0.292603914872,2.24252497186 +51.2,0.957941092061,0.609555556743 +51.3,0.707311685882,9.52249283957 +51.4,-0.574916317601,2.11155487209 +51.5,-1.61593169808,1.08486846854 +51.6,-1.30917564242,0.659816165505 +51.7,-1.34883847175,0.919684576422 +51.8,-1.48932583111,0.238979978875 +51.9,-1.10466863006,0.967163635798 +52.0,-0.0106434779626,0.64105274869 +52.1,-2.22563570262,5.01431194401 +52.2,-1.4556866712,7.33866617583 +52.3,-2.70926495693,10.776993223 +52.4,-2.46886666639,13.1885393864 +52.5,-3.45507221973,1.52592592213 +52.6,-2.38440892757,11.4828485144 +52.7,-1.30640519236,18.8946036905 +52.8,-0.459048612667,10.9894697199 +52.9,2.5383884209,4.27628879541 +53.0,2.62230456929,2.73580195577 +53.1,0.997894872954,0.893181157118 +53.2,0.708779181206,2.36753025664 +53.3,0.475598523967,0.645511613816 +53.4,-0.578887983424,0.351664436563 +53.5,-1.00289383862,0.188101614101 +53.6,-0.717299630144,0.927000904151 +53.7,0.400420500077,1.47412413197 +53.8,1.52008813191,0.389044306364 +53.9,0.988282325083,0.56072592219 +54.0,0.2292494265,1.25085075381 +54.1,1.81806687814,1.39642079422 +54.2,-0.534572625343,1.70273558911 +54.3,0.0208804042798,1.70257010554 +54.4,-0.720151186303,1.95191996103 +54.5,-1.92772486765,0.912741830893 +54.6,-2.95035240354,0.802906059061 +54.7,-2.36709542878,0.525145528462 +54.8,-3.13071423614,3.26981432195 +54.9,-2.59019405113,0.656457114726 +55.0,-2.67011866437,1.58537781477 +55.1,-1.8644404051,2.16031596056 +55.2,-3.24352415862,5.60070670775 +55.3,-1.49314230124,15.9713069198 +55.4,-2.75279968712,4.86245663352 +55.5,-2.75475611928,3.8740031759 +55.6,-2.00457350561,5.82658229904 +55.7,-1.57116791583,53.324418298 +55.8,-0.213490717994,13.0514168361 +55.9,-0.798318362979,7.300462663 +56.0,-1.35137572743,6.96367973999 +56.1,-1.34959507937,1.69824518897 +56.2,-1.90232029738,4.98934742572 +56.3,-2.53896375209,3.14386350278 +56.4,-2.16135542832,1.18255782836 +56.5,-2.67073161951,3.11130196393 +56.6,-3.18046232348,1.00694716461 +56.7,-3.60090126984,1.71996613882 +56.8,-2.25082126464,0.903071153148 +56.9,-2.35333479185,3.13807947057 +57.0,0.353942422847,2.08642191885 +57.1,0.581573460054,1.07487786183 +57.2,0.315994034658,2.9363876981 +57.3,1.49558510986,3.99220098892 +57.4,1.18734504599,0.260246201378 +57.5,1.64214530058,0.338344724298 +57.6,-0.0942274230642,1.18010459725 +57.7,1.39032301216,2.99548146456 +57.8,0.539154716285,9.72772212468 +57.9,0.242401445828,3.77172409034 +58.0,-0.0540662055147,7.85601326603 +58.1,-1.27212841208,6.48413156917 +58.2,0.973858357106,1.55874392357 +58.3,1.39756885004,3.07427040068 +58.4,1.83100171591,5.48140189847 +58.5,2.20063905746,6.57595125413 +58.6,2.73836797064,53.9986074901 +58.7,3.07811319549,1.34780270978 +58.8,2.26263643927,3.69535418357 +58.9,-1.3726866631,1.24456164364 +59.0,-1.31321504383,1.17761844632 +59.1,-1.55087408668,0.117368209138 +59.2,-1.75293347761,0.939901963753 +59.3,-1.06966046063,2.6906270657 +59.4,-0.483494937919,11.5406895398 +59.5,-0.964391674427,8.54465807949 +59.6,0.472819893835,132.662050993 +59.7,-0.664779293629,17.7893548993 +59.8,-0.108121430476,12.6297968353 +59.9,-0.0535508707283,15.2758409969 +60.0,0.389396664878,5.16159430936 +60.1,-0.506292309581,8.84234161628 +60.2,-0.834463447048,1.31382239487 +60.3,-2.65110092486,2.20354629106 +60.4,-1.71331753556,10.7650794422 +60.5,-0.619305517457,3.33361259456 +60.6,-1.40546106934,15.9836973477 +60.7,-0.40630948728,4.81843202335 +60.8,0.703566362253,11.1055156621 +60.9,1.15302906399,2.17067602092 +61.0,2.18166300024,4.00931940015 +61.1,2.14919641431,13.2824444793 +61.2,2.34782146389,1.79696464957 +61.3,1.45244579567,8.88850927819 +61.4,1.36701726649,0.718719593375 +61.5,0.748933591764,0.862513577937 +61.6,0.920018867433,0.0980970067856 +61.7,1.61366902364,0.146224556643 +61.8,2.12290587435,0.37136267962 +61.9,3.66217100418,0.527909573907 +62.0,3.04912344135,1.13472916618 +62.1,2.6420439027,1.80977829954 +62.2,2.0689516872,0.273585168631 +62.3,2.10091746691,2.61380284605 +62.4,1.778541852,14.3006678697 +62.5,-0.609437550138,3.97091489879 +62.6,0.890198844102,0.36737895925 +62.7,0.818612245289,0.834741319858 +62.8,0.393422287862,1.01645038501 +62.9,0.925344865737,0.197148140101 +63.0,0.430796967532,0.665120200349 +63.1,1.6148031973,1.23342393409 +63.2,1.29872161491,1.1087599861 +63.3,0.342796476211,0.929483438781 +63.4,-0.569714195104,2.64437300714 +63.5,0.629187343416,0.434840687152 +63.6,-0.838183435417,0.415028960338 +63.7,-2.94118440418,0.622131700301 +63.8,-2.30587609401,4.36044054998 +63.9,-0.414370351851,15.2183566808 +64.0,0.0308593009774,5.23755938858 +64.1,-0.580792702798,13.3959615692 +64.2,-0.0685230712628,5.64650177364 +64.3,-2.32651784367,7.21866112898 +64.4,-3.95198349252,10.7509771071 +64.5,-2.23166335607,4.89209734176 +64.6,-0.792924016633,12.6207191545 +64.7,0.188946964614,7.16987308688 +64.8,-1.08815998343,1.86202762985 +64.9,-1.54086216098,0.540919774914 +65.0,-0.343186677803,8.99926996446 +65.1,-0.620352437761,3.68442850661 +65.2,0.0404410773876,3.23981748659 +65.3,0.383004154105,4.66104470095 +65.4,-1.35879367808,5.2517402584 +65.5,-0.629082983007,5.00496233314 +65.6,-2.19293243331,0.743066007568 +65.7,-1.98638949846,1.73077089333 +65.8,-0.815601863022,1.63706608244 +65.9,-1.47848501937,1.78041092407 +66.0,-2.12160735856,0.56323097704 +66.1,-1.18066046738,0.549941704271 +66.2,0.924639190514,1.80294587918 +66.3,-0.128129128516,1.10732755806 +66.4,1.32761045349,0.549927584107 +66.5,3.07472219489,0.495224869339 +66.6,2.23370124819,0.354241965389 +66.7,0.927215570627,1.22381420948 +66.8,-1.09598246717,1.45621448876 +66.9,0.380679841868,2.15199723322 +67.0,0.682404626585,12.7572185788 +67.1,0.813573603195,12.0918723309 +67.2,2.08399272971,20.9303188179 +67.3,1.94638978707,7.44213206162 +67.4,1.37124577883,5.1152491492 +67.5,-0.490333081392,12.9699513072 +67.6,0.0535071127765,29.2952363946 +67.7,0.99957490318,33.6828212385 +67.8,0.456113613175,5.83453259994 +67.9,1.50007634253,4.99833814721 +68.0,1.26972386925,1.26061628223 +68.1,3.85538402415,5.09800736946 +68.2,3.41076324731,1.03736393236 +68.3,2.86458730531,4.43582207273 +68.4,1.26039585005,4.11822486457 +68.5,0.659021864037,4.6306368898 +68.6,2.38140632894,3.17772667993 +68.7,1.66629281242,1.37589010757 +68.8,1.08276052432,9.27674161772 +68.9,0.144446691988,0.508227675114 +69.0,-1.95261289728,0.529588009211 +69.1,-2.4983802763,0.721438905254 +69.2,-1.11631855854,0.100714467119 +69.3,-1.56679534654,0.333802452617 +69.4,-3.12305284641,0.570783221997 +69.5,-2.2869403289,0.528347997083 +69.6,-1.8781279473,1.62643232768 +69.7,-0.17303533765,0.224949359301 +69.8,-0.574970705702,0.234818032645 +69.9,0.806711997664,0.61964000534 +70.0,0.157911397467,0.388764492151 +70.1,1.74953845504,0.349539777045 +70.2,-0.901140733891,0.69711668814 +70.3,-0.00665114964135,1.18398325406 +70.4,-0.974608816752,0.917361380974 +70.5,-2.51070637347,0.85482397631 +70.6,-1.26196973732,0.578428936969 +70.7,-0.67412758434,0.187532152046 +70.8,-0.850365351674,0.110727037551 +70.9,-0.0855689967874,0.514240261859 +71.0,-2.03080338164,0.463857597358 +71.1,-2.69019799158,0.444841466304 +71.2,-3.22488591626,1.90893732661 +71.3,-0.724284774492,0.559640918859 +71.4,-2.72553427515,0.860773632518 +71.5,-2.82724276963,0.580791309839 +71.6,-1.54078732147,0.319672581723 +71.7,-1.93009971339,1.04389181567 +71.8,-2.33284112428,1.0652431445 +71.9,0.847013665358,1.41459043929 +72.0,-0.352334880419,2.90749695313 +72.1,-0.794902928471,11.5470440461 +72.2,-0.658115073311,1.88316838087 +72.3,-0.846324445373,0.847778069119 +72.4,-1.99589186674,1.2797502381 +72.5,-1.70825549915,1.44524705897 +72.6,-2.51959764664,1.37448970698 +72.7,-1.73225223094,1.26912066291 +72.8,-2.66770497347,0.871845113182 +72.9,-1.94003785697,0.0627903801582 +73.0,-2.8448705467,0.186429246874 +73.1,-3.07891343267,0.832002164967 +73.2,-2.36732870312,2.73173699397 +73.3,-0.599860913847,0.199654634291 +73.4,1.21355522931,0.237816049936 +73.5,2.72748718619,0.520475109176 +73.6,1.07344640297,1.02990434132 +73.7,1.33220008367,0.701716757164 +73.8,1.4589175982,1.56814335572 +73.9,0.65233618528,1.30623609436 +74.0,0.565546636726,0.185770816672 +74.1,1.9177935111,1.36106173494 +74.2,1.09929510276,1.58369450198 +74.3,-0.112265054254,2.22165207795 +74.4,1.43508662732,1.24614710957 +74.5,0.700647717011,2.08603081691 +74.6,-0.464913663645,0.771388907413 +74.7,-1.67054435099,0.333592707325 +74.8,-0.775913356527,0.623835485767 +74.9,-1.19529367379,0.20557688185 +75.0,2.1504830072,0.385802246634 +75.1,-0.408521381731,0.182192512646 +75.2,1.22607757722,0.117543423456 +75.3,0.144460527444,0.627938304086 +75.4,0.764513583449,1.6108059422 +75.5,1.06737332556,2.55960629529 +75.6,-0.0572393384872,3.23937339623 +75.7,-0.944259911018,3.73697018942 +75.8,-3.15720983213,5.57914659606 +75.9,-0.604907365155,2.69291534192 +76.0,-0.897204674601,1.72800633306 +76.1,1.25846125119,0.966582650192 +76.2,1.55749021797,2.58011917016 +76.3,1.2315202525,2.36921057107 +76.4,0.0590057614184,1.06822673699 +76.5,-1.7004290099,7.4779491456 +76.6,-3.49124180637,8.95380182102 +76.7,-0.872831320928,3.29331349101 +76.8,-2.24813937352,1.04867002075 +76.9,-1.80513193303,0.0656670475071 +77.0,-1.97123878098,1.16965107837 +77.1,-2.70516991311,0.0870417708177 +77.2,-0.493651083568,0.30153087939 +77.3,-0.958654179858,0.164015772195 +77.4,-1.54125721477,0.542866618351 +77.5,-2.73358218796,0.506292594282 +77.6,-2.40865279193,0.543934417348 +77.7,-3.67169318252,4.98669973383 +77.8,-2.20689092997,3.95463678535 +77.9,-1.97289416757,1.10544378677 +78.0,0.464885679769,4.37619825977 +78.1,-0.267173283639,1.26810468254 +78.2,-0.700469454925,1.23029812986 +78.3,-1.08472532221,7.10347525405 +78.4,-0.599637937925,1.48193122755 +78.5,-0.667465550591,0.678705078154 +78.6,0.212535199168,0.972767799978 +78.7,-0.441312654048,0.436518768059 +78.8,1.2112638735,1.01496338342 +78.9,1.57170826349,0.406266677207 +79.0,1.84010629962,0.291514432338 +79.1,2.53446581005,0.0630213553865 +79.2,0.25099423708,0.0814656099952 +79.3,1.90775950573,0.452384875146 +79.4,0.441860421206,0.101108333785 +79.5,0.700821581536,0.205101609532 +79.6,0.93029991617,0.102333624896 +79.7,-1.81334520958,0.164299127177 +79.8,-3.06766701359,0.0602489726093 +79.9,-4.3226271553,0.0120189896574 +80.0,-3.60134620445,0.313689884092 +80.1,-4.21959175453,0.0642083204098 +80.2,-2.3462126971,0.259989729397 +80.3,0.229930562313,0.0178156975973 +80.4,2.23656897651,0.327953954657 +80.5,0.384399800702,0.190540831213 +80.6,2.0518617893,0.63991186395 +80.7,0.504061575707,0.0596373591724 +80.8,-0.268778579067,0.202842944323 +80.9,-1.61885217201,0.146104809325 +81.0,-1.64378168138,0.238863258938 +81.1,-1.6186680621,0.0617950615805 +81.2,-0.784631946887,0.0744818440844 +81.3,-1.16138764371,0.0245148984216 +81.4,-1.2925160168,0.0728800382527 +81.5,0.526760308255,0.0162143699077 +81.6,-0.601341732578,0.182996986982 +81.7,-1.91126143835,0.165537234971 +81.8,-0.51102231166,0.0409369980691 +81.9,0.618641505653,0.099993688159 +82.0,-0.61298438618,0.0638460532597 +82.1,0.0292140374044,0.13248146277 +82.2,1.07047833045,0.169941692326 +82.3,-0.920827650877,0.584626322916 +82.4,0.45115505575,0.123984987648 +82.5,1.07405380339,0.0851511764663 +82.6,0.169214407733,0.064381398054 +82.7,-1.27011281466,0.0527307224595 +82.8,-0.618309660237,0.122954999302 +82.9,0.328326528153,0.258215397317 +83.0,-0.641393764466,0.284649352261 +83.1,-1.46910187115,0.750843824764 +83.2,-0.0678972013917,1.15607064657 +83.3,1.47289829879,0.250031929649 +83.4,1.3753788733,0.225875561926 +83.5,1.13008977881,0.323473320038 +83.6,1.27494364448,1.59691046907 +83.7,0.130720887949,2.01774379618 +83.8,0.313509087632,2.20168036908 +83.9,1.59736368083,3.3492373236 +84.0,2.7478560944,90.303840827 +84.1,1.80755764212,29.1938361826 +84.2,0.998371537601,29.4221299581 +84.3,0.67581923797,54.769226139 +84.4,1.74056951576,40.2157132653 +84.5,1.26458864574,36.1263775341 +84.6,0.532584721624,12.6581608489 +84.7,1.13979215167,42.5753033591 +84.8,1.05514570697,2.57456158835 +84.9,0.933012318535,2.63525414926 +85.0,-0.730361977718,5.87293694923 +85.1,-0.672881585512,3.594601992 +85.2,-3.37061943592,1.01745271898 +85.3,-3.81581762049,0.59910784432 +85.4,-3.1487931477,0.753867178339 +85.5,-3.5769989158,3.91127941365 +85.6,-3.01889226111,13.4027258734 +85.7,-1.8328050562,14.9882232738 +85.8,-2.27345342927,10.3457279396 +85.9,0.268898735975,2.30269318881 +86.0,0.440258456129,2.28511060457 +86.1,-1.3720735122,3.31288861969 +86.2,-2.10027876491,7.53728826269 +86.3,-1.35879930309,4.74677394801 +86.4,-1.75922949746,1.44565733148 +86.5,-1.15522331552,1.2245165847 +86.6,-0.68994344299,0.628733383644 +86.7,-1.30517988119,0.612514909749 +86.8,0.20683700045,0.427610025371 +86.9,-1.92599832599,0.788143073853 +87.0,-1.98406230513,4.07749593232 +87.1,-2.95758826031,3.33188054537 +87.2,-2.89958999984,1.92262320116 +87.3,-4.40670396938,0.757210275525 +87.4,-2.36158298519,0.491633833741 +87.5,-2.12570232414,4.97328727994 +87.6,-1.97174917043,7.84095253421 +87.7,-3.13110745065,0.384306233988 +87.8,-1.5650999271,0.49955134921 +87.9,-1.38583309353,0.113530897395 +88.0,-2.10608683846,0.301767698991 +88.1,-0.685325197412,0.304225664763 +88.2,1.0040119429,0.847922789135 +88.3,1.36478962777,1.52577646673 +88.4,0.172202473027,1.39430264319 +88.5,0.318306905745,0.640389410074 +88.6,-0.934838203004,1.2605927333 +88.7,-1.36027901519,0.86491452479 +88.8,-1.18761820408,0.289097556037 +88.9,0.337918625423,1.45979480719 +89.0,1.69844735002,0.325541253558 +89.1,3.52436021801,2.70763358856 +89.2,4.16908656239,5.46228973887 +89.3,4.26736875714,0.603057598172 +89.4,3.94083783005,1.13027444892 +89.5,3.68557540111,3.87855845856 +89.6,2.84601360546,2.3188743272 +89.7,1.49716652123,12.5660788614 +89.8,1.05439462445,0.922794438114 +89.9,1.8207758868,4.11889718059 +90.0,1.23620297259,12.3425013227 +90.1,0.188912071854,1.93019340488 +90.2,-0.568329151224,4.29308998378 +90.3,-0.445826806526,1.2475347145 +90.4,-1.45667143384,1.95553828186 +90.5,-1.9249570048,1.58235123001 +90.6,-3.04015192554,1.6312363024 +90.7,-2.70844154964,2.23938197707 +90.8,-1.9720089883,1.61974135286 +90.9,-0.701851614477,4.1556700535 +91.0,-1.75254732759,3.914525277 +91.1,-2.56149152635,1.06809666071 +91.2,-1.72844770255,0.633982423411 +91.3,-0.858460229399,0.936986446167 +91.4,-1.79307008134,0.324864836598 +91.5,1.03455331261,1.2324967307 +91.6,-1.15232749227,1.20955627193 +91.7,-1.15520404541,0.137946906214 +91.8,1.21227250412,0.164664952614 +91.9,1.46290212457,0.234175404136 +92.0,1.54782689184,1.30744818502 +92.1,2.60130145791,0.373324650341 +92.2,3.72458545015,0.607655457132 +92.3,1.80258415458,0.12235125887 +92.4,1.74662861614,0.283043875673 +92.5,1.98679121357,0.216704883705 +92.6,3.03978586147,0.972561954482 +92.7,0.925917189287,1.75386347684 +92.8,1.70457729279,1.64918350714 +92.9,1.80672756925,0.639245407448 +93.0,-0.350228496509,0.142389116255 +93.1,-0.921709573206,0.292064556188 +93.2,0.672216090904,1.56623744275 +93.3,-0.622408178335,3.45897779444 +93.4,-0.489523179524,4.44541933068 +93.5,-1.50013252189,0.17211586697 +93.6,-2.37536317106,0.268313597706 +93.7,-2.13231590241,0.0691129440674 +93.8,-0.579830050105,0.0160831608477 +93.9,0.307727608266,0.0463972738629 +94.0,-0.831872329221,0.039257070668 +94.1,-0.683737023805,0.0154326010839 +94.2,0.431762730123,0.0246572369409 +94.3,0.509188217519,0.0249193131817 +94.4,0.710613385662,0.154457620954 +94.5,0.669907230979,0.0221007913016 +94.6,-0.405750446747,0.0977779504524 +94.7,1.72733250858,0.107217324299 +94.8,0.856473541759,0.221798500149 +94.9,0.068073662971,0.0505829857339 +95.0,-2.6245490468,0.385947628309 +95.1,-0.411130206052,1.05695302251 +95.2,0.348730733722,0.8576803709 +95.3,-0.719874106932,1.26986345666 +95.4,0.330027790334,0.652119596434 +95.5,-2.06401944453,0.989701798488 +95.6,0.181307875673,0.485356219322 +95.7,-0.517614263432,0.893598540113 +95.8,0.983705009605,0.0993187230234 +95.9,1.6328976907,0.430404372455 +96.0,1.87096550961,0.190742947817 +96.1,0.341239683973,0.203012634632 +96.2,-0.829205546672,1.01306972527 +96.3,-0.50904633726,0.168581903115 +96.4,-1.3622977261,0.275230139053 +96.5,1.01848749121,0.0586674696171 +96.6,-0.731024170831,0.037935155146 +96.7,1.72193447768,0.198465412072 +96.8,-0.422745238883,1.72983124471 +96.9,0.398807325628,0.45816050692 +97.0,-0.567704127283,1.41184138686 +97.1,-1.6883787591,0.438359946769 +97.2,-1.59524168548,1.99370183549 +97.3,-1.82518191773,0.289515302274 +97.4,-2.1350273765,0.856345466995 +97.5,-1.26724271932,0.703368563398 +97.6,-2.35550752569,1.85473940016 +97.7,-0.802835385082,1.63443056906 +97.8,0.953518988371,3.03854532679 +97.9,0.978797465676,14.2859552887 +98.0,1.51272098388,7.05202657152 +98.1,1.18176638589,12.6314914082 +98.2,1.664786331,13.1985096567 +98.3,1.00693268726,27.7003501139 +98.4,1.73069600819,2.18320555753 +98.5,1.28506137846,2.94596968387 +98.6,2.80925422667,5.32992848347 +98.7,2.68459424365,4.41252895341 +98.8,2.9738631713,1.46599284414 +98.9,3.41102675367,2.05846145831 +99.0,2.06182612733,2.44044539436 +99.1,-0.581908795445,22.0890757999 +99.2,0.556714836729,4.04878347337 +99.3,0.0201081372333,10.6580271968 +99.4,0.459447564354,52.4308458227 +99.5,-1.82975556174,21.2268536733 +99.6,-0.63155150389,101.935390722 +99.7,-1.0436837073,140.128783978 +99.8,-0.902344463959,32.705628905 +99.9,-0.825566433009,145.545504305 diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/CustomTransformer/samples_1.csv b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/CustomTransformer/samples_1.csv new file mode 100644 index 0000000000..1552092027 --- /dev/null +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/CustomTransformer/samples_1.csv @@ -0,0 +1,1001 @@ +seconds,signal0,signal1 +0.0,-1.4550430789,4.14159504275 +0.1,-1.06859865753,1.61517639605 +0.2,1.179947312,1.613810402 +0.3,1.58349951202,0.984881427733 +0.4,3.30019953153,4.12716499762 +0.5,2.59823214606,1.20374528177 +0.6,2.74794740306,1.80205276928 +0.7,0.937317623794,9.51979945911 +0.8,-0.119800716858,18.6960217118 +0.9,0.486280376067,29.7493362505 +1.0,0.0103955352349,5.30649490903 +1.1,0.571330027765,16.2422273363 +1.2,0.43987025605,0.803844521176 +1.3,2.78602690977,2.67679831783 +1.4,0.938432851082,1.59081515907 +1.5,1.49890783663,1.07503126759 +1.6,1.04870990476,0.963781231193 +1.7,1.03303349084,0.73064308822 +1.8,2.10549341054,1.46905864361 +1.9,1.28147310885,1.65203117944 +2.0,2.30963022178,1.31282477704 +2.1,2.74449769343,0.615960292665 +2.2,2.19948523022,0.0796830294516 +2.3,1.32232740202,0.0603189653926 +2.4,0.98488588503,0.208676500892 +2.5,-2.42657200197,0.774056847865 +2.6,-1.46050585033,0.0567906629634 +2.7,-1.91281868977,1.16932452769 +2.8,-0.225456293126,1.24447485266 +2.9,-0.0345300624457,1.38864524672 +3.0,0.998218769015,0.182306118245 +3.1,0.135029730731,0.719108236388 +3.2,0.837123681951,1.89083036834 +3.3,0.405203710104,0.665172548837 +3.4,-0.626841226444,4.86849639291 +3.5,-2.03298226824,5.41033441337 +3.6,-2.83590513365,26.0080526147 +3.7,-3.35622776505,16.5168762719 +3.8,-3.5127351275,1.64286242913 +3.9,-3.73761759798,2.13617048633 +4.0,-2.49674164317,0.259297717646 +4.1,-1.43633225825,0.734867473907 +4.2,-1.42431455936,0.905725839495 +4.3,-2.57025765228,1.81187544828 +4.4,-2.01348780808,1.97184889859 +4.5,-1.97659897834,1.95725626895 +4.6,-3.12057553566,2.08356379555 +4.7,-2.63820075034,1.93106971785 +4.8,-2.0423126954,6.84974196269 +4.9,-1.80369435961,13.3042531506 +5.0,2.11392051332,15.7063909184 +5.1,1.47296600381,16.3181295052 +5.2,1.40597802721,12.1800883114 +5.3,1.13401723928,2.65240845533 +5.4,1.78766340247,1.34049109929 +5.5,1.61764310979,9.85227126815 +5.6,1.81178153728,5.22232817397 +5.7,1.39317934821,5.74911599391 +5.8,2.82033754499,24.58695171 +5.9,2.87522377525,1.35875538807 +6.0,4.22248494366,8.58111968241 +6.1,4.01622808839,13.3952608254 +6.2,3.07748609509,2.25573758292 +6.3,1.95159165084,12.2279113573 +6.4,0.960782128135,1.94218703917 +6.5,1.0015853908,7.36672185328 +6.6,1.42772583044,2.79234401503 +6.7,1.09551579844,2.17342517466 +6.8,3.03898675728,26.0377934371 +6.9,1.83265900053,33.8206637527 +7.0,2.28813221561,35.2924984452 +7.1,0.978033420339,12.2197271986 +7.2,1.14257513887,17.3496717934 +7.3,-0.165043259671,1.37395630418 +7.4,0.303666176332,4.62215521232 +7.5,-0.454469253572,5.89111534416 +7.6,0.343168951401,16.0223381781 +7.7,-0.464242875136,7.03167180203 +7.8,-0.476789801572,11.773644166 +7.9,0.349514109647,45.3182669164 +8.0,1.04414493152,12.087361235 +8.1,2.1968394155,41.6837992185 +8.2,-0.337787526734,127.480791444 +8.3,-1.34262313519,11.5759879955 +8.4,-1.28191234204,26.1539805794 +8.5,1.39292204449,2.57447439989 +8.6,0.376970206172,3.22020329412 +8.7,-0.908866477519,1.44076932388 +8.8,-1.13484065592,0.867479060048 +8.9,-0.673437885591,2.14472408278 +9.0,0.880444574581,2.30205442744 +9.1,2.99521935309,2.64583071748 +9.2,1.33297166935,0.263249602978 +9.3,0.811747316961,0.239214985159 +9.4,-0.985146793493,0.47425871945 +9.5,-2.40326349861,1.6087373848 +9.6,-3.11285434785,0.677045067269 +9.7,-2.80511288702,6.21620400912 +9.8,-2.8134931598,1.02586261504 +9.9,-2.49769761559,1.65234258583 +10.0,-1.99008224971,3.86483021349 +10.1,-1.43282692161,11.1861993123 +10.2,1.53462636818,11.1903097356 +10.3,1.21800085305,2.57214865949 +10.4,1.39678510332,8.21501451964 +10.5,0.215688242019,10.5935101794 +10.6,1.07063667291,0.669501257939 +10.7,-0.968499798412,1.56761582426 +10.8,-1.32613851608,4.96182185926 +10.9,0.666767354991,7.28229470743 +11.0,2.15147304159,1.27731455778 +11.1,0.552213903808,1.11408866678 +11.2,1.40523018486,1.10340040033 +11.3,1.70747290078,13.6627865292 +11.4,1.25448833662,2.41462320623 +11.5,1.13877960758,10.1784432736 +11.6,-0.0499727769588,1.67197515131 +11.7,2.11865197022,9.24386779556 +11.8,3.02328248539,6.18617594144 +11.9,-0.156859722671,10.6093337261 +12.0,-0.437098964814,3.56320472974 +12.1,-1.75772570674,2.79455442505 +12.2,-2.09951522735,0.960510334277 +12.3,0.082175284953,1.447698151 +12.4,0.298151064218,3.52008004267 +12.5,-1.17553596891,1.21481870592 +12.6,0.632799640087,1.13465176519 +12.7,1.30667002799,2.01815419375 +12.8,-0.508902555381,1.84912454398 +12.9,0.595510683516,2.69753695619 +13.0,0.124056672321,10.3724963871 +13.1,0.452212226337,10.4749713709 +13.2,0.581609801096,13.398627555 +13.3,1.90078555947,5.70311177436 +13.4,1.20820075359,3.02318890863 +13.5,1.10133340503,2.79991801072 +13.6,1.32868148359,2.68940900087 +13.7,0.120002128483,2.0671372853 +13.8,-1.35550168787,3.4677694315 +13.9,-2.05236160796,2.8704416691 +14.0,-0.917745495868,11.8799269936 +14.1,-1.45081947244,3.73344897336 +14.2,-2.67832116215,0.591063492736 +14.3,-0.964173414971,1.5901030681 +14.4,-0.683840851544,0.342750230326 +14.5,-0.457193493848,0.363375017729 +14.6,0.013864100688,0.313240700184 +14.7,1.09595892021,0.281748198503 +14.8,1.01946152203,0.110878147654 +14.9,1.64294895872,0.0652990945165 +15.0,-0.139755208819,0.0809656465382 +15.1,-1.06575760678,0.0740325732663 +15.2,-0.720704915711,0.0887930963168 +15.3,1.43575753947,0.40629064758 +15.4,1.77987443489,0.973498822759 +15.5,0.935507369786,0.365729782511 +15.6,0.777506276025,0.649983766591 +15.7,-0.463509170089,1.60254531697 +15.8,0.587341060603,2.94135377606 +15.9,0.699553953909,0.404910332387 +16.0,-0.860233248975,0.523999430603 +16.1,-1.53960333714,1.22633147823 +16.2,-0.647481905718,0.288104391191 +16.3,-1.05854468363,0.542274870915 +16.4,-1.73464023198,0.243364311699 +16.5,-2.9257400392,0.109840215615 +16.6,-3.5711341048,1.46808499656 +16.7,-2.94327041041,0.186270889861 +16.8,-3.13516810466,1.99225296167 +16.9,-2.06892829456,0.637323033342 +17.0,-3.12171364026,1.07863877555 +17.1,-1.51645511295,0.799962808434 +17.2,-1.21009731255,0.110613939297 +17.3,-0.139747598938,0.0969017865091 +17.4,-0.331592541291,0.171094911167 +17.5,0.587197767243,0.207968084428 +17.6,0.23321210222,0.0780521471625 +17.7,-0.257880961162,0.0632981941844 +17.8,-1.31969227435,0.308805398674 +17.9,-0.0211840055834,0.448118777302 +18.0,0.754810054149,0.187078625441 +18.1,-0.572667772002,0.224041818973 +18.2,1.67847897705,1.71897379194 +18.3,0.30814529004,0.507411354364 +18.4,0.251795429445,2.16427758789 +18.5,1.22597547239,0.262625476726 +18.6,-0.669742785086,0.571947971276 +18.7,0.792259964505,1.44485553668 +18.8,1.14340898387,0.858951357532 +18.9,-0.391284670573,4.7791983021 +19.0,1.21689626651,8.61237158846 +19.1,-1.31502689435,1.76781827883 +19.2,0.271106787328,4.93268548081 +19.3,-1.10277707482,14.2324593 +19.4,-0.935134078621,16.1093118982 +19.5,1.96654940317,2.38617439186 +19.6,0.905505900636,11.2478938165 +19.7,1.40548576573,5.34546128917 +19.8,0.39551421786,0.794588899739 +19.9,1.34322593443,4.95900535556 +20.0,2.19732455939,0.469602439398 +20.1,4.26577607043,0.8187264971 +20.2,4.26782927136,1.45775462092 +20.3,3.30881400758,0.420078542016 +20.4,3.1101016234,0.193744386392 +20.5,-0.501473640817,0.300900918973 +20.6,-0.916699676439,0.254530641034 +20.7,-1.85007780994,0.323425584617 +20.8,-2.79428692152,0.297806305984 +20.9,-2.63231190152,0.902898520794 +21.0,-1.43034365579,0.290994489327 +21.1,-2.41585450229,0.0567949696052 +21.2,-3.55153881304,0.285856025324 +21.3,-2.5924688528,1.17385150117 +21.4,-2.7240712368,0.683238812348 +21.5,1.04911592668,0.598548724225 +21.6,-1.46026038835,1.33008953668 +21.7,-1.39123003877,0.360673698271 +21.8,0.761632981581,2.1169534076 +21.9,0.758619004781,8.39858462528 +22.0,1.41757536078,1.02999516433 +22.1,0.414137689057,0.568950994889 +22.2,1.92196618131,0.696362026332 +22.3,-0.842658692568,0.587938513526 +22.4,0.733962848933,0.418104829229 +22.5,1.49934770752,1.12347702319 +22.6,2.10427029614,0.568876891591 +22.7,0.949963695407,0.657900358629 +22.8,-0.814999274067,5.11057384779 +22.9,-1.06940821247,2.25829969969 +23.0,-0.488853104186,5.7682757151 +23.1,-1.25560827347,17.8989144097 +23.2,-2.32081177377,6.89087220526 +23.3,-2.06407302876,5.03630698968 +23.4,-1.07107047669,0.674155529517 +23.5,-1.09509905364,1.42283905904 +23.6,-0.173735239746,0.729037947237 +23.7,0.556269238611,0.396906619097 +23.8,-0.91072441507,0.133012045714 +23.9,-0.124930595992,0.0497654363454 +24.0,-0.569893868566,0.14138843859 +24.1,-1.06760730747,0.0128037478718 +24.2,0.733422469967,0.00955863678124 +24.3,0.149190313373,0.0131790643828 +24.4,0.105388437055,0.0137245221148 +24.5,1.73166980852,0.0318233923743 +24.6,2.97341534965,0.0776768732376 +24.7,2.46227913977,0.184949826384 +24.8,2.94762512335,0.0725783231538 +24.9,1.66166760695,0.327056030581 +25.0,0.120648435512,0.276815861207 +25.1,-0.561999931145,2.65074204675 +25.2,0.889280908084,0.84862663402 +25.3,-0.447101679017,0.680201872831 +25.4,0.461685767864,0.214027896478 +25.5,-0.572140342094,1.83555692385 +25.6,-0.7851772875,1.49903101433 +25.7,2.20068510747,12.8711402843 +25.8,3.43579704213,2.03983457372 +25.9,4.16413785011,10.7681007057 +26.0,3.44247538,4.60955452962 +26.1,2.33794098807,3.75330981976 +26.2,2.43753973572,4.94795186234 +26.3,2.58366137869,1.4381935396 +26.4,2.23836349132,25.4663774449 +26.5,1.99923452462,2.12299051506 +26.6,1.46793628993,1.09517776465 +26.7,1.69830336943,0.616736353748 +26.8,1.76494106274,4.94451600231 +26.9,0.991963367332,0.355936584298 +27.0,0.663446526586,1.51088311199 +27.1,0.168440605525,0.786065833817 +27.2,0.967355518904,0.680557284662 +27.3,2.30922645028,0.873482360089 +27.4,1.48739034484,3.16143035174 +27.5,1.64793555963,0.468016260798 +27.6,-1.16973961118,1.18800139394 +27.7,-1.32461828065,0.41806639693 +27.8,-1.64970168112,0.553030407893 +27.9,-1.35027625934,0.149591734865 +28.0,0.0761115245872,0.0637585021733 +28.1,1.66016085244,0.0443265566129 +28.2,3.25237856235,0.105374336524 +28.3,2.58114353951,0.116526925869 +28.4,0.562998910041,0.0430820613207 +28.5,0.776178352524,0.03523642018 +28.6,0.159854380112,0.0509380505173 +28.7,-0.970014382562,0.0750913027347 +28.8,0.266693899187,0.1108035398 +28.9,0.279357175917,0.267285809758 +29.0,-1.25783648265,0.134569577547 +29.1,0.176349609774,0.0509863836415 +29.2,1.01805731504,0.0759347470766 +29.3,-0.7702619013,0.129727221129 +29.4,-1.67929528924,0.0788938558468 +29.5,-2.68228860222,0.023911936802 +29.6,-1.92983026298,0.02743485479 +29.7,-1.59766532448,0.00964647705154 +29.8,0.430844677117,0.024086009067 +29.9,-1.85025088842,0.048864264015 +30.0,0.646407314369,0.430368873427 +30.1,1.00411724168,0.0592688939225 +30.2,1.08803972918,0.056375364406 +30.3,0.464216755754,0.346801143185 +30.4,-1.05246724565,0.292426050747 +30.5,-0.370616073047,0.134355344863 +30.6,-1.06871834744,0.13977565662 +30.7,-1.39906714034,0.227049667359 +30.8,-1.155279858,0.162042352602 +30.9,0.573125122966,0.0650720408239 +31.0,-1.09832050459,0.185315837021 +31.1,-1.35677138245,0.492489751105 +31.2,-0.28669820474,1.0115993905 +31.3,-1.7311659538,0.100452127557 +31.4,-1.35103298644,0.0458186526192 +31.5,-1.51100379996,1.85676843757 +31.6,-1.48975418318,0.338772589673 +31.7,-2.79198106834,0.24952682607 +31.8,-1.56417804861,0.726124905002 +31.9,-2.27776416346,0.29889133303 +32.0,-1.6338064369,1.68442207658 +32.1,-1.01346929929,0.914293288226 +32.2,0.369920075596,1.93390202585 +32.3,1.31437994455,0.182452053572 +32.4,-0.384737225647,0.963834250559 +32.5,-1.03938678271,0.0319377669364 +32.6,1.25942616185,0.20041352113 +32.7,1.41446859776,0.712614085429 +32.8,1.86385342273,0.683309009282 +32.9,0.632638691194,3.27863908203 +33.0,0.52179202873,0.586732583106 +33.1,0.0687810699893,1.75201556578 +33.2,1.66972501703,0.0774532918901 +33.3,1.44908382477,0.147540157246 +33.4,2.13432045827,0.249397638005 +33.5,0.266645731425,0.0837348165354 +33.6,-0.308949500181,1.46241547232 +33.7,-0.0708125212916,1.59583501381 +33.8,-1.14751003062,1.83092694515 +33.9,-1.72976716759,0.642289798077 +34.0,-2.84586620638,4.22327597654 +34.1,-1.95373980658,0.277657998752 +34.2,-1.2083585761,0.399076703471 +34.3,-0.447389134627,0.182926010388 +34.4,1.44755625719,0.101099910013 +34.5,-0.348082672901,0.433198088456 +34.6,-0.798227001466,0.444773760641 +34.7,-2.81255959151,0.83429076901 +34.8,-1.04790988257,2.65957861165 +34.9,-3.04345703875,1.06155045901 +35.0,-1.80833402555,0.606665002356 +35.1,-1.82607513201,0.124963499209 +35.2,-2.52022780695,0.0826573578876 +35.3,-0.746061624415,0.391756771766 +35.4,0.778306284079,0.393721339911 +35.5,-0.0460465385289,0.247808853283 +35.6,-0.0621220843855,0.0592103827979 +35.7,3.11434716245,0.0701529162821 +35.8,2.24477760942,0.238659984521 +35.9,1.11644617874,0.0750408558107 +36.0,2.26825726865,0.31817581792 +36.1,0.154208777128,0.220188665789 +36.2,1.10808236235,0.449030701652 +36.3,-2.33238284696,1.2783654309 +36.4,-2.32288070691,0.297533010593 +36.5,-2.54884188215,5.22741197456 +36.6,0.13511613443,0.565256599387 +36.7,0.221158299262,0.0502782611422 +36.8,1.76174690274,0.209294704787 +36.9,0.0439476938918,0.288564066261 +37.0,0.126701029797,0.189052746499 +37.1,1.32892539211,0.569899549894 +37.2,0.136414488979,1.30872667154 +37.3,-0.488585819394,1.85417704545 +37.4,0.740940413784,1.20882149586 +37.5,1.5099846939,2.94568190479 +37.6,1.00279607803,0.352717068558 +37.7,-2.43427809151,3.82498339833 +37.8,-2.12045889606,1.06982526612 +37.9,-2.69012388363,16.1043686949 +38.0,-1.22369758556,1.1095284983 +38.1,-0.948896060947,3.00068916724 +38.2,-0.310122400481,1.8028248379 +38.3,0.619259411183,2.47744015408 +38.4,-0.59396899348,5.15285701137 +38.5,-1.32522956717,2.25364698405 +38.6,-0.901773519262,1.93873379259 +38.7,-0.295720371401,0.704480265808 +38.8,-1.88973781795,0.268570115626 +38.9,-0.467444972156,0.217644910395 +39.0,-0.576556799546,0.19204169415 +39.1,0.411688630941,0.741168809189 +39.2,0.455940651911,0.763250739139 +39.3,1.32094869208,3.59478895217 +39.4,1.81595536415,1.07841274233 +39.5,1.1856629284,0.926882905327 +39.6,1.13935392263,0.627370982151 +39.7,-0.201261049591,0.649965018759 +39.8,-2.10725111429,0.562940513822 +39.9,-0.0440232802491,0.668630400974 +40.0,2.46279459765,0.410804349533 +40.1,2.24594522026,1.19472516834 +40.2,1.36688539193,0.52026983882 +40.3,1.71082403419,0.296237096525 +40.4,0.693132314374,1.9907677714 +40.5,2.61560562892,4.32628205173 +40.6,2.74310622166,0.98848509019 +40.7,2.83241042528,1.57325666335 +40.8,0.53430693619,0.994288164959 +40.9,3.17867709059,0.0564617370153 +41.0,0.585185405898,0.059020985853 +41.1,2.08814422712,0.0930091200383 +41.2,0.509190851255,0.0601459197258 +41.3,-0.367836828632,0.281247465382 +41.4,-0.306864447596,0.130368275567 +41.5,0.939626293369,0.341313156078 +41.6,0.816548889506,0.109780511549 +41.7,-0.577276922107,0.202395811095 +41.8,-1.35081787897,0.24904831587 +41.9,-1.70523024892,1.51770833311 +42.0,-2.64373381107,0.574653540961 +42.1,-3.39934053566,2.57917659824 +42.2,-4.53331714909,3.53102070186 +42.3,-4.52682983179,18.842214248 +42.4,-4.49631186447,2.4763924883 +42.5,-4.09446316977,1.27600550682 +42.6,-3.87643868078,3.57853814147 +42.7,-3.09618730977,5.5545789626 +42.8,-2.32628787685,15.1549949343 +42.9,-2.29946822638,6.17999607945 +43.0,-1.91135835501,26.2687529737 +43.1,-2.27570069042,7.93484928572 +43.2,-4.02081304632,4.3025361329 +43.3,-3.41809877359,4.24877663728 +43.4,-2.61799988064,5.26878183088 +43.5,-2.53867617107,1.90525299947 +43.6,-2.41588042033,14.5154928223 +43.7,-1.05252153121,7.9930313967 +43.8,-1.07534845936,1.56515516955 +43.9,0.688459708096,3.75810616793 +44.0,0.834005659944,2.82177140058 +44.1,1.92294231768,22.1875283613 +44.2,2.27633579773,24.4930076978 +44.3,0.758293867477,136.249794514 +44.4,2.06485000643,32.3300828716 +44.5,-1.1821368039,3.46699685989 +44.6,-1.32028363862,3.74865706641 +44.7,-1.80958755775,10.9360027584 +44.8,0.358274599667,4.90106368453 +44.9,-1.09540209517,27.1708424941 +45.0,-2.02904677136,2.96521766326 +45.1,-1.2676706575,5.25679333244 +45.2,-2.37729636423,2.82511582527 +45.3,-1.43902638219,1.54425331245 +45.4,-0.353807449066,6.02965023258 +45.5,-1.52830431158,10.6430518724 +45.6,-1.60531245408,9.12545631982 +45.7,-2.45942142819,6.2420635854 +45.8,-3.65992488021,28.9819510142 +45.9,-2.87315015478,15.4440255842 +46.0,-2.13205951976,35.4124913752 +46.1,-1.31577468004,9.24013929495 +46.2,-0.888058358396,18.8534732979 +46.3,-0.699903599403,5.32504783404 +46.4,-1.29137630195,4.04157207162 +46.5,-1.0425802904,8.78899921919 +46.6,-0.906311859034,4.59255743304 +46.7,-1.6590136101,12.3203087707 +46.8,-1.89982484724,10.5096481076 +46.9,-1.57630501222,11.4547905674 +47.0,-1.53301494807,6.06426467472 +47.1,-3.27458298791,8.7078211493 +47.2,-2.06061799847,9.91495359052 +47.3,-0.242685870604,4.80551469731 +47.4,0.178511611705,10.4738194085 +47.5,-1.66461911363,0.450236332952 +47.6,-1.33554079449,2.51288001619 +47.7,-2.42296428613,3.37156490159 +47.8,-3.03010341029,0.0845496884725 +47.9,-3.46708757535,0.107623164284 +48.0,-1.15575487705,0.718405525269 +48.1,-1.93125777713,1.34256457479 +48.2,-0.611000712836,1.04366098139 +48.3,0.281670842795,0.251781870803 +48.4,-0.108694813472,0.356275083198 +48.5,1.17457296802,0.128066342666 +48.6,0.626311140143,0.701163512434 +48.7,0.314840940932,0.735051055156 +48.8,2.38796319503,0.529103529469 +48.9,1.49960248597,0.372988816709 +49.0,0.592123203771,0.524555746413 +49.1,-0.0419922277064,0.878122227333 +49.2,0.794614494248,0.665096678903 +49.3,1.75312067541,3.64138304328 +49.4,2.03651381647,1.04444258039 +49.5,0.859173542698,2.4382166397 +49.6,0.180508479851,3.30056747801 +49.7,-1.64385986539,4.50675693684 +49.8,-0.529445728217,0.608952727415 +49.9,-1.16044093689,0.17614845442 +50.0,0.777367700056,0.319922131738 +50.1,0.879630754979,0.189242223763 +50.2,0.515613346207,2.09038205398 +50.3,-1.3103555493,0.339997718365 +50.4,-1.17279120051,0.193500090196 +50.5,-1.35028359401,0.105705032587 +50.6,-2.33065750068,0.54935971383 +50.7,-1.50648265519,0.223986275517 +50.8,-0.691264251969,0.513100166758 +50.9,-1.45882821511,3.14542780184 +51.0,-1.31108764592,3.81114730787 +51.1,-3.09771426924,2.61778057351 +51.2,-3.0871437801,1.01462613698 +51.3,-3.21345428195,2.96167679595 +51.4,-0.72690562276,4.55793258643 +51.5,-0.652261436324,0.642467541091 +51.6,-3.47156373365,0.643278093188 +51.7,-1.46816424829,0.534241520565 +51.8,-1.31601710526,2.30875577903 +51.9,-0.572710381294,4.76535545578 +52.0,1.0165720947,7.64902564561 +52.1,1.84115986175,1.47513627281 +52.2,-0.512086149609,1.96183557204 +52.3,0.225764622731,0.618812570789 +52.4,-0.088361875139,0.406210508473 +52.5,-1.42995582823,0.225740332648 +52.6,-0.879604715859,0.0614446568786 +52.7,0.771844573405,0.776342196321 +52.8,-0.69164512383,0.0667139234332 +52.9,-0.713711797757,0.619413253269 +53.0,0.719921947286,0.177362999443 +53.1,0.166651028468,0.384220910505 +53.2,1.17410562325,0.603774583375 +53.3,-0.950881462148,2.5607634934 +53.4,-2.32043745151,1.78258769864 +53.5,-2.46765926393,1.75136222927 +53.6,-0.435210768597,3.56088763237 +53.7,-1.27670831287,1.41025843803 +53.8,-0.662975375944,0.736748261321 +53.9,-0.922166660667,1.33834742466 +54.0,-1.96871687804,1.55614333337 +54.1,-0.298764066148,0.878274987582 +54.2,0.158681941999,1.73534643795 +54.3,0.520668717053,1.15928000823 +54.4,-0.995007544347,0.398840758033 +54.5,-1.63909471414,0.273331416326 +54.6,-3.49189742692,0.312537519154 +54.7,-3.79414695993,0.541165960836 +54.8,-1.98351367613,0.341681028071 +54.9,-1.60668360848,0.283422421213 +55.0,-2.43334208858,0.0899525484302 +55.1,-2.69765699786,0.117354319973 +55.2,-0.538140406907,0.866308087252 +55.3,-2.8502387574,2.41255310027 +55.4,-2.98720533744,19.4589852422 +55.5,-1.93170947759,10.8272854598 +55.6,-1.25572487542,6.60968446634 +55.7,-0.922719374783,2.50935880311 +55.8,-0.371950285827,3.44183939964 +55.9,-0.396338287333,10.9734638373 +56.0,-1.03278958852,30.5701219033 +56.1,-0.291509032702,17.6149710072 +56.2,-0.794274414496,31.5233920715 +56.3,-2.08966210339,36.926196645 +56.4,-2.45808031429,8.05272380746 +56.5,-1.74115592611,30.54656045 +56.6,-1.21088953085,89.6339214091 +56.7,-2.35851643651,22.953200867 +56.8,-2.77946869873,15.3055421518 +56.9,-2.16184962923,63.6818923837 +57.0,-2.07910382578,29.4794500651 +57.1,-1.51645838414,4.91115260389 +57.2,-1.23475353202,45.6450260309 +57.3,-1.17071421191,4.83169470801 +57.4,0.115847648006,10.5041406568 +57.5,-0.00111081874224,2.71162689041 +57.6,-0.132450211988,2.83437576649 +57.7,1.10198411545,0.407298521556 +57.8,0.954097823407,0.116364083385 +57.9,1.24656332977,0.152382120908 +58.0,-0.845670282884,0.490372598209 +58.1,-1.21444964328,1.44384489182 +58.2,0.321607207522,1.18094009221 +58.3,1.0490377766,0.209927005105 +58.4,1.32387024081,2.26823078871 +58.5,3.34568687595,0.134503055781 +58.6,3.08051117942,0.780112678456 +58.7,2.57147320289,0.164783063762 +58.8,3.05128698839,0.36088281759 +58.9,2.19201891158,0.201360418011 +59.0,1.90795144649,0.0624205716582 +59.1,-0.398955892347,0.250305276333 +59.2,0.811799122992,0.235284319174 +59.3,-0.414797336499,0.4162652832 +59.4,-0.328924821254,0.219165590354 +59.5,0.172165056869,0.282403348169 +59.6,-0.254751470028,0.341928867562 +59.7,-0.51006040111,0.566960595203 +59.8,-0.490955963945,2.95304283957 +59.9,-0.165493397608,1.0977209623 +60.0,-0.441934623538,1.40843576529 +60.1,-0.637865965956,4.75898563716 +60.2,0.776178547715,2.5517028007 +60.3,0.426043365853,8.50577425331 +60.4,0.652300346781,10.8159517534 +60.5,1.02043554573,31.8179569594 +60.6,0.10812399958,96.2101753797 +60.7,-1.57966444981,36.0459090076 +60.8,0.240983508702,156.267235259 +60.9,-1.46985105359,44.08298535 +61.0,-0.716183843126,15.3288618701 +61.1,0.279178238493,50.630858283 +61.2,-0.216213423087,26.95479365 +61.3,1.79519258135,16.7897107277 +61.4,1.44306142911,101.961081025 +61.5,1.46605273197,14.775313057 +61.6,0.15565741938,6.30583165535 +61.7,-0.849472949166,25.7979339191 +61.8,-0.467272269668,31.9556561843 +61.9,-1.03888933746,5.96205134153 +62.0,1.35810270119,5.12128201775 +62.1,-0.353574676403,1.83220588749 +62.2,0.117921236248,9.13746668671 +62.3,-0.601138117959,2.13502791436 +62.4,0.0741637926596,2.91561435554 +62.5,-0.857969483497,3.29104635366 +62.6,-1.62351366464,4.91380360681 +62.7,-3.59073960673,1.5475545891 +62.8,-1.2521696288,5.75096061997 +62.9,-4.02530969777,0.675017419369 +63.0,-2.35820114569,2.19588522867 +63.1,-0.888614473426,5.33861405934 +63.2,-1.87753351548,6.79554677407 +63.3,-1.33741871565,5.4048704877 +63.4,-1.43732711852,7.97972867092 +63.5,-2.7242126675,2.78407789307 +63.6,-1.41467000195,0.75037970594 +63.7,-0.932547749475,6.29157151094 +63.8,0.382382603918,7.33658422154 +63.9,-1.55744093848,0.627163714622 +64.0,-0.211851194002,5.04510462433 +64.1,1.20234231062,6.01520378027 +64.2,1.52721842119,1.78123918143 +64.3,1.19733652399,1.27278255559 +64.4,0.379250138261,4.37897331869 +64.5,-0.538382192308,1.86205759869 +64.6,-0.0647354426018,1.27992791284 +64.7,2.20466622959,7.48253925051 +64.8,1.45726027768,6.55966805572 +64.9,2.75998486639,13.8944283534 +65.0,2.0280761769,16.3647555717 +65.1,3.18698579138,6.62571761406 +65.2,-0.0262174471395,3.4845525999 +65.3,-0.613810756353,1.9008056787 +65.4,0.517315058309,2.40599258542 +65.5,0.161864237341,0.518198610351 +65.6,1.18813057877,1.42963757975 +65.7,-0.497117681183,4.17912943695 +65.8,1.68387937235,1.86400850659 +65.9,2.48333147091,10.7343978512 +66.0,2.86896745643,6.11041839991 +66.1,2.11311498851,5.05365896625 +66.2,3.12917186186,5.88994478867 +66.3,2.11626783408,0.576171957187 +66.4,2.09139413362,0.552695634149 +66.5,1.56800424672,0.924230565493 +66.6,1.03467446787,1.32133513715 +66.7,0.563409004202,1.80752708673 +66.8,-2.36363091178,0.641510486031 +66.9,-1.57039393675,0.474733513582 +67.0,-2.18352485552,0.242321475974 +67.1,-2.71077360019,0.135364054064 +67.2,-2.88067491122,3.58882833819 +67.3,-1.5323075582,3.667115146 +67.4,0.0648058699293,1.52732967445 +67.5,0.219162152269,6.87973268305 +67.6,1.12346922541,2.94757038013 +67.7,1.01165153612,0.566746769195 +67.8,1.23444842796,0.339816097824 +67.9,1.0482769067,0.289222591509 +68.0,0.48042955792,0.21558292651 +68.1,1.5274554348,0.440108990808 +68.2,0.853491948305,0.375195338234 +68.3,-0.431122552145,0.288353224179 +68.4,-1.41052739707,1.18452028475 +68.5,-1.13999734176,0.340368477657 +68.6,-0.141866661259,0.986953841092 +68.7,1.02685280495,8.22474075834 +68.8,-0.633385620942,4.09195486833 +68.9,-0.797821249616,13.4838373838 +69.0,-1.71332190558,5.93473892077 +69.1,-0.497715235669,4.49330407168 +69.2,-1.87479354642,0.416642766422 +69.3,-2.06387299304,0.388066809755 +69.4,-1.02315753928,0.695646757166 +69.5,-1.94152396306,0.810471655831 +69.6,0.241631852137,1.27652011037 +69.7,-1.43533691548,0.413621005319 +69.8,0.635416333974,0.49808164482 +69.9,0.274526889673,0.0702579815421 +70.0,0.733049532724,0.0513723931853 +70.1,0.971604474853,0.581819549925 +70.2,3.03577167958,0.393612773004 +70.3,1.08040811342,0.165631388813 +70.4,1.75155382697,0.179233885998 +70.5,-0.705376586162,0.141066533955 +70.6,-0.429647516809,0.911790442961 +70.7,2.33574788086,0.632238812796 +70.8,1.88834585317,1.34266465717 +70.9,0.861678697133,1.74595511793 +71.0,3.34342750818,1.03694227502 +71.1,3.77907189643,1.72274098335 +71.2,3.92077239102,0.506606374149 +71.3,2.8128305638,0.337297069773 +71.4,1.9458841089,1.74141287785 +71.5,3.10109248432,0.66765484786 +71.6,2.40225275326,5.24901449929 +71.7,2.01930560973,4.52107852974 +71.8,1.24309332076,0.37197094093 +71.9,-0.204247843133,0.20781728658 +72.0,-0.386578645221,0.382328939186 +72.1,-0.974790455257,0.326688721499 +72.2,-2.01857897062,0.10360995699 +72.3,-1.00443401001,0.199137662217 +72.4,-1.90029161227,0.0851954380778 +72.5,-0.170147158513,0.515947438793 +72.6,-0.870235899175,0.2961277954 +72.7,-1.26372750838,4.66466797668 +72.8,-0.433399521195,2.30720798459 +72.9,0.999120433462,8.67400719316 +73.0,1.77159872116,2.5004910516 +73.1,2.04543240856,1.4744471154 +73.2,0.202541625076,0.267250355255 +73.3,0.0191905303256,0.955900390721 +73.4,0.350443032029,5.5674358323 +73.5,-0.158572004682,1.66080014678 +73.6,0.159192148243,3.60662356005 +73.7,0.408278224101,18.6597951494 +73.8,-0.131901768558,28.3119487917 +73.9,-1.55440383978,45.5087280671 +74.0,-0.988043645257,23.7767539339 +74.1,-1.57537272288,12.9764825196 +74.2,-0.789342238804,1.46048164408 +74.3,-1.53510877455,1.81240485459 +74.4,0.0332567185424,1.66635140017 +74.5,-0.485774335632,3.51414422217 +74.6,-1.55498840595,6.17365609617 +74.7,0.889630773108,17.981133551 +74.8,0.986015466811,3.663995505 +74.9,1.94651456125,3.66403696682 +75.0,1.46970862937,11.1633066451 +75.1,3.09032896666,12.3376172873 +75.2,1.6530882231,6.77585938979 +75.3,0.493151051638,7.50988357764 +75.4,-1.02515244219,4.83856206485 +75.5,-0.634677996822,0.928890563274 +75.6,0.0080622312598,4.58654134124 +75.7,-1.60487235912,2.81231864044 +75.8,-2.28489203814,4.66063006809 +75.9,0.242353891219,3.41817960055 +76.0,-1.80239613133,2.03529896187 +76.1,1.39619475606,2.96877611702 +76.2,0.13742434392,1.68473157732 +76.3,0.0304377559132,4.89467719887 +76.4,0.361434611837,1.82548867782 +76.5,0.51623568768,5.95051209872 +76.6,-0.939092020657,2.47561042226 +76.7,0.314985392288,5.92847404923 +76.8,1.3072212719,11.9173671978 +76.9,0.303319215631,12.5247742229 +77.0,0.737396125329,5.36320316303 +77.1,0.710017373965,6.94580016619 +77.2,1.13793342374,14.5921434451 +77.3,-0.835775086467,3.01216027335 +77.4,-0.679684330879,5.09543831396 +77.5,-1.59281621447,8.12965545998 +77.6,-1.08398746001,1.66985693567 +77.7,-0.183388729495,3.55714638745 +77.8,-0.663519239073,1.17491328679 +77.9,-1.35366719937,1.16338790657 +78.0,-0.47627830972,2.06175867295 +78.1,-0.656211867181,0.27683006781 +78.2,-2.54531121985,0.21774055189 +78.3,-1.6825301326,0.360431654092 +78.4,-1.96237994484,0.815427373781 +78.5,-1.16858749888,0.450818716799 +78.6,0.35984435141,1.85402352876 +78.7,1.91662109723,1.95633979371 +78.8,1.01762277972,1.67099197899 +78.9,0.371916511331,3.71714680261 +79.0,1.63003521843,6.42633897504 +79.1,2.84327373126,0.862818865779 +79.2,-0.127223083166,1.92879318878 +79.3,-0.470218270927,1.49558350093 +79.4,-2.53638351026,1.03166113235 +79.5,-2.08354928454,2.44022182142 +79.6,-2.48662541899,0.317131082102 +79.7,-4.1749607704,1.46591075549 +79.8,-4.53960814043,0.971708620025 +79.9,-4.40690210429,0.752686435547 +80.0,-2.79290885814,0.25808442646 +80.1,-1.36879890267,1.6424324386 +80.2,-1.66134908901,0.754671740393 +80.3,-3.32091883339,0.364126972799 +80.4,-2.8273322984,2.16904762394 +80.5,-2.15835695437,3.41772321438 +80.6,-1.66786015188,2.81835101028 +80.7,0.696861368969,0.819329882087 +80.8,0.999100543145,4.18057436324 +80.9,0.991033626384,0.761461679498 +81.0,2.54913610722,0.0948631694066 +81.1,2.43638962462,0.0643767402825 +81.2,0.345085543982,0.356242494994 +81.3,-0.888440055082,0.0132169737753 +81.4,0.739913160797,0.0329370330425 +81.5,1.56417928353,0.0428714195555 +81.6,4.16051759983,0.0627760452784 +81.7,3.96491801795,0.119597978851 +81.8,3.59514263791,0.119898059821 +81.9,3.17853571017,0.752106602051 +82.0,2.27099978771,0.49926249806 +82.1,-0.213463516742,1.32453589641 +82.2,-0.321561937149,1.07757912997 +82.3,-1.23189682155,0.294764714035 +82.4,-1.5945386758,1.47655645638 +82.5,-0.740156815502,0.354298186775 +82.6,-1.42718621004,1.03723561242 +82.7,-1.61409503931,1.03276138383 +82.8,-1.17404331927,0.516026587312 +82.9,-1.83504049703,0.960745261052 +83.0,-2.3985693037,1.06845848755 +83.1,-2.70759283213,2.61533081429 +83.2,-0.77443330271,0.562524935641 +83.3,-2.25131417482,0.589833148466 +83.4,-0.793010231547,0.387762826922 +83.5,0.277290482528,0.955074175467 +83.6,0.161422433221,0.136986740905 +83.7,0.931767164006,0.31711341592 +83.8,0.601144626465,0.342211342189 +83.9,1.93488569241,0.400662192222 +84.0,2.82984735716,8.41139615831 +84.1,3.27860363769,5.60983569558 +84.2,1.80441484458,5.6301282122 +84.3,1.51768116275,4.88515748386 +84.4,1.57353056512,1.46717404143 +84.5,1.48156920143,2.99017056239 +84.6,0.513703056708,0.963619797622 +84.7,0.650479431596,11.8681382204 +84.8,0.46155939896,1.72998507047 +84.9,-0.540602563904,3.89285190067 +85.0,-0.269542587699,2.79276590381 +85.1,-0.663650841301,5.63690716015 +85.2,-1.95823862514,18.867168573 +85.3,-0.482136578894,4.06883988738 +85.4,0.183798439682,11.4614884033 +85.5,0.823085814085,13.1474150035 +85.6,-0.0507503433948,1.57346552912 +85.7,1.36268709093,3.0237958671 +85.8,-1.32781685076,0.454321103206 +85.9,-1.96493763862,0.592708734899 +86.0,-1.523589593,1.98611813834 +86.1,-1.21069311645,0.316180238523 +86.2,0.0683541331549,0.926696632652 +86.3,2.07132020565,3.24582690019 +86.4,1.28212708069,6.8486802637 +86.5,1.09177717794,1.61546163023 +86.6,0.0961299440144,0.334112457104 +86.7,1.20790144513,1.25787398022 +86.8,0.627861820852,0.24047052361 +86.9,0.295094953057,0.258635001107 +87.0,0.0296691017747,0.465570911068 +87.1,0.323135866454,0.286611509175 +87.2,-2.5468262569,0.385951830826 +87.3,-0.388667120958,0.0448245589152 +87.4,-1.75077264933,0.0614569295402 +87.5,-1.57074163464,0.385925212432 +87.6,-0.0373572766635,0.119284128838 +87.7,-1.49263640056,0.0261251931615 +87.8,-2.04916368081,0.196692663113 +87.9,-0.882648050825,0.420069660306 +88.0,-0.156774365665,6.58262193329 +88.1,-0.459950671392,4.06367109031 +88.2,-1.02420947796,4.88657511266 +88.3,-2.83381176273,7.44355393288 +88.4,-1.7187810051,2.46242847648 +88.5,-2.63097926627,7.375609095 +88.6,-2.28170207478,22.2278364404 +88.7,-0.587158793484,49.2613298912 +88.8,0.0971120270044,20.7774876601 +88.9,-0.116665433867,1.28116264099 +89.0,1.57306696519,12.9172556942 +89.1,1.20452457015,3.97278995062 +89.2,0.622350109058,8.72558083809 +89.3,1.11271532501,6.1472249199 +89.4,1.11538425733,4.6919695633 +89.5,1.68169873764,32.1896794691 +89.6,1.64144842035,8.06052713868 +89.7,1.78406862792,44.8712581086 +89.8,2.05450878623,10.8644468347 +89.9,0.25518914849,17.1437139488 +90.0,0.782767177777,9.29011328527 +90.1,0.769120937703,8.94360653982 +90.2,0.85541249869,10.537839804 +90.3,1.32620333433,3.66644613233 +90.4,1.64396101824,14.0686692828 +90.5,0.538480642871,95.6303329453 +90.6,1.02236937551,34.5503108077 +90.7,1.17883861723,100.48828184 +90.8,0.524128760675,2.64709644037 +90.9,0.810129012353,7.09017073707 +91.0,2.27393957274,13.7270440726 +91.1,1.83553196315,2.53867450163 +91.2,2.16233239526,10.6526183199 +91.3,3.13328191015,0.282926900128 +91.4,3.35375107334,0.851328686077 +91.5,3.90534341057,0.549285224913 +91.6,3.34974571964,2.18909145307 +91.7,1.34283001937,0.0521630898437 +91.8,0.302074113623,0.583133310872 +91.9,0.324014816189,0.739711885164 +92.0,0.222181961645,0.542814521572 +92.1,0.566105947375,3.43108509455 +92.2,0.868213083718,1.53674550077 +92.3,-0.302100246024,0.116080455414 +92.4,0.00568723280523,0.166767353965 +92.5,-0.909271095726,0.585237094207 +92.6,-1.10179576706,0.232327880939 +92.7,-0.352309558315,0.224850154968 +92.8,-1.46755181093,0.0712832091941 +92.9,-1.11290060475,0.183366151511 +93.0,-1.23839667389,0.273773922 +93.1,0.350128579228,0.489857267817 +93.2,-0.371194319528,1.37008361312 +93.3,0.0772453621171,0.584938614076 +93.4,-1.54104737586,0.134829635821 +93.5,-1.16757602235,0.224096676051 +93.6,-2.86420778202,0.11559087842 +93.7,-1.70395751737,0.0391407512479 +93.8,-2.00129334322,0.105891628125 +93.9,-1.94301358632,0.192112693674 +94.0,-0.665260077437,0.30258178101 +94.1,-0.451562582146,0.278494333869 +94.2,1.28298593966,0.0664362261548 +94.3,-2.03379002678,0.548466629369 +94.4,-0.60110987184,0.519254100938 +94.5,-0.192774801306,2.30127294701 +94.6,0.263176133088,10.8763395655 +94.7,-2.79951319683,7.38533233246 +94.8,-0.999424252157,1.5415037933 +94.9,-1.65628729031,3.95248679185 +95.0,-1.88461974371,3.42603958262 +95.1,-1.59136534321,5.74688791335 +95.2,-1.10201192497,4.26214102648 +95.3,0.0479027371869,17.5827552804 +95.4,1.17188161197,3.28939903892 +95.5,0.223719220477,27.0796021679 +95.6,-1.49039493233,7.21808317808 +95.7,-1.04769676965,11.2583205756 +95.8,-1.85448002029,12.0975869816 +95.9,-2.02627453127,9.95069430111 +96.0,-1.73407753361,10.5707657718 +96.1,-1.61996066375,52.2380073467 +96.2,-2.34947507655,34.0534097386 +96.3,-1.76682339827,30.5505525396 +96.4,-1.68368851253,56.3415110204 +96.5,-0.0435019750685,7.91227301611 +96.6,-2.51506952883,3.72880437462 +96.7,-0.457360380923,7.40995799774 +96.8,-1.06102790493,4.44246654676 +96.9,-0.596807953673,41.5430013158 +97.0,-1.36252072184,7.21560678636 +97.1,-0.524179160135,40.4179163498 +97.2,0.0159224634395,5.25251601281 +97.3,-0.531645058263,3.82066536807 +97.4,1.72248520343,2.472602346 +97.5,0.427152832513,0.406497814394 +97.6,0.352484201895,5.89364033563 +97.7,-0.0697174776162,0.619226612218 +97.8,1.06249591999,1.5022483243 +97.9,2.14587569559,0.297282605296 +98.0,1.81942238192,0.537830045786 +98.1,-0.016843269427,0.662931967402 +98.2,1.7406582406,0.136791741661 +98.3,0.508316398785,0.0764325545302 +98.4,0.698880478087,0.0966070415378 +98.5,-1.464436041,0.103166735615 +98.6,-1.90305625575,0.0511182587571 +98.7,-2.60942466483,0.92991667606 +98.8,-3.02329509005,0.601715242658 +98.9,-0.881429015543,1.93553240108 +99.0,-1.57878696971,1.48802541588 +99.1,-1.54059857461,2.58165142754 +99.2,-0.8384321846,1.46294086115 +99.3,-0.675420394087,1.06371366071 +99.4,-1.51516952416,2.26134915435 +99.5,-0.675141636545,0.890228782098 +99.6,0.110966255746,0.163048062473 +99.7,1.73701245495,0.0489418384832 +99.8,0.574903648647,0.115886825302 +99.9,0.221602537658,0.699011303159 diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/LogARMA/romMeta.xml b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/LogARMA/romMeta.xml new file mode 100644 index 0000000000..3506f944fb --- /dev/null +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/LogARMA/romMeta.xml @@ -0,0 +1,33 @@ + + + + SyntheticHistoryROM + scaling + signal0,signal1,seconds + + + + + + + -1.995714627e-03 + -1.488327149e-01 + 4.614077958e-01 + 6.117498370e-01 + -1.329982303e-01 + 7.346955330e-02 + 1.610500427e+00 + + + 1.697777790e-02 + 1.306999095e+00 + -5.089435424e-01 + -9.713139239e-01 + 3.577117701e-01 + 1.488308967e-01 + 1.436540074e+00 + + + + + diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/LogARMA/samples_0.csv b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/LogARMA/samples_0.csv new file mode 100644 index 0000000000..972250021b --- /dev/null +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/LogARMA/samples_0.csv @@ -0,0 +1,101 @@ +seconds,signal0,signal1 +0.0,-3.11194105768,0.0167554652362 +1.0,-1.67463017099,0.0253241992239 +2.0,-0.775142176947,0.0163144084068 +3.0,-0.1475259542,0.028998934236 +4.0,-1.63485094379,0.0165274723811 +5.0,-0.20040562049,0.0202190756006 +6.0,-0.542679531292,0.0268868941867 +7.0,-0.746660437434,0.0180784330888 +8.0,0.409389254311,0.0166393752221 +9.0,-1.8699639501,0.196411291354 +10.0,-0.973741210412,0.800845845486 +11.0,0.133183691754,0.972808203559 +12.0,-0.413376326078,0.235303026992 +13.0,-1.91547264174,8.76997632988 +14.0,-3.24479367966,3.85114837369 +15.0,-2.71465179078,0.690839062498 +16.0,-3.2518017878,3.50747703906 +17.0,-3.18944679564,3.56218814653 +18.0,2.71560527016,0.0434898712059 +19.0,-1.85369584331,0.366105650109 +20.0,0.894344637584,3.03363936939 +21.0,-1.91288475456,1.62471829518 +22.0,-1.37207373844,0.160305738753 +23.0,-0.905489315966,0.0367250826208 +24.0,-3.2036858857,1.02995006398 +25.0,-2.33472809765,0.0168358481022 +26.0,-2.57163751694,0.462628098552 +27.0,-1.90842749911,0.662023597692 +28.0,1.86566742915,0.604187717019 +29.0,-1.50881810451,0.449599716866 +30.0,-2.89838608739,0.0215585866787 +31.0,0.860558761204,0.017136833613 +32.0,-0.300330487352,0.0234974833307 +33.0,3.27981458978,0.0163058217628 +34.0,0.572975324108,0.566892174958 +35.0,1.80538109908,0.607242272041 +36.0,2.04664614254,0.0355252228015 +37.0,0.973293005834,1.67616926686 +38.0,3.40302184511,1.79433971706 +39.0,2.67335424398,0.0166822317734 +40.0,1.74825227959,0.0405040734004 +41.0,2.30369272362,0.0209134777851 +42.0,-0.110210337014,0.176900447543 +43.0,3.2764236313,1.41539186128 +44.0,0.656218283046,0.0220075565657 +45.0,0.912590089057,0.639468064263 +46.0,3.40558257652,3.38445891536 +47.0,3.37332389405,0.357452964589 +48.0,3.12193746561,11.6322397626 +49.0,0.412333912669,6.9425135282 +50.0,0.0356420717571,1.04866611744 +51.0,-1.24355193057,1.86433315282 +52.0,-0.277189052146,0.118105571326 +53.0,-0.819935233397,0.253111825345 +54.0,-1.8194634581,0.547491904423 +55.0,-2.60594839199,0.0166767361203 +56.0,2.63245441028,0.0172710505956 +57.0,-1.20799703098,0.0163688450144 +58.0,-2.43089627301,0.018701307093 +59.0,-2.59061846543,2.25188623521 +60.0,1.8879906495,0.653160906725 +61.0,0.0082543508241,0.453726442399 +62.0,0.208232937776,0.614193502048 +63.0,1.61899275209,0.648859596358 +64.0,-1.72963994019,0.899729951619 +65.0,1.7300646549,9.05600411917 +66.0,2.75851162399,3.34492261016 +67.0,3.39190785321,6.02011149125 +68.0,-0.562087718694,5.70191695211 +69.0,-2.51278624772,3.48979678686 +70.0,-2.40632585856,6.95853851269 +71.0,-3.19651413948,3.295171943 +72.0,-3.06596894579,0.244770563143 +73.0,-2.76238584556,5.76874095887 +74.0,-2.82522837731,1.19550219165 +75.0,0.155190161442,0.727366479696 +76.0,-0.31653863316,8.92656234909 +77.0,-0.542346877163,0.995153619085 +78.0,-0.867480447375,16.1869148306 +79.0,0.855389538416,4.57625085895 +80.0,-1.29709263611,2.03162578046 +81.0,-1.58816701135,2.06345133846 +82.0,3.27593490045,3.82025246578 +83.0,-0.0469867128168,6.18429894253 +84.0,1.38767821362,3.50910799712 +85.0,-0.444383143458,10.7116869662 +86.0,-0.517884335479,2.76040219095 +87.0,2.43065633402,0.188410093316 +88.0,0.699761599174,0.566887567823 +89.0,2.44546300064,0.19660618015 +90.0,0.955265480931,0.699848388174 +91.0,1.33945525813,0.137957706559 +92.0,3.11715058229,0.390253257244 +93.0,-0.566671146648,0.650879631904 +94.0,-0.452435774164,0.224873058306 +95.0,1.83583426879,0.209387990044 +96.0,2.6110391695,1.40019469019 +97.0,3.20977104253,0.181211345354 +98.0,-2.96686215302,1.28897458829 +99.0,2.9005882361,0.122287734863 diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/LogARMA/samples_1.csv b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/LogARMA/samples_1.csv new file mode 100644 index 0000000000..106ac41391 --- /dev/null +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/LogARMA/samples_1.csv @@ -0,0 +1,101 @@ +seconds,signal0,signal1 +0.0,1.73475546432,2.47377401354 +1.0,3.27257340086,0.0307445886081 +2.0,-0.716604403423,8.34611754946 +3.0,1.3757501842,0.332532824528 +4.0,-0.748707168629,0.0873716324347 +5.0,-1.24913803719,0.190128137489 +6.0,0.13113569794,0.36543109521 +7.0,-0.9859318268,0.025721014453 +8.0,1.41452039335,0.0347793784619 +9.0,1.49943998271,0.0281634497971 +10.0,2.68174849794,0.0172626426308 +11.0,3.40313307143,0.282752553864 +12.0,3.32270834454,0.67320450566 +13.0,0.431721758765,0.0209572396669 +14.0,-0.0681713828282,0.632850707554 +15.0,0.204727174905,0.0385063738612 +16.0,-0.0694574259831,0.806185253405 +17.0,3.32803213002,0.355478985083 +18.0,1.9548375976,0.256499301926 +19.0,3.14330935515,0.0229594032446 +20.0,1.63773895112,0.733119472215 +21.0,1.79830658792,0.237727733545 +22.0,0.6715632402,0.212117207295 +23.0,-0.974575174088,0.848246921915 +24.0,0.689252896035,0.743512010027 +25.0,1.62979417602,9.73599783196 +26.0,2.02580127974,1.59335261074 +27.0,-0.508486266362,16.8156471733 +28.0,-0.3588434283,12.4227980052 +29.0,-0.987013119241,16.8723526887 +30.0,-3.00333341029,1.32349895346 +31.0,1.75900234075,8.91836668317 +32.0,-0.389824012784,17.0189131297 +33.0,0.205154439424,0.789846565463 +34.0,-0.502942712483,0.045374594003 +35.0,0.5745585864,3.83129514382 +36.0,0.440982701104,0.39805879359 +37.0,-0.538655037388,0.0166968154365 +38.0,-0.563866162165,0.0166672329201 +39.0,-0.129395275255,0.345307042609 +40.0,0.64485382123,0.017023807885 +41.0,0.196388759479,0.0181587828078 +42.0,2.68496251355,0.0272859682775 +43.0,-0.362203742708,7.01884840383 +44.0,-1.71172240913,0.0255246841001 +45.0,0.588405053259,1.37431596799 +46.0,0.37802705148,1.30989372051 +47.0,0.984858519838,1.3304505409 +48.0,2.53250274796,0.0299952504873 +49.0,2.45947446229,0.0168515777132 +50.0,-0.0816719573279,0.0200088299884 +51.0,0.512206914461,0.22541890314 +52.0,1.90480196297,0.020660290207 +53.0,0.0630572780532,0.0212624268418 +54.0,0.890370769154,0.685712045669 +55.0,0.948450779501,0.559726406093 +56.0,3.22145840874,1.45492114831 +57.0,0.340175129737,3.21672338712 +58.0,-2.00429530707,0.60750373481 +59.0,0.969084328109,1.11068358445 +60.0,-3.1531799186,4.06053952207 +61.0,-3.08810445918,0.611035287629 +62.0,-2.57885095331,0.0223590867851 +63.0,2.69130334768,1.42633350065 +64.0,-1.2285619551,0.0183627302401 +65.0,1.53288627133,0.0328617765649 +66.0,2.64998571607,0.0221725532073 +67.0,0.319295505393,0.0274495467219 +68.0,3.13557301747,0.0213402617206 +69.0,-1.58311975473,0.03673711272 +70.0,1.73359120878,0.133267815289 +71.0,-0.720694493133,1.35173178489 +72.0,0.622262428905,3.71257740858 +73.0,3.40454746811,9.45407050487 +74.0,2.59736807083,4.36555755228 +75.0,3.08254301933,3.21055039488 +76.0,3.40550456756,1.34146654967 +77.0,3.37798242161,0.238710261483 +78.0,2.51273624749,4.00510250131 +79.0,0.957395770164,0.625979419036 +80.0,-2.14148382162,0.202955274832 +81.0,2.73487426783,1.13551939608 +82.0,-0.552941417044,0.697528656069 +83.0,-2.43521920139,0.0331031997206 +84.0,0.31994100454,0.0974631210307 +85.0,0.9727559531,0.0350056052935 +86.0,0.350386282545,0.156066063572 +87.0,-0.404408395646,0.78655181531 +88.0,3.22148930509,0.36227519353 +89.0,2.0690169485,5.83877300213 +90.0,-0.580610230018,0.0396042006274 +91.0,-3.09320996643,0.644661254702 +92.0,0.534764821894,0.532888412656 +93.0,3.38708271797,0.656851263125 +94.0,3.24952128212,0.0271622923377 +95.0,3.23239672423,0.538796649402 +96.0,0.0603670014148,0.0949431691224 +97.0,-1.74392789227,3.66178481245 +98.0,-1.34675120904,0.293854459625 +99.0,0.486877270405,1.08131668222 diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ZeroFilterDiscontinuous/romMeta.xml b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ZeroFilterDiscontinuous/romMeta.xml new file mode 100644 index 0000000000..b138a3f817 --- /dev/null +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/gold/ZeroFilterDiscontinuous/romMeta.xml @@ -0,0 +1,134 @@ + + + + SyntheticHistoryROM + scaling + TOTALLOAD,WIND,SOLAR,HOUR + + + + + + + + + + 2.562885974e-01 + + 2.175851407e-01 + 7.363111255e-02 + + + 2.006552364e-01 + -1.278068983e+00 + + + + + + 3.924588573e+02 + + 2.690015996e+02 + -1.433965549e+00 + + + 6.366971696e+01 + -1.700318006e+00 + + + 2.726435442e+01 + -1.765338646e+00 + + + 1.491871050e+01 + -1.830451684e+00 + + + 5.581767441e+00 + -2.879855374e+00 + + + 1.481955721e+00 + 1.766463105e+00 + + + 1.075360475e+00 + 4.209044018e-01 + + + 1.203418747e+00 + -9.951733692e-04 + + + 2.811333303e-01 + -1.280726416e-01 + + + 6.143911046e-02 + -2.326437124e+00 + + + + 3.133297725e+00 + + 1.985373761e+00 + -2.164936833e+00 + + + 3.926683648e-01 + -1.700766210e+00 + + + 1.678578560e-01 + -1.766503951e+00 + + + 9.162143695e-02 + -1.832693389e+00 + + + 3.209474453e-02 + -2.951116596e+00 + + + 1.564288033e-02 + -1.582577244e+00 + + + 6.012304051e-02 + 9.133157869e-01 + + + 1.415592635e-02 + -2.883910297e+00 + + + 3.207005169e-03 + -3.119945023e+00 + + + 3.619938703e-03 + 1.911474123e+00 + + + + + + -3.097348657e-02 + 7.171448397e-01 + 8.089165013e-01 + + + -2.044737452e-02 + 7.623773996e-01 + 7.105134137e-01 + + + -4.974232358e-03 + 5.124665489e-01 + 1.893641655e+00 + + + + + diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/log_arma.xml b/tests/framework/ROM/TimeSeries/SyntheticHistory/log_arma.xml new file mode 100644 index 0000000000..ba17224463 --- /dev/null +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/log_arma.xml @@ -0,0 +1,104 @@ + + + + framework/ROM/TimeSeries/SyntheticHistory.LogARMA + j-bryan + 2023-05-18 + SupervisedLearning.SyntheticHistory,TSA.Transformer,TSA.ARMA + + Tests fitting an ARMA model after performing a log transformation of the data. + + + + + LogARMA + read, train, print, serialize, sample + 1 + + + + + infile + indata + + + indata + synth + + + synth + romMeta + romMeta + + + synth + pk + + + placeholder + synth + mc + samples + samples + + + + + ../TrainingData/LogARMA.csv + arma.pk + + + + + + 2 + 42 + + 1.0 + + + + + + signal0, signal1, seconds + scaling + seconds + + + 2 + 3 + + + + + + + csv + samples + + + csv + romMeta + + + + + + + scaling + signal0, signal1 + + seconds + + + + scaling + signal0, signal1 + + seconds + + + + + + diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/tests b/tests/framework/ROM/TimeSeries/SyntheticHistory/tests index f42a6a1e15..ccd69a0dfa 100644 --- a/tests/framework/ROM/TimeSeries/SyntheticHistory/tests +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/tests @@ -54,6 +54,33 @@ [../] [../] + [./LogARMA] + type = 'RavenFramework' + input = 'log_arma.xml' + [./csv] + type = OrderedCSV + output = 'LogARMA/samples_0.csv LogARMA/samples_1.csv' + rel_err = 2e-1 # thank you, Windows + [../] + [./xml] + type = XML + output = 'LogARMA/romMeta.xml' + rel_err = 1e-2 + zero_threshold = 1e-3 + [../] + [../] + + [./ZeroFilterDiscontinuous] + type = 'RavenFramework' + input = 'zero_filter_discontinuous.xml' + [./xml] + type = XML + output = 'ZeroFilterDiscontinuous/romMeta.xml' + rel_err = 1e-2 + zero_threshold = 1e-3 + [../] + [../] + [./Wavelet] type = 'RavenFramework' input = 'wavelet.xml' diff --git a/tests/framework/ROM/TimeSeries/SyntheticHistory/zero_filter_discontinuous.xml b/tests/framework/ROM/TimeSeries/SyntheticHistory/zero_filter_discontinuous.xml new file mode 100644 index 0000000000..35f636dd0e --- /dev/null +++ b/tests/framework/ROM/TimeSeries/SyntheticHistory/zero_filter_discontinuous.xml @@ -0,0 +1,125 @@ + + + + framework/ROM/TimeSeries/SyntheticHistory.ZeroFilterDiscontinuous + j-bryan + 2023-05-25 + + SupervisedLearning.SyntheticHistory, + TSA.ARMA, + TSA.Fourier, + TSA.Transformers.ZeroFilter, + TSA.Transformers.OutTruncationPositive + + + Tests the ARMA model handling of zero filtering when filtered values fall in the middle of the array. + This test duplicates the framework/ROM/TimeSeries/ARMA.ZeroFilterDiscontinuous using the TSA module + + + + + ZeroFilterDiscontinuous + load, train, meta, serialize, sample + + + + ../../ARMA/ZeroFilterDiscontinuous/Data.csv + arma.pk + + + + + input + input + + + + input + arma + + + + arma + meta + romMeta + + + + arma + pk + + + + placeholder + arma + mc + synth + synth + + + + + + + scaling + OutputPlaceHolder + + + + scaling,YEAR + TOTALLOAD,WIND,SOLAR,HOUR + + HOUR + + + + + scaling + TOTALLOAD,WIND,SOLAR + TOTALLOAD,WIND,SOLAR + + + + + + + TOTALLOAD,WIND,SOLAR,HOUR + scaling + HOUR + + + + 24, 12 + + + 8760, 4380, 2920, 2190, 438, 168, 24, 12, 6, 3 + + + 1 + 0 + + + + + + + csv + meta + + + + csv + synth + + + + + + + 2 + 42 + + 1.0 + + + diff --git a/tests/framework/unit_tests/TSA/testARMA.py b/tests/framework/unit_tests/TSA/testARMA.py index c7be660f69..77e1913fb1 100644 --- a/tests/framework/unit_tests/TSA/testARMA.py +++ b/tests/framework/unit_tests/TSA/testARMA.py @@ -250,7 +250,7 @@ def createARMASignal(slags, nlags, pivot, noise=None, intercept=0, plot=False): 'gaussianize': False, 'seed': 42} settings = arma.setDefaults(settings) -params = arma.characterize(signals, pivot, targets, settings) +params = arma.fit(signals, pivot, targets, settings) check = params['A']['arma'] # Note these are WAY OFF! They should match slags and nlags above. # I don't know how to convince it to get @@ -314,7 +314,7 @@ def createARMASignal(slags, nlags, pivot, noise=None, intercept=0, plot=False): 'gaussianize': True, 'seed': 42} settings = arma.setDefaults(settings) -params = arma.characterize(signals, pivot, targets, settings) +params = arma.fit(signals, pivot, targets, settings) # These are a little different from the non-Gaussianize above, but pretty close (kind of). # Given the numerical nature of the empirical CDF, maybe not too bad. okay_ar = [-0.1288380832279767, 0.5286049589896539] diff --git a/tests/framework/unit_tests/TSA/testFilters.py b/tests/framework/unit_tests/TSA/testFilters.py new file mode 100644 index 0000000000..9a73737c54 --- /dev/null +++ b/tests/framework/unit_tests/TSA/testFilters.py @@ -0,0 +1,171 @@ +# Copyright 2017 Battelle Energy Alliance, LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" + This Module performs Unit Tests for the TSA.ZeroFilter class. + It can not be considered part of the active code but of the regression test system +""" +import os +import sys +import numpy as np + +# add RAVEN to path +ravenDir = os.path.abspath(os.path.join(*([os.path.dirname(__file__)] + [os.pardir]*4))) +frameworkDir = os.path.join(ravenDir, 'framework') +if ravenDir not in sys.path: + sys.path.append(ravenDir) + +from ravenframework.utils import xmlUtils + +from ravenframework.TSA import ZeroFilter + +print('Module undergoing testing:') +print(ZeroFilter) +print('') + +results = {"pass":0, "fail":0} + +def updateRes(comment, dtype, res, value, expected, printComment=True): + """ + Updates results dictionary + @ In, comment, string, a comment printed out if it fails + @ In, dtype, type, the type of the value + @ In, res, bool, the result of the check + @ In, value, object, the value to compare + @ In, expected, object, the expected value + @ In, printComment, bool, optional, if False then don't print comment + """ + if res: + results['pass'] += 1 + else: + results['fail'] += 1 + if printComment: + print(f'checking {str(dtype)} {comment} | {value} != {expected}') + +def checkFloat(comment, value, expected, tol=1e-10, update=True): + """ + This method is aimed to compare two floats given a certain tolerance + @ In, comment, string, a comment printed out if it fails + @ In, value, float, the value to compare + @ In, expected, float, the expected value + @ In, tol, float, optional, the tolerance + @ In, update, bool, optional, if False then don't update results counter + @ Out, res, bool, True if same + """ + if np.isnan(value) and np.isnan(expected): + res = True + elif np.isnan(value) or np.isnan(expected): + res = False + else: + res = abs(value - expected) <= tol + + if update: + updateRes(comment, float, res, value, expected) + + return res + +def checkSame(comment, value, expected, update=True): + """ + This method is aimed to compare two identical things + @ In, comment, string, a comment printed out if it fails + @ In, value, float, the value to compare + @ In, expected, float, the expected value + @ In, update, bool, optional, if False then don't update results counter + @ Out, res, bool, True if same + """ + res = value == expected + if update: + updateRes(comment, type(value), res, value, expected) + return res + +def checkArray(comment, first, second, dtype, tol=1e-10, update=True): + """ + This method is aimed to compare two arrays + @ In, comment, string, a comment printed out if it fails + @ In, value, float, the value to compare + @ In, expected, float, the expected value + @ In, tol, float, optional, the tolerance + @ In, update, bool, optional, if False then don't update results counter + @ Out, res, bool, True if same + """ + res = True + + if len(first) != len(second): + res = False + print(f'checking answer {comment} | lengths do not match: {len(first)} {len(second)}') + return res + + for i, _ in enumerate(first): + if dtype == float: + pres = checkFloat('', first[i], second[i], tol, update=False) + elif dtype == str: + pres = checkSame('', first[i], second[i], update=False) + else: + pres = False + + if not pres: + print(f'checking array {comment} | entry "{i}" does not match: {first[i]} != {second[i]}') + res = False + + if update: + updateRes(comment, dtype, res, first, second, printComment=False) + + return res + +###################################### +# CONSTRUCTION # +###################################### +def createZeroFilter(targets): + """ + Creates a ZeroFilter object + @ In, targets, list(str), list of targets + @ Out, zeroFilter, ZeroFilter, zero filter object + """ + xml = xmlUtils.newNode('zerofilter', attrib={'target':','.join(targets)}) + zeroFilter = ZeroFilter() + inputSpec = ZeroFilter.getInputSpecification()() + inputSpec.parseNode(xml) + zeroFilter.handleInput(inputSpec) + return zeroFilter + +################### +# Tests # +################### +targets = ['A', 'B'] +pivot = np.arange(10) +signalA = np.ones(10) +signalA[3:6] = 0 +signalB = np.ones(10) +signalB[0] = 0 +signals = np.vstack([signalA, signalB]).T + +# Test fit and getResidual +zf = createZeroFilter(targets) +settings = {} # No additional settings required +params = zf.fit(signals, pivot, targets, settings) +filteredSignals = zf.getResidual(signals, params, pivot, settings) + +okayResidual = signals.copy() +okayResidual[okayResidual == 0] = np.nan + +checkArray('Simple getResidual', filteredSignals.ravel(), okayResidual.ravel(), float) + +# Test getComposite +composite = np.ones_like(signals) +composite = zf.getComposite(composite, params, pivot, settings) +# composite should have zeros replaced where they were in the original signal +checkArray('Simple getComposite', composite.ravel(), signals.ravel(), float) + +print(results) + +sys.exit(results["fail"]) diff --git a/tests/framework/unit_tests/TSA/testFourier.py b/tests/framework/unit_tests/TSA/testFourier.py index 1a1d27fbc4..7158aa673b 100644 --- a/tests/framework/unit_tests/TSA/testFourier.py +++ b/tests/framework/unit_tests/TSA/testFourier.py @@ -243,9 +243,8 @@ def createFourierSignal(amps, periods, phases, pivot, intercept=0, plot=False): fourier = createFourier(targets, periods) settings = {'periods': periods} -params = fourier.characterize(signals, pivot, targets, settings) +params = fourier.fit(signals, pivot, targets, settings) -checkTrue("fourier can generate", fourier.canGenerate()) checkTrue("fourier can characterize", fourier.canCharacterize()) # intercepts @@ -288,14 +287,14 @@ def createFourierSignal(amps, periods, phases, pivot, intercept=0, plot=False): checkFloat('Residual check', (resid-const).sum(), 0) # recreate signals -res = fourier.generate(params, pivot, None) +res = fourier.getComposite(np.zeros(signals.shape), params, pivot, None) for tg, target in enumerate(targets): checkArray(f'Signal {target} replication', res[:, tg], signals[:, tg], float) ##### now redo with non-simultaneous fitting -params = fourier.characterize(signals, pivot, targets, settings, simultFit=False) +params = fourier.fit(signals, pivot, targets, settings, simultFit=False) # intercepts checkFloat('Signal A intercept', params['A']['intercept'], 0) checkFloat('Signal B intercept', params['B']['intercept'], 0) @@ -329,7 +328,7 @@ def createFourierSignal(amps, periods, phases, pivot, intercept=0, plot=False): checkFloat('Signal C period 2 phase', params['C']['coeffs'][periods[2]]['phase'] , phasesC[2]) # recreate signals -res = fourier.generate(params, pivot, settings) +res = fourier.getComposite(np.zeros(signals.shape), params, pivot, None) for tg, target in enumerate(targets): checkArray(f'Signal {target} replication', res[:, tg], signals[:, tg], float) diff --git a/tests/framework/unit_tests/TSA/testFunctionTransformers.py b/tests/framework/unit_tests/TSA/testFunctionTransformers.py new file mode 100644 index 0000000000..334fb285a1 --- /dev/null +++ b/tests/framework/unit_tests/TSA/testFunctionTransformers.py @@ -0,0 +1,266 @@ +# Copyright 2017 Battelle Energy Alliance, LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" + This Module performs Unit Tests for the TSA.ZeroFilter class. + It can not be considered part of the active code but of the regression test system +""" +import os +import sys +import numpy as np + +# add RAVEN to path +ravenDir = os.path.abspath(os.path.join(*([os.path.dirname(__file__)] + [os.pardir]*4))) +frameworkDir = os.path.join(ravenDir, 'framework') +if ravenDir not in sys.path: + sys.path.append(ravenDir) + +from ravenframework.utils import xmlUtils + +from ravenframework.TSA import LogTransformer, ArcsinhTransformer, SigmoidTransformer, TanhTransformer + +print('Modules undergoing testing:') +testedClasses = [LogTransformer, ArcsinhTransformer, SigmoidTransformer, TanhTransformer] +print(*testedClasses) +print('') + +results = {"pass":0, "fail":0} + +def updateRes(comment, dtype, res, value, expected, printComment=True): + """ + Updates results dictionary + @ In, comment, string, a comment printed out if it fails + @ In, dtype, type, the type of the value + @ In, res, bool, the result of the check + @ In, value, object, the value to compare + @ In, expected, object, the expected value + @ In, printComment, bool, optional, if False then don't print comment + """ + if res: + results['pass'] += 1 + else: + results['fail'] += 1 + if printComment: + print(f'checking {str(dtype)} {comment} | {value} != {expected}') + +def checkFloat(comment, value, expected, tol=1e-10, update=True): + """ + This method is aimed to compare two floats given a certain tolerance + @ In, comment, string, a comment printed out if it fails + @ In, value, float, the value to compare + @ In, expected, float, the expected value + @ In, tol, float, optional, the tolerance + @ In, update, bool, optional, if False then don't update results counter + @ Out, res, bool, True if same + """ + if np.isnan(value) and np.isnan(expected): + res = True + elif np.isnan(value) or np.isnan(expected): + res = False + else: + res = abs(value - expected) <= tol + + if update: + updateRes(comment, float, res, value, expected) + + return res + +def checkSame(comment, value, expected, update=True): + """ + This method is aimed to compare two identical things + @ In, comment, string, a comment printed out if it fails + @ In, value, float, the value to compare + @ In, expected, float, the expected value + @ In, update, bool, optional, if False then don't update results counter + @ Out, res, bool, True if same + """ + res = value == expected + if update: + updateRes(comment, type(value), res, value, expected) + return res + +def checkArray(comment, first, second, dtype, tol=1e-10, update=True): + """ + This method is aimed to compare two arrays + @ In, comment, string, a comment printed out if it fails + @ In, value, float, the value to compare + @ In, expected, float, the expected value + @ In, tol, float, optional, the tolerance + @ In, update, bool, optional, if False then don't update results counter + @ Out, res, bool, True if same + """ + res = True + + if first.shape != second.shape: + res = False + print(f'checking answer {comment} | array shapes do not match: {first.shape} {second.shape}') + return res + + for indices, _ in np.ndenumerate(first): + if dtype == float: + pres = checkFloat('', first[indices], second[indices], tol, update=False) + elif dtype == str: + pres = checkSame('', first[indices], second[indices], update=False) + else: + pres = False + + if not pres: + print(f'checking array {comment} | entry "{indices}" does not match: {first[indices]} != {second[indices]}') + res = False + + if update: + updateRes(comment, dtype, res, first, second, printComment=False) + + return res + +def checkFails(comment, errstr, function, update=True, args=None, kwargs=None): + """ + Checks if expected error occurs + @ In, comment, string, a comment printed out if it fails + @ In, errstr, str, expected fail message + @ In, function, method, method to run to test for failure + @ In, update, bool, optional, if False then don't update results counter + @ In, args, list, arguments to pass to function + @ In, kwargs, dict, keyword arguments to pass to function + @ Out, res, bool, True if failed as expected + """ + print('Error testing ...') + if args is None: + args = [] + if kwargs is None: + kwargs = {} + try: + function(*args,**kwargs) + res = False + msg = 'Function call did not error!' + except Exception as e: + res = checkSame('',e.args[0],errstr,update=False) + if not res: + msg = 'Unexpected error message. \n Received: "{}"\n Expected: "{}"'.format(e.args[0],errstr) + if update: + if res: + results["pass"] += 1 + print(' ... end Error testing (PASSED)') + else: + print("checking error",comment,'|',msg) + results["fail"] += 1 + print(' ... end Error testing (FAILED)') + print('') + return res + +###################################### +# CONSTRUCTION # +###################################### +def createTransformer(targets, transformerType): + """ + Creates a transformer of the given type. + @ In, targets, list(str), names of targets + @ In, transformerType, type, type of transformer to create + @ Out, transformer, subclass of TimeSeriesTransformer, transformer instance + """ + transformer = transformerType() + xml = xmlUtils.newNode(transformer.name.lower(), attrib={'target':','.join(targets)}) + inputSpec = transformer.getInputSpecification()() + inputSpec.parseNode(xml) + transformer.handleInput(inputSpec) + return transformer + +################################### +# UTILITIES # +################################### +def extractTransformerFunctions(transformer): + """ + Extracts the functions from a transformer. + @ In, transformer, subclass of TimeSeriesTransformer, transformer instance + @ Out, functions, tuple, tuple of functions (func, inverseFunc) + """ + params = transformer.templateTransformer.get_params() + + # Forward and inverse transformation functions may have been given as None, in which no transformation + # is applied. In this case, we set the function to the identity function. + func = params['func'] if params['func'] is not None else lambda x: x + inverseFunc = params['inverse_func'] if params['inverse_func'] is not None else lambda x: x + + return func, inverseFunc + +################### +# Tests # +################### +# Test positive values only +targets = ['A'] +pivot = np.arange(10) +signals = np.linspace(1, 2, 11).reshape(-1, 1) # has negative values + +for transformerType in testedClasses: + transformer = createTransformer(targets, transformerType) + func, inverseFunc = extractTransformerFunctions(transformer) + + params = transformer.fit(signals, pivot, targets, {}) + + # Test forward transformation + transformed = transformer.getResidual(signals, params, pivot, {}) + transformedTrue = func(signals) + checkArray(f'{transformer.name} forward transform (all positive values)', transformed, transformedTrue, float) + + # Test inverse transformation + inverse = transformer.getComposite(transformed, params, pivot, {}) + inverseTrue = inverseFunc(transformedTrue) + checkArray(f'{transformer.name} inverse transform (all positive values)', inverse, inverseTrue, float) + + # NOTE The forward and inverse transformation functions are not necessarily inverses of each other, + # and inverseFunc(func(signal)) may not recover the original signal. However, for all tested + # transformations, the inverse of the inverse should recover the original signal. We test this here. + # This test may not apply to transformations added in the future. + checkArray(f'{transformer.name} inverse of inverse (all positive values)', inverse, signals, float) + +# Test negative values only +# This is important because some transforms (e.g. log transform) will fail on negative values +targets = ['B'] +signals = np.linspace(-1, 1, 11).reshape(-1, 1) # has negative values + +for transformerType in testedClasses: + transformer = createTransformer(targets, transformerType) + func, inverseFunc = extractTransformerFunctions(transformer) + + params = transformer.fit(signals, pivot, targets, {}) + + if transformer.name == 'LogTransformer': + # Log transform should fail on negative values + checkFails(f'{transformer.name} forward transform (all negative values)', + 'Log transformation requires strictly positive values, and negative values ' + 'were found in target "B"! If negative values were expected, perhaps ' + 'an ArcsinhTransformer would be more appropriate?', + transformer.getResidual, + args=(signals, params, pivot, {})) + continue + + # Test forward transformation + transformed = transformer.getResidual(signals, params, pivot, {}) + transformedTrue = func(signals) + checkArray(f'{transformer.name} forward transform (mixed sign values)', transformed, transformedTrue, float) + + # Test inverser transformation + inverse = transformer.getComposite(transformed, params, pivot, {}) + inverseTrue = inverseFunc(transformedTrue) + checkArray(f'{transformer.name} inverse transform (mixed sign values)', inverse, inverseTrue, float) + + # NOTE The forward and inverse transformation functions are not necessarily inverses of each other, + # and inverseFunc(func(signal)) may not recover the original signal. However, for all tested + # transformations, the inverse of the inverse should recover the original signal. We test this here. + # This test may not apply to transformations added in the future. + checkArray(f'{transformer.name} inverse of inverse (mixed sign values)', inverse, signals, float) + + +print(results) + +sys.exit(results["fail"]) diff --git a/tests/framework/unit_tests/TSA/testNormalization.py b/tests/framework/unit_tests/TSA/testNormalization.py new file mode 100644 index 0000000000..06ebf789ec --- /dev/null +++ b/tests/framework/unit_tests/TSA/testNormalization.py @@ -0,0 +1,330 @@ +# Copyright 2017 Battelle Energy Alliance, LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" + This Module performs Unit Tests for classes in TSA.Transformers.Normalizers. + It can not be considered part of the active code but of the regression test system +""" +import os +import sys +import numpy as np +from scipy.stats import norm + +# add RAVEN to path +ravenDir = os.path.abspath(os.path.join(*([os.path.dirname(__file__)] + [os.pardir]*4))) +frameworkDir = os.path.join(ravenDir, 'framework') +if ravenDir not in sys.path: + sys.path.append(ravenDir) + +from ravenframework.utils import xmlUtils + +from ravenframework.TSA import MaxAbsScaler, MinMaxScaler, StandardScaler, RobustScaler, QuantileTransformer + +print('Modules undergoing testing:') +testedClasses = [MaxAbsScaler, MinMaxScaler, StandardScaler, RobustScaler, QuantileTransformer] +print(*testedClasses) +print('') + +results = {"pass":0, "fail":0} + +def updateRes(comment, dtype, res, value, expected, printComment=True): + """ + Updates results dictionary + @ In, comment, string, a comment printed out if it fails + @ In, dtype, type, the type of the value + @ In, res, bool, the result of the check + @ In, value, object, the value to compare + @ In, expected, object, the expected value + @ In, printComment, bool, optional, if False then don't print comment + """ + if res: + results['pass'] += 1 + else: + results['fail'] += 1 + if printComment: + print(f'checking {str(dtype)} {comment} | {value} != {expected}') + +def checkFloat(comment, value, expected, tol=1e-10, update=True): + """ + This method is aimed to compare two floats given a certain tolerance + @ In, comment, string, a comment printed out if it fails + @ In, value, float, the value to compare + @ In, expected, float, the expected value + @ In, tol, float, optional, the tolerance + @ In, update, bool, optional, if False then don't update results counter + @ Out, res, bool, True if same + """ + if np.isnan(value) and np.isnan(expected): + res = True + elif np.isnan(value) or np.isnan(expected): + res = False + else: + res = abs(value - expected) <= tol + + if update: + updateRes(comment, float, res, value, expected) + + return res + +def checkSame(comment, value, expected, update=True): + """ + This method is aimed to compare two identical things + @ In, comment, string, a comment printed out if it fails + @ In, value, float, the value to compare + @ In, expected, float, the expected value + @ In, update, bool, optional, if False then don't update results counter + @ Out, res, bool, True if same + """ + res = value == expected + if update: + updateRes(comment, type(value), res, value, expected) + return res + +def checkArray(comment, first, second, dtype, tol=1e-10, update=True): + """ + This method is aimed to compare two arrays + @ In, comment, string, a comment printed out if it fails + @ In, value, float, the value to compare + @ In, expected, float, the expected value + @ In, tol, float, optional, the tolerance + @ In, update, bool, optional, if False then don't update results counter + @ Out, res, bool, True if same + """ + res = True + + if first.shape != second.shape: + res = False + print(f'checking answer {comment} | array shapes do not match: {first.shape} {second.shape}') + return res + + for indices, _ in np.ndenumerate(first): + if dtype == float: + pres = checkFloat('', first[indices], second[indices], tol, update=False) + elif dtype == str: + pres = checkSame('', first[indices], second[indices], update=False) + else: + pres = False + + if not pres: + print(f'checking array {comment} | entry "{indices}" does not match: {first[indices]} != {second[indices]}') + res = False + + if update: + updateRes(comment, dtype, res, first, second, printComment=False) + + return res + +def checkFails(comment, errstr, function, update=True, args=None, kwargs=None): + """ + Checks if expected error occurs + @ In, comment, string, a comment printed out if it fails + @ In, errstr, str, expected fail message + @ In, function, method, method to run to test for failure + @ In, update, bool, optional, if False then don't update results counter + @ In, args, list, arguments to pass to function + @ In, kwargs, dict, keyword arguments to pass to function + @ Out, res, bool, True if failed as expected + """ + print('Error testing ...') + if args is None: + args = [] + if kwargs is None: + kwargs = {} + try: + function(*args,**kwargs) + res = False + msg = 'Function call did not error!' + except Exception as e: + res = checkSame('',e.args[0],errstr,update=False) + if not res: + msg = 'Unexpected error message. \n Received: "{}"\n Expected: "{}"'.format(e.args[0],errstr) + if update: + if res: + results["pass"] += 1 + print(' ... end Error testing (PASSED)') + else: + print("checking error",comment,'|',msg) + results["fail"] += 1 + print(' ... end Error testing (FAILED)') + print('') + return res + +###################################### +# CONSTRUCTION # +###################################### +def createTransformer(targets, transformerType, **kwargs): + """ + Creates a transformer of the given type. + @ In, targets, list(str), names of targets + @ In, transformerType, type, type of transformer to create + @ In, kwargs, dict, optional, keyword arguments to add as attributes to transformer XML node + @ Out, transformer, subclass of TimeSeriesTransformer, transformer instance + """ + transformer = transformerType() + xml = xmlUtils.newNode(transformer.name.lower(), attrib={'target':','.join(targets), **kwargs}) + inputSpec = transformer.getInputSpecification()() + inputSpec.parseNode(xml) + transformer.handleInput(inputSpec) + return transformer + +################### +# Tests # +################### +# Test MaxAbsScaler +targets = ['A'] +pivot = np.arange(11) +signals = np.linspace(-2, 2, 11).reshape(-1, 1) +settings = {} +maxAbsScaler = createTransformer(targets, MaxAbsScaler) +# Check fitted parameters +params = maxAbsScaler.fit(signals, pivot, targets, settings) +scale = params['A']['scale'] +scaleTrue = 2 +checkFloat('MaxAbsScaler fit', scale, scaleTrue) +# Check forward transform +transformed = maxAbsScaler.getResidual(signals, params, pivot, settings) +transformedTrue = np.linspace(-1, 1, 11).reshape(-1, 1) +checkArray('MaxAbsScaler getResidual', transformed, transformedTrue, float) +# Check inverse transform +# The inverse transform should recover the original signals +inverse = maxAbsScaler.getComposite(transformed, params, pivot, settings) +checkArray('MaxAbsScaler getComposite', inverse, signals, float) + +# Test MinMaxScaler +targets = ['B'] +pivot = np.arange(11) +signals = np.linspace(-2, 2, 11).reshape(-1, 1) +settings = {} +minMaxScaler = createTransformer(targets, MinMaxScaler) +# Check fitted parameters +params = minMaxScaler.fit(signals, pivot, targets, settings) +minValue = params['B']['dataMin'] +maxValue = params['B']['dataMax'] +minValueTrue = -2 +maxValueTrue = 2 +scaleTrue = 0.25 # 1 / (2 - (-2)) +checkFloat('MinMaxScaler fit minValue', minValue, minValueTrue) +checkFloat('MinMaxScaler fit maxValue', maxValue, maxValueTrue) +# Check forward transform +transformed = minMaxScaler.getResidual(signals, params, pivot, settings) +transformedTrue = np.linspace(0, 1, 11).reshape(-1, 1) +checkArray('MinMaxScaler getResidual', transformed, transformedTrue, float) +# Check inverse transform +# The inverse transform should recover the original signals +inverse = minMaxScaler.getComposite(transformed, params, pivot, settings) +checkArray('MinMaxScaler getComposite', inverse, signals, float) + +# Test StandardScaler +targets = ['C'] +pivot = np.arange(11) +signals = np.linspace(-2, 2, 11).reshape(-1, 1) +settings = {} +standardScaler = createTransformer(targets, StandardScaler) +# Check fitted parameters +params = standardScaler.fit(signals, pivot, targets, settings) +mean = params['C']['mean'] +scale = params['C']['scale'] +meanTrue = 0 +scaleTrue = np.std(signals) +checkFloat('StandardScaler fit mean', mean, meanTrue) +checkFloat('StandardScaler fit scale', scale, scaleTrue) +# Check forward transform +transformed = standardScaler.getResidual(signals, params, pivot, settings) +transformedTrue = (signals - meanTrue) / scaleTrue +checkArray('StandardScaler getResidual', transformed, transformedTrue, float) +# Check inverse transform +# The inverse transform should recover the original signals +inverse = standardScaler.getComposite(transformed, params, pivot, settings) +checkArray('StandardScaler getComposite', inverse, signals, float) + +# Test RobustScaler +targets = ['D'] +pivot = np.arange(11) +signals = np.linspace(-2, 2, 11).reshape(-1, 1) +settings = {} +robustScaler = createTransformer(targets, RobustScaler) +# Check fitted parameters +params = robustScaler.fit(signals, pivot, targets, settings) +center = params['D']['center'] +scale = params['D']['scale'] +centerTrue = 0 # median at 0 +scaleTrue = 2 # quartiles at -1 and 1, so interquarter range is 2 +checkFloat('RobustScaler fit center', center, centerTrue) +checkFloat('RobustScaler fit scale', scale, scaleTrue) +# Check forward transform +transformed = robustScaler.getResidual(signals, params, pivot, settings) +transformedTrue = np.linspace(-1, 1, 11).reshape(-1, 1) +checkArray('RobustScaler getResidual', transformed, transformedTrue, float) +# Check inverse transform +# The inverse transform should recover the original signals +inverse = robustScaler.getComposite(transformed, params, pivot, settings) +checkArray('RobustScaler getComposite', inverse, signals, float) + +# Testing the QuantileTransformer is a bit more difficult because the internal operations are more +# involved. However, if the distributions of both the original and target distributions are known, +# an analytical solution for the transformation can be derived through a change of random variables. +# The QuantileTransformer can use either a normal or uniform distribution as the target distribution. +# With the target distribution as the normal distribution, the QuantileTransformer struggles to +# estimate the correct quantiles of the extreme values of the distribution due to the asymptotic +# nature of the tails of the distribution. This is not a problem with the uniform distribution due +# to the bounded domain of the distribution. We can minimize the impact of this tail behavior by +# increasing the number of samples used to estimate the quantiles, since the quantile function +# estimation should converge to the true quantile function as the number of samples increases. +# However, it is still necessary for "reasonable" sample sizes to remove the extreme values from the +# transformed distribution before comparing the analytical solution and the quantile transformation. +# Even with these measures, the test tolerance must be kept rather high to accommodate the growing +# error in the tails. +# - j-bryan + +# Test QuantileTransformer (normal) +targets = ['E'] +pivot = np.arange(3000) +np.random.seed(42) +signals = np.random.uniform(0, 1, (3000, 1)) # uniform distribution +settings = {} +quantileTransformer = createTransformer(targets, QuantileTransformer, outputDistribution='normal') +params = quantileTransformer.fit(signals, pivot, targets, settings) +# Check forward transform +transformed = quantileTransformer.getResidual(signals, params, pivot, settings) +transformedTrue = norm.ppf(signals) # norm.ppf is the inverse CDF of the normal distribution +# Remove values greater than 3 standard deviations from the mean to avoid tail estimation issues +# when checking results +transformed = transformed[np.abs(transformedTrue) < 3].reshape(-1, 1) +transformedTrue = transformedTrue[np.abs(transformedTrue) < 3].reshape(-1, 1) +checkArray('QuantileTransformer.getResidual() (uniform -> normal)', transformed, transformedTrue, float, tol=3e-1) +# Check inverse transform +# The inverse transform should recover the original signals +inverse = quantileTransformer.getComposite(transformed, params, pivot, settings) +checkArray('QuantileTransformer.getComposite() (uniform -> normal)', inverse, signals, float) + +# Test QuantileTransformer (uniform) +targets = ['F'] +pivot = np.arange(500) +np.random.seed(42) +signals = np.random.normal(0, 1, (500, 1)) # far fewer samples are required +settings = {} +quantileTransformer = createTransformer(targets, QuantileTransformer, outputDistribution='uniform') +params = quantileTransformer.fit(signals, pivot, targets, settings) +# Check forward transform +transformed = quantileTransformer.getResidual(signals, params, pivot, settings) +transformedTrue = norm.cdf(signals) # norm.cdf is the CDF of the normal distribution +checkArray('QuantileTransformer.getResidual() (normal -> uniform)', transformed, transformedTrue, float, tol=3e-2) +# Check inverse transform +# The inverse transform should recover the original signals +inverse = quantileTransformer.getComposite(transformed, params, pivot, settings) +checkArray('QuantileTransformer.getComposite() (normal -> uniform)', inverse, signals, float) + + +print(results) + +sys.exit(results["fail"]) diff --git a/tests/framework/unit_tests/TSA/testOutTruncation.py b/tests/framework/unit_tests/TSA/testOutTruncation.py new file mode 100644 index 0000000000..1e2ed2af4d --- /dev/null +++ b/tests/framework/unit_tests/TSA/testOutTruncation.py @@ -0,0 +1,191 @@ +# Copyright 2017 Battelle Energy Alliance, LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" + This Module performs Unit Tests for the TSA.ZeroFilter class. + It can not be considered part of the active code but of the regression test system +""" +import os +import sys +import numpy as np + +# add RAVEN to path +ravenDir = os.path.abspath(os.path.join(*([os.path.dirname(__file__)] + [os.pardir]*4))) +frameworkDir = os.path.join(ravenDir, 'framework') +if ravenDir not in sys.path: + sys.path.append(ravenDir) + +from ravenframework.utils import xmlUtils + +from ravenframework.TSA import OutTruncation + +print('Modules undergoing testing:') +print(OutTruncation) +print('') + +results = {"pass":0, "fail":0} + +def updateRes(comment, dtype, res, value, expected, printComment=True): + """ + Updates results dictionary + @ In, comment, string, a comment printed out if it fails + @ In, dtype, type, the type of the value + @ In, res, bool, the result of the check + @ In, value, object, the value to compare + @ In, expected, object, the expected value + @ In, printComment, bool, optional, if False then don't print comment + """ + if res: + results['pass'] += 1 + else: + results['fail'] += 1 + if printComment: + print(f'checking {str(dtype)} {comment} | {value} != {expected}') + +def checkFloat(comment, value, expected, tol=1e-10, update=True): + """ + This method is aimed to compare two floats given a certain tolerance + @ In, comment, string, a comment printed out if it fails + @ In, value, float, the value to compare + @ In, expected, float, the expected value + @ In, tol, float, optional, the tolerance + @ In, update, bool, optional, if False then don't update results counter + @ Out, res, bool, True if same + """ + if np.isnan(value) and np.isnan(expected): + res = True + elif np.isnan(value) or np.isnan(expected): + res = False + else: + res = abs(value - expected) <= tol + + if update: + updateRes(comment, float, res, value, expected) + + return res + +def checkSame(comment, value, expected, update=True): + """ + This method is aimed to compare two identical things + @ In, comment, string, a comment printed out if it fails + @ In, value, float, the value to compare + @ In, expected, float, the expected value + @ In, update, bool, optional, if False then don't update results counter + @ Out, res, bool, True if same + """ + res = value == expected + if update: + updateRes(comment, type(value), res, value, expected) + return res + +def checkBool(comment, value, expected, update=True): + """ + Checks if value is True + @ In, comment, string, a comment printed out if it fails + @ In, value, bool, boolean value to check + @ In, update, bool, optional, if False then don't update results counter + @ Out, res, bool, True if all values are True + """ + res = value == expected + if update: + updateRes(comment, type(value), res, value, expected) + return res + +def checkArray(comment, first, second, dtype, tol=1e-10, update=True): + """ + This method is aimed to compare two arrays + @ In, comment, string, a comment printed out if it fails + @ In, value, float, the value to compare + @ In, expected, float, the expected value + @ In, tol, float, optional, the tolerance + @ In, update, bool, optional, if False then don't update results counter + @ Out, res, bool, True if same + """ + res = True + + if first.shape != second.shape: + res = False + print(f'checking answer {comment} | array shapes do not match: {first.shape} {second.shape}') + return res + + for indices, _ in np.ndenumerate(first): + if dtype == float: + pres = checkFloat('', first[indices], second[indices], tol, update=False) + elif dtype == str: + pres = checkSame('', first[indices], second[indices], update=False) + elif dtype == bool: + pres = checkBool('', first[indices], second[indices], update=False) + else: + pres = False + + if not pres: + print(f'checking array {comment} | entry "{indices}" does not match: {first[indices]} != {second[indices]}') + res = False + + if update: + updateRes(comment, dtype, res, first, second, printComment=False) + + return res + +###################################### +# CONSTRUCTION # +###################################### +def createOutTruncation(targets, domain): + """ + Creates a transformer of the given type. + @ In, targets, list(str), names of targets + @ In, domain, str, domain of truncation + @ Out, transformer, subclass of TimeSeriesTransformer, transformer instance + """ + transformer = OutTruncation() + xml = xmlUtils.newNode('outtruncation', attrib={'target':','.join(targets), 'domain': domain}) + inputSpec = transformer.getInputSpecification()() + inputSpec.parseNode(xml) + transformer.handleInput(inputSpec) + return transformer + +################### +# Tests # +################### +targets = ['A'] +pivot = np.arange(11) +signals = np.linspace(-1, 1, 11).reshape(-1, 1) + +# Test positive domain +outTruncationPositive = createOutTruncation(targets, 'positive') +params = outTruncationPositive.fit(signals, pivot, targets, {}) +residual = outTruncationPositive.getResidual(signals, params, pivot, {}) +# Forward transformation should be the identity function +checkArray('OutTruncation positive residual', residual, signals, float) +# Inverse transformation should not have any negative values +inverse = outTruncationPositive.getComposite(signals, params, pivot, {}) +checkArray('OutTruncation positive inverse', inverse >= 0, np.full_like(inverse, True), float) +# Inverse transformation should reflect negative values back into positive domain with absolute value +checkArray('OutTruncation positive inverse', inverse, np.abs(signals), float) + + +# Test negative domain +outTruncationNegative = createOutTruncation(targets, 'negative') +params = outTruncationNegative.fit(signals, pivot, targets, {}) +residual = outTruncationNegative.getResidual(signals, params, pivot, {}) +# Forward transformation should be the identity function +checkArray('OutTruncation negative residual', residual, signals, float) +# Inverse transformation should not have any positive values +inverse = outTruncationNegative.getComposite(signals, params, pivot, {}) +checkArray('OutTruncation negative inverse', inverse <= 0, np.full_like(inverse, True), float) +# Inverse transformation should reflect positive values back into negative domain with absolute value +checkArray('OutTruncation positive inverse', inverse, -np.abs(signals), float) + +print(results) + +sys.exit(results["fail"]) diff --git a/tests/framework/unit_tests/TSA/testPolynomialRegression.py b/tests/framework/unit_tests/TSA/testPolynomialRegression.py index 4800548490..2cc567b9b2 100644 --- a/tests/framework/unit_tests/TSA/testPolynomialRegression.py +++ b/tests/framework/unit_tests/TSA/testPolynomialRegression.py @@ -239,13 +239,12 @@ def createRegression(targets, degree): model = createRegression(targets, 2) settings = {'degree': 2} settings = model.setDefaults(settings) -params = model.characterize(signals, pivot, targets, settings) +params = model.fit(signals, pivot, targets, settings) check = params['A']['model'] for title, real, pred in zip(coef_titles, okay_coefs, check): checkFloat(title, real, check[pred], tol=1e-1) -checkTrue("model can generate", model.canGenerate()) checkTrue("model can characterize", model.canCharacterize()) ############################ @@ -258,7 +257,7 @@ def createRegression(targets, degree): model = createRegression(targets, 2) settings = {'degree': 2} settings = model.setDefaults(settings) -params = model.characterize(signals, pivot, targets, settings) +params = model.fit(signals, pivot, targets, settings) check = params['A']['model'] for title, real, pred in zip(coef_titles, okay_coefs, check): @@ -276,7 +275,7 @@ def createRegression(targets, degree): model = createRegression(targets, 3) settings = {'degree': 3} settings = model.setDefaults(settings) -params = model.characterize(signals, pivot, targets, settings) +params = model.fit(signals, pivot, targets, settings) check = params['A']['model'] for title, real, pred in zip(coef_titles, okay_coefs, check): @@ -295,7 +294,7 @@ def createRegression(targets, degree): model = createRegression(targets, 3) settings = {'degree': 3} settings = model.setDefaults(settings) -params = model.characterize(signals, pivot, targets, settings) +params = model.fit(signals, pivot, targets, settings) check = params['A']['model'] for title, real, pred in zip(coef_titles, okay_coefs, check): diff --git a/tests/framework/unit_tests/TSA/testWavelet.py b/tests/framework/unit_tests/TSA/testWavelet.py index 3dadef3277..0506e6ac48 100644 --- a/tests/framework/unit_tests/TSA/testWavelet.py +++ b/tests/framework/unit_tests/TSA/testWavelet.py @@ -241,10 +241,9 @@ def createWavelet(targets, family): transform = createWavelet(targets, family='db2') settings = {'family': 'db2'} settings = transform.setDefaults(settings) -params = transform.characterize(signals, pivot, targets, settings) +params = transform.fit(signals, pivot, targets, settings) check = params['A']['results'] -checkTrue("wavelet can generate", transform.canGenerate()) checkTrue("wavelet can characterize", transform.canCharacterize()) for real_a, pred_a in zip(true_a, check['coeff_a']): diff --git a/tests/framework/unit_tests/TSA/tests b/tests/framework/unit_tests/TSA/tests index 4bd3ae7e80..6073297ace 100644 --- a/tests/framework/unit_tests/TSA/tests +++ b/tests/framework/unit_tests/TSA/tests @@ -12,4 +12,20 @@ input = 'testWavelet.py' required_libraries = 'pywavelets' [../] + [./Filters] + type = 'RavenPython' + input = 'testFilters.py' + [../] + [./FunctionTransformers] + type = 'RavenPython' + input = 'testFunctionTransformers.py' + [../] + [./OutTruncation] + type = 'RavenPython' + input = 'testOutTruncation.py' + [../] + [./Normalization] + type = 'RavenPython' + input = 'testNormalization.py' + [../] []