From cd0e49806e68b9febba7d2b681bec588a5bc9992 Mon Sep 17 00:00:00 2001 From: akloeckner Date: Wed, 25 Jun 2014 10:58:00 +0200 Subject: [PATCH] Moved all external "C" functions to Utilities.Auxiliary Replaceable Seeds should now be standard conform for extending --- Noise/PRNG.mo | 2 +- Noise/Seed/Seed_Real.mo | 6 +++++- Noise/Utilities/Auxiliary/SeedReal.mo | 17 +++++++++++++++++ .../{Seedings => Auxiliary}/combineSeedLCG.mo | 2 +- Noise/Utilities/Auxiliary/package.order | 2 ++ Noise/Utilities/Seedings/package.mo | 9 --------- Noise/Utilities/Seedings/package.order | 1 - Noise/Utilities/package.order | 1 - 8 files changed, 26 insertions(+), 14 deletions(-) create mode 100644 Noise/Utilities/Auxiliary/SeedReal.mo rename Noise/Utilities/{Seedings => Auxiliary}/combineSeedLCG.mo (93%) delete mode 100644 Noise/Utilities/Seedings/package.mo delete mode 100644 Noise/Utilities/Seedings/package.order diff --git a/Noise/PRNG.mo b/Noise/PRNG.mo index f471a2f..2a32364 100644 --- a/Noise/PRNG.mo +++ b/Noise/PRNG.mo @@ -144,7 +144,7 @@ public parameter Boolean useGlobalSeed = true "Combine local seed value with global seed" annotation(choices(checkBox=true),Dialog(group = "Initialization")); final parameter Integer seed=if useGlobalSeed then - Noise.Utilities.Seedings.combineSeedLCG(localSeed, globalSeed.seed) + Noise.Utilities.Auxiliary.combineSeedLCG(localSeed, globalSeed.seed) else localSeed; initial equation if useSampleBasedMethods then diff --git a/Noise/Seed/Seed_Real.mo b/Noise/Seed/Seed_Real.mo index c04b5dd..24cbcbb 100644 --- a/Noise/Seed/Seed_Real.mo +++ b/Noise/Seed/Seed_Real.mo @@ -1,7 +1,11 @@ within Noise.Seed; function Seed_Real "Uses the real value for seeding" extends Utilities.Interfaces.Seed; - external "C" NOISE_SeedReal(local_seed, global_seed, real_seed, n, states); +algorithm + states := Noise.Utilities.Auxiliary.SeedReal(local_seed= local_seed, + global_seed= global_seed, + real_seed= real_seed, + n= n); annotation (Include = "#include \"ModelicaNoise.c\"", Documentation(revisions="

Developed 2014 at the DLR Institute of System Dynamics and Control

diff --git a/Noise/Utilities/Auxiliary/SeedReal.mo b/Noise/Utilities/Auxiliary/SeedReal.mo new file mode 100644 index 0000000..d3ba7b2 --- /dev/null +++ b/Noise/Utilities/Auxiliary/SeedReal.mo @@ -0,0 +1,17 @@ +within Noise.Utilities.Auxiliary; +function SeedReal "Uses a real value for initializing an RNG's state vector" + + input Integer local_seed "The local seed"; + input Integer global_seed "The global seed"; + input Real real_seed "The real seed"; + input Integer n "The number of initial state values to be generated"; + output Integer states[n] "The generated initial states"; + + external "C" NOISE_SeedReal(local_seed, global_seed, real_seed, n, states); + + annotation (Include = "#include \"ModelicaNoise.c\"", Documentation(revisions=" +

Developed 2014 at the DLR Institute of System Dynamics and Control

+", info=" +

This function converts the Real value to Integer values and fills the state vector with them.

+")); +end SeedReal; diff --git a/Noise/Utilities/Seedings/combineSeedLCG.mo b/Noise/Utilities/Auxiliary/combineSeedLCG.mo similarity index 93% rename from Noise/Utilities/Seedings/combineSeedLCG.mo rename to Noise/Utilities/Auxiliary/combineSeedLCG.mo index b8c59e1..611cc56 100644 --- a/Noise/Utilities/Seedings/combineSeedLCG.mo +++ b/Noise/Utilities/Auxiliary/combineSeedLCG.mo @@ -1,4 +1,4 @@ -within Noise.Utilities.Seedings; +within Noise.Utilities.Auxiliary; function combineSeedLCG "combines two seed values in an LCG fashion" extends Interfaces.combineSeed; diff --git a/Noise/Utilities/Auxiliary/package.order b/Noise/Utilities/Auxiliary/package.order index 081f02f..95aa21c 100644 --- a/Noise/Utilities/Auxiliary/package.order +++ b/Noise/Utilities/Auxiliary/package.order @@ -1 +1,3 @@ shuffleDouble +SeedReal +combineSeedLCG diff --git a/Noise/Utilities/Seedings/package.mo b/Noise/Utilities/Seedings/package.mo deleted file mode 100644 index 80908a8..0000000 --- a/Noise/Utilities/Seedings/package.mo +++ /dev/null @@ -1,9 +0,0 @@ -within Noise.Utilities; -package Seedings - extends Modelica.Icons.Package; - - -annotation (Documentation(revisions=" -

Developed 2014 at the DLR Institute of System Dynamics and Control

-")); -end Seedings; diff --git a/Noise/Utilities/Seedings/package.order b/Noise/Utilities/Seedings/package.order deleted file mode 100644 index 52e9fa2..0000000 --- a/Noise/Utilities/Seedings/package.order +++ /dev/null @@ -1 +0,0 @@ -combineSeedLCG diff --git a/Noise/Utilities/package.order b/Noise/Utilities/package.order index bec0e55..5eb8674 100644 --- a/Noise/Utilities/package.order +++ b/Noise/Utilities/package.order @@ -4,4 +4,3 @@ Analysis Auxiliary Math Interaction -Seedings