From a46dbca50366735b5f130e5693d6c2bfd5771610 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Fri, 16 Aug 2024 10:13:22 +0200 Subject: [PATCH] GeneratorProfile: added the external array string. --- src/api/libcellml/generatorprofile.h | 19 +++++++++++ src/bindings/interface/generatorprofile.i | 6 ++++ src/bindings/javascript/generatorprofile.cpp | 2 ++ src/generator.cpp | 16 +++++++--- src/generatorprofile.cpp | 12 +++++++ src/generatorprofile_p.h | 1 + src/generatorprofilesha1values.h | 4 +-- src/generatorprofiletools.cpp | 3 +- tests/bindings/javascript/generator.test.js | 2 +- .../javascript/generatorprofile.test.js | 6 ++++ .../bindings/python/test_generator_profile.py | 9 ++++++ tests/generator/generatorprofile.cpp | 3 ++ .../model.external.c | 6 ++-- .../model.external.py | 6 ++-- .../model.external.c | 4 +-- .../model.external.py | 4 +-- .../model.three.externals.c | 12 +++---- .../model.three.externals.py | 12 +++---- .../cell_geometry_model/model.external.c | 10 +++--- .../cell_geometry_model/model.external.py | 10 +++--- .../model.algebraic.c | 8 ++--- .../model.algebraic.py | 8 ++--- .../model.computed.constant.c | 10 +++--- .../model.computed.constant.py | 10 +++--- .../model.constant.c | 8 ++--- .../model.constant.py | 8 ++--- .../model.dae.c | 12 +++---- .../model.dae.py | 12 +++---- .../model.dependent.algebraic.c | 16 +++++----- .../model.dependent.algebraic.py | 16 +++++----- .../model.dependent.computed.constant.c | 24 +++++++------- .../model.dependent.computed.constant.py | 24 +++++++------- .../model.dependent.constant.c | 18 +++++------ .../model.dependent.constant.py | 18 +++++------ .../model.dependent.state.c | 28 ++++++++-------- .../model.dependent.state.py | 28 ++++++++-------- .../model.external.c | 32 +++++++++---------- .../model.external.py | 32 +++++++++---------- .../model.state.c | 10 +++--- .../model.state.py | 10 +++--- .../model.c | 6 ++-- .../model.py | 6 ++-- 42 files changed, 279 insertions(+), 212 deletions(-) diff --git a/src/api/libcellml/generatorprofile.h b/src/api/libcellml/generatorprofile.h index 943eca801..ae367e295 100644 --- a/src/api/libcellml/generatorprofile.h +++ b/src/api/libcellml/generatorprofile.h @@ -3122,6 +3122,25 @@ class LIBCELLML_EXPORT GeneratorProfile */ void setAlgebraicArrayString(const std::string &algebraicArrayString); + /** + * @brief Get the @c std::string for the name of the external array. + * + * Return the @c std::string for the name of the external array. + * + * @return The @c std::string for the name of the external array. + */ + std::string externalArrayString() const; + + /** + * @brief Set the @c std::string for the name of the external array. + * + * Set the @c std::string for the name of the external array. + * + * @param externalArrayString The @c std::string to use for the name of the + * external array. + */ + void setExternalArrayString(const std::string &externalArrayString); + /** * @brief Get the @c std::string for the type definition of an external * variable method. diff --git a/src/bindings/interface/generatorprofile.i b/src/bindings/interface/generatorprofile.i index 23fc7a9b9..426cd08a2 100644 --- a/src/bindings/interface/generatorprofile.i +++ b/src/bindings/interface/generatorprofile.i @@ -860,6 +860,12 @@ and units of a variable respectively."; %feature("docstring") libcellml::GeneratorProfile::setAlgebraicArrayString "Sets the string for the name of the algebraic array."; +%feature("docstring") libcellml::GeneratorProfile::externalArrayString +"Returns the string for the name of the external array."; + +%feature("docstring") libcellml::GeneratorProfile::setExternalArrayString +"Sets the string for the name of the external array."; + %feature("docstring") libcellml::GeneratorProfile::externalVariableMethodTypeDefinitionString "Returns the string for the type definition of an external variable method."; diff --git a/src/bindings/javascript/generatorprofile.cpp b/src/bindings/javascript/generatorprofile.cpp index 1f4d57997..e981e701e 100644 --- a/src/bindings/javascript/generatorprofile.cpp +++ b/src/bindings/javascript/generatorprofile.cpp @@ -307,6 +307,8 @@ EMSCRIPTEN_BINDINGS(libcellml_generatorprofile) .function("setComputedConstantsArrayString", &libcellml::GeneratorProfile::setComputedConstantsArrayString) .function("algebraicArrayString", &libcellml::GeneratorProfile::algebraicArrayString) .function("setAlgebraicArrayString", &libcellml::GeneratorProfile::setAlgebraicArrayString) + .function("externalArrayString", &libcellml::GeneratorProfile::externalArrayString) + .function("setExternalArrayString", &libcellml::GeneratorProfile::setExternalArrayString) .function("externalVariableMethodTypeDefinitionString", &libcellml::GeneratorProfile::externalVariableMethodTypeDefinitionString) .function("setExternalVariableMethodTypeDefinitionString", &libcellml::GeneratorProfile::setExternalVariableMethodTypeDefinitionString) .function("externalVariableMethodCallString", &libcellml::GeneratorProfile::externalVariableMethodCallString) diff --git a/src/generator.cpp b/src/generator.cpp index 95b8bba40..ce6cc531f 100644 --- a/src/generator.cpp +++ b/src/generator.cpp @@ -764,7 +764,9 @@ void Generator::GeneratorImpl::addNlaSystemsCode() mProfile->constantsArrayString() : (variable->type() == AnalyserVariable::Type::COMPUTED_CONSTANT) ? mProfile->computedConstantsArrayString() : - mProfile->algebraicArrayString(); + (variable->type() == AnalyserVariable::Type::ALGEBRAIC) ? + mProfile->algebraicArrayString() : + mProfile->externalArrayString(); methodBody += mProfile->indentString() + arrayString + mProfile->openArrayString() + convertToString(variable->index()) + mProfile->closeArrayString() @@ -807,7 +809,9 @@ void Generator::GeneratorImpl::addNlaSystemsCode() for (const auto &variable : variables) { auto arrayString = (variable->type() == AnalyserVariable::Type::STATE) ? mProfile->ratesArrayString() : - mProfile->algebraicArrayString(); + (variable->type() == AnalyserVariable::Type::ALGEBRAIC) ? + mProfile->algebraicArrayString() : + mProfile->externalArrayString(); methodBody += mProfile->indentString() + mProfile->uArrayString() + mProfile->openArrayString() + convertToString(++i) + mProfile->closeArrayString() @@ -831,7 +835,9 @@ void Generator::GeneratorImpl::addNlaSystemsCode() for (const auto &variable : variables) { auto arrayString = (variable->type() == AnalyserVariable::Type::STATE) ? mProfile->ratesArrayString() : - mProfile->algebraicArrayString(); + (variable->type() == AnalyserVariable::Type::ALGEBRAIC) ? + mProfile->algebraicArrayString() : + mProfile->externalArrayString(); methodBody += mProfile->indentString() + arrayString + mProfile->openArrayString() + convertToString(variable->index()) + mProfile->closeArrayString() @@ -914,8 +920,10 @@ std::string Generator::GeneratorImpl::generateVariableNameCode(const VariablePtr arrayName = mProfile->constantsArrayString(); } else if (analyserVariable->type() == AnalyserVariable::Type::COMPUTED_CONSTANT) { arrayName = mProfile->computedConstantsArrayString(); - } else { + } else if (analyserVariable->type() == AnalyserVariable::Type::ALGEBRAIC) { arrayName = mProfile->algebraicArrayString(); + } else { + arrayName = mProfile->externalArrayString(); } return arrayName + mProfile->openArrayString() + convertToString(analyserVariable->index()) + mProfile->closeArrayString(); diff --git a/src/generatorprofile.cpp b/src/generatorprofile.cpp index 997fa4bfb..bc191920b 100644 --- a/src/generatorprofile.cpp +++ b/src/generatorprofile.cpp @@ -288,6 +288,7 @@ void GeneratorProfile::GeneratorProfileImpl::loadProfile(GeneratorProfile::Profi mConstantsArrayString = "constants"; mComputedConstantsArrayString = "computedConstants"; mAlgebraicArrayString = "algebraic"; + mExternalArrayString = "external"; mExternalVariableMethodTypeDefinitionFamString = "typedef double (* ExternalVariable)(double *variables, size_t index);\n"; mExternalVariableMethodTypeDefinitionFdmString = "typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *variables, size_t index);\n"; @@ -740,6 +741,7 @@ void GeneratorProfile::GeneratorProfileImpl::loadProfile(GeneratorProfile::Profi mConstantsArrayString = "constants"; mComputedConstantsArrayString = "computed_constants"; mAlgebraicArrayString = "algebraic"; + mExternalArrayString = "external"; mExternalVariableMethodTypeDefinitionFamString = ""; mExternalVariableMethodTypeDefinitionFdmString = ""; @@ -2288,6 +2290,16 @@ void GeneratorProfile::setAlgebraicArrayString(const std::string &algebraicArray mPimpl->mAlgebraicArrayString = algebraicArrayString; } +std::string GeneratorProfile::externalArrayString() const +{ + return mPimpl->mExternalArrayString; +} + +void GeneratorProfile::setExternalArrayString(const std::string &externalArrayString) +{ + mPimpl->mExternalArrayString = externalArrayString; +} + std::string GeneratorProfile::externalVariableMethodTypeDefinitionString(bool forDifferentialModel) const { if (forDifferentialModel) { diff --git a/src/generatorprofile_p.h b/src/generatorprofile_p.h index 286edca8e..167f8ab23 100644 --- a/src/generatorprofile_p.h +++ b/src/generatorprofile_p.h @@ -217,6 +217,7 @@ struct GeneratorProfile::GeneratorProfileImpl std::string mConstantsArrayString; std::string mComputedConstantsArrayString; std::string mAlgebraicArrayString; + std::string mExternalArrayString; std::string mExternalVariableMethodTypeDefinitionFamString; std::string mExternalVariableMethodTypeDefinitionFdmString; diff --git a/src/generatorprofilesha1values.h b/src/generatorprofilesha1values.h index cf522db03..c96cffaf2 100644 --- a/src/generatorprofilesha1values.h +++ b/src/generatorprofilesha1values.h @@ -24,7 +24,7 @@ namespace libcellml { * The content of this file is generated, do not edit this file directly. * See docs/dev_utilities.rst for further information. */ -static const char C_GENERATOR_PROFILE_SHA1[] = "2d4d14df0a454d95e32e1172503d529834c42588"; -static const char PYTHON_GENERATOR_PROFILE_SHA1[] = "5ff1e7cc237b3e7eb1153b6d421df842731c6394"; +static const char C_GENERATOR_PROFILE_SHA1[] = "54ee603459d7878ee469890e77de4f3dbb5452ad"; +static const char PYTHON_GENERATOR_PROFILE_SHA1[] = "bf42c06955e401096d76d059a28ed1a5cb1ccc01"; } // namespace libcellml diff --git a/src/generatorprofiletools.cpp b/src/generatorprofiletools.cpp index d74e462be..5fa609392 100644 --- a/src/generatorprofiletools.cpp +++ b/src/generatorprofiletools.cpp @@ -482,7 +482,8 @@ std::string generatorProfileAsString(const GeneratorProfilePtr &generatorProfile + generatorProfile->ratesArrayString() + generatorProfile->constantsArrayString() + generatorProfile->computedConstantsArrayString() - + generatorProfile->algebraicArrayString(); + + generatorProfile->algebraicArrayString() + + generatorProfile->externalArrayString(); profileContents += generatorProfile->externalVariableMethodTypeDefinitionString(false) + generatorProfile->externalVariableMethodTypeDefinitionString(true); diff --git a/tests/bindings/javascript/generator.test.js b/tests/bindings/javascript/generator.test.js index b5860fd01..802b47941 100644 --- a/tests/bindings/javascript/generator.test.js +++ b/tests/bindings/javascript/generator.test.js @@ -62,7 +62,7 @@ describe("Generator tests", () => { g.setModel(a.model()) const interface_lines = g.interfaceCode().split('\n') - expect(interface_lines.length).toBe(37) + expect(interface_lines.length).toBe(38) const implementation_lines = g.implementationCode().split('\n') expect(implementation_lines.length).toBe(97) diff --git a/tests/bindings/javascript/generatorprofile.test.js b/tests/bindings/javascript/generatorprofile.test.js index 81b1b13ff..e1f63eee4 100644 --- a/tests/bindings/javascript/generatorprofile.test.js +++ b/tests/bindings/javascript/generatorprofile.test.js @@ -915,6 +915,12 @@ describe("GeneratorProfile tests", () => { x.setAlgebraicArrayString("something") expect(x.algebraicArrayString()).toBe("something") }); + test("Checking GeneratorProfile.externalArrayString.", () => { + const x = new libcellml.GeneratorProfile(libcellml.GeneratorProfile.Profile.C) + + x.setExternalArrayString("something") + expect(x.externalArrayString()).toBe("something") + }); test("Checking GeneratorProfile.externalVariableMethodTypeDefinitionString.", () => { const x = new libcellml.GeneratorProfile(libcellml.GeneratorProfile.Profile.C) diff --git a/tests/bindings/python/test_generator_profile.py b/tests/bindings/python/test_generator_profile.py index 7c97f547d..51d67a723 100644 --- a/tests/bindings/python/test_generator_profile.py +++ b/tests/bindings/python/test_generator_profile.py @@ -1682,6 +1682,15 @@ def test_algebraic_array_string(self): g.setAlgebraicArrayString(GeneratorProfileTestCase.VALUE) self.assertEqual(GeneratorProfileTestCase.VALUE, g.algebraicArrayString()) + def test_external_array_string(self): + from libcellml import GeneratorProfile + + g = GeneratorProfile() + + self.assertEqual('external', g.externalArrayString()) + g.setExternalArrayString(GeneratorProfileTestCase.VALUE) + self.assertEqual(GeneratorProfileTestCase.VALUE, g.externalArrayString()) + def test_external_variable_method_type_definition_string(self): from libcellml import GeneratorProfile diff --git a/tests/generator/generatorprofile.cpp b/tests/generator/generatorprofile.cpp index 1e8b33b53..aa91c910a 100644 --- a/tests/generator/generatorprofile.cpp +++ b/tests/generator/generatorprofile.cpp @@ -340,6 +340,7 @@ TEST(GeneratorProfile, defaultMiscellaneousValues) EXPECT_EQ("constants", generatorProfile->constantsArrayString()); EXPECT_EQ("computedConstants", generatorProfile->computedConstantsArrayString()); EXPECT_EQ("algebraic", generatorProfile->algebraicArrayString()); + EXPECT_EQ("external", generatorProfile->externalArrayString()); EXPECT_EQ("typedef double (* ExternalVariable)(double *variables, size_t index);\n", generatorProfile->externalVariableMethodTypeDefinitionString(false)); EXPECT_EQ("typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *variables, size_t index);\n", generatorProfile->externalVariableMethodTypeDefinitionString(true)); @@ -938,6 +939,7 @@ TEST(GeneratorProfile, miscellaneous) generatorProfile->setConstantsArrayString(value); generatorProfile->setComputedConstantsArrayString(value); generatorProfile->setAlgebraicArrayString(value); + generatorProfile->setExternalArrayString(value); generatorProfile->setExternalVariableMethodTypeDefinitionString(false, value); generatorProfile->setExternalVariableMethodTypeDefinitionString(true, value); @@ -1084,6 +1086,7 @@ TEST(GeneratorProfile, miscellaneous) EXPECT_EQ(value, generatorProfile->constantsArrayString()); EXPECT_EQ(value, generatorProfile->computedConstantsArrayString()); EXPECT_EQ(value, generatorProfile->algebraicArrayString()); + EXPECT_EQ(value, generatorProfile->externalArrayString()); EXPECT_EQ(value, generatorProfile->externalVariableMethodTypeDefinitionString(false)); EXPECT_EQ(value, generatorProfile->externalVariableMethodTypeDefinitionString(true)); diff --git a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.c b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.c index 06d47e8fe..9dc593142 100644 --- a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.c +++ b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.c @@ -78,7 +78,7 @@ void deleteArray(double *array) void initialiseVariables(double *constants, double *algebraic, ExternalVariable externalVariable) { - algebraic[1] = externalVariable(variables, 1); + external[1] = externalVariable(variables, 1); } void computeComputedConstants(double *constants, double *computedConstants) @@ -87,6 +87,6 @@ void computeComputedConstants(double *constants, double *computedConstants) void computeVariables(double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { - algebraic[1] = externalVariable(variables, 1); - algebraic[0] = algebraic[1]; + external[1] = externalVariable(variables, 1); + algebraic[0] = external[1]; } diff --git a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.py b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.py index 94691a7c9..56bde48d8 100644 --- a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.py +++ b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.py @@ -44,7 +44,7 @@ def create_externals_array(): def initialise_variables(constants, algebraic, external_variable): - algebraic[1] = external_variable(variables, 1) + external[1] = external_variable(variables, 1) def compute_computed_constants(constants, computed_constants): @@ -52,5 +52,5 @@ def compute_computed_constants(constants, computed_constants): def compute_variables(constants, computed_constants, algebraic, external_variable): - algebraic[1] = external_variable(variables, 1) - algebraic[0] = algebraic[1] + external[1] = external_variable(variables, 1) + algebraic[0] = external[1] diff --git a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.c b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.c index e6176a519..fcf0650ff 100644 --- a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.c +++ b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.c @@ -80,7 +80,7 @@ void deleteArray(double *array) void initialiseVariables(double *constants, double *algebraic, ExternalVariable externalVariable) { - algebraic[0] = externalVariable(variables, 0); + external[0] = externalVariable(variables, 0); } void computeComputedConstants(double *constants, double *computedConstants) @@ -92,5 +92,5 @@ void computeComputedConstants(double *constants, double *computedConstants) void computeVariables(double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { - algebraic[0] = externalVariable(variables, 0); + external[0] = externalVariable(variables, 0); } diff --git a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.py b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.py index a3b14cd85..c55a3656b 100644 --- a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.py +++ b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.py @@ -46,7 +46,7 @@ def create_externals_array(): def initialise_variables(constants, algebraic, external_variable): - algebraic[0] = external_variable(variables, 0) + external[0] = external_variable(variables, 0) def compute_computed_constants(constants, computed_constants): @@ -56,4 +56,4 @@ def compute_computed_constants(constants, computed_constants): def compute_variables(constants, computed_constants, algebraic, external_variable): - algebraic[0] = external_variable(variables, 0) + external[0] = external_variable(variables, 0) diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.three.externals.c b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.three.externals.c index 14f3025e2..1a1de087c 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.three.externals.c +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.three.externals.c @@ -79,9 +79,9 @@ void deleteArray(double *array) void initialiseVariables(double *constants, double *algebraic, ExternalVariable externalVariable) { - algebraic[0] = externalVariable(variables, 0); - algebraic[1] = externalVariable(variables, 1); - algebraic[2] = externalVariable(variables, 2); + external[0] = externalVariable(variables, 0); + external[1] = externalVariable(variables, 1); + external[2] = externalVariable(variables, 2); } void computeComputedConstants(double *constants, double *computedConstants) @@ -90,7 +90,7 @@ void computeComputedConstants(double *constants, double *computedConstants) void computeVariables(double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { - algebraic[0] = externalVariable(variables, 0); - algebraic[1] = externalVariable(variables, 1); - algebraic[2] = externalVariable(variables, 2); + external[0] = externalVariable(variables, 0); + external[1] = externalVariable(variables, 1); + external[2] = externalVariable(variables, 2); } diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.three.externals.py b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.three.externals.py index b7f5d99b6..f83da06d0 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.three.externals.py +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.three.externals.py @@ -45,9 +45,9 @@ def create_externals_array(): def initialise_variables(constants, algebraic, external_variable): - algebraic[0] = external_variable(variables, 0) - algebraic[1] = external_variable(variables, 1) - algebraic[2] = external_variable(variables, 2) + external[0] = external_variable(variables, 0) + external[1] = external_variable(variables, 1) + external[2] = external_variable(variables, 2) def compute_computed_constants(constants, computed_constants): @@ -55,6 +55,6 @@ def compute_computed_constants(constants, computed_constants): def compute_variables(constants, computed_constants, algebraic, external_variable): - algebraic[0] = external_variable(variables, 0) - algebraic[1] = external_variable(variables, 1) - algebraic[2] = external_variable(variables, 2) + external[0] = external_variable(variables, 0) + external[1] = external_variable(variables, 1) + external[2] = external_variable(variables, 2) diff --git a/tests/resources/generator/cell_geometry_model/model.external.c b/tests/resources/generator/cell_geometry_model/model.external.c index daa7e0447..9443a6222 100644 --- a/tests/resources/generator/cell_geometry_model/model.external.c +++ b/tests/resources/generator/cell_geometry_model/model.external.c @@ -80,8 +80,8 @@ void deleteArray(double *array) void initialiseVariables(double *constants, double *algebraic, ExternalVariable externalVariable) { - algebraic[1] = externalVariable(variables, 1); - algebraic[2] = externalVariable(variables, 2); + external[1] = externalVariable(variables, 1); + external[2] = externalVariable(variables, 2); } void computeComputedConstants(double *constants, double *computedConstants) @@ -90,8 +90,8 @@ void computeComputedConstants(double *constants, double *computedConstants) void computeVariables(double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { - algebraic[1] = externalVariable(variables, 1); - algebraic[2] = externalVariable(variables, 2); - algebraic[0] = 1000.0*3.14*algebraic[2]*algebraic[2]*algebraic[1]; + external[1] = externalVariable(variables, 1); + external[2] = externalVariable(variables, 2); + algebraic[0] = 1000.0*3.14*external[2]*external[2]*external[1]; algebraic[3] = 0.02*algebraic[0]; } diff --git a/tests/resources/generator/cell_geometry_model/model.external.py b/tests/resources/generator/cell_geometry_model/model.external.py index 3d16a465a..5549575c3 100644 --- a/tests/resources/generator/cell_geometry_model/model.external.py +++ b/tests/resources/generator/cell_geometry_model/model.external.py @@ -46,8 +46,8 @@ def create_externals_array(): def initialise_variables(constants, algebraic, external_variable): - algebraic[1] = external_variable(variables, 1) - algebraic[2] = external_variable(variables, 2) + external[1] = external_variable(variables, 1) + external[2] = external_variable(variables, 2) def compute_computed_constants(constants, computed_constants): @@ -55,7 +55,7 @@ def compute_computed_constants(constants, computed_constants): def compute_variables(constants, computed_constants, algebraic, external_variable): - algebraic[1] = external_variable(variables, 1) - algebraic[2] = external_variable(variables, 2) - algebraic[0] = 1000.0*3.14*algebraic[2]*algebraic[2]*algebraic[1] + external[1] = external_variable(variables, 1) + external[2] = external_variable(variables, 2) + algebraic[0] = 1000.0*3.14*external[2]*external[2]*external[1] algebraic[3] = 0.02*algebraic[0] diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.algebraic.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.algebraic.c index 79638165e..e0dcf3cb1 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.algebraic.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.algebraic.c @@ -124,7 +124,7 @@ void initialiseVariables(double voi, double *states, double *rates, double *cons constants[2] = 0.3; constants[3] = 120.0; constants[4] = 36.0; - algebraic[0] = externalVariable(voi, states, rates, variables, 0); + external[0] = externalVariable(voi, states, rates, variables, 0); } void computeComputedConstants(double *constants, double *computedConstants) @@ -136,11 +136,11 @@ void computeComputedConstants(double *constants, double *computedConstants) void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { - algebraic[0] = externalVariable(voi, states, rates, variables, 0); + external[0] = externalVariable(voi, states, rates, variables, 0); algebraic[1] = constants[2]*(states[0]-computedConstants[0]); algebraic[2] = constants[4]*pow(states[3], 4.0)*(states[0]-computedConstants[2]); algebraic[3] = constants[3]*pow(states[2], 3.0)*states[1]*(states[0]-computedConstants[1]); - rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0]; + rates[0] = -(-external[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0]; algebraic[4] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0); algebraic[5] = 4.0*exp(states[0]/18.0); rates[2] = algebraic[4]*(1.0-states[2])-algebraic[5]*states[2]; @@ -154,7 +154,7 @@ void computeRates(double voi, double *states, double *rates, double *constants, void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { - algebraic[0] = externalVariable(voi, states, rates, variables, 0); + external[0] = externalVariable(voi, states, rates, variables, 0); algebraic[1] = constants[2]*(states[0]-computedConstants[0]); algebraic[3] = constants[3]*pow(states[2], 3.0)*states[1]*(states[0]-computedConstants[1]); algebraic[4] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.algebraic.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.algebraic.py index 9d302d251..264db7750 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.algebraic.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.algebraic.py @@ -95,7 +95,7 @@ def initialise_variables(voi, states, rates, constants, algebraic, external_vari constants[2] = 0.3 constants[3] = 120.0 constants[4] = 36.0 - algebraic[0] = external_variable(voi, states, rates, variables, 0) + external[0] = external_variable(voi, states, rates, variables, 0) def compute_computed_constants(constants, computed_constants): @@ -105,11 +105,11 @@ def compute_computed_constants(constants, computed_constants): def compute_rates(voi, states, rates, constants, computed_constants, algebraic, external_variable): - algebraic[0] = external_variable(voi, states, rates, variables, 0) + external[0] = external_variable(voi, states, rates, variables, 0) algebraic[1] = constants[2]*(states[0]-computed_constants[0]) algebraic[2] = constants[4]*pow(states[3], 4.0)*(states[0]-computed_constants[2]) algebraic[3] = constants[3]*pow(states[2], 3.0)*states[1]*(states[0]-computed_constants[1]) - rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0] + rates[0] = -(-external[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0] algebraic[4] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0) algebraic[5] = 4.0*exp(states[0]/18.0) rates[2] = algebraic[4]*(1.0-states[2])-algebraic[5]*states[2] @@ -122,7 +122,7 @@ def compute_rates(voi, states, rates, constants, computed_constants, algebraic, def compute_variables(voi, states, rates, constants, computed_constants, algebraic, external_variable): - algebraic[0] = external_variable(voi, states, rates, variables, 0) + external[0] = external_variable(voi, states, rates, variables, 0) algebraic[1] = constants[2]*(states[0]-computed_constants[0]) algebraic[3] = constants[3]*pow(states[2], 3.0)*states[1]*(states[0]-computed_constants[1]) algebraic[4] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0) diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.computed.constant.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.computed.constant.c index 30d273c85..f5534292a 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.computed.constant.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.computed.constant.c @@ -124,7 +124,7 @@ void initialiseVariables(double voi, double *states, double *rates, double *cons constants[2] = 0.3; constants[3] = 120.0; constants[4] = 36.0; - algebraic[4] = externalVariable(voi, states, rates, variables, 4); + external[4] = externalVariable(voi, states, rates, variables, 4); } void computeComputedConstants(double *constants, double *computedConstants) @@ -136,8 +136,8 @@ void computeComputedConstants(double *constants, double *computedConstants) void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { algebraic[0] = ((voi >= 10.0) && (voi <= 10.5))?-20.0:0.0; - algebraic[4] = externalVariable(voi, states, rates, variables, 4); - algebraic[1] = constants[2]*(states[0]-algebraic[4]); + external[4] = externalVariable(voi, states, rates, variables, 4); + algebraic[1] = constants[2]*(states[0]-external[4]); algebraic[2] = constants[4]*pow(states[3], 4.0)*(states[0]-computedConstants[1]); algebraic[3] = constants[3]*pow(states[2], 3.0)*states[1]*(states[0]-computedConstants[0]); rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0]; @@ -154,8 +154,8 @@ void computeRates(double voi, double *states, double *rates, double *constants, void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { - algebraic[4] = externalVariable(voi, states, rates, variables, 4); - algebraic[1] = constants[2]*(states[0]-algebraic[4]); + external[4] = externalVariable(voi, states, rates, variables, 4); + algebraic[1] = constants[2]*(states[0]-external[4]); algebraic[3] = constants[3]*pow(states[2], 3.0)*states[1]*(states[0]-computedConstants[0]); algebraic[5] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0); algebraic[6] = 4.0*exp(states[0]/18.0); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.computed.constant.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.computed.constant.py index 110c67f6c..825c30cc9 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.computed.constant.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.computed.constant.py @@ -95,7 +95,7 @@ def initialise_variables(voi, states, rates, constants, algebraic, external_vari constants[2] = 0.3 constants[3] = 120.0 constants[4] = 36.0 - algebraic[4] = external_variable(voi, states, rates, variables, 4) + external[4] = external_variable(voi, states, rates, variables, 4) def compute_computed_constants(constants, computed_constants): @@ -105,8 +105,8 @@ def compute_computed_constants(constants, computed_constants): def compute_rates(voi, states, rates, constants, computed_constants, algebraic, external_variable): algebraic[0] = -20.0 if and_func(geq_func(voi, 10.0), leq_func(voi, 10.5)) else 0.0 - algebraic[4] = external_variable(voi, states, rates, variables, 4) - algebraic[1] = constants[2]*(states[0]-algebraic[4]) + external[4] = external_variable(voi, states, rates, variables, 4) + algebraic[1] = constants[2]*(states[0]-external[4]) algebraic[2] = constants[4]*pow(states[3], 4.0)*(states[0]-computed_constants[1]) algebraic[3] = constants[3]*pow(states[2], 3.0)*states[1]*(states[0]-computed_constants[0]) rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0] @@ -122,8 +122,8 @@ def compute_rates(voi, states, rates, constants, computed_constants, algebraic, def compute_variables(voi, states, rates, constants, computed_constants, algebraic, external_variable): - algebraic[4] = external_variable(voi, states, rates, variables, 4) - algebraic[1] = constants[2]*(states[0]-algebraic[4]) + external[4] = external_variable(voi, states, rates, variables, 4) + algebraic[1] = constants[2]*(states[0]-external[4]) algebraic[3] = constants[3]*pow(states[2], 3.0)*states[1]*(states[0]-computed_constants[0]) algebraic[5] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0) algebraic[6] = 4.0*exp(states[0]/18.0) diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.constant.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.constant.c index e006edcb5..7d3412568 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.constant.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.constant.c @@ -123,7 +123,7 @@ void initialiseVariables(double voi, double *states, double *rates, double *cons constants[1] = 0.3; constants[2] = 120.0; constants[3] = 36.0; - algebraic[4] = externalVariable(voi, states, rates, variables, 4); + external[4] = externalVariable(voi, states, rates, variables, 4); } void computeComputedConstants(double *constants, double *computedConstants) @@ -136,11 +136,11 @@ void computeComputedConstants(double *constants, double *computedConstants) void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { algebraic[0] = ((voi >= 10.0) && (voi <= 10.5))?-20.0:0.0; - algebraic[4] = externalVariable(voi, states, rates, variables, 4); + external[4] = externalVariable(voi, states, rates, variables, 4); algebraic[1] = constants[1]*(states[0]-computedConstants[0]); algebraic[2] = constants[3]*pow(states[3], 4.0)*(states[0]-computedConstants[2]); algebraic[3] = constants[2]*pow(states[2], 3.0)*states[1]*(states[0]-computedConstants[1]); - rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/algebraic[4]; + rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/external[4]; algebraic[5] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0); algebraic[6] = 4.0*exp(states[0]/18.0); rates[2] = algebraic[5]*(1.0-states[2])-algebraic[6]*states[2]; @@ -163,5 +163,5 @@ void computeVariables(double voi, double *states, double *rates, double *constan algebraic[2] = constants[3]*pow(states[3], 4.0)*(states[0]-computedConstants[2]); algebraic[9] = 0.01*(states[0]+10.0)/(exp((states[0]+10.0)/10.0)-1.0); algebraic[10] = 0.125*exp(states[0]/80.0); - algebraic[4] = externalVariable(voi, states, rates, variables, 4); + external[4] = externalVariable(voi, states, rates, variables, 4); } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.constant.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.constant.py index 95ab1649b..32d9a44ba 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.constant.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.constant.py @@ -94,7 +94,7 @@ def initialise_variables(voi, states, rates, constants, algebraic, external_vari constants[1] = 0.3 constants[2] = 120.0 constants[3] = 36.0 - algebraic[4] = external_variable(voi, states, rates, variables, 4) + external[4] = external_variable(voi, states, rates, variables, 4) def compute_computed_constants(constants, computed_constants): @@ -105,11 +105,11 @@ def compute_computed_constants(constants, computed_constants): def compute_rates(voi, states, rates, constants, computed_constants, algebraic, external_variable): algebraic[0] = -20.0 if and_func(geq_func(voi, 10.0), leq_func(voi, 10.5)) else 0.0 - algebraic[4] = external_variable(voi, states, rates, variables, 4) + external[4] = external_variable(voi, states, rates, variables, 4) algebraic[1] = constants[1]*(states[0]-computed_constants[0]) algebraic[2] = constants[3]*pow(states[3], 4.0)*(states[0]-computed_constants[2]) algebraic[3] = constants[2]*pow(states[2], 3.0)*states[1]*(states[0]-computed_constants[1]) - rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/algebraic[4] + rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/external[4] algebraic[5] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0) algebraic[6] = 4.0*exp(states[0]/18.0) rates[2] = algebraic[5]*(1.0-states[2])-algebraic[6]*states[2] @@ -131,4 +131,4 @@ def compute_variables(voi, states, rates, constants, computed_constants, algebra algebraic[2] = constants[3]*pow(states[3], 4.0)*(states[0]-computed_constants[2]) algebraic[9] = 0.01*(states[0]+10.0)/(exp((states[0]+10.0)/10.0)-1.0) algebraic[10] = 0.125*exp(states[0]/80.0) - algebraic[4] = external_variable(voi, states, rates, variables, 4) + external[4] = external_variable(voi, states, rates, variables, 4) diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.c index 0e805880e..f929e387f 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.c @@ -173,11 +173,11 @@ void findRoot2(double voi, double *states, double *rates, double *variables) RootFindingInfo rfi = { voi, states, rates, variables }; double u[1]; - u[0] = algebraic[0]; + u[0] = external[0]; nlaSolve(objectiveFunction2, u, 1, &rfi); - algebraic[0] = u[0]; + external[0] = u[0]; } void objectiveFunction3(double *u, double *f, void *data) @@ -221,11 +221,11 @@ void findRoot4(double voi, double *states, double *rates, double *variables) RootFindingInfo rfi = { voi, states, rates, variables }; double u[1]; - u[0] = algebraic[1]; + u[0] = external[1]; nlaSolve(objectiveFunction4, u, 1, &rfi); - algebraic[1] = u[0]; + external[1] = u[0]; } void objectiveFunction5(double *u, double *f, void *data) @@ -413,11 +413,11 @@ void findRoot12(double voi, double *states, double *rates, double *variables) RootFindingInfo rfi = { voi, states, rates, variables }; double u[1]; - u[0] = algebraic[2]; + u[0] = external[2]; nlaSolve(objectiveFunction12, u, 1, &rfi); - algebraic[2] = u[0]; + external[2] = u[0]; } void objectiveFunction13(double *u, double *f, void *data) diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.py index d42b47c11..4dc671937 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.py @@ -136,11 +136,11 @@ def objective_function_2(u, f, data): def find_root_2(voi, states, rates, variables): u = [nan]*1 - u[0] = algebraic[0] + u[0] = external[0] u = nla_solve(objective_function_2, u, 1, [voi, states, rates, variables]) - algebraic[0] = u[0] + external[0] = u[0] def objective_function_3(u, f, data): @@ -178,11 +178,11 @@ def objective_function_4(u, f, data): def find_root_4(voi, states, rates, variables): u = [nan]*1 - u[0] = algebraic[1] + u[0] = external[1] u = nla_solve(objective_function_4, u, 1, [voi, states, rates, variables]) - algebraic[1] = u[0] + external[1] = u[0] def objective_function_5(u, f, data): @@ -346,11 +346,11 @@ def objective_function_12(u, f, data): def find_root_12(voi, states, rates, variables): u = [nan]*1 - u[0] = algebraic[2] + u[0] = external[2] u = nla_solve(objective_function_12, u, 1, [voi, states, rates, variables]) - algebraic[2] = u[0] + external[2] = u[0] def objective_function_13(u, f, data): diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.algebraic.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.algebraic.c index c2349a909..b91929dbd 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.algebraic.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.algebraic.c @@ -124,8 +124,8 @@ void initialiseVariables(double voi, double *states, double *rates, double *cons constants[2] = 0.3; constants[3] = 120.0; constants[4] = 36.0; - algebraic[9] = externalVariable(voi, states, rates, variables, 9); - algebraic[0] = externalVariable(voi, states, rates, variables, 0); + external[9] = externalVariable(voi, states, rates, variables, 9); + external[0] = externalVariable(voi, states, rates, variables, 0); } void computeComputedConstants(double *constants, double *computedConstants) @@ -137,12 +137,12 @@ void computeComputedConstants(double *constants, double *computedConstants) void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { - algebraic[9] = externalVariable(voi, states, rates, variables, 9); - algebraic[0] = externalVariable(voi, states, rates, variables, 0); + external[9] = externalVariable(voi, states, rates, variables, 9); + external[0] = externalVariable(voi, states, rates, variables, 0); algebraic[1] = constants[2]*(states[0]-computedConstants[0]); algebraic[2] = constants[4]*pow(states[3], 4.0)*(states[0]-computedConstants[2]); algebraic[3] = constants[3]*pow(states[2], 3.0)*states[1]*(states[0]-computedConstants[1]); - rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0]; + rates[0] = -(-external[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0]; algebraic[4] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0); algebraic[5] = 4.0*exp(states[0]/18.0); rates[2] = algebraic[4]*(1.0-states[2])-algebraic[5]*states[2]; @@ -150,13 +150,13 @@ void computeRates(double voi, double *states, double *rates, double *constants, algebraic[7] = 1.0/(exp((states[0]+30.0)/10.0)+1.0); rates[1] = algebraic[6]*(1.0-states[1])-algebraic[7]*states[1]; algebraic[8] = 0.01*(states[0]+10.0)/(exp((states[0]+10.0)/10.0)-1.0); - rates[3] = algebraic[8]*(1.0-states[3])-algebraic[9]*states[3]; + rates[3] = algebraic[8]*(1.0-states[3])-external[9]*states[3]; } void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { - algebraic[9] = externalVariable(voi, states, rates, variables, 9); - algebraic[0] = externalVariable(voi, states, rates, variables, 0); + external[9] = externalVariable(voi, states, rates, variables, 9); + external[0] = externalVariable(voi, states, rates, variables, 0); algebraic[1] = constants[2]*(states[0]-computedConstants[0]); algebraic[3] = constants[3]*pow(states[2], 3.0)*states[1]*(states[0]-computedConstants[1]); algebraic[4] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.algebraic.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.algebraic.py index a7da90472..243b736f0 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.algebraic.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.algebraic.py @@ -95,8 +95,8 @@ def initialise_variables(voi, states, rates, constants, algebraic, external_vari constants[2] = 0.3 constants[3] = 120.0 constants[4] = 36.0 - algebraic[9] = external_variable(voi, states, rates, variables, 9) - algebraic[0] = external_variable(voi, states, rates, variables, 0) + external[9] = external_variable(voi, states, rates, variables, 9) + external[0] = external_variable(voi, states, rates, variables, 0) def compute_computed_constants(constants, computed_constants): @@ -106,12 +106,12 @@ def compute_computed_constants(constants, computed_constants): def compute_rates(voi, states, rates, constants, computed_constants, algebraic, external_variable): - algebraic[9] = external_variable(voi, states, rates, variables, 9) - algebraic[0] = external_variable(voi, states, rates, variables, 0) + external[9] = external_variable(voi, states, rates, variables, 9) + external[0] = external_variable(voi, states, rates, variables, 0) algebraic[1] = constants[2]*(states[0]-computed_constants[0]) algebraic[2] = constants[4]*pow(states[3], 4.0)*(states[0]-computed_constants[2]) algebraic[3] = constants[3]*pow(states[2], 3.0)*states[1]*(states[0]-computed_constants[1]) - rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0] + rates[0] = -(-external[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0] algebraic[4] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0) algebraic[5] = 4.0*exp(states[0]/18.0) rates[2] = algebraic[4]*(1.0-states[2])-algebraic[5]*states[2] @@ -119,12 +119,12 @@ def compute_rates(voi, states, rates, constants, computed_constants, algebraic, algebraic[7] = 1.0/(exp((states[0]+30.0)/10.0)+1.0) rates[1] = algebraic[6]*(1.0-states[1])-algebraic[7]*states[1] algebraic[8] = 0.01*(states[0]+10.0)/(exp((states[0]+10.0)/10.0)-1.0) - rates[3] = algebraic[8]*(1.0-states[3])-algebraic[9]*states[3] + rates[3] = algebraic[8]*(1.0-states[3])-external[9]*states[3] def compute_variables(voi, states, rates, constants, computed_constants, algebraic, external_variable): - algebraic[9] = external_variable(voi, states, rates, variables, 9) - algebraic[0] = external_variable(voi, states, rates, variables, 0) + external[9] = external_variable(voi, states, rates, variables, 9) + external[0] = external_variable(voi, states, rates, variables, 0) algebraic[1] = constants[2]*(states[0]-computed_constants[0]) algebraic[3] = constants[3]*pow(states[2], 3.0)*states[1]*(states[0]-computed_constants[1]) algebraic[4] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0) diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.computed.constant.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.computed.constant.c index 9ae267b45..35de38cb5 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.computed.constant.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.computed.constant.c @@ -123,8 +123,8 @@ void initialiseVariables(double voi, double *states, double *rates, double *cons constants[1] = 0.3; constants[2] = 120.0; constants[3] = 36.0; - algebraic[11] = externalVariable(voi, states, rates, variables, 11); - algebraic[4] = externalVariable(voi, states, rates, variables, 4); + external[11] = externalVariable(voi, states, rates, variables, 11); + external[4] = externalVariable(voi, states, rates, variables, 4); } void computeComputedConstants(double *constants, double *computedConstants) @@ -134,12 +134,12 @@ void computeComputedConstants(double *constants, double *computedConstants) void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { algebraic[0] = ((voi >= 10.0) && (voi <= 10.5))?-20.0:0.0; - algebraic[11] = externalVariable(voi, states, rates, variables, 11); - algebraic[4] = externalVariable(voi, states, rates, variables, 4); - algebraic[5] = algebraic[4]-10.613; + external[11] = externalVariable(voi, states, rates, variables, 11); + external[4] = externalVariable(voi, states, rates, variables, 4); + algebraic[5] = external[4]-10.613; algebraic[1] = constants[1]*(states[0]-algebraic[5]); - algebraic[2] = constants[3]*pow(states[3], 4.0)*(states[0]-algebraic[11]); - algebraic[6] = algebraic[4]-115.0; + algebraic[2] = constants[3]*pow(states[3], 4.0)*(states[0]-external[11]); + algebraic[6] = external[4]-115.0; algebraic[3] = constants[2]*pow(states[2], 3.0)*states[1]*(states[0]-algebraic[6]); rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0]; algebraic[7] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0); @@ -155,17 +155,17 @@ void computeRates(double voi, double *states, double *rates, double *constants, void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { - algebraic[11] = externalVariable(voi, states, rates, variables, 11); - algebraic[4] = externalVariable(voi, states, rates, variables, 4); - algebraic[5] = algebraic[4]-10.613; + external[11] = externalVariable(voi, states, rates, variables, 11); + external[4] = externalVariable(voi, states, rates, variables, 4); + algebraic[5] = external[4]-10.613; algebraic[1] = constants[1]*(states[0]-algebraic[5]); - algebraic[6] = algebraic[4]-115.0; + algebraic[6] = external[4]-115.0; algebraic[3] = constants[2]*pow(states[2], 3.0)*states[1]*(states[0]-algebraic[6]); algebraic[7] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0); algebraic[8] = 4.0*exp(states[0]/18.0); algebraic[9] = 0.07*exp(states[0]/20.0); algebraic[10] = 1.0/(exp((states[0]+30.0)/10.0)+1.0); - algebraic[2] = constants[3]*pow(states[3], 4.0)*(states[0]-algebraic[11]); + algebraic[2] = constants[3]*pow(states[3], 4.0)*(states[0]-external[11]); algebraic[12] = 0.01*(states[0]+10.0)/(exp((states[0]+10.0)/10.0)-1.0); algebraic[13] = 0.125*exp(states[0]/80.0); } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.computed.constant.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.computed.constant.py index 8ecf9444b..0da4974b2 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.computed.constant.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.computed.constant.py @@ -94,8 +94,8 @@ def initialise_variables(voi, states, rates, constants, algebraic, external_vari constants[1] = 0.3 constants[2] = 120.0 constants[3] = 36.0 - algebraic[11] = external_variable(voi, states, rates, variables, 11) - algebraic[4] = external_variable(voi, states, rates, variables, 4) + external[11] = external_variable(voi, states, rates, variables, 11) + external[4] = external_variable(voi, states, rates, variables, 4) def compute_computed_constants(constants, computed_constants): @@ -104,12 +104,12 @@ def compute_computed_constants(constants, computed_constants): def compute_rates(voi, states, rates, constants, computed_constants, algebraic, external_variable): algebraic[0] = -20.0 if and_func(geq_func(voi, 10.0), leq_func(voi, 10.5)) else 0.0 - algebraic[11] = external_variable(voi, states, rates, variables, 11) - algebraic[4] = external_variable(voi, states, rates, variables, 4) - algebraic[5] = algebraic[4]-10.613 + external[11] = external_variable(voi, states, rates, variables, 11) + external[4] = external_variable(voi, states, rates, variables, 4) + algebraic[5] = external[4]-10.613 algebraic[1] = constants[1]*(states[0]-algebraic[5]) - algebraic[2] = constants[3]*pow(states[3], 4.0)*(states[0]-algebraic[11]) - algebraic[6] = algebraic[4]-115.0 + algebraic[2] = constants[3]*pow(states[3], 4.0)*(states[0]-external[11]) + algebraic[6] = external[4]-115.0 algebraic[3] = constants[2]*pow(states[2], 3.0)*states[1]*(states[0]-algebraic[6]) rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0] algebraic[7] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0) @@ -124,16 +124,16 @@ def compute_rates(voi, states, rates, constants, computed_constants, algebraic, def compute_variables(voi, states, rates, constants, computed_constants, algebraic, external_variable): - algebraic[11] = external_variable(voi, states, rates, variables, 11) - algebraic[4] = external_variable(voi, states, rates, variables, 4) - algebraic[5] = algebraic[4]-10.613 + external[11] = external_variable(voi, states, rates, variables, 11) + external[4] = external_variable(voi, states, rates, variables, 4) + algebraic[5] = external[4]-10.613 algebraic[1] = constants[1]*(states[0]-algebraic[5]) - algebraic[6] = algebraic[4]-115.0 + algebraic[6] = external[4]-115.0 algebraic[3] = constants[2]*pow(states[2], 3.0)*states[1]*(states[0]-algebraic[6]) algebraic[7] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0) algebraic[8] = 4.0*exp(states[0]/18.0) algebraic[9] = 0.07*exp(states[0]/20.0) algebraic[10] = 1.0/(exp((states[0]+30.0)/10.0)+1.0) - algebraic[2] = constants[3]*pow(states[3], 4.0)*(states[0]-algebraic[11]) + algebraic[2] = constants[3]*pow(states[3], 4.0)*(states[0]-external[11]) algebraic[12] = 0.01*(states[0]+10.0)/(exp((states[0]+10.0)/10.0)-1.0) algebraic[13] = 0.125*exp(states[0]/80.0) diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.constant.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.constant.c index 7e6747363..cc74be6ce 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.constant.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.constant.c @@ -122,8 +122,8 @@ void initialiseVariables(double voi, double *states, double *rates, double *cons constants[0] = 0.0; constants[1] = 0.3; constants[2] = 36.0; - algebraic[5] = externalVariable(voi, states, rates, variables, 5); - algebraic[4] = externalVariable(voi, states, rates, variables, 4); + external[5] = externalVariable(voi, states, rates, variables, 5); + external[4] = externalVariable(voi, states, rates, variables, 4); } void computeComputedConstants(double *constants, double *computedConstants) @@ -136,12 +136,12 @@ void computeComputedConstants(double *constants, double *computedConstants) void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { algebraic[0] = ((voi >= 10.0) && (voi <= 10.5))?-20.0:0.0; - algebraic[5] = externalVariable(voi, states, rates, variables, 5); - algebraic[4] = externalVariable(voi, states, rates, variables, 4); + external[5] = externalVariable(voi, states, rates, variables, 5); + external[4] = externalVariable(voi, states, rates, variables, 4); algebraic[1] = constants[1]*(states[0]-computedConstants[0]); algebraic[2] = constants[2]*pow(states[3], 4.0)*(states[0]-computedConstants[2]); - algebraic[3] = algebraic[5]*pow(states[2], 3.0)*states[1]*(states[0]-computedConstants[1]); - rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/algebraic[4]; + algebraic[3] = external[5]*pow(states[2], 3.0)*states[1]*(states[0]-computedConstants[1]); + rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/external[4]; algebraic[6] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0); algebraic[7] = 4.0*exp(states[0]/18.0); rates[2] = algebraic[6]*(1.0-states[2])-algebraic[7]*states[2]; @@ -156,8 +156,8 @@ void computeRates(double voi, double *states, double *rates, double *constants, void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { algebraic[1] = constants[1]*(states[0]-computedConstants[0]); - algebraic[5] = externalVariable(voi, states, rates, variables, 5); - algebraic[3] = algebraic[5]*pow(states[2], 3.0)*states[1]*(states[0]-computedConstants[1]); + external[5] = externalVariable(voi, states, rates, variables, 5); + algebraic[3] = external[5]*pow(states[2], 3.0)*states[1]*(states[0]-computedConstants[1]); algebraic[6] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0); algebraic[7] = 4.0*exp(states[0]/18.0); algebraic[8] = 0.07*exp(states[0]/20.0); @@ -165,5 +165,5 @@ void computeVariables(double voi, double *states, double *rates, double *constan algebraic[2] = constants[2]*pow(states[3], 4.0)*(states[0]-computedConstants[2]); algebraic[10] = 0.01*(states[0]+10.0)/(exp((states[0]+10.0)/10.0)-1.0); algebraic[11] = 0.125*exp(states[0]/80.0); - algebraic[4] = externalVariable(voi, states, rates, variables, 4); + external[4] = externalVariable(voi, states, rates, variables, 4); } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.constant.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.constant.py index 64f4a8c1f..9ffe1b12a 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.constant.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.constant.py @@ -93,8 +93,8 @@ def initialise_variables(voi, states, rates, constants, algebraic, external_vari constants[0] = 0.0 constants[1] = 0.3 constants[2] = 36.0 - algebraic[5] = external_variable(voi, states, rates, variables, 5) - algebraic[4] = external_variable(voi, states, rates, variables, 4) + external[5] = external_variable(voi, states, rates, variables, 5) + external[4] = external_variable(voi, states, rates, variables, 4) def compute_computed_constants(constants, computed_constants): @@ -105,12 +105,12 @@ def compute_computed_constants(constants, computed_constants): def compute_rates(voi, states, rates, constants, computed_constants, algebraic, external_variable): algebraic[0] = -20.0 if and_func(geq_func(voi, 10.0), leq_func(voi, 10.5)) else 0.0 - algebraic[5] = external_variable(voi, states, rates, variables, 5) - algebraic[4] = external_variable(voi, states, rates, variables, 4) + external[5] = external_variable(voi, states, rates, variables, 5) + external[4] = external_variable(voi, states, rates, variables, 4) algebraic[1] = constants[1]*(states[0]-computed_constants[0]) algebraic[2] = constants[2]*pow(states[3], 4.0)*(states[0]-computed_constants[2]) - algebraic[3] = algebraic[5]*pow(states[2], 3.0)*states[1]*(states[0]-computed_constants[1]) - rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/algebraic[4] + algebraic[3] = external[5]*pow(states[2], 3.0)*states[1]*(states[0]-computed_constants[1]) + rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/external[4] algebraic[6] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0) algebraic[7] = 4.0*exp(states[0]/18.0) rates[2] = algebraic[6]*(1.0-states[2])-algebraic[7]*states[2] @@ -124,8 +124,8 @@ def compute_rates(voi, states, rates, constants, computed_constants, algebraic, def compute_variables(voi, states, rates, constants, computed_constants, algebraic, external_variable): algebraic[1] = constants[1]*(states[0]-computed_constants[0]) - algebraic[5] = external_variable(voi, states, rates, variables, 5) - algebraic[3] = algebraic[5]*pow(states[2], 3.0)*states[1]*(states[0]-computed_constants[1]) + external[5] = external_variable(voi, states, rates, variables, 5) + algebraic[3] = external[5]*pow(states[2], 3.0)*states[1]*(states[0]-computed_constants[1]) algebraic[6] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0) algebraic[7] = 4.0*exp(states[0]/18.0) algebraic[8] = 0.07*exp(states[0]/20.0) @@ -133,4 +133,4 @@ def compute_variables(voi, states, rates, constants, computed_constants, algebra algebraic[2] = constants[2]*pow(states[3], 4.0)*(states[0]-computed_constants[2]) algebraic[10] = 0.01*(states[0]+10.0)/(exp((states[0]+10.0)/10.0)-1.0) algebraic[11] = 0.125*exp(states[0]/80.0) - algebraic[4] = external_variable(voi, states, rates, variables, 4) + external[4] = external_variable(voi, states, rates, variables, 4) diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.state.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.state.c index 7d42c647f..3f7fde086 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.state.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.state.c @@ -122,8 +122,8 @@ void initialiseVariables(double voi, double *states, double *rates, double *cons constants[2] = 0.3; constants[3] = 120.0; constants[4] = 36.0; - algebraic[1] = externalVariable(voi, states, rates, variables, 1); - algebraic[5] = externalVariable(voi, states, rates, variables, 5); + external[1] = externalVariable(voi, states, rates, variables, 1); + external[5] = externalVariable(voi, states, rates, variables, 5); } void computeComputedConstants(double *constants, double *computedConstants) @@ -135,23 +135,23 @@ void computeComputedConstants(double *constants, double *computedConstants) void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { - algebraic[1] = externalVariable(voi, states, rates, variables, 1); - algebraic[8] = 0.07*exp(algebraic[1]/20.0); - algebraic[9] = 1.0/(exp((algebraic[1]+30.0)/10.0)+1.0); + external[1] = externalVariable(voi, states, rates, variables, 1); + algebraic[8] = 0.07*exp(external[1]/20.0); + algebraic[9] = 1.0/(exp((external[1]+30.0)/10.0)+1.0); rates[0] = algebraic[8]*(1.0-states[0])-algebraic[9]*states[0]; - algebraic[10] = 0.01*(algebraic[1]+10.0)/(exp((algebraic[1]+10.0)/10.0)-1.0); - algebraic[11] = 0.125*exp(algebraic[1]/80.0); + algebraic[10] = 0.01*(external[1]+10.0)/(exp((external[1]+10.0)/10.0)-1.0); + algebraic[11] = 0.125*exp(external[1]/80.0); rates[1] = algebraic[10]*(1.0-states[1])-algebraic[11]*states[1]; } void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { algebraic[0] = ((voi >= 10.0) && (voi <= 10.5))?-20.0:0.0; - algebraic[1] = externalVariable(voi, states, rates, variables, 1); - algebraic[2] = constants[2]*(algebraic[1]-computedConstants[0]); - algebraic[5] = externalVariable(voi, states, rates, variables, 5); - algebraic[4] = constants[3]*pow(algebraic[5], 3.0)*states[0]*(algebraic[1]-computedConstants[1]); - algebraic[6] = 0.1*(algebraic[1]+25.0)/(exp((algebraic[1]+25.0)/10.0)-1.0); - algebraic[7] = 4.0*exp(algebraic[1]/18.0); - algebraic[3] = constants[4]*pow(states[1], 4.0)*(algebraic[1]-computedConstants[2]); + external[1] = externalVariable(voi, states, rates, variables, 1); + algebraic[2] = constants[2]*(external[1]-computedConstants[0]); + external[5] = externalVariable(voi, states, rates, variables, 5); + algebraic[4] = constants[3]*pow(external[5], 3.0)*states[0]*(external[1]-computedConstants[1]); + algebraic[6] = 0.1*(external[1]+25.0)/(exp((external[1]+25.0)/10.0)-1.0); + algebraic[7] = 4.0*exp(external[1]/18.0); + algebraic[3] = constants[4]*pow(states[1], 4.0)*(external[1]-computedConstants[2]); } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.state.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.state.py index d9285aa42..a4fb36996 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.state.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.state.py @@ -93,8 +93,8 @@ def initialise_variables(voi, states, rates, constants, algebraic, external_vari constants[2] = 0.3 constants[3] = 120.0 constants[4] = 36.0 - algebraic[1] = external_variable(voi, states, rates, variables, 1) - algebraic[5] = external_variable(voi, states, rates, variables, 5) + external[1] = external_variable(voi, states, rates, variables, 1) + external[5] = external_variable(voi, states, rates, variables, 5) def compute_computed_constants(constants, computed_constants): @@ -104,21 +104,21 @@ def compute_computed_constants(constants, computed_constants): def compute_rates(voi, states, rates, constants, computed_constants, algebraic, external_variable): - algebraic[1] = external_variable(voi, states, rates, variables, 1) - algebraic[8] = 0.07*exp(algebraic[1]/20.0) - algebraic[9] = 1.0/(exp((algebraic[1]+30.0)/10.0)+1.0) + external[1] = external_variable(voi, states, rates, variables, 1) + algebraic[8] = 0.07*exp(external[1]/20.0) + algebraic[9] = 1.0/(exp((external[1]+30.0)/10.0)+1.0) rates[0] = algebraic[8]*(1.0-states[0])-algebraic[9]*states[0] - algebraic[10] = 0.01*(algebraic[1]+10.0)/(exp((algebraic[1]+10.0)/10.0)-1.0) - algebraic[11] = 0.125*exp(algebraic[1]/80.0) + algebraic[10] = 0.01*(external[1]+10.0)/(exp((external[1]+10.0)/10.0)-1.0) + algebraic[11] = 0.125*exp(external[1]/80.0) rates[1] = algebraic[10]*(1.0-states[1])-algebraic[11]*states[1] def compute_variables(voi, states, rates, constants, computed_constants, algebraic, external_variable): algebraic[0] = -20.0 if and_func(geq_func(voi, 10.0), leq_func(voi, 10.5)) else 0.0 - algebraic[1] = external_variable(voi, states, rates, variables, 1) - algebraic[2] = constants[2]*(algebraic[1]-computed_constants[0]) - algebraic[5] = external_variable(voi, states, rates, variables, 5) - algebraic[4] = constants[3]*pow(algebraic[5], 3.0)*states[0]*(algebraic[1]-computed_constants[1]) - algebraic[6] = 0.1*(algebraic[1]+25.0)/(exp((algebraic[1]+25.0)/10.0)-1.0) - algebraic[7] = 4.0*exp(algebraic[1]/18.0) - algebraic[3] = constants[4]*pow(states[1], 4.0)*(algebraic[1]-computed_constants[2]) + external[1] = external_variable(voi, states, rates, variables, 1) + algebraic[2] = constants[2]*(external[1]-computed_constants[0]) + external[5] = external_variable(voi, states, rates, variables, 5) + algebraic[4] = constants[3]*pow(external[5], 3.0)*states[0]*(external[1]-computed_constants[1]) + algebraic[6] = 0.1*(external[1]+25.0)/(exp((external[1]+25.0)/10.0)-1.0) + algebraic[7] = 4.0*exp(external[1]/18.0) + algebraic[3] = constants[4]*pow(states[1], 4.0)*(external[1]-computed_constants[2]) diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.external.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.external.c index bb4ff207f..c2572f6cf 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.external.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.external.c @@ -123,9 +123,9 @@ void initialiseVariables(double voi, double *states, double *rates, double *cons constants[2] = 0.3; constants[3] = 120.0; constants[4] = 36.0; - algebraic[1] = externalVariable(voi, states, rates, variables, 1); - algebraic[9] = externalVariable(voi, states, rates, variables, 9); - algebraic[4] = externalVariable(voi, states, rates, variables, 4); + external[1] = externalVariable(voi, states, rates, variables, 1); + external[9] = externalVariable(voi, states, rates, variables, 9); + external[4] = externalVariable(voi, states, rates, variables, 4); } void computeComputedConstants(double *constants, double *computedConstants) @@ -137,24 +137,24 @@ void computeComputedConstants(double *constants, double *computedConstants) void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { - algebraic[1] = externalVariable(voi, states, rates, variables, 1); - algebraic[5] = 0.1*(algebraic[1]+25.0)/(exp((algebraic[1]+25.0)/10.0)-1.0); - algebraic[6] = 4.0*exp(algebraic[1]/18.0); + external[1] = externalVariable(voi, states, rates, variables, 1); + algebraic[5] = 0.1*(external[1]+25.0)/(exp((external[1]+25.0)/10.0)-1.0); + algebraic[6] = 4.0*exp(external[1]/18.0); rates[1] = algebraic[5]*(1.0-states[1])-algebraic[6]*states[1]; - algebraic[7] = 0.07*exp(algebraic[1]/20.0); - algebraic[8] = 1.0/(exp((algebraic[1]+30.0)/10.0)+1.0); + algebraic[7] = 0.07*exp(external[1]/20.0); + algebraic[8] = 1.0/(exp((external[1]+30.0)/10.0)+1.0); rates[0] = algebraic[7]*(1.0-states[0])-algebraic[8]*states[0]; - algebraic[9] = externalVariable(voi, states, rates, variables, 9); - algebraic[10] = 0.125*exp(algebraic[1]/80.0); - rates[2] = algebraic[9]*(1.0-states[2])-algebraic[10]*states[2]; + external[9] = externalVariable(voi, states, rates, variables, 9); + algebraic[10] = 0.125*exp(external[1]/80.0); + rates[2] = external[9]*(1.0-states[2])-algebraic[10]*states[2]; } void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { algebraic[0] = ((voi >= 10.0) && (voi <= 10.5))?-20.0:0.0; - algebraic[1] = externalVariable(voi, states, rates, variables, 1); - algebraic[2] = constants[2]*(algebraic[1]-computedConstants[0]); - algebraic[9] = externalVariable(voi, states, rates, variables, 9); - algebraic[4] = externalVariable(voi, states, rates, variables, 4); - algebraic[3] = constants[4]*pow(states[2], 4.0)*(algebraic[1]-computedConstants[2]); + external[1] = externalVariable(voi, states, rates, variables, 1); + algebraic[2] = constants[2]*(external[1]-computedConstants[0]); + external[9] = externalVariable(voi, states, rates, variables, 9); + external[4] = externalVariable(voi, states, rates, variables, 4); + algebraic[3] = constants[4]*pow(states[2], 4.0)*(external[1]-computedConstants[2]); } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.external.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.external.py index e3b132256..5fefa1e03 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.external.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.external.py @@ -94,9 +94,9 @@ def initialise_variables(voi, states, rates, constants, algebraic, external_vari constants[2] = 0.3 constants[3] = 120.0 constants[4] = 36.0 - algebraic[1] = external_variable(voi, states, rates, variables, 1) - algebraic[9] = external_variable(voi, states, rates, variables, 9) - algebraic[4] = external_variable(voi, states, rates, variables, 4) + external[1] = external_variable(voi, states, rates, variables, 1) + external[9] = external_variable(voi, states, rates, variables, 9) + external[4] = external_variable(voi, states, rates, variables, 4) def compute_computed_constants(constants, computed_constants): @@ -106,22 +106,22 @@ def compute_computed_constants(constants, computed_constants): def compute_rates(voi, states, rates, constants, computed_constants, algebraic, external_variable): - algebraic[1] = external_variable(voi, states, rates, variables, 1) - algebraic[5] = 0.1*(algebraic[1]+25.0)/(exp((algebraic[1]+25.0)/10.0)-1.0) - algebraic[6] = 4.0*exp(algebraic[1]/18.0) + external[1] = external_variable(voi, states, rates, variables, 1) + algebraic[5] = 0.1*(external[1]+25.0)/(exp((external[1]+25.0)/10.0)-1.0) + algebraic[6] = 4.0*exp(external[1]/18.0) rates[1] = algebraic[5]*(1.0-states[1])-algebraic[6]*states[1] - algebraic[7] = 0.07*exp(algebraic[1]/20.0) - algebraic[8] = 1.0/(exp((algebraic[1]+30.0)/10.0)+1.0) + algebraic[7] = 0.07*exp(external[1]/20.0) + algebraic[8] = 1.0/(exp((external[1]+30.0)/10.0)+1.0) rates[0] = algebraic[7]*(1.0-states[0])-algebraic[8]*states[0] - algebraic[9] = external_variable(voi, states, rates, variables, 9) - algebraic[10] = 0.125*exp(algebraic[1]/80.0) - rates[2] = algebraic[9]*(1.0-states[2])-algebraic[10]*states[2] + external[9] = external_variable(voi, states, rates, variables, 9) + algebraic[10] = 0.125*exp(external[1]/80.0) + rates[2] = external[9]*(1.0-states[2])-algebraic[10]*states[2] def compute_variables(voi, states, rates, constants, computed_constants, algebraic, external_variable): algebraic[0] = -20.0 if and_func(geq_func(voi, 10.0), leq_func(voi, 10.5)) else 0.0 - algebraic[1] = external_variable(voi, states, rates, variables, 1) - algebraic[2] = constants[2]*(algebraic[1]-computed_constants[0]) - algebraic[9] = external_variable(voi, states, rates, variables, 9) - algebraic[4] = external_variable(voi, states, rates, variables, 4) - algebraic[3] = constants[4]*pow(states[2], 4.0)*(algebraic[1]-computed_constants[2]) + external[1] = external_variable(voi, states, rates, variables, 1) + algebraic[2] = constants[2]*(external[1]-computed_constants[0]) + external[9] = external_variable(voi, states, rates, variables, 9) + external[4] = external_variable(voi, states, rates, variables, 4) + algebraic[3] = constants[4]*pow(states[2], 4.0)*(external[1]-computed_constants[2]) diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.state.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.state.c index fff1a06f0..f5d0d0929 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.state.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.state.c @@ -123,7 +123,7 @@ void initialiseVariables(double voi, double *states, double *rates, double *cons constants[2] = 0.3; constants[3] = 120.0; constants[4] = 36.0; - algebraic[4] = externalVariable(voi, states, rates, variables, 4); + external[4] = externalVariable(voi, states, rates, variables, 4); } void computeComputedConstants(double *constants, double *computedConstants) @@ -138,8 +138,8 @@ void computeRates(double voi, double *states, double *rates, double *constants, algebraic[0] = ((voi >= 10.0) && (voi <= 10.5))?-20.0:0.0; algebraic[1] = constants[2]*(states[0]-computedConstants[0]); algebraic[2] = constants[4]*pow(states[2], 4.0)*(states[0]-computedConstants[2]); - algebraic[4] = externalVariable(voi, states, rates, variables, 4); - algebraic[3] = constants[3]*pow(algebraic[4], 3.0)*states[1]*(states[0]-computedConstants[1]); + external[4] = externalVariable(voi, states, rates, variables, 4); + algebraic[3] = constants[3]*pow(external[4], 3.0)*states[1]*(states[0]-computedConstants[1]); rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0]; algebraic[7] = 0.07*exp(states[0]/20.0); algebraic[8] = 1.0/(exp((states[0]+30.0)/10.0)+1.0); @@ -152,8 +152,8 @@ void computeRates(double voi, double *states, double *rates, double *constants, void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { algebraic[1] = constants[2]*(states[0]-computedConstants[0]); - algebraic[4] = externalVariable(voi, states, rates, variables, 4); - algebraic[3] = constants[3]*pow(algebraic[4], 3.0)*states[1]*(states[0]-computedConstants[1]); + external[4] = externalVariable(voi, states, rates, variables, 4); + algebraic[3] = constants[3]*pow(external[4], 3.0)*states[1]*(states[0]-computedConstants[1]); algebraic[5] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0); algebraic[6] = 4.0*exp(states[0]/18.0); algebraic[7] = 0.07*exp(states[0]/20.0); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.state.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.state.py index c9fd02275..27d1d496a 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.state.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.state.py @@ -94,7 +94,7 @@ def initialise_variables(voi, states, rates, constants, algebraic, external_vari constants[2] = 0.3 constants[3] = 120.0 constants[4] = 36.0 - algebraic[4] = external_variable(voi, states, rates, variables, 4) + external[4] = external_variable(voi, states, rates, variables, 4) def compute_computed_constants(constants, computed_constants): @@ -107,8 +107,8 @@ def compute_rates(voi, states, rates, constants, computed_constants, algebraic, algebraic[0] = -20.0 if and_func(geq_func(voi, 10.0), leq_func(voi, 10.5)) else 0.0 algebraic[1] = constants[2]*(states[0]-computed_constants[0]) algebraic[2] = constants[4]*pow(states[2], 4.0)*(states[0]-computed_constants[2]) - algebraic[4] = external_variable(voi, states, rates, variables, 4) - algebraic[3] = constants[3]*pow(algebraic[4], 3.0)*states[1]*(states[0]-computed_constants[1]) + external[4] = external_variable(voi, states, rates, variables, 4) + algebraic[3] = constants[3]*pow(external[4], 3.0)*states[1]*(states[0]-computed_constants[1]) rates[0] = -(-algebraic[0]+algebraic[3]+algebraic[2]+algebraic[1])/constants[0] algebraic[7] = 0.07*exp(states[0]/20.0) algebraic[8] = 1.0/(exp((states[0]+30.0)/10.0)+1.0) @@ -120,8 +120,8 @@ def compute_rates(voi, states, rates, constants, computed_constants, algebraic, def compute_variables(voi, states, rates, constants, computed_constants, algebraic, external_variable): algebraic[1] = constants[2]*(states[0]-computed_constants[0]) - algebraic[4] = external_variable(voi, states, rates, variables, 4) - algebraic[3] = constants[3]*pow(algebraic[4], 3.0)*states[1]*(states[0]-computed_constants[1]) + external[4] = external_variable(voi, states, rates, variables, 4) + algebraic[3] = constants[3]*pow(external[4], 3.0)*states[1]*(states[0]-computed_constants[1]) algebraic[5] = 0.1*(states[0]+25.0)/(exp((states[0]+25.0)/10.0)-1.0) algebraic[6] = 4.0*exp(states[0]/18.0) algebraic[7] = 0.07*exp(states[0]/20.0) diff --git a/tests/resources/generator/unknown_variable_as_external_variable/model.c b/tests/resources/generator/unknown_variable_as_external_variable/model.c index 0103461a2..1c1f84b89 100644 --- a/tests/resources/generator/unknown_variable_as_external_variable/model.c +++ b/tests/resources/generator/unknown_variable_as_external_variable/model.c @@ -94,7 +94,7 @@ void initialiseVariables(double *constants, double *algebraic, ExternalVariable constants[5] = 2902500.0; constants[6] = 810000.0; constants[7] = 247140.0; - algebraic[1] = externalVariable(variables, 1); + external[1] = externalVariable(variables, 1); } void computeComputedConstants(double *constants, double *computedConstants) @@ -103,6 +103,6 @@ void computeComputedConstants(double *constants, double *computedConstants) void computeVariables(double *constants, double *computedConstants, double *algebraic, ExternalVariable externalVariable) { - algebraic[1] = externalVariable(variables, 1); - algebraic[0] = constants[0]*(constants[1]*constants[2]-constants[3]*constants[4])/(constants[5]*constants[4]+algebraic[1]*constants[2]+constants[7]*constants[4]*constants[2]+constants[6]); + external[1] = externalVariable(variables, 1); + algebraic[0] = constants[0]*(constants[1]*constants[2]-constants[3]*constants[4])/(constants[5]*constants[4]+external[1]*constants[2]+constants[7]*constants[4]*constants[2]+constants[6]); } diff --git a/tests/resources/generator/unknown_variable_as_external_variable/model.py b/tests/resources/generator/unknown_variable_as_external_variable/model.py index 48f627296..74427a055 100644 --- a/tests/resources/generator/unknown_variable_as_external_variable/model.py +++ b/tests/resources/generator/unknown_variable_as_external_variable/model.py @@ -60,7 +60,7 @@ def initialise_variables(constants, algebraic, external_variable): constants[5] = 2902500.0 constants[6] = 810000.0 constants[7] = 247140.0 - algebraic[1] = external_variable(variables, 1) + external[1] = external_variable(variables, 1) def compute_computed_constants(constants, computed_constants): @@ -68,5 +68,5 @@ def compute_computed_constants(constants, computed_constants): def compute_variables(constants, computed_constants, algebraic, external_variable): - algebraic[1] = external_variable(variables, 1) - algebraic[0] = constants[0]*(constants[1]*constants[2]-constants[3]*constants[4])/(constants[5]*constants[4]+algebraic[1]*constants[2]+constants[7]*constants[4]*constants[2]+constants[6]) + external[1] = external_variable(variables, 1) + algebraic[0] = constants[0]*(constants[1]*constants[2]-constants[3]*constants[4])/(constants[5]*constants[4]+external[1]*constants[2]+constants[7]*constants[4]*constants[2]+constants[6])