From 0216944f06b4a7ea024075a885bf45fbb8164f6a Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Thu, 7 Aug 2025 23:08:59 +1200 Subject: [PATCH 1/9] Code spelling. --- src/analyser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/analyser.cpp b/src/analyser.cpp index 838f47d15..9918b3610 100644 --- a/src/analyser.cpp +++ b/src/analyser.cpp @@ -2502,7 +2502,7 @@ void Analyser::AnalyserImpl::analyseModel(const ModelPtr &model) } } - // Detmerine whether some variables have been marked as external. + // Determine whether some variables have been marked as external. auto hasExternalVariables = std::any_of(mInternalVariables.begin(), mInternalVariables.end(), [](const auto &iv) { return iv->mIsExternalVariable; From 832f7ccbcb3895bb877d9ed15cad48db735e8df4 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Thu, 11 Sep 2025 17:06:11 +1200 Subject: [PATCH 2/9] Generator: some minor reordering. --- src/generator.cpp | 52 +++++++++++++++++++++++------------------------ src/generator_p.h | 6 +++--- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/generator.cpp b/src/generator.cpp index 621845a42..b46b929d6 100644 --- a/src/generator.cpp +++ b/src/generator.cpp @@ -2184,6 +2184,32 @@ bool Generator::GeneratorImpl::isSomeConstant(const AnalyserEquationPtr &equatio || (!includeComputedConstants && (equation->type() == AnalyserEquation::Type::COMPUTED_CONSTANT)); } +std::string Generator::GeneratorImpl::generateConstantInitialisationCode(const AnalyserModelPtr &model, + const std::vector::iterator constant, + std::vector &remainingConstants) +{ + auto initialisingVariable = (*constant)->initialisingVariable(); + auto initialValue = initialisingVariable->initialValue(); + + if (!isCellMLReal(initialValue)) { + auto initialisingComponent = owningComponent(initialisingVariable); + auto crtConstant = std::find_if(remainingConstants.begin(), remainingConstants.end(), + [=](const AnalyserVariablePtr &av) -> bool { + return initialisingComponent->variable(initialValue) == av->variable(); + }); + + if (crtConstant != remainingConstants.end()) { + return generateConstantInitialisationCode(model, crtConstant, remainingConstants); + } + } + + auto code = generateInitialisationCode(model, *constant); + + remainingConstants.erase(constant); + + return code; +} + std::string Generator::GeneratorImpl::generateZeroInitialisationCode(const AnalyserModelPtr &model, const AnalyserVariablePtr &variable) { @@ -2355,32 +2381,6 @@ void Generator::GeneratorImpl::addInterfaceComputeModelMethodsCode(const Analyse } } -std::string Generator::GeneratorImpl::generateConstantInitialisationCode(const AnalyserModelPtr &model, - const std::vector::iterator constant, - std::vector &remainingConstants) -{ - auto initialisingVariable = (*constant)->initialisingVariable(); - auto initialValue = initialisingVariable->initialValue(); - - if (!isCellMLReal(initialValue)) { - auto initialisingComponent = owningComponent(initialisingVariable); - auto crtConstant = std::find_if(remainingConstants.begin(), remainingConstants.end(), - [=](const AnalyserVariablePtr &av) -> bool { - return initialisingComponent->variable(initialValue) == av->variable(); - }); - - if (crtConstant != remainingConstants.end()) { - return generateConstantInitialisationCode(model, crtConstant, remainingConstants); - } - } - - auto code = generateInitialisationCode(model, *constant); - - remainingConstants.erase(constant); - - return code; -} - void Generator::GeneratorImpl::addImplementationInitialiseVariablesMethodCode(const AnalyserModelPtr &model, std::vector &remainingEquations) { diff --git a/src/generator_p.h b/src/generator_p.h index decee926b..0fe2c9680 100644 --- a/src/generator_p.h +++ b/src/generator_p.h @@ -192,6 +192,9 @@ struct Generator::GeneratorImpl: public Logger::LoggerImpl COMPUTE_VARIABLES }; + std::string generateConstantInitialisationCode(const AnalyserModelPtr &model, + const std::vector::iterator constant, + std::vector &remainingConstants); std::string generateZeroInitialisationCode(const AnalyserModelPtr &model, const AnalyserVariablePtr &variable); std::string generateInitialisationCode(const AnalyserModelPtr &model, const AnalyserVariablePtr &variable, @@ -207,9 +210,6 @@ struct Generator::GeneratorImpl: public Logger::LoggerImpl std::vector &generatedConstantDependencies); void addInterfaceComputeModelMethodsCode(const AnalyserModelPtr &model); - std::string generateConstantInitialisationCode(const AnalyserModelPtr &model, - const std::vector::iterator constant, - std::vector &remainingConstants); void addImplementationInitialiseVariablesMethodCode(const AnalyserModelPtr &model, std::vector &remainingEquations); void addImplementationComputeComputedConstantsMethodCode(const AnalyserModelPtr &model, From 528f0de5394f91acbaa0dd40e7a714c6fc3ad600 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Tue, 9 Sep 2025 13:53:56 +1200 Subject: [PATCH 3/9] Generator: updated `computeComputedConstants()`'s signature. In preparation for our work on issue #1322. --- src/generatorprofile.cpp | 10 +++++----- src/generatorprofilesha1values.h | 4 ++-- tests/bindings/python/test_generator_profile.py | 6 +++--- tests/generator/generatorprofile.cpp | 6 +++--- tests/resources/coverage/generator/model.c | 4 ++-- tests/resources/coverage/generator/model.h | 2 +- .../coverage/generator/model.implementation.out | 2 +- tests/resources/coverage/generator/model.interface.out | 2 +- .../coverage/generator/model.modified.profile.c | 4 ++-- .../coverage/generator/model.modified.profile.h | 2 +- .../coverage/generator/model.modified.profile.py | 4 ++-- tests/resources/coverage/generator/model.no.tracking.c | 4 ++-- tests/resources/coverage/generator/model.no.tracking.h | 2 +- tests/resources/coverage/generator/model.out | 2 +- tests/resources/coverage/generator/model.py | 4 ++-- .../algebraic_eqn_computed_var_on_rhs/model.c | 4 ++-- .../algebraic_eqn_computed_var_on_rhs/model.external.c | 4 ++-- .../algebraic_eqn_computed_var_on_rhs/model.external.h | 2 +- .../model.external.py | 4 ++-- .../algebraic_eqn_computed_var_on_rhs/model.h | 2 +- .../algebraic_eqn_computed_var_on_rhs/model.py | 4 ++-- .../generator/algebraic_eqn_const_var_on_rhs/model.c | 4 ++-- .../generator/algebraic_eqn_const_var_on_rhs/model.h | 2 +- .../generator/algebraic_eqn_const_var_on_rhs/model.py | 4 ++-- .../generator/algebraic_eqn_constant_on_rhs/model.c | 4 ++-- .../generator/algebraic_eqn_constant_on_rhs/model.h | 2 +- .../generator/algebraic_eqn_constant_on_rhs/model.py | 4 ++-- .../generator/algebraic_eqn_derivative_on_rhs/model.c | 4 ++-- .../generator/algebraic_eqn_derivative_on_rhs/model.h | 2 +- .../generator/algebraic_eqn_derivative_on_rhs/model.py | 4 ++-- .../model.c | 4 ++-- .../model.h | 2 +- .../model.py | 4 ++-- .../generator/algebraic_eqn_state_var_on_rhs/model.c | 4 ++-- .../generator/algebraic_eqn_state_var_on_rhs/model.h | 2 +- .../generator/algebraic_eqn_state_var_on_rhs/model.py | 4 ++-- .../model.c | 4 ++-- .../model.h | 2 +- .../model.py | 4 ++-- .../model.c | 4 ++-- .../model.external.c | 4 ++-- .../model.external.h | 2 +- .../model.external.py | 4 ++-- .../model.h | 2 +- .../model.py | 4 ++-- .../model.c | 4 ++-- .../model.external.c | 4 ++-- .../model.external.h | 2 +- .../model.external.py | 4 ++-- .../model.h | 2 +- .../model.py | 4 ++-- .../model.not.ordered.c | 4 ++-- .../model.not.ordered.h | 2 +- .../model.not.ordered.py | 4 ++-- .../model.ordered.c | 4 ++-- .../model.ordered.h | 2 +- .../model.ordered.py | 4 ++-- .../generator/algebraic_unknown_var_on_rhs/model.c | 4 ++-- .../generator/algebraic_unknown_var_on_rhs/model.h | 2 +- .../generator/algebraic_unknown_var_on_rhs/model.py | 4 ++-- tests/resources/generator/cell_geometry_model/model.c | 4 ++-- .../generator/cell_geometry_model/model.external.c | 4 ++-- .../generator/cell_geometry_model/model.external.h | 2 +- .../generator/cell_geometry_model/model.external.py | 4 ++-- tests/resources/generator/cell_geometry_model/model.h | 2 +- tests/resources/generator/cell_geometry_model/model.py | 4 ++-- .../cellml_mappings_and_encapsulations/model.c | 4 ++-- .../cellml_mappings_and_encapsulations/model.h | 2 +- .../cellml_mappings_and_encapsulations/model.py | 4 ++-- tests/resources/generator/cellml_slc_example/model.py | 4 ++-- .../cellml_state_initialised_using_variable/model.c | 4 ++-- .../cellml_state_initialised_using_variable/model.h | 2 +- .../cellml_state_initialised_using_variable/model.py | 4 ++-- .../generator/cellml_unit_scaling_constant/model.c | 4 ++-- .../generator/cellml_unit_scaling_constant/model.h | 2 +- .../generator/cellml_unit_scaling_constant/model.py | 4 ++-- .../generator/cellml_unit_scaling_rate/model.c | 4 ++-- .../generator/cellml_unit_scaling_rate/model.h | 2 +- .../generator/cellml_unit_scaling_rate/model.py | 4 ++-- .../generator/cellml_unit_scaling_state/model.c | 4 ++-- .../generator/cellml_unit_scaling_state/model.h | 2 +- .../generator/cellml_unit_scaling_state/model.py | 4 ++-- .../model.c | 4 ++-- .../model.h | 2 +- .../model.py | 4 ++-- .../model.c | 4 ++-- .../model.h | 2 +- .../model.py | 4 ++-- .../generator/cellml_unit_scaling_voi_direct/model.c | 4 ++-- .../generator/cellml_unit_scaling_voi_direct/model.h | 2 +- .../generator/cellml_unit_scaling_voi_direct/model.py | 4 ++-- .../generator/cellml_unit_scaling_voi_indirect/model.c | 4 ++-- .../generator/cellml_unit_scaling_voi_indirect/model.h | 2 +- .../cellml_unit_scaling_voi_indirect/model.py | 4 ++-- tests/resources/generator/dae_cellml_1_1_model/model.c | 4 ++-- tests/resources/generator/dae_cellml_1_1_model/model.h | 2 +- .../resources/generator/dae_cellml_1_1_model/model.py | 4 ++-- tests/resources/generator/dependent_eqns/model.c | 4 ++-- tests/resources/generator/dependent_eqns/model.h | 2 +- tests/resources/generator/dependent_eqns/model.py | 4 ++-- .../model.c | 4 ++-- .../model.h | 2 +- .../model.py | 4 ++-- .../model.c | 4 ++-- .../model.h | 2 +- .../model.py | 4 ++-- .../model.algebraic.c | 4 ++-- .../model.algebraic.h | 2 +- .../model.algebraic.py | 4 ++-- .../hodgkin_huxley_squid_axon_model_1952/model.c | 4 ++-- .../model.computed.constant.c | 4 ++-- .../model.computed.constant.h | 2 +- .../model.computed.constant.py | 4 ++-- .../model.constant.c | 4 ++-- .../model.constant.h | 2 +- .../model.constant.py | 4 ++-- .../hodgkin_huxley_squid_axon_model_1952/model.dae.c | 4 ++-- .../model.dae.external.c | 4 ++-- .../model.dae.external.h | 2 +- .../model.dae.external.py | 4 ++-- .../model.dae.for.tracking.control.c | 4 ++-- .../model.dae.for.tracking.control.h | 2 +- .../model.dae.for.tracking.control.py | 4 ++-- .../model.dae.for.tracking.control.with.externals.c | 4 ++-- .../model.dae.for.tracking.control.with.externals.h | 2 +- .../model.dae.for.tracking.control.with.externals.py | 4 ++-- ...el.dae.for.tracking.untracked.algebraic.variables.c | 4 ++-- ...el.dae.for.tracking.untracked.algebraic.variables.h | 2 +- ...l.dae.for.tracking.untracked.algebraic.variables.py | 4 ++-- ...king.untracked.algebraic.variables.with.externals.c | 4 ++-- ...king.untracked.algebraic.variables.with.externals.h | 2 +- ...ing.untracked.algebraic.variables.with.externals.py | 4 ++-- ...del.dae.for.tracking.untracked.computed.constants.c | 4 ++-- ...del.dae.for.tracking.untracked.computed.constants.h | 2 +- ...el.dae.for.tracking.untracked.computed.constants.py | 4 ++-- ...cking.untracked.computed.constants.with.externals.c | 4 ++-- ...cking.untracked.computed.constants.with.externals.h | 2 +- ...king.untracked.computed.constants.with.externals.py | 4 ++-- .../model.dae.for.tracking.untracked.constants.c | 4 ++-- .../model.dae.for.tracking.untracked.constants.h | 2 +- .../model.dae.for.tracking.untracked.constants.py | 4 ++-- ...e.for.tracking.untracked.constants.with.externals.c | 4 ++-- ...e.for.tracking.untracked.constants.with.externals.h | 2 +- ....for.tracking.untracked.constants.with.externals.py | 4 ++-- .../model.dae.for.tracking.untracked.variables.c | 4 ++-- .../model.dae.for.tracking.untracked.variables.h | 2 +- .../model.dae.for.tracking.untracked.variables.py | 4 ++-- ...e.for.tracking.untracked.variables.with.externals.c | 4 ++-- ...e.for.tracking.untracked.variables.with.externals.h | 2 +- ....for.tracking.untracked.variables.with.externals.py | 4 ++-- .../hodgkin_huxley_squid_axon_model_1952/model.dae.h | 2 +- .../hodgkin_huxley_squid_axon_model_1952/model.dae.py | 4 ++-- .../model.dependent.algebraic.c | 4 ++-- .../model.dependent.algebraic.h | 2 +- .../model.dependent.algebraic.py | 4 ++-- .../model.dependent.computed.constant.c | 4 ++-- .../model.dependent.computed.constant.h | 2 +- .../model.dependent.computed.constant.py | 4 ++-- .../model.dependent.constant.c | 4 ++-- .../model.dependent.constant.h | 2 +- .../model.dependent.constant.py | 4 ++-- .../model.dependent.state.c | 4 ++-- .../model.dependent.state.h | 2 +- .../model.dependent.state.py | 4 ++-- .../model.external.c | 4 ++-- .../model.external.h | 2 +- .../model.external.py | 4 ++-- .../hodgkin_huxley_squid_axon_model_1952/model.h | 2 +- .../hodgkin_huxley_squid_axon_model_1952/model.py | 4 ++-- .../hodgkin_huxley_squid_axon_model_1952/model.state.c | 4 ++-- .../hodgkin_huxley_squid_axon_model_1952/model.state.h | 2 +- .../model.state.py | 4 ++-- .../model.untracked.algebraic.variables.c | 4 ++-- .../model.untracked.algebraic.variables.h | 2 +- .../model.untracked.algebraic.variables.py | 4 ++-- ...odel.untracked.algebraic.variables.with.externals.c | 4 ++-- ...odel.untracked.algebraic.variables.with.externals.h | 2 +- ...del.untracked.algebraic.variables.with.externals.py | 4 ++-- .../model.untracked.computed.constants.c | 4 ++-- .../model.untracked.computed.constants.h | 2 +- .../model.untracked.computed.constants.py | 4 ++-- ...model.untracked.computed.constants.with.externals.c | 4 ++-- ...model.untracked.computed.constants.with.externals.h | 2 +- ...odel.untracked.computed.constants.with.externals.py | 4 ++-- .../model.untracked.constants.c | 4 ++-- .../model.untracked.constants.h | 2 +- .../model.untracked.constants.py | 4 ++-- .../model.untracked.constants.with.externals.c | 4 ++-- .../model.untracked.constants.with.externals.h | 2 +- .../model.untracked.constants.with.externals.py | 4 ++-- .../model.untracked.variables.c | 4 ++-- .../model.untracked.variables.h | 2 +- .../model.untracked.variables.py | 4 ++-- .../model.untracked.variables.with.externals.c | 4 ++-- .../model.untracked.variables.with.externals.h | 2 +- .../model.untracked.variables.with.externals.py | 4 ++-- tests/resources/generator/noble_model_1962/model.c | 4 ++-- tests/resources/generator/noble_model_1962/model.h | 2 +- tests/resources/generator/noble_model_1962/model.py | 4 ++-- .../generator/ode_computed_var_on_rhs/model.c | 4 ++-- .../generator/ode_computed_var_on_rhs/model.h | 2 +- .../generator/ode_computed_var_on_rhs/model.py | 4 ++-- .../ode_computed_var_on_rhs_one_component/model.c | 4 ++-- .../ode_computed_var_on_rhs_one_component/model.h | 2 +- .../ode_computed_var_on_rhs_one_component/model.py | 4 ++-- tests/resources/generator/ode_const_var_on_rhs/model.c | 4 ++-- tests/resources/generator/ode_const_var_on_rhs/model.h | 2 +- .../resources/generator/ode_const_var_on_rhs/model.py | 4 ++-- .../ode_const_var_on_rhs_one_component/model.c | 4 ++-- .../ode_const_var_on_rhs_one_component/model.h | 2 +- .../ode_const_var_on_rhs_one_component/model.py | 4 ++-- tests/resources/generator/ode_constant_on_rhs/model.c | 4 ++-- tests/resources/generator/ode_constant_on_rhs/model.h | 2 +- tests/resources/generator/ode_constant_on_rhs/model.py | 4 ++-- .../ode_constant_on_rhs_one_component/model.c | 4 ++-- .../ode_constant_on_rhs_one_component/model.h | 2 +- .../ode_constant_on_rhs_one_component/model.py | 4 ++-- .../generator/ode_multiple_dependent_odes/model.c | 4 ++-- .../generator/ode_multiple_dependent_odes/model.h | 2 +- .../generator/ode_multiple_dependent_odes/model.py | 4 ++-- .../ode_multiple_dependent_odes_one_component/model.c | 4 ++-- .../ode_multiple_dependent_odes_one_component/model.h | 2 +- .../ode_multiple_dependent_odes_one_component/model.py | 4 ++-- .../generator/ode_multiple_odes_with_same_name/model.c | 4 ++-- .../generator/ode_multiple_odes_with_same_name/model.h | 2 +- .../ode_multiple_odes_with_same_name/model.py | 4 ++-- .../resources/generator/ode_unknown_var_on_rhs/model.c | 4 ++-- .../resources/generator/ode_unknown_var_on_rhs/model.h | 2 +- .../generator/ode_unknown_var_on_rhs/model.py | 4 ++-- .../generator/robertson_model_1966/model.dae.c | 4 ++-- .../generator/robertson_model_1966/model.dae.h | 2 +- .../generator/robertson_model_1966/model.dae.py | 4 ++-- .../generator/robertson_model_1966/model.ode.c | 4 ++-- .../generator/robertson_model_1966/model.ode.h | 2 +- .../generator/robertson_model_1966/model.ode.py | 4 ++-- tests/resources/generator/sine_model_imports/model.c | 4 ++-- tests/resources/generator/sine_model_imports/model.h | 2 +- tests/resources/generator/sine_model_imports/model.py | 4 ++-- .../unknown_variable_as_external_variable/model.c | 4 ++-- .../unknown_variable_as_external_variable/model.h | 2 +- .../unknown_variable_as_external_variable/model.py | 4 ++-- .../variable_initialised_using_a_constant/model.c | 4 ++-- .../variable_initialised_using_a_constant/model.h | 2 +- .../variable_initialised_using_a_constant/model.py | 4 ++-- 244 files changed, 411 insertions(+), 411 deletions(-) diff --git a/src/generatorprofile.cpp b/src/generatorprofile.cpp index fa4404563..0766c1ec3 100644 --- a/src/generatorprofile.cpp +++ b/src/generatorprofile.cpp @@ -225,7 +225,7 @@ void GeneratorProfile::GeneratorProfileImpl::loadProfile(GeneratorProfile::Profi "#include \n"; mInterfaceVersionString = "extern const char VERSION[];\n"; - mImplementationVersionString = "const char VERSION[] = \"0.6.0\";\n"; + mImplementationVersionString = "const char VERSION[] = \"0.7.0\";\n"; mInterfaceLibcellmlVersionString = "extern const char LIBCELLML_VERSION[];\n"; mImplementationLibcellmlVersionString = "const char LIBCELLML_VERSION[] = \"[LIBCELLML_VERSION]\";\n"; @@ -489,8 +489,8 @@ void GeneratorProfile::GeneratorProfileImpl::loadProfile(GeneratorProfile::Profi "[CODE]" "}\n"; - mInterfaceComputeComputedConstantsMethodString = "void computeComputedConstants(double *constants, double *computedConstants);\n"; - mImplementationComputeComputedConstantsMethodString = "void computeComputedConstants(double *constants, double *computedConstants)\n" + mInterfaceComputeComputedConstantsMethodString = "void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic);\n"; + mImplementationComputeComputedConstantsMethodString = "void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic)\n" "{\n" "[CODE]" "}\n"; @@ -735,7 +735,7 @@ void GeneratorProfile::GeneratorProfileImpl::loadProfile(GeneratorProfile::Profi "\n"; mInterfaceVersionString = ""; - mImplementationVersionString = "__version__ = \"0.5.0\"\n"; + mImplementationVersionString = "__version__ = \"0.6.0\"\n"; mInterfaceLibcellmlVersionString = ""; mImplementationLibcellmlVersionString = "LIBCELLML_VERSION = \"[LIBCELLML_VERSION]\"\n"; @@ -922,7 +922,7 @@ void GeneratorProfile::GeneratorProfileImpl::loadProfile(GeneratorProfile::Profi mInterfaceComputeComputedConstantsMethodString = ""; mImplementationComputeComputedConstantsMethodString = "\n" - "def compute_computed_constants(constants, computed_constants):\n" + "def compute_computed_constants(states, rates, constants, computed_constants, algebraic):\n" "[CODE]"; mInterfaceComputeRatesMethodWoevString = ""; diff --git a/src/generatorprofilesha1values.h b/src/generatorprofilesha1values.h index 5d38aeb9b..b1a7ce016 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[] = "8c022ae4685b31d1927fea9d6d20bbd2beb1b4a9"; -static const char PYTHON_GENERATOR_PROFILE_SHA1[] = "2eb7376741516b61ab7f2125a3597f5cc279bee9"; +static const char C_GENERATOR_PROFILE_SHA1[] = "04e859db813265e0d038a44b09d15ff6d906832e"; +static const char PYTHON_GENERATOR_PROFILE_SHA1[] = "a364089abbeeaed3ac67117ef21abcd349f2ef37"; } // namespace libcellml diff --git a/tests/bindings/python/test_generator_profile.py b/tests/bindings/python/test_generator_profile.py index 68b11870f..c280840b4 100644 --- a/tests/bindings/python/test_generator_profile.py +++ b/tests/bindings/python/test_generator_profile.py @@ -698,7 +698,7 @@ def test_implementation_compute_computed_constants_method_string(self): g = GeneratorProfile() - self.assertEqual('void computeComputedConstants(double *constants, double *computedConstants)\n{\n[CODE]}\n', + self.assertEqual('void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic)\n{\n[CODE]}\n', g.implementationComputeComputedConstantsMethodString()) g.setImplementationComputeComputedConstantsMethodString(GeneratorProfileTestCase.VALUE) self.assertEqual(GeneratorProfileTestCase.VALUE, g.implementationComputeComputedConstantsMethodString()) @@ -944,7 +944,7 @@ def test_implementation_version_string(self): g = GeneratorProfile() - self.assertEqual('const char VERSION[] = "0.6.0";\n', g.implementationVersionString()) + self.assertEqual('const char VERSION[] = "0.7.0";\n', g.implementationVersionString()) g.setImplementationVersionString(GeneratorProfileTestCase.VALUE) self.assertEqual(GeneratorProfileTestCase.VALUE, g.implementationVersionString()) @@ -980,7 +980,7 @@ def test_interface_compute_computed_constants_method_string(self): g = GeneratorProfile() - self.assertEqual('void computeComputedConstants(double *constants, double *computedConstants);\n', + self.assertEqual('void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic);\n', g.interfaceComputeComputedConstantsMethodString()) g.setInterfaceComputeComputedConstantsMethodString(GeneratorProfileTestCase.VALUE) self.assertEqual(GeneratorProfileTestCase.VALUE, g.interfaceComputeComputedConstantsMethodString()) diff --git a/tests/generator/generatorprofile.cpp b/tests/generator/generatorprofile.cpp index e197f6231..d5f501323 100644 --- a/tests/generator/generatorprofile.cpp +++ b/tests/generator/generatorprofile.cpp @@ -271,7 +271,7 @@ TEST(GeneratorProfile, defaultMiscellaneousValues) generatorProfile->implementationHeaderString()); EXPECT_EQ("extern const char VERSION[];\n", generatorProfile->interfaceVersionString()); - EXPECT_EQ("const char VERSION[] = \"0.6.0\";\n", generatorProfile->implementationVersionString()); + EXPECT_EQ("const char VERSION[] = \"0.7.0\";\n", generatorProfile->implementationVersionString()); EXPECT_EQ("extern const char LIBCELLML_VERSION[];\n", generatorProfile->interfaceLibcellmlVersionString()); EXPECT_EQ("const char LIBCELLML_VERSION[] = \"[LIBCELLML_VERSION]\";\n", generatorProfile->implementationLibcellmlVersionString()); @@ -574,9 +574,9 @@ TEST(GeneratorProfile, defaultMiscellaneousValues) "}\n", generatorProfile->implementationInitialiseVariablesMethodString(true)); - EXPECT_EQ("void computeComputedConstants(double *constants, double *computedConstants);\n", + EXPECT_EQ("void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic);\n", generatorProfile->interfaceComputeComputedConstantsMethodString()); - EXPECT_EQ("void computeComputedConstants(double *constants, double *computedConstants)\n" + EXPECT_EQ("void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic)\n" "{\n" "[CODE]" "}\n", diff --git a/tests/resources/coverage/generator/model.c b/tests/resources/coverage/generator/model.c index d11b9b73f..827892278 100644 --- a/tests/resources/coverage/generator/model.c +++ b/tests/resources/coverage/generator/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -452,7 +452,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[1] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1] == constants[0]; computedConstants[1] = constants[1]/(constants[0] == constants[0]); diff --git a/tests/resources/coverage/generator/model.h b/tests/resources/coverage/generator/model.h index 363681273..854c9a31b 100644 --- a/tests/resources/coverage/generator/model.h +++ b/tests/resources/coverage/generator/model.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/coverage/generator/model.implementation.out b/tests/resources/coverage/generator/model.implementation.out index f1d41b0e0..5eeedd6f1 100644 --- a/tests/resources/coverage/generator/model.implementation.out +++ b/tests/resources/coverage/generator/model.implementation.out @@ -211,7 +211,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[1] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = eq(constants[1], constants[0]); computedConstants[1] = constants[1]/eq(constants[0], constants[0]); diff --git a/tests/resources/coverage/generator/model.interface.out b/tests/resources/coverage/generator/model.interface.out index 5e05de246..1090f7e82 100644 --- a/tests/resources/coverage/generator/model.interface.out +++ b/tests/resources/coverage/generator/model.interface.out @@ -15,6 +15,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/coverage/generator/model.modified.profile.c b/tests/resources/coverage/generator/model.modified.profile.c index fe91f3410..0bba6837c 100644 --- a/tests/resources/coverage/generator/model.modified.profile.c +++ b/tests/resources/coverage/generator/model.modified.profile.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0.post0"; +const char VERSION[] = "0.7.0.post0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -452,7 +452,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[1] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1] == constants[0]; computedConstants[1] = constants[1]/(constants[0] == constants[0]); diff --git a/tests/resources/coverage/generator/model.modified.profile.h b/tests/resources/coverage/generator/model.modified.profile.h index 546e7d451..08d5f7fa8 100644 --- a/tests/resources/coverage/generator/model.modified.profile.h +++ b/tests/resources/coverage/generator/model.modified.profile.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/coverage/generator/model.modified.profile.py b/tests/resources/coverage/generator/model.modified.profile.py index 5ca831670..62824b39d 100644 --- a/tests/resources/coverage/generator/model.modified.profile.py +++ b/tests/resources/coverage/generator/model.modified.profile.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0.post0" +__version__ = "0.6.0.post0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -419,7 +419,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[1] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = eq_func(constants[1], constants[0]) computed_constants[1] = constants[1]/eq_func(constants[0], constants[0]) computed_constants[2] = neq_func(constants[1], constants[0]) diff --git a/tests/resources/coverage/generator/model.no.tracking.c b/tests/resources/coverage/generator/model.no.tracking.c index 7f9aff3e9..fcf2e0db7 100644 --- a/tests/resources/coverage/generator/model.no.tracking.c +++ b/tests/resources/coverage/generator/model.no.tracking.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -221,7 +221,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[1] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/coverage/generator/model.no.tracking.h b/tests/resources/coverage/generator/model.no.tracking.h index eb7792096..51aed7efc 100644 --- a/tests/resources/coverage/generator/model.no.tracking.h +++ b/tests/resources/coverage/generator/model.no.tracking.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/coverage/generator/model.out b/tests/resources/coverage/generator/model.out index 6cd0aa81b..2616d3cb5 100644 --- a/tests/resources/coverage/generator/model.out +++ b/tests/resources/coverage/generator/model.out @@ -122,7 +122,7 @@ void findRoot0(double voi, double *states, double *rates, double *constants, dou algebraic[1] = u[1]; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1] == constants[0]; computedConstants[1] = constants[1]/(constants[0] == constants[0]); diff --git a/tests/resources/coverage/generator/model.py b/tests/resources/coverage/generator/model.py index 2e597879a..9798a15af 100644 --- a/tests/resources/coverage/generator/model.py +++ b/tests/resources/coverage/generator/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -419,7 +419,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[1] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = eq_func(constants[1], constants[0]) computed_constants[1] = constants[1]/eq_func(constants[0], constants[0]) computed_constants[2] = neq_func(constants[1], constants[0]) diff --git a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.c b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.c index 391d5c0f7..5e853951f 100644 --- a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.c +++ b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 0; @@ -66,7 +66,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a computedConstants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[1] = computedConstants[0]; } 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 0324525ff..e8253a378 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 @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 0; @@ -80,7 +80,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a { } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.h b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.h index 9a7ba657b..8e9c87273 100644 --- a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.h +++ b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.h @@ -33,5 +33,5 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 0de02dd14..04df33cf7 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 @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 0 @@ -47,7 +47,7 @@ def initialise_variables(constants, computed_constants, algebraic): pass -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.h b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.h index 75cb90a18..d0ddfd342 100644 --- a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.h +++ b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.py b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.py index f79c8eaa7..c2552ef37 100644 --- a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.py +++ b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 0 @@ -39,7 +39,7 @@ def initialise_variables(constants, computed_constants, algebraic): computed_constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[1] = computed_constants[0] diff --git a/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.c b/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.c index 1a2b2fdd7..9b254dbde 100644 --- a/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.c +++ b/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 1; @@ -66,7 +66,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a constants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[0]; } diff --git a/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.h b/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.h index 75cb90a18..d0ddfd342 100644 --- a/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.h +++ b/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.py b/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.py index b8916eb81..f99b3c2c3 100644 --- a/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.py +++ b/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 1 @@ -39,7 +39,7 @@ def initialise_variables(constants, computed_constants, algebraic): constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[0] diff --git a/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.c b/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.c index ee8029b1a..c86a8cfbb 100644 --- a/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.c +++ b/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 0; @@ -65,7 +65,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a computedConstants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.h b/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.h index 43917db40..6cc68f7eb 100644 --- a/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.h +++ b/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.py b/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.py index 6d49d79e9..3eac23920 100644 --- a/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.py +++ b/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 0 @@ -38,7 +38,7 @@ def initialise_variables(constants, computed_constants, algebraic): computed_constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_eqn_derivative_on_rhs/model.c b/tests/resources/generator/algebraic_eqn_derivative_on_rhs/model.c index a57e8c2db..0920479aa 100644 --- a/tests/resources/generator/algebraic_eqn_derivative_on_rhs/model.c +++ b/tests/resources/generator/algebraic_eqn_derivative_on_rhs/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -85,7 +85,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl computedConstants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_eqn_derivative_on_rhs/model.h b/tests/resources/generator/algebraic_eqn_derivative_on_rhs/model.h index 4be41afea..de99e1619 100644 --- a/tests/resources/generator/algebraic_eqn_derivative_on_rhs/model.h +++ b/tests/resources/generator/algebraic_eqn_derivative_on_rhs/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_eqn_derivative_on_rhs/model.py b/tests/resources/generator/algebraic_eqn_derivative_on_rhs/model.py index 4a585994f..6a4de8812 100644 --- a/tests/resources/generator/algebraic_eqn_derivative_on_rhs/model.py +++ b/tests/resources/generator/algebraic_eqn_derivative_on_rhs/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -51,7 +51,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic computed_constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_eqn_derivative_on_rhs_one_component/model.c b/tests/resources/generator/algebraic_eqn_derivative_on_rhs_one_component/model.c index 5d25c9d3a..f9285ce09 100644 --- a/tests/resources/generator/algebraic_eqn_derivative_on_rhs_one_component/model.c +++ b/tests/resources/generator/algebraic_eqn_derivative_on_rhs_one_component/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -85,7 +85,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl computedConstants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_eqn_derivative_on_rhs_one_component/model.h b/tests/resources/generator/algebraic_eqn_derivative_on_rhs_one_component/model.h index 0cf4442b7..e77234c6a 100644 --- a/tests/resources/generator/algebraic_eqn_derivative_on_rhs_one_component/model.h +++ b/tests/resources/generator/algebraic_eqn_derivative_on_rhs_one_component/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_eqn_derivative_on_rhs_one_component/model.py b/tests/resources/generator/algebraic_eqn_derivative_on_rhs_one_component/model.py index ca93354b6..b189d8b40 100644 --- a/tests/resources/generator/algebraic_eqn_derivative_on_rhs_one_component/model.py +++ b/tests/resources/generator/algebraic_eqn_derivative_on_rhs_one_component/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -51,7 +51,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic computed_constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_eqn_state_var_on_rhs/model.c b/tests/resources/generator/algebraic_eqn_state_var_on_rhs/model.c index fe7c9e489..378b4882a 100644 --- a/tests/resources/generator/algebraic_eqn_state_var_on_rhs/model.c +++ b/tests/resources/generator/algebraic_eqn_state_var_on_rhs/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -85,7 +85,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl computedConstants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_eqn_state_var_on_rhs/model.h b/tests/resources/generator/algebraic_eqn_state_var_on_rhs/model.h index 9a705870e..33d0d32f1 100644 --- a/tests/resources/generator/algebraic_eqn_state_var_on_rhs/model.h +++ b/tests/resources/generator/algebraic_eqn_state_var_on_rhs/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_eqn_state_var_on_rhs/model.py b/tests/resources/generator/algebraic_eqn_state_var_on_rhs/model.py index 1f730f43a..c388685df 100644 --- a/tests/resources/generator/algebraic_eqn_state_var_on_rhs/model.py +++ b/tests/resources/generator/algebraic_eqn_state_var_on_rhs/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -51,7 +51,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic computed_constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_eqn_state_var_on_rhs_one_component/model.c b/tests/resources/generator/algebraic_eqn_state_var_on_rhs_one_component/model.c index c92de6531..1d49a417a 100644 --- a/tests/resources/generator/algebraic_eqn_state_var_on_rhs_one_component/model.c +++ b/tests/resources/generator/algebraic_eqn_state_var_on_rhs_one_component/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -85,7 +85,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl computedConstants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_eqn_state_var_on_rhs_one_component/model.h b/tests/resources/generator/algebraic_eqn_state_var_on_rhs_one_component/model.h index 53799e112..905b5a15a 100644 --- a/tests/resources/generator/algebraic_eqn_state_var_on_rhs_one_component/model.h +++ b/tests/resources/generator/algebraic_eqn_state_var_on_rhs_one_component/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_eqn_state_var_on_rhs_one_component/model.py b/tests/resources/generator/algebraic_eqn_state_var_on_rhs_one_component/model.py index 917811845..cd4a8ba16 100644 --- a/tests/resources/generator/algebraic_eqn_state_var_on_rhs_one_component/model.py +++ b/tests/resources/generator/algebraic_eqn_state_var_on_rhs_one_component/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -51,7 +51,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic computed_constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.c b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.c index 9b41a3723..82aacb87e 100644 --- a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.c +++ b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 0; @@ -103,7 +103,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a algebraic[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } 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 d9b0310d4..f82fb4fec 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 @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 0; @@ -119,7 +119,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a algebraic[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.h b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.h index 9a7ba657b..8e9c87273 100644 --- a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.h +++ b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.h @@ -33,5 +33,5 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 78344f82b..b09a47a7e 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 @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 0 @@ -75,7 +75,7 @@ def initialise_variables(constants, computed_constants, algebraic): algebraic[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.h b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.h index 75cb90a18..d0ddfd342 100644 --- a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.h +++ b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.py b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.py index 38d180928..e84a6e166 100644 --- a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.py +++ b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 0 @@ -67,7 +67,7 @@ def initialise_variables(constants, computed_constants, algebraic): algebraic[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.c b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.c index 2a7a16f41..7976da66b 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.c +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 0; @@ -109,7 +109,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a algebraic[2] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.c b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.c index 0cec3873f..3574aa012 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.c +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 0; @@ -81,7 +81,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a { } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.h b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.h index 43266515a..218a4d856 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.h +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.h @@ -33,5 +33,5 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.py b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.py index 46528e56d..33408c7b0 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.py +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 0 @@ -48,7 +48,7 @@ def initialise_variables(constants, computed_constants, algebraic): pass -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.h b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.h index 074d991c3..52244d964 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.h +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.py b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.py index 62255be3c..63734a12e 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.py +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 0 @@ -73,7 +73,7 @@ def initialise_variables(constants, computed_constants, algebraic): algebraic[2] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.c b/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.c index 4807f0acd..c1d79c8ba 100644 --- a/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.c +++ b/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 2; @@ -109,7 +109,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a algebraic[1] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = 3.0*constants[1]+constants[0]; } diff --git a/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.h b/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.h index 074d991c3..52244d964 100644 --- a/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.h +++ b/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.py b/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.py index 44fb1e844..c556155a8 100644 --- a/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.py +++ b/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 2 @@ -73,7 +73,7 @@ def initialise_variables(constants, computed_constants, algebraic): algebraic[1] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = 3.0*constants[1]+constants[0] diff --git a/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.c b/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.c index 1c4a79701..c76ebad41 100644 --- a/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.c +++ b/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 2; @@ -109,7 +109,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a algebraic[1] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = 3.0*constants[1]+constants[0]; } diff --git a/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.h b/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.h index 074d991c3..52244d964 100644 --- a/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.h +++ b/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.py b/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.py index 44fb1e844..c556155a8 100644 --- a/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.py +++ b/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 2 @@ -73,7 +73,7 @@ def initialise_variables(constants, computed_constants, algebraic): algebraic[1] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = 3.0*constants[1]+constants[0] diff --git a/tests/resources/generator/algebraic_unknown_var_on_rhs/model.c b/tests/resources/generator/algebraic_unknown_var_on_rhs/model.c index b9e31402a..b16dfa743 100644 --- a/tests/resources/generator/algebraic_unknown_var_on_rhs/model.c +++ b/tests/resources/generator/algebraic_unknown_var_on_rhs/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 0; @@ -66,7 +66,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a computedConstants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[1] = computedConstants[0]; } diff --git a/tests/resources/generator/algebraic_unknown_var_on_rhs/model.h b/tests/resources/generator/algebraic_unknown_var_on_rhs/model.h index 43917db40..6cc68f7eb 100644 --- a/tests/resources/generator/algebraic_unknown_var_on_rhs/model.h +++ b/tests/resources/generator/algebraic_unknown_var_on_rhs/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_unknown_var_on_rhs/model.py b/tests/resources/generator/algebraic_unknown_var_on_rhs/model.py index a408121e0..1d2df7343 100644 --- a/tests/resources/generator/algebraic_unknown_var_on_rhs/model.py +++ b/tests/resources/generator/algebraic_unknown_var_on_rhs/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 0 @@ -39,7 +39,7 @@ def initialise_variables(constants, computed_constants, algebraic): computed_constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[1] = computed_constants[0] diff --git a/tests/resources/generator/cell_geometry_model/model.c b/tests/resources/generator/cell_geometry_model/model.c index 963beb354..607894f84 100644 --- a/tests/resources/generator/cell_geometry_model/model.c +++ b/tests/resources/generator/cell_geometry_model/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 2; @@ -69,7 +69,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a constants[1] = 0.0011; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = 1000.0*3.14*constants[1]*constants[1]*constants[0]; computedConstants[1] = 0.02*computedConstants[0]; diff --git a/tests/resources/generator/cell_geometry_model/model.external.c b/tests/resources/generator/cell_geometry_model/model.external.c index 3776c80ae..2ac70d8b1 100644 --- a/tests/resources/generator/cell_geometry_model/model.external.c +++ b/tests/resources/generator/cell_geometry_model/model.external.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 0; @@ -82,7 +82,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a { } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/cell_geometry_model/model.external.h b/tests/resources/generator/cell_geometry_model/model.external.h index 0c30f64ab..38e6d3436 100644 --- a/tests/resources/generator/cell_geometry_model/model.external.h +++ b/tests/resources/generator/cell_geometry_model/model.external.h @@ -33,5 +33,5 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/cell_geometry_model/model.external.py b/tests/resources/generator/cell_geometry_model/model.external.py index 5575d1949..f88f0ca61 100644 --- a/tests/resources/generator/cell_geometry_model/model.external.py +++ b/tests/resources/generator/cell_geometry_model/model.external.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 0 @@ -49,7 +49,7 @@ def initialise_variables(constants, computed_constants, algebraic): pass -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/cell_geometry_model/model.h b/tests/resources/generator/cell_geometry_model/model.h index 599d9f367..d659dddb0 100644 --- a/tests/resources/generator/cell_geometry_model/model.h +++ b/tests/resources/generator/cell_geometry_model/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/cell_geometry_model/model.py b/tests/resources/generator/cell_geometry_model/model.py index 9269a44f3..e112f251d 100644 --- a/tests/resources/generator/cell_geometry_model/model.py +++ b/tests/resources/generator/cell_geometry_model/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 2 @@ -42,7 +42,7 @@ def initialise_variables(constants, computed_constants, algebraic): constants[1] = 0.0011 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = 1000.0*3.14*constants[1]*constants[1]*constants[0] computed_constants[1] = 0.02*computed_constants[0] diff --git a/tests/resources/generator/cellml_mappings_and_encapsulations/model.c b/tests/resources/generator/cellml_mappings_and_encapsulations/model.c index cae325060..e71d43d3d 100644 --- a/tests/resources/generator/cellml_mappings_and_encapsulations/model.c +++ b/tests/resources/generator/cellml_mappings_and_encapsulations/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 2; @@ -86,7 +86,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[1] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/cellml_mappings_and_encapsulations/model.h b/tests/resources/generator/cellml_mappings_and_encapsulations/model.h index 158aaec2c..7adce484f 100644 --- a/tests/resources/generator/cellml_mappings_and_encapsulations/model.h +++ b/tests/resources/generator/cellml_mappings_and_encapsulations/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/cellml_mappings_and_encapsulations/model.py b/tests/resources/generator/cellml_mappings_and_encapsulations/model.py index 0ba311b01..95d980c4f 100644 --- a/tests/resources/generator/cellml_mappings_and_encapsulations/model.py +++ b/tests/resources/generator/cellml_mappings_and_encapsulations/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 2 @@ -52,7 +52,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[1] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/cellml_slc_example/model.py b/tests/resources/generator/cellml_slc_example/model.py index a516d38f2..5e26394ae 100644 --- a/tests/resources/generator/cellml_slc_example/model.py +++ b/tests/resources/generator/cellml_slc_example/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 9 @@ -55,7 +55,7 @@ def initialise_variables(constants, computed_constants, algebraic): constants[8] = 1.1 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[8]*(constants[7]*constants[1]-constants[6]*constants[2])/(constants[5]*constants[2]+constants[4]*constants[1]+constants[3]*constants[2]*constants[1]+constants[0]) diff --git a/tests/resources/generator/cellml_state_initialised_using_variable/model.c b/tests/resources/generator/cellml_state_initialised_using_variable/model.c index d7e2e3723..930ff8728 100644 --- a/tests/resources/generator/cellml_state_initialised_using_variable/model.c +++ b/tests/resources/generator/cellml_state_initialised_using_variable/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -84,7 +84,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[0] = constants[0]; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/cellml_state_initialised_using_variable/model.h b/tests/resources/generator/cellml_state_initialised_using_variable/model.h index 4d8f0e475..433eabaee 100644 --- a/tests/resources/generator/cellml_state_initialised_using_variable/model.h +++ b/tests/resources/generator/cellml_state_initialised_using_variable/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/cellml_state_initialised_using_variable/model.py b/tests/resources/generator/cellml_state_initialised_using_variable/model.py index 54cfda7c4..a6a50dee7 100644 --- a/tests/resources/generator/cellml_state_initialised_using_variable/model.py +++ b/tests/resources/generator/cellml_state_initialised_using_variable/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -50,7 +50,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[0] = constants[0] -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/cellml_unit_scaling_constant/model.c b/tests/resources/generator/cellml_unit_scaling_constant/model.c index 160b9da73..e2410829d 100644 --- a/tests/resources/generator/cellml_unit_scaling_constant/model.c +++ b/tests/resources/generator/cellml_unit_scaling_constant/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 9; @@ -91,7 +91,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a constants[8] = constants[7]; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]+constants[0]; computedConstants[1] = 0.001*constants[1]+0.001*constants[0]; diff --git a/tests/resources/generator/cellml_unit_scaling_constant/model.h b/tests/resources/generator/cellml_unit_scaling_constant/model.h index 50f3ec5d0..5892bfabd 100644 --- a/tests/resources/generator/cellml_unit_scaling_constant/model.h +++ b/tests/resources/generator/cellml_unit_scaling_constant/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/cellml_unit_scaling_constant/model.py b/tests/resources/generator/cellml_unit_scaling_constant/model.py index f3c4c08ae..8b7f10c34 100644 --- a/tests/resources/generator/cellml_unit_scaling_constant/model.py +++ b/tests/resources/generator/cellml_unit_scaling_constant/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 9 @@ -64,7 +64,7 @@ def initialise_variables(constants, computed_constants, algebraic): constants[8] = constants[7] -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]+constants[0] computed_constants[1] = 0.001*constants[1]+0.001*constants[0] computed_constants[2] = 1000.0*constants[3]+1000.0*constants[4] diff --git a/tests/resources/generator/cellml_unit_scaling_rate/model.c b/tests/resources/generator/cellml_unit_scaling_rate/model.c index 2767b1600..f02cbd74d 100644 --- a/tests/resources/generator/cellml_unit_scaling_rate/model.c +++ b/tests/resources/generator/cellml_unit_scaling_rate/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -84,7 +84,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[0] = 123.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/cellml_unit_scaling_rate/model.h b/tests/resources/generator/cellml_unit_scaling_rate/model.h index 4d8f0e475..433eabaee 100644 --- a/tests/resources/generator/cellml_unit_scaling_rate/model.h +++ b/tests/resources/generator/cellml_unit_scaling_rate/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/cellml_unit_scaling_rate/model.py b/tests/resources/generator/cellml_unit_scaling_rate/model.py index 7c3699776..890605b18 100644 --- a/tests/resources/generator/cellml_unit_scaling_rate/model.py +++ b/tests/resources/generator/cellml_unit_scaling_rate/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -50,7 +50,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[0] = 123.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/cellml_unit_scaling_state/model.c b/tests/resources/generator/cellml_unit_scaling_state/model.c index 91349947c..3c0a90194 100644 --- a/tests/resources/generator/cellml_unit_scaling_state/model.c +++ b/tests/resources/generator/cellml_unit_scaling_state/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -84,7 +84,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[0] = 123.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/cellml_unit_scaling_state/model.h b/tests/resources/generator/cellml_unit_scaling_state/model.h index 4d8f0e475..433eabaee 100644 --- a/tests/resources/generator/cellml_unit_scaling_state/model.h +++ b/tests/resources/generator/cellml_unit_scaling_state/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/cellml_unit_scaling_state/model.py b/tests/resources/generator/cellml_unit_scaling_state/model.py index 5839a1ba2..29108650f 100644 --- a/tests/resources/generator/cellml_unit_scaling_state/model.py +++ b/tests/resources/generator/cellml_unit_scaling_state/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -50,7 +50,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[0] = 123.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/cellml_unit_scaling_state_initialised_using_constant/model.c b/tests/resources/generator/cellml_unit_scaling_state_initialised_using_constant/model.c index 17a35c7d1..e346a5c7f 100644 --- a/tests/resources/generator/cellml_unit_scaling_state_initialised_using_constant/model.c +++ b/tests/resources/generator/cellml_unit_scaling_state_initialised_using_constant/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 2; @@ -84,7 +84,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[1] = 0.001*789.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/cellml_unit_scaling_state_initialised_using_constant/model.h b/tests/resources/generator/cellml_unit_scaling_state_initialised_using_constant/model.h index edd268903..92c7a3bbd 100644 --- a/tests/resources/generator/cellml_unit_scaling_state_initialised_using_constant/model.h +++ b/tests/resources/generator/cellml_unit_scaling_state_initialised_using_constant/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/cellml_unit_scaling_state_initialised_using_constant/model.py b/tests/resources/generator/cellml_unit_scaling_state_initialised_using_constant/model.py index e2ecdb690..1a5a27b38 100644 --- a/tests/resources/generator/cellml_unit_scaling_state_initialised_using_constant/model.py +++ b/tests/resources/generator/cellml_unit_scaling_state_initialised_using_constant/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 2 @@ -50,7 +50,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[1] = 0.001*789.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/cellml_unit_scaling_state_initialised_using_variable/model.c b/tests/resources/generator/cellml_unit_scaling_state_initialised_using_variable/model.c index 3de73cc8c..40141a194 100644 --- a/tests/resources/generator/cellml_unit_scaling_state_initialised_using_variable/model.c +++ b/tests/resources/generator/cellml_unit_scaling_state_initialised_using_variable/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 2; @@ -88,7 +88,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[1] = 0.001*constants[1]; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/cellml_unit_scaling_state_initialised_using_variable/model.h b/tests/resources/generator/cellml_unit_scaling_state_initialised_using_variable/model.h index 85890db19..2cff7ba78 100644 --- a/tests/resources/generator/cellml_unit_scaling_state_initialised_using_variable/model.h +++ b/tests/resources/generator/cellml_unit_scaling_state_initialised_using_variable/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/cellml_unit_scaling_state_initialised_using_variable/model.py b/tests/resources/generator/cellml_unit_scaling_state_initialised_using_variable/model.py index e36bf3f5c..68cf2e9dc 100644 --- a/tests/resources/generator/cellml_unit_scaling_state_initialised_using_variable/model.py +++ b/tests/resources/generator/cellml_unit_scaling_state_initialised_using_variable/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 2 @@ -54,7 +54,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[1] = 0.001*constants[1] -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/cellml_unit_scaling_voi_direct/model.c b/tests/resources/generator/cellml_unit_scaling_voi_direct/model.c index e67ddcceb..e3ed954c9 100644 --- a/tests/resources/generator/cellml_unit_scaling_voi_direct/model.c +++ b/tests/resources/generator/cellml_unit_scaling_voi_direct/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 2; @@ -84,7 +84,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[1] = 5.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/cellml_unit_scaling_voi_direct/model.h b/tests/resources/generator/cellml_unit_scaling_voi_direct/model.h index 9e491081b..6065091fb 100644 --- a/tests/resources/generator/cellml_unit_scaling_voi_direct/model.h +++ b/tests/resources/generator/cellml_unit_scaling_voi_direct/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/cellml_unit_scaling_voi_direct/model.py b/tests/resources/generator/cellml_unit_scaling_voi_direct/model.py index 94a907a0b..f91204e29 100644 --- a/tests/resources/generator/cellml_unit_scaling_voi_direct/model.py +++ b/tests/resources/generator/cellml_unit_scaling_voi_direct/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 2 @@ -50,7 +50,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[1] = 5.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/cellml_unit_scaling_voi_indirect/model.c b/tests/resources/generator/cellml_unit_scaling_voi_indirect/model.c index 478d943df..9aff11378 100644 --- a/tests/resources/generator/cellml_unit_scaling_voi_indirect/model.c +++ b/tests/resources/generator/cellml_unit_scaling_voi_indirect/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 3; @@ -86,7 +86,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[2] = 11.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/cellml_unit_scaling_voi_indirect/model.h b/tests/resources/generator/cellml_unit_scaling_voi_indirect/model.h index 307290b9e..de21030a9 100644 --- a/tests/resources/generator/cellml_unit_scaling_voi_indirect/model.h +++ b/tests/resources/generator/cellml_unit_scaling_voi_indirect/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/cellml_unit_scaling_voi_indirect/model.py b/tests/resources/generator/cellml_unit_scaling_voi_indirect/model.py index 7de225f40..32bb18c52 100644 --- a/tests/resources/generator/cellml_unit_scaling_voi_indirect/model.py +++ b/tests/resources/generator/cellml_unit_scaling_voi_indirect/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 3 @@ -52,7 +52,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[2] = 11.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/dae_cellml_1_1_model/model.c b/tests/resources/generator/dae_cellml_1_1_model/model.c index edb43ac18..611a1ea5c 100644 --- a/tests/resources/generator/dae_cellml_1_1_model/model.c +++ b/tests/resources/generator/dae_cellml_1_1_model/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 2; @@ -165,7 +165,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[2] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/dae_cellml_1_1_model/model.h b/tests/resources/generator/dae_cellml_1_1_model/model.h index 513fd0922..a2d9d4afe 100644 --- a/tests/resources/generator/dae_cellml_1_1_model/model.h +++ b/tests/resources/generator/dae_cellml_1_1_model/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/dae_cellml_1_1_model/model.py b/tests/resources/generator/dae_cellml_1_1_model/model.py index d853a464d..5ff730a69 100644 --- a/tests/resources/generator/dae_cellml_1_1_model/model.py +++ b/tests/resources/generator/dae_cellml_1_1_model/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 2 @@ -116,7 +116,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[2] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/dependent_eqns/model.c b/tests/resources/generator/dependent_eqns/model.c index 57686b9e1..6681d34b6 100644 --- a/tests/resources/generator/dependent_eqns/model.c +++ b/tests/resources/generator/dependent_eqns/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -84,7 +84,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[0] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/dependent_eqns/model.h b/tests/resources/generator/dependent_eqns/model.h index b5ccc8efe..9ab93fae6 100644 --- a/tests/resources/generator/dependent_eqns/model.h +++ b/tests/resources/generator/dependent_eqns/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/dependent_eqns/model.py b/tests/resources/generator/dependent_eqns/model.py index b51bbca56..36b9a3d9c 100644 --- a/tests/resources/generator/dependent_eqns/model.py +++ b/tests/resources/generator/dependent_eqns/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -50,7 +50,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[0] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/fabbri_fantini_wilders_severi_human_san_model_2017/model.c b/tests/resources/generator/fabbri_fantini_wilders_severi_human_san_model_2017/model.c index 817aa3484..5fe048c91 100644 --- a/tests/resources/generator/fabbri_fantini_wilders_severi_human_san_model_2017/model.c +++ b/tests/resources/generator/fabbri_fantini_wilders_severi_human_san_model_2017/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 33; @@ -454,7 +454,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[90] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[62]*constants[61]/constants[6]; computedConstants[1] = computedConstants[0]*log(constants[4]/constants[3]); diff --git a/tests/resources/generator/fabbri_fantini_wilders_severi_human_san_model_2017/model.h b/tests/resources/generator/fabbri_fantini_wilders_severi_human_san_model_2017/model.h index 674a0b69d..2a9c0a0eb 100644 --- a/tests/resources/generator/fabbri_fantini_wilders_severi_human_san_model_2017/model.h +++ b/tests/resources/generator/fabbri_fantini_wilders_severi_human_san_model_2017/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/fabbri_fantini_wilders_severi_human_san_model_2017/model.py b/tests/resources/generator/fabbri_fantini_wilders_severi_human_san_model_2017/model.py index fd0ce8784..7ecf4ae59 100644 --- a/tests/resources/generator/fabbri_fantini_wilders_severi_human_san_model_2017/model.py +++ b/tests/resources/generator/fabbri_fantini_wilders_severi_human_san_model_2017/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 33 @@ -440,7 +440,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[90] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[62]*constants[61]/constants[6] computed_constants[1] = computed_constants[0]*log(constants[4]/constants[3]) computed_constants[4] = 1.2 if gt_func(constants[1], 0.0) else 1.0 diff --git a/tests/resources/generator/garny_kohl_hunter_boyett_noble_rabbit_san_model_2003/model.c b/tests/resources/generator/garny_kohl_hunter_boyett_noble_rabbit_san_model_2003/model.c index 38344edb9..53f8fded4 100644 --- a/tests/resources/generator/garny_kohl_hunter_boyett_noble_rabbit_san_model_2003/model.c +++ b/tests/resources/generator/garny_kohl_hunter_boyett_noble_rabbit_san_model_2003/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 15; @@ -405,7 +405,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[109] = 0.006875; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = (constants[1] == 0.0)?1.07*(3.0*constants[0]-0.1)/(3.0*(1.0+0.7745*exp(-(3.0*constants[0]-2.05)/0.295))):(constants[1] == 1.0)?constants[2]*constants[0]/(1.0+0.7745*exp(-(3.0*constants[0]-2.05)/0.295)):1.07*29.0*constants[0]/(30.0*(1.0+0.7745*exp(-(29.0*constants[0]-24.5)/1.95))); computedConstants[1] = constants[3]+computedConstants[0]*(constants[4]-constants[3]); diff --git a/tests/resources/generator/garny_kohl_hunter_boyett_noble_rabbit_san_model_2003/model.h b/tests/resources/generator/garny_kohl_hunter_boyett_noble_rabbit_san_model_2003/model.h index ae87fb8a1..0806be789 100644 --- a/tests/resources/generator/garny_kohl_hunter_boyett_noble_rabbit_san_model_2003/model.h +++ b/tests/resources/generator/garny_kohl_hunter_boyett_noble_rabbit_san_model_2003/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/garny_kohl_hunter_boyett_noble_rabbit_san_model_2003/model.py b/tests/resources/generator/garny_kohl_hunter_boyett_noble_rabbit_san_model_2003/model.py index 049b8e1fd..bbbed3fed 100644 --- a/tests/resources/generator/garny_kohl_hunter_boyett_noble_rabbit_san_model_2003/model.py +++ b/tests/resources/generator/garny_kohl_hunter_boyett_noble_rabbit_san_model_2003/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 15 @@ -379,7 +379,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[109] = 0.006875 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = 1.07*(3.0*constants[0]-0.1)/(3.0*(1.0+0.7745*exp(-(3.0*constants[0]-2.05)/0.295))) if eq_func(constants[1], 0.0) else constants[2]*constants[0]/(1.0+0.7745*exp(-(3.0*constants[0]-2.05)/0.295)) if eq_func(constants[1], 1.0) else 1.07*29.0*constants[0]/(30.0*(1.0+0.7745*exp(-(29.0*constants[0]-24.5)/1.95))) computed_constants[1] = constants[3]+computed_constants[0]*(constants[4]-constants[3]) computed_constants[3] = constants[8]+computed_constants[0]*(constants[9]-constants[8]) if eq_func(constants[1], 0.0) else constants[12]+computed_constants[0]*(constants[13]-constants[12]) if eq_func(constants[1], 1.0) else constants[10]+computed_constants[0]*(constants[11]-constants[10]) 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 57bd1e9b3..2839d79dc 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 @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -126,7 +126,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[4] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]-10.613; computedConstants[1] = constants[1]-115.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.algebraic.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.algebraic.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.algebraic.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.algebraic.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 f4db29b48..44fa16fad 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 @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -97,7 +97,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[4] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]-10.613 computed_constants[1] = constants[1]-115.0 computed_constants[2] = constants[1]+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.c index 20f5f4984..8e3151fe5 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -111,7 +111,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[4] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]-10.613; computedConstants[1] = constants[1]-115.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 99dc6070b..cd3d2217a 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 @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -126,7 +126,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[4] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]-115.0; computedConstants[1] = constants[1]+12.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.computed.constant.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.computed.constant.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.computed.constant.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.computed.constant.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 ed84c115a..89c83977d 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 @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -97,7 +97,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[4] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]-115.0 computed_constants[1] = constants[1]+12.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 e5a9fe969..941a0c3a0 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 @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -125,7 +125,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[3] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[0]-10.613; computedConstants[1] = constants[0]-115.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.constant.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.constant.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.constant.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.constant.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 1352b3614..1154fee38 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 @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -96,7 +96,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[3] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[0]-10.613 computed_constants[1] = constants[0]-115.0 computed_constants[2] = constants[0]+12.0 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 6fe2c8c53..39e92911f 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 @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -582,7 +582,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[12] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.external.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.external.c index 58b1f19bd..673af410b 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.external.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.external.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 3; @@ -530,7 +530,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[10] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.external.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.external.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.external.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.external.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.external.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.external.py index bc720ae19..cb154c903 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.external.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.external.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 3 @@ -449,7 +449,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[10] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.c index cfa6073ed..94ca21280 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -528,7 +528,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[11] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]+12.0; } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.h index 0019e3509..09e3ff334 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.py index 5d90e6834..f1c1a89df 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -452,7 +452,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[11] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.with.externals.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.with.externals.c index 762d3c6f7..cded20964 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.with.externals.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.with.externals.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -531,7 +531,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[10] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]+12.0; } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.with.externals.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.with.externals.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.with.externals.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.with.externals.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.with.externals.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.with.externals.py index ccbdd6989..82d972a0c 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.with.externals.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.control.with.externals.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -450,7 +450,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[10] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.c index e28a70d07..3ff4b8dd1 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -529,7 +529,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[10] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]+12.0; } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.h index 0019e3509..09e3ff334 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.py index 4b66e354f..76ac2eaef 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -453,7 +453,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[10] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.with.externals.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.with.externals.c index 3070c519b..2149ad26e 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.with.externals.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.with.externals.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -531,7 +531,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[10] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]+12.0; } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.with.externals.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.with.externals.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.with.externals.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.with.externals.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.with.externals.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.with.externals.py index ccbdd6989..82d972a0c 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.with.externals.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.algebraic.variables.with.externals.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -450,7 +450,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[10] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.c index 851a75c3d..9c0029f6d 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -529,7 +529,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[11] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.h index 0019e3509..09e3ff334 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.py index 680723739..290aacb23 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -453,7 +453,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[11] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.with.externals.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.with.externals.c index b2fe3d6eb..0bc98a38d 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.with.externals.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.with.externals.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -531,7 +531,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[10] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]+12.0; } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.with.externals.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.with.externals.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.with.externals.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.with.externals.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.with.externals.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.with.externals.py index ccbdd6989..82d972a0c 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.with.externals.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.computed.constants.with.externals.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -450,7 +450,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[10] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.c index 25da01ffa..7761ecdef 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -530,7 +530,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[11] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { double membrane_E_R = 0.0; computedConstants[0] = membrane_E_R+12.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.h index 0019e3509..09e3ff334 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.py index b3beb6bb7..a8dda5832 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -454,7 +454,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[11] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): membrane_E_R = 0.0 computed_constants[0] = membrane_E_R+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.with.externals.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.with.externals.c index 916ae109e..80614ffc8 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.with.externals.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.with.externals.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -531,7 +531,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[10] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { double membrane_E_R = 0.0; computedConstants[0] = membrane_E_R+12.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.with.externals.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.with.externals.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.with.externals.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.with.externals.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.with.externals.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.with.externals.py index 49c0a9157..decf927ce 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.with.externals.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.constants.with.externals.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -450,7 +450,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[10] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): membrane_E_R = 0.0 computed_constants[0] = membrane_E_R+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.c index 89d42c385..04e9898ee 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -532,7 +532,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[10] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.h index 0019e3509..09e3ff334 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.py index 6b958e628..003975dd4 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -456,7 +456,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[10] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.with.externals.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.with.externals.c index c05cbd33f..a463dbec7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.with.externals.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.with.externals.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -531,7 +531,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[10] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { double membrane_E_R = 0.0; computedConstants[0] = membrane_E_R+12.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.with.externals.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.with.externals.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.with.externals.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.with.externals.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.with.externals.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.with.externals.py index 49c0a9157..decf927ce 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.with.externals.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.for.tracking.untracked.variables.with.externals.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -450,7 +450,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[10] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): membrane_E_R = 0.0 computed_constants[0] = membrane_E_R+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.h index 0019e3509..09e3ff334 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dae.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); 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 f8f07aff2..07109b9b3 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 @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -500,7 +500,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[12] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass 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 a6fb8af51..0d5b4ed02 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 @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -126,7 +126,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[4] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]-10.613; computedConstants[1] = constants[1]-115.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.algebraic.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.algebraic.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.algebraic.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.algebraic.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 6638e4592..f69e4fd37 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 @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -97,7 +97,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[4] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]-10.613 computed_constants[1] = constants[1]-115.0 computed_constants[2] = constants[1]+12.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 78b3bd99c..b35cf39db 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 @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -125,7 +125,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[3] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.computed.constant.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.computed.constant.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.computed.constant.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.computed.constant.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 8e963aa09..248c2d042 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 @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -96,7 +96,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[3] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass 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 a7c155dfb..f109cb473 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 @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -124,7 +124,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[2] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[0]-10.613; computedConstants[1] = constants[0]-115.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.constant.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.constant.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.constant.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.constant.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 3e25d4379..1a7347959 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 @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -95,7 +95,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[2] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[0]-10.613 computed_constants[1] = constants[0]-115.0 computed_constants[2] = constants[0]+12.0 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 7c8888dc4..0783fd9ea 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 @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 2; @@ -124,7 +124,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[4] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]-10.613; computedConstants[1] = constants[1]-115.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.state.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.state.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.state.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.dependent.state.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 96d1a9ad3..8df4ce773 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 @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 2 @@ -95,7 +95,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[4] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]-10.613 computed_constants[1] = constants[1]-115.0 computed_constants[2] = constants[1]+12.0 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 048289ae0..98d682250 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 @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 3; @@ -125,7 +125,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[4] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]-10.613; computedConstants[1] = constants[1]-115.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.external.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.external.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.external.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.external.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 2e2867ca2..816a91b6c 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 @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 3 @@ -96,7 +96,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[4] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]-10.613 computed_constants[1] = constants[1]-115.0 computed_constants[2] = constants[1]+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.h index 0019e3509..09e3ff334 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.py index eddf909c6..b054e0cc9 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -89,7 +89,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[4] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]-10.613 computed_constants[1] = constants[1]-115.0 computed_constants[2] = constants[1]+12.0 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 976f72c4b..65ab1700d 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 @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 3; @@ -125,7 +125,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[4] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]-10.613; computedConstants[1] = constants[1]-115.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.state.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.state.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.state.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.state.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 4b6c7b26c..791c1c579 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 @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 3 @@ -96,7 +96,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[4] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]-10.613 computed_constants[1] = constants[1]-115.0 computed_constants[2] = constants[1]+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.c index 888bc7f25..3aefeaaed 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -101,7 +101,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[4] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]-10.613; computedConstants[1] = constants[1]-115.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.h index b2e7aa964..5b622816f 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.py index 6976669bc..b001a8b8f 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -79,7 +79,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[4] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]-10.613 computed_constants[1] = constants[1]-115.0 computed_constants[2] = constants[1]+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.with.externals.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.with.externals.c index ac7fd61ac..f3af131e6 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.with.externals.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.with.externals.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -118,7 +118,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[4] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]-10.613; computedConstants[1] = constants[1]-115.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.with.externals.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.with.externals.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.with.externals.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.with.externals.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.with.externals.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.with.externals.py index f7e67b89f..29ba20b09 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.with.externals.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.algebraic.variables.with.externals.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -89,7 +89,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[4] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]-10.613 computed_constants[1] = constants[1]-115.0 computed_constants[2] = constants[1]+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.c index 083c1fb00..8f0d04485 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -108,7 +108,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[4] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.h index 0019e3509..09e3ff334 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.py index 87f17650e..15299ab60 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -86,7 +86,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[4] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.with.externals.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.with.externals.c index 141f736ec..15f1cf3c3 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.with.externals.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.with.externals.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -124,7 +124,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[4] = 36.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]+12.0; } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.with.externals.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.with.externals.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.with.externals.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.with.externals.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.with.externals.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.with.externals.py index c85563817..1940d23a8 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.with.externals.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.computed.constants.with.externals.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -95,7 +95,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[4] = 36.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): computed_constants[0] = constants[1]+12.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.c index cc1dcbb78..c9197b274 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -101,7 +101,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[3] = 0.325; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { double membrane_E_R = 0.0; computedConstants[0] = membrane_E_R-10.613; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.h index 0019e3509..09e3ff334 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.py index 6b25b6723..6166e598e 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -79,7 +79,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[3] = 0.325 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): membrane_E_R = 0.0 computed_constants[0] = membrane_E_R-10.613 computed_constants[1] = membrane_E_R-115.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.with.externals.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.with.externals.c index 72910991f..48113e737 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.with.externals.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.with.externals.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -118,7 +118,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { double membrane_E_R = 0.0; computedConstants[0] = membrane_E_R-10.613; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.with.externals.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.with.externals.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.with.externals.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.with.externals.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.with.externals.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.with.externals.py index 181291dcf..929881df9 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.with.externals.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.constants.with.externals.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -89,7 +89,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): membrane_E_R = 0.0 computed_constants[0] = membrane_E_R-10.613 computed_constants[1] = membrane_E_R-115.0 diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.c index 2bff2658b..fbbc7b23e 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -88,7 +88,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[3] = 0.325; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.h index dc29aa659..60bde42e6 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.py index 72e88cc8c..e41be2399 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -66,7 +66,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[3] = 0.325 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.with.externals.c b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.with.externals.c index bea3396d2..65d112b11 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.with.externals.c +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.with.externals.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -108,7 +108,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { double membrane_E_R = 0.0; computedConstants[0] = membrane_E_R+12.0; diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.with.externals.h b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.with.externals.h index d6171fd1a..dae0aa7e7 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.with.externals.h +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.with.externals.h @@ -37,6 +37,6 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.with.externals.py b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.with.externals.py index ee3bf75e6..185a315d1 100644 --- a/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.with.externals.py +++ b/tests/resources/generator/hodgkin_huxley_squid_axon_model_1952/model.untracked.variables.with.externals.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -79,7 +79,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): membrane_E_R = 0.0 computed_constants[0] = membrane_E_R+12.0 diff --git a/tests/resources/generator/noble_model_1962/model.c b/tests/resources/generator/noble_model_1962/model.c index 8fa658f0c..35152d92a 100644 --- a/tests/resources/generator/noble_model_1962/model.c +++ b/tests/resources/generator/noble_model_1962/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 4; @@ -110,7 +110,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[4] = 40.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/noble_model_1962/model.h b/tests/resources/generator/noble_model_1962/model.h index 91f4bcba0..beedd220c 100644 --- a/tests/resources/generator/noble_model_1962/model.h +++ b/tests/resources/generator/noble_model_1962/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/noble_model_1962/model.py b/tests/resources/generator/noble_model_1962/model.py index 7d7234738..8cca8f312 100644 --- a/tests/resources/generator/noble_model_1962/model.py +++ b/tests/resources/generator/noble_model_1962/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 4 @@ -76,7 +76,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[4] = 40.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/ode_computed_var_on_rhs/model.c b/tests/resources/generator/ode_computed_var_on_rhs/model.c index 3b8bdd928..e6eb64c88 100644 --- a/tests/resources/generator/ode_computed_var_on_rhs/model.c +++ b/tests/resources/generator/ode_computed_var_on_rhs/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -84,7 +84,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl computedConstants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/ode_computed_var_on_rhs/model.h b/tests/resources/generator/ode_computed_var_on_rhs/model.h index 9e491081b..6065091fb 100644 --- a/tests/resources/generator/ode_computed_var_on_rhs/model.h +++ b/tests/resources/generator/ode_computed_var_on_rhs/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/ode_computed_var_on_rhs/model.py b/tests/resources/generator/ode_computed_var_on_rhs/model.py index fb17e5f4d..d835dc907 100644 --- a/tests/resources/generator/ode_computed_var_on_rhs/model.py +++ b/tests/resources/generator/ode_computed_var_on_rhs/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -50,7 +50,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic computed_constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/ode_computed_var_on_rhs_one_component/model.c b/tests/resources/generator/ode_computed_var_on_rhs_one_component/model.c index 163cdbcd7..806edbf46 100644 --- a/tests/resources/generator/ode_computed_var_on_rhs_one_component/model.c +++ b/tests/resources/generator/ode_computed_var_on_rhs_one_component/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -84,7 +84,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl computedConstants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/ode_computed_var_on_rhs_one_component/model.h b/tests/resources/generator/ode_computed_var_on_rhs_one_component/model.h index 0cf4442b7..e77234c6a 100644 --- a/tests/resources/generator/ode_computed_var_on_rhs_one_component/model.h +++ b/tests/resources/generator/ode_computed_var_on_rhs_one_component/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/ode_computed_var_on_rhs_one_component/model.py b/tests/resources/generator/ode_computed_var_on_rhs_one_component/model.py index 5565726bd..37b6c66d1 100644 --- a/tests/resources/generator/ode_computed_var_on_rhs_one_component/model.py +++ b/tests/resources/generator/ode_computed_var_on_rhs_one_component/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -50,7 +50,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic computed_constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/ode_const_var_on_rhs/model.c b/tests/resources/generator/ode_const_var_on_rhs/model.c index 3564b0178..d910087ee 100644 --- a/tests/resources/generator/ode_const_var_on_rhs/model.c +++ b/tests/resources/generator/ode_const_var_on_rhs/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -84,7 +84,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/ode_const_var_on_rhs/model.h b/tests/resources/generator/ode_const_var_on_rhs/model.h index 9e491081b..6065091fb 100644 --- a/tests/resources/generator/ode_const_var_on_rhs/model.h +++ b/tests/resources/generator/ode_const_var_on_rhs/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/ode_const_var_on_rhs/model.py b/tests/resources/generator/ode_const_var_on_rhs/model.py index 5a7099b2a..06ce53970 100644 --- a/tests/resources/generator/ode_const_var_on_rhs/model.py +++ b/tests/resources/generator/ode_const_var_on_rhs/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -50,7 +50,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/ode_const_var_on_rhs_one_component/model.c b/tests/resources/generator/ode_const_var_on_rhs_one_component/model.c index ce6da46fc..c1c0c73e4 100644 --- a/tests/resources/generator/ode_const_var_on_rhs_one_component/model.c +++ b/tests/resources/generator/ode_const_var_on_rhs_one_component/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -84,7 +84,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/ode_const_var_on_rhs_one_component/model.h b/tests/resources/generator/ode_const_var_on_rhs_one_component/model.h index 0cf4442b7..e77234c6a 100644 --- a/tests/resources/generator/ode_const_var_on_rhs_one_component/model.h +++ b/tests/resources/generator/ode_const_var_on_rhs_one_component/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/ode_const_var_on_rhs_one_component/model.py b/tests/resources/generator/ode_const_var_on_rhs_one_component/model.py index 94f9c6134..aca79fdd3 100644 --- a/tests/resources/generator/ode_const_var_on_rhs_one_component/model.py +++ b/tests/resources/generator/ode_const_var_on_rhs_one_component/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -50,7 +50,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/ode_constant_on_rhs/model.c b/tests/resources/generator/ode_constant_on_rhs/model.c index 72ff3f904..cd39b5d6f 100644 --- a/tests/resources/generator/ode_constant_on_rhs/model.c +++ b/tests/resources/generator/ode_constant_on_rhs/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -82,7 +82,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/ode_constant_on_rhs/model.h b/tests/resources/generator/ode_constant_on_rhs/model.h index 9e491081b..6065091fb 100644 --- a/tests/resources/generator/ode_constant_on_rhs/model.h +++ b/tests/resources/generator/ode_constant_on_rhs/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/ode_constant_on_rhs/model.py b/tests/resources/generator/ode_constant_on_rhs/model.py index d7dfb28f5..78252e5c8 100644 --- a/tests/resources/generator/ode_constant_on_rhs/model.py +++ b/tests/resources/generator/ode_constant_on_rhs/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -48,7 +48,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/ode_constant_on_rhs_one_component/model.c b/tests/resources/generator/ode_constant_on_rhs_one_component/model.c index 435843298..0335cc1c5 100644 --- a/tests/resources/generator/ode_constant_on_rhs_one_component/model.c +++ b/tests/resources/generator/ode_constant_on_rhs_one_component/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -82,7 +82,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/ode_constant_on_rhs_one_component/model.h b/tests/resources/generator/ode_constant_on_rhs_one_component/model.h index 0cf4442b7..e77234c6a 100644 --- a/tests/resources/generator/ode_constant_on_rhs_one_component/model.h +++ b/tests/resources/generator/ode_constant_on_rhs_one_component/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/ode_constant_on_rhs_one_component/model.py b/tests/resources/generator/ode_constant_on_rhs_one_component/model.py index e9282025e..9b8af786f 100644 --- a/tests/resources/generator/ode_constant_on_rhs_one_component/model.py +++ b/tests/resources/generator/ode_constant_on_rhs_one_component/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -48,7 +48,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/ode_multiple_dependent_odes/model.c b/tests/resources/generator/ode_multiple_dependent_odes/model.c index 595ee1270..ac1ba3185 100644 --- a/tests/resources/generator/ode_multiple_dependent_odes/model.c +++ b/tests/resources/generator/ode_multiple_dependent_odes/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 2; @@ -86,7 +86,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/ode_multiple_dependent_odes/model.h b/tests/resources/generator/ode_multiple_dependent_odes/model.h index 1bcaec686..bd51ceb5f 100644 --- a/tests/resources/generator/ode_multiple_dependent_odes/model.h +++ b/tests/resources/generator/ode_multiple_dependent_odes/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/ode_multiple_dependent_odes/model.py b/tests/resources/generator/ode_multiple_dependent_odes/model.py index 8887ccf68..e41392e88 100644 --- a/tests/resources/generator/ode_multiple_dependent_odes/model.py +++ b/tests/resources/generator/ode_multiple_dependent_odes/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 2 @@ -52,7 +52,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/ode_multiple_dependent_odes_one_component/model.c b/tests/resources/generator/ode_multiple_dependent_odes_one_component/model.c index 947c02d76..966d352d5 100644 --- a/tests/resources/generator/ode_multiple_dependent_odes_one_component/model.c +++ b/tests/resources/generator/ode_multiple_dependent_odes_one_component/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 2; @@ -86,7 +86,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/ode_multiple_dependent_odes_one_component/model.h b/tests/resources/generator/ode_multiple_dependent_odes_one_component/model.h index 2ea06f038..b74d30417 100644 --- a/tests/resources/generator/ode_multiple_dependent_odes_one_component/model.h +++ b/tests/resources/generator/ode_multiple_dependent_odes_one_component/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/ode_multiple_dependent_odes_one_component/model.py b/tests/resources/generator/ode_multiple_dependent_odes_one_component/model.py index 40c2f4bf6..447717d16 100644 --- a/tests/resources/generator/ode_multiple_dependent_odes_one_component/model.py +++ b/tests/resources/generator/ode_multiple_dependent_odes_one_component/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 2 @@ -52,7 +52,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/ode_multiple_odes_with_same_name/model.c b/tests/resources/generator/ode_multiple_odes_with_same_name/model.c index 5bea76b02..98ae2f8cb 100644 --- a/tests/resources/generator/ode_multiple_odes_with_same_name/model.c +++ b/tests/resources/generator/ode_multiple_odes_with_same_name/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 2; @@ -86,7 +86,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[0] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/ode_multiple_odes_with_same_name/model.h b/tests/resources/generator/ode_multiple_odes_with_same_name/model.h index 670773ddb..8aa2447a6 100644 --- a/tests/resources/generator/ode_multiple_odes_with_same_name/model.h +++ b/tests/resources/generator/ode_multiple_odes_with_same_name/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/ode_multiple_odes_with_same_name/model.py b/tests/resources/generator/ode_multiple_odes_with_same_name/model.py index 9ce90f941..e0e39a3fe 100644 --- a/tests/resources/generator/ode_multiple_odes_with_same_name/model.py +++ b/tests/resources/generator/ode_multiple_odes_with_same_name/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 2 @@ -52,7 +52,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[0] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/ode_unknown_var_on_rhs/model.c b/tests/resources/generator/ode_unknown_var_on_rhs/model.c index ba61a382b..5994ddd90 100644 --- a/tests/resources/generator/ode_unknown_var_on_rhs/model.c +++ b/tests/resources/generator/ode_unknown_var_on_rhs/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 2; @@ -84,7 +84,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[1] = 1.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/ode_unknown_var_on_rhs/model.h b/tests/resources/generator/ode_unknown_var_on_rhs/model.h index 9e491081b..6065091fb 100644 --- a/tests/resources/generator/ode_unknown_var_on_rhs/model.h +++ b/tests/resources/generator/ode_unknown_var_on_rhs/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/ode_unknown_var_on_rhs/model.py b/tests/resources/generator/ode_unknown_var_on_rhs/model.py index 0e1d5bdf1..70e8ca1f4 100644 --- a/tests/resources/generator/ode_unknown_var_on_rhs/model.py +++ b/tests/resources/generator/ode_unknown_var_on_rhs/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 2 @@ -50,7 +50,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[1] = 1.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/robertson_model_1966/model.dae.c b/tests/resources/generator/robertson_model_1966/model.dae.c index 86a1b80a0..9b3fef98c 100644 --- a/tests/resources/generator/robertson_model_1966/model.dae.c +++ b/tests/resources/generator/robertson_model_1966/model.dae.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 2; @@ -131,7 +131,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl algebraic[0] = 0.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/robertson_model_1966/model.dae.h b/tests/resources/generator/robertson_model_1966/model.dae.h index ed7d57014..1dd0b2bd4 100644 --- a/tests/resources/generator/robertson_model_1966/model.dae.h +++ b/tests/resources/generator/robertson_model_1966/model.dae.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/robertson_model_1966/model.dae.py b/tests/resources/generator/robertson_model_1966/model.dae.py index c01e37e56..fb80ec25d 100644 --- a/tests/resources/generator/robertson_model_1966/model.dae.py +++ b/tests/resources/generator/robertson_model_1966/model.dae.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 2 @@ -85,7 +85,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic algebraic[0] = 0.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/robertson_model_1966/model.ode.c b/tests/resources/generator/robertson_model_1966/model.ode.c index 04ef867e8..d57bc9b09 100644 --- a/tests/resources/generator/robertson_model_1966/model.ode.c +++ b/tests/resources/generator/robertson_model_1966/model.ode.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 3; @@ -93,7 +93,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl constants[2] = 3.0e7; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/robertson_model_1966/model.ode.h b/tests/resources/generator/robertson_model_1966/model.ode.h index ed7d57014..1dd0b2bd4 100644 --- a/tests/resources/generator/robertson_model_1966/model.ode.h +++ b/tests/resources/generator/robertson_model_1966/model.ode.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/robertson_model_1966/model.ode.py b/tests/resources/generator/robertson_model_1966/model.ode.py index ddfda730e..e2a95348a 100644 --- a/tests/resources/generator/robertson_model_1966/model.ode.py +++ b/tests/resources/generator/robertson_model_1966/model.ode.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 3 @@ -59,7 +59,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic constants[2] = 3.0e7 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/sine_model_imports/model.c b/tests/resources/generator/sine_model_imports/model.c index 46fb9e568..9a901c5b3 100644 --- a/tests/resources/generator/sine_model_imports/model.c +++ b/tests/resources/generator/sine_model_imports/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -99,7 +99,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl computedConstants[4] = 3.0*3.14159265358979/2.0; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/sine_model_imports/model.h b/tests/resources/generator/sine_model_imports/model.h index bb8ef07e7..fe95b0b0b 100644 --- a/tests/resources/generator/sine_model_imports/model.h +++ b/tests/resources/generator/sine_model_imports/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/sine_model_imports/model.py b/tests/resources/generator/sine_model_imports/model.py index 3e71cba10..fc6d96f09 100644 --- a/tests/resources/generator/sine_model_imports/model.py +++ b/tests/resources/generator/sine_model_imports/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -69,7 +69,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic computed_constants[4] = 3.0*3.14159265358979/2.0 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass 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 ce2bd9222..36670a310 100644 --- a/tests/resources/generator/unknown_variable_as_external_variable/model.c +++ b/tests/resources/generator/unknown_variable_as_external_variable/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t CONSTANT_COUNT = 8; @@ -96,7 +96,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a constants[7] = 1.1; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/unknown_variable_as_external_variable/model.h b/tests/resources/generator/unknown_variable_as_external_variable/model.h index 0fdf636e1..a5362a8f3 100644 --- a/tests/resources/generator/unknown_variable_as_external_variable/model.h +++ b/tests/resources/generator/unknown_variable_as_external_variable/model.h @@ -33,5 +33,5 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 07f234d0d..5ad2f8975 100644 --- a/tests/resources/generator/unknown_variable_as_external_variable/model.py +++ b/tests/resources/generator/unknown_variable_as_external_variable/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" CONSTANT_COUNT = 8 @@ -62,7 +62,7 @@ def initialise_variables(constants, computed_constants, algebraic): constants[7] = 1.1 -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/variable_initialised_using_a_constant/model.c b/tests/resources/generator/variable_initialised_using_a_constant/model.c index 4f08cb86e..ba3054bf2 100644 --- a/tests/resources/generator/variable_initialised_using_a_constant/model.c +++ b/tests/resources/generator/variable_initialised_using_a_constant/model.c @@ -5,7 +5,7 @@ #include #include -const char VERSION[] = "0.6.0"; +const char VERSION[] = "0.7.0"; const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 1; @@ -84,7 +84,7 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[0] = constants[0]; } -void computeComputedConstants(double *constants, double *computedConstants) +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/variable_initialised_using_a_constant/model.h b/tests/resources/generator/variable_initialised_using_a_constant/model.h index 72ba8c278..c8465ae64 100644 --- a/tests/resources/generator/variable_initialised_using_a_constant/model.h +++ b/tests/resources/generator/variable_initialised_using_a_constant/model.h @@ -32,6 +32,6 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *constants, double *computedConstants); +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/variable_initialised_using_a_constant/model.py b/tests/resources/generator/variable_initialised_using_a_constant/model.py index fb828996a..8d49f57b3 100644 --- a/tests/resources/generator/variable_initialised_using_a_constant/model.py +++ b/tests/resources/generator/variable_initialised_using_a_constant/model.py @@ -4,7 +4,7 @@ from math import * -__version__ = "0.5.0" +__version__ = "0.6.0" LIBCELLML_VERSION = "0.6.3" STATE_COUNT = 1 @@ -50,7 +50,7 @@ def initialise_variables(states, rates, constants, computed_constants, algebraic states[0] = constants[0] -def compute_computed_constants(constants, computed_constants): +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): pass From 1bd66ae95de7a1572c283f0f3d12c74b5b9e5321 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Tue, 9 Sep 2025 14:25:06 +1200 Subject: [PATCH 4/9] Allow a constant, a computed constant, or a state variable (but not an algebraic variable) to be used as an initial value. --- src/analyser.cpp | 55 +- src/api/libcellml/issue.h | 3 +- src/bindings/javascript/issue.cpp | 3 +- src/bindings/python/__init__.py | 3 +- src/generator.cpp | 302 +++++-- src/generator_p.h | 29 +- src/issue.cpp | 3 +- tests/analyser/analyser.cpp | 27 +- tests/bindings/python/test_issue.py | 3 +- tests/generator/generator.cpp | 12 +- .../non_constant_initialising_variable.cellml | 40 - .../non_existing_initialising_variable.cellml | 33 - ...lised_using_a_non_existing_variable.cellml | 21 + ..._initialised_using_another_variable.cellml | 618 +++++++++++++ .../model.c | 98 --- .../model.cellml | 30 - .../model.py | 62 -- .../model.c | 817 ++++++++++++++++++ .../model.cellml | 510 +++++++++++ .../model.h | 4 +- .../model.py | 704 +++++++++++++++ 21 files changed, 2979 insertions(+), 398 deletions(-) delete mode 100644 tests/resources/analyser/non_constant_initialising_variable.cellml delete mode 100644 tests/resources/analyser/non_existing_initialising_variable.cellml create mode 100644 tests/resources/analyser/variable_initialised_using_a_non_existing_variable.cellml create mode 100644 tests/resources/analyser/variable_initialised_using_another_variable.cellml delete mode 100644 tests/resources/generator/variable_initialised_using_a_constant/model.c delete mode 100644 tests/resources/generator/variable_initialised_using_a_constant/model.cellml delete mode 100644 tests/resources/generator/variable_initialised_using_a_constant/model.py create mode 100644 tests/resources/generator/variable_initialised_using_another_variable/model.c create mode 100644 tests/resources/generator/variable_initialised_using_another_variable/model.cellml rename tests/resources/generator/{variable_initialised_using_a_constant => variable_initialised_using_another_variable}/model.h (96%) create mode 100644 tests/resources/generator/variable_initialised_using_another_variable/model.py diff --git a/src/analyser.cpp b/src/analyser.cpp index 9918b3610..73896eaad 100644 --- a/src/analyser.cpp +++ b/src/analyser.cpp @@ -895,7 +895,7 @@ void Analyser::AnalyserImpl::analyseComponentVariables(const ComponentPtr &compo // different then make sure that they don't both have an initial value. // Alternatively, if the variable held by `internalVariable` has an // initial value which is the name of another variable then make sure - // that it is of constant type. + // that it has the same units. // Note: we always have an initialising variable in the second case. // Indeed, if we were not to have one, it would mean that the // variable is initialised using a reference to a variable that is @@ -923,18 +923,7 @@ void Analyser::AnalyserImpl::analyseComponentVariables(const ComponentPtr &compo auto initialisingVariable = owningComponent(variable)->variable(variable->initialValue()); auto initialisingInternalVariable = Analyser::AnalyserImpl::internalVariable(initialisingVariable); - if (initialisingInternalVariable->mType != AnalyserInternalVariable::Type::INITIALISED) { - auto issue = Issue::IssueImpl::create(); - - issue->mPimpl->setDescription("Variable '" + variable->name() - + "' in component '" + component->name() - + "' is initialised using variable '" + variable->initialValue() - + "', which is not a constant."); - issue->mPimpl->setReferenceRule(Issue::ReferenceRule::ANALYSER_VARIABLE_NON_CONSTANT_INITIALISATION); - issue->mPimpl->mItem->mPimpl->setVariable(variable); - - addIssue(issue); - } else { + if (initialisingInternalVariable->mType == AnalyserInternalVariable::Type::INITIALISED) { auto scalingFactor = Units::scalingFactor(variable->units(), initialisingVariable->units()); if (!areNearlyEqual(scalingFactor, 1.0)) { @@ -945,7 +934,7 @@ void Analyser::AnalyserImpl::analyseComponentVariables(const ComponentPtr &compo + "' is initialised using variable '" + variable->initialValue() + "' which has different units."); issue->mPimpl->setLevel(Issue::Level::WARNING); - issue->mPimpl->setReferenceRule(Issue::ReferenceRule::ANALYSER_VARIABLE_NON_CONSTANT_INITIALISATION); + issue->mPimpl->setReferenceRule(Issue::ReferenceRule::ANALYSER_VARIABLE_INITIALISED_USING_VARIABLE_WITH_DIFFERENT_UNITS); issue->mPimpl->mItem->mPimpl->setVariable(variable); addIssue(issue); @@ -2339,8 +2328,13 @@ void Analyser::AnalyserImpl::analyseModel(const ModelPtr &model) } // Recursively analyse the model's components' variables. - // Note: we can't do this as part of analyseComponent() since we don't - // necessarily know the state of all the variables. + // Note #1: we can't do this as part of analyseComponent() since we don't + // necessarily know the state of all the variables. + // Note #2: when it comes to variables initialised using another variable, + // we can only do this after all the equations have been analysed, + // i.e. once we know the type of all the variables since a variable + // can be initialised using another variable, but only if it is not + // an algebraic variable. for (size_t i = 0; i < model->componentCount(); ++i) { analyseComponentVariables(model->component(i)); @@ -2612,6 +2606,35 @@ void Analyser::AnalyserImpl::analyseModel(const ModelPtr &model) return; } + // Make sure that variables that are initialised using another variable are + // not initialised using an algebraic variable. + + for (const auto &internalVariable : mInternalVariables) { + if ((internalVariable->mInitialisingVariable != nullptr) + && !isCellMLReal(internalVariable->mInitialisingVariable->initialValue())) { + auto initialisingInternalVariable = Analyser::AnalyserImpl::internalVariable(owningComponent(internalVariable->mInitialisingVariable)->variable(internalVariable->mInitialisingVariable->initialValue())); + + if (initialisingInternalVariable->mType == AnalyserInternalVariable::Type::ALGEBRAIC) { + auto issue = Issue::IssueImpl::create(); + + issue->mPimpl->setDescription("Variable '" + internalVariable->mVariable->name() + + "' in component '" + owningComponent(internalVariable->mVariable)->name() + + "' is initialised using variable '" + initialisingInternalVariable->mVariable->name() + + "', which is an algebraic variable. Only a reference to a constant, a computed constant, a state variable, or a non-linear algebraic variable is allowed."); + issue->mPimpl->setReferenceRule(Issue::ReferenceRule::ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE); + issue->mPimpl->mItem->mPimpl->setVariable(internalVariable->mVariable); + + addIssue(issue); + } + } + } + + if (mAnalyser->errorCount() != 0) { + mModel->mPimpl->mType = AnalyserModel::Type::INVALID; + + return; + } + // Make sure that our equations are valid. AnalyserInternalVariablePtrs addedExternalVariables; diff --git a/src/api/libcellml/issue.h b/src/api/libcellml/issue.h index fdf283803..12c5cfbf7 100644 --- a/src/api/libcellml/issue.h +++ b/src/api/libcellml/issue.h @@ -192,7 +192,8 @@ class LIBCELLML_EXPORT Issue ANALYSER_UNITS, ANALYSER_UNLINKED_UNITS, ANALYSER_VARIABLE_INITIALISED_MORE_THAN_ONCE, - ANALYSER_VARIABLE_NON_CONSTANT_INITIALISATION, + ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE, + ANALYSER_VARIABLE_INITIALISED_USING_VARIABLE_WITH_DIFFERENT_UNITS, ANALYSER_VOI_INITIALISED, ANALYSER_VOI_SEVERAL, ANALYSER_ODE_NOT_FIRST_ORDER, diff --git a/src/bindings/javascript/issue.cpp b/src/bindings/javascript/issue.cpp index 01a14768b..88c92f22a 100644 --- a/src/bindings/javascript/issue.cpp +++ b/src/bindings/javascript/issue.cpp @@ -41,7 +41,8 @@ EMSCRIPTEN_BINDINGS(libcellml_issue) { .value("ANALYSER_UNLINKED_UNITS", libcellml::Issue::ReferenceRule::ANALYSER_UNLINKED_UNITS) .value("ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE", libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE) .value("ANALYSER_VARIABLE_INITIALISED_MORE_THAN_ONCE", libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_INITIALISED_MORE_THAN_ONCE) - .value("ANALYSER_VARIABLE_NON_CONSTANT_INITIALISATION", libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_NON_CONSTANT_INITIALISATION) + .value("ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE", libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE) + .value("ANALYSER_VARIABLE_INITIALISED_USING_VARIABLE_WITH_DIFFERENT_UNITS", libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_INITIALISED_USING_VARIABLE_WITH_DIFFERENT_UNITS) .value("ANALYSER_VARIABLE_UNUSED", libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_UNUSED) .value("ANALYSER_VOI_INITIALISED", libcellml::Issue::ReferenceRule::ANALYSER_VOI_INITIALISED) .value("ANALYSER_VOI_SEVERAL", libcellml::Issue::ReferenceRule::ANALYSER_VOI_SEVERAL) diff --git a/src/bindings/python/__init__.py b/src/bindings/python/__init__.py index efe2a3d0e..677f04a49 100644 --- a/src/bindings/python/__init__.py +++ b/src/bindings/python/__init__.py @@ -310,7 +310,8 @@ class Object: 'ANALYSER_UNITS', 'ANALYSER_UNLINKED_UNITS', 'ANALYSER_VARIABLE_INITIALISED_MORE_THAN_ONCE', - 'ANALYSER_VARIABLE_NON_CONSTANT_INITIALISATION', + 'ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE', + 'ANALYSER_VARIABLE_INITIALISED_USING_VARIABLE_WITH_DIFFERENT_UNITS', 'ANALYSER_VOI_INITIALISED', 'ANALYSER_VOI_SEVERAL', 'ANALYSER_ODE_NOT_FIRST_ORDER', diff --git a/src/generator.cpp b/src/generator.cpp index b46b929d6..0a04b47c0 100644 --- a/src/generator.cpp +++ b/src/generator.cpp @@ -1358,17 +1358,37 @@ std::string generateDoubleCode(const std::string &value) return value.substr(0, ePos) + ".0" + value.substr(ePos); } -std::string Generator::GeneratorImpl::generateDoubleOrConstantVariableNameCode(const AnalyserModelPtr &model, - const VariablePtr &variable) +std::string Generator::GeneratorImpl::generateDoubleOrVariableNameCode(const AnalyserModelPtr &model, + const VariablePtr &variable) { if (isCellMLReal(variable->initialValue())) { return generateDoubleCode(variable->initialValue()); } auto initialValueVariable = owningComponent(variable)->variable(variable->initialValue()); - auto analyserInitialValueVariable = model->variable(initialValueVariable); + auto initialValueAnalyserVariable = model->variable(initialValueVariable); + std::string arrayName; + + switch (initialValueAnalyserVariable->type()) { + case AnalyserVariable::Type::STATE: + arrayName = mProfile->statesArrayString(); + + break; + case AnalyserVariable::Type::CONSTANT: + arrayName = mProfile->constantsArrayString(); + + break; + case AnalyserVariable::Type::COMPUTED_CONSTANT: + arrayName = mProfile->computedConstantsArrayString(); + + break; + default: // If it is not one of the above types then it has to be an algebraic variable. + arrayName = mProfile->algebraicArrayString(); + + break; + } - return mProfile->constantsArrayString() + mProfile->openArrayString() + variableIndexString(model, analyserInitialValueVariable) + mProfile->closeArrayString(); + return arrayName + mProfile->openArrayString() + variableIndexString(model, initialValueAnalyserVariable) + mProfile->closeArrayString(); } std::string Generator::GeneratorImpl::generateVariableNameCode(const AnalyserModelPtr &model, @@ -2184,32 +2204,6 @@ bool Generator::GeneratorImpl::isSomeConstant(const AnalyserEquationPtr &equatio || (!includeComputedConstants && (equation->type() == AnalyserEquation::Type::COMPUTED_CONSTANT)); } -std::string Generator::GeneratorImpl::generateConstantInitialisationCode(const AnalyserModelPtr &model, - const std::vector::iterator constant, - std::vector &remainingConstants) -{ - auto initialisingVariable = (*constant)->initialisingVariable(); - auto initialValue = initialisingVariable->initialValue(); - - if (!isCellMLReal(initialValue)) { - auto initialisingComponent = owningComponent(initialisingVariable); - auto crtConstant = std::find_if(remainingConstants.begin(), remainingConstants.end(), - [=](const AnalyserVariablePtr &av) -> bool { - return initialisingComponent->variable(initialValue) == av->variable(); - }); - - if (crtConstant != remainingConstants.end()) { - return generateConstantInitialisationCode(model, crtConstant, remainingConstants); - } - } - - auto code = generateInitialisationCode(model, *constant); - - remainingConstants.erase(constant); - - return code; -} - std::string Generator::GeneratorImpl::generateZeroInitialisationCode(const AnalyserModelPtr &model, const AnalyserVariablePtr &variable) { @@ -2237,7 +2231,7 @@ std::string Generator::GeneratorImpl::generateInitialisationCode(const AnalyserM auto code = generateVariableNameCode(model, variable->variable()) + mProfile->equalityString() - + scalingFactorCode + generateDoubleOrConstantVariableNameCode(model, initialisingVariable) + + scalingFactorCode + generateDoubleOrVariableNameCode(model, initialisingVariable) + mProfile->commandSeparatorString() + "\n"; if (doIsTrackedVariable(model, variable, false)) { @@ -2348,6 +2342,99 @@ std::string Generator::GeneratorImpl::generateEquationCode(const AnalyserModelPt generatedConstantDependencies, true); } +bool Generator::GeneratorImpl::hasComputedConstantDependency(const AnalyserModelPtr &model, + const AnalyserVariablePtr &variable) +{ + // Check if the variable has a direct or indirect dependency on a computed constant. + + if (variable->type() == AnalyserVariable::Type::COMPUTED_CONSTANT) { + return true; + } + + auto initialisingVariable = variable->initialisingVariable(); + auto initialValueVariable = owningComponent(initialisingVariable)->variable(initialisingVariable->initialValue()); + + if (initialValueVariable == nullptr) { + return false; + } + + return hasComputedConstantDependency(model, model->variable(initialValueVariable)); +} + +std::string Generator::GeneratorImpl::generateInitialiseVariableCode(const AnalyserModelPtr &model, + const AnalyserVariablePtr &variable, + std::vector &remainingEquations, + std::vector &remainingStates, + std::vector &remainingConstants, + std::vector &remainingComputedConstants, + std::vector &remainingAlgebraic, + std::vector *generatedConstantDependencies) +{ + std::string res; + + // Check if the variable is initialised using a constant value or an initialising variable. + + auto initialisingVariable = variable->initialisingVariable(); + auto initialValueVariable = (initialisingVariable != nullptr) ? owningComponent(initialisingVariable)->variable(initialisingVariable->initialValue()) : nullptr; + auto initialiseAnalyserVariable = true; + + if (initialValueVariable != nullptr) { + // The initial value references a state, a constant, a computed constant, or an algebraic variable, so generate + // initialisation code for that variable first, if conditions are met. + + auto initialValueAnalyserVariable = model->variable(initialValueVariable); + auto &remainingVariables = (initialValueAnalyserVariable->type() == AnalyserVariable::Type::STATE) ? + remainingStates : + (initialValueAnalyserVariable->type() == AnalyserVariable::Type::CONSTANT) ? + remainingConstants : + (initialValueAnalyserVariable->type() == AnalyserVariable::Type::COMPUTED_CONSTANT) ? + remainingComputedConstants : + remainingAlgebraic; + + if (((generatedConstantDependencies == nullptr) && !hasComputedConstantDependency(model, initialValueAnalyserVariable)) + || (generatedConstantDependencies != nullptr)) { + auto initialisingAnalyserVariable = std::find_if(remainingVariables.begin(), remainingVariables.end(), + [&](const AnalyserVariablePtr &av) { + return areEquivalentVariables(initialValueVariable, av->variable()); + }); + + if (initialisingAnalyserVariable != remainingVariables.end()) { + res += generateInitialiseVariableCode(model, AnalyserVariablePtr(*initialisingAnalyserVariable), + remainingEquations, remainingStates, remainingConstants, + remainingComputedConstants, remainingAlgebraic, + generatedConstantDependencies); + } + } else { + initialiseAnalyserVariable = false; + } + } + + // Now initialise the variable itself, if we can. + + if (initialiseAnalyserVariable) { + auto &remainingVariables = (variable->type() == AnalyserVariable::Type::STATE) ? + remainingStates : + (variable->type() == AnalyserVariable::Type::CONSTANT) ? + remainingConstants : + (variable->type() == AnalyserVariable::Type::COMPUTED_CONSTANT) ? + remainingComputedConstants : + remainingAlgebraic; + auto remainingVariable = std::find(remainingVariables.begin(), remainingVariables.end(), variable); + + if (remainingVariable != remainingVariables.end()) { + if (remainingVariables != remainingComputedConstants) { + res += generateInitialisationCode(model, AnalyserVariablePtr(*remainingVariable)); + } else { + res += generateEquationCode(model, variable->equation(0), remainingEquations, *generatedConstantDependencies); + } + + remainingVariables.erase(remainingVariable); + } + } + + return res; +} + void Generator::GeneratorImpl::addInterfaceComputeModelMethodsCode(const AnalyserModelPtr &model) { auto interfaceInitialiseVariablesMethodString = mProfile->interfaceInitialiseVariablesMethodString(modelHasOdes(model)); @@ -2382,76 +2469,75 @@ void Generator::GeneratorImpl::addInterfaceComputeModelMethodsCode(const Analyse } void Generator::GeneratorImpl::addImplementationInitialiseVariablesMethodCode(const AnalyserModelPtr &model, - std::vector &remainingEquations) + std::vector &remainingEquations, + std::vector &remainingStates, + std::vector &remainingConstants, + std::vector &remainingComputedConstants, + std::vector &remainingAlgebraic) { - auto implementationInitialiseVariablesMethodString = mProfile->implementationInitialiseVariablesMethodString(modelHasOdes(model)); - - if (!implementationInitialiseVariablesMethodString.empty()) { - // Initialise our states (after, if needed, initialising the constant on which it depends). - - std::string methodBody; - auto constants = model->constants(); + // Note: we must always generate the method body (even if we don't end up generating the method itself) because + // addImplementationComputeComputedConstantsMethodCode() expects our "remaining" parameters to be updated + // correctly. - for (const auto &state : model->states()) { - auto initialisingVariable = state->initialisingVariable(); - auto initialValue = initialisingVariable->initialValue(); + // Initialise our states. - if (!isCellMLReal(initialValue)) { - // The initial value references a constant. + std::string methodBody; - auto initialisingComponent = owningComponent(initialisingVariable); - auto constant = std::find_if(constants.begin(), constants.end(), - [=](const AnalyserVariablePtr &av) -> bool { - return initialisingComponent->variable(initialValue)->hasEquivalentVariable(av->variable()); - }); + for (const auto &state : model->states()) { + methodBody += generateInitialiseVariableCode(model, state, + remainingEquations, remainingStates, remainingConstants, + remainingComputedConstants, remainingAlgebraic); + } - methodBody += generateConstantInitialisationCode(model, constant, constants); - } + // Use an initial guess of zero for rates computed using an NLA system (see the note below). - methodBody += generateInitialisationCode(model, state); + for (const auto &state : model->states()) { + if (state->equation(0)->type() == AnalyserEquation::Type::NLA) { + methodBody += generateZeroInitialisationCode(model, state); } + } - // Use an initial guess of zero for rates computed using an NLA system - // (see the note below). + // Initialise our remaining constants. - for (const auto &state : model->states()) { - if (state->equation(0)->type() == AnalyserEquation::Type::NLA) { - methodBody += generateZeroInitialisationCode(model, state); - } - } + while (!remainingConstants.empty()) { + methodBody += generateInitialiseVariableCode(model, AnalyserVariablePtr(*remainingConstants.begin()), + remainingEquations, remainingStates, remainingConstants, + remainingComputedConstants, remainingAlgebraic); + } - // Initialise our (remaining) constants. + // Initialise our computed constants that are initialised using an equation (e.g., x = 3 rather than x with an + // initial value of 3). - while (!constants.empty()) { - methodBody += generateConstantInitialisationCode(model, constants.begin(), constants); - } + std::vector generatedConstantDependencies; - // Initialise our computed constants that are initialised using an equation (e.g., x = 3 rather than x with an - // initial value of 3). + for (const auto &equation : model->equations()) { + if (equation->type() == AnalyserEquation::Type::CONSTANT) { + methodBody += generateEquationCode(model, equation, remainingEquations, generatedConstantDependencies); + } + } - std::vector generatedConstantDependencies; + // Initialise our algebraic variables that have an initial value. Also use an initial guess of zero for algebraic + // variables computed using an NLA system. + // Note: a variable which is the only unknown in an equation, but which is not on its own on either the LHS or RHS + // of that equation (e.g., x = y+z with x and y known and z unknown) is (currently) to be computed using an + // NLA system for which we need an initial guess. We use an initial guess of zero, which is fine since such an + // NLA system has only one solution. - for (const auto &equation : model->equations()) { - if (equation->type() == AnalyserEquation::Type::CONSTANT) { - methodBody += generateEquationCode(model, equation, remainingEquations, generatedConstantDependencies); - } + for (const auto &algebraic : model->algebraic()) { + if (algebraic->initialisingVariable() != nullptr) { + methodBody += generateInitialiseVariableCode(model, algebraic, + remainingEquations, remainingStates, remainingConstants, + remainingComputedConstants, remainingAlgebraic); + } else if (algebraic->equation(0)->type() == AnalyserEquation::Type::NLA) { + methodBody += generateZeroInitialisationCode(model, algebraic); } + } - // Initialise our algebraic variables that have an initial value. Also use an initial guess of zero for - // algebraic variables computed using an NLA system. - // Note: a variable which is the only unknown in an equation, but which is not on its own on either the LHS or - // RHS of that equation (e.g., x = y+z with x and y known and z unknown) is (currently) to be computed - // using an NLA system for which we need an initial guess. We use an initial guess of zero, which is fine - // since such an NLA system has only one solution. + // Generate the method itself, if needed. - for (const auto &algebraic : model->algebraic()) { - if (algebraic->initialisingVariable() != nullptr) { - methodBody += generateInitialisationCode(model, algebraic); - } else if (algebraic->equation(0)->type() == AnalyserEquation::Type::NLA) { - methodBody += generateZeroInitialisationCode(model, algebraic); - } - } + auto implementationInitialiseVariablesMethodString = mProfile->implementationInitialiseVariablesMethodString(modelHasOdes(model)); + if (!implementationInitialiseVariablesMethodString.empty()) { mCode += newLineIfNeeded() + replace(implementationInitialiseVariablesMethodString, "[CODE]", generateMethodBodyCode(methodBody)); @@ -2459,16 +2545,45 @@ void Generator::GeneratorImpl::addImplementationInitialiseVariablesMethodCode(co } void Generator::GeneratorImpl::addImplementationComputeComputedConstantsMethodCode(const AnalyserModelPtr &model, - std::vector &remainingEquations) + std::vector &remainingEquations, + std::vector &remainingStates, + std::vector &remainingConstants, + std::vector &remainingComputedConstants, + std::vector &remainingAlgebraic) { if (!mProfile->implementationComputeComputedConstantsMethodString().empty()) { + // Initialise our remaining states (which are initialised using a computed constant). + std::string methodBody; std::vector generatedConstantDependencies; + for (const auto &state : model->states()) { + methodBody += generateInitialiseVariableCode(model, state, + remainingEquations, remainingStates, remainingConstants, + remainingComputedConstants, remainingAlgebraic, + &generatedConstantDependencies); + } + + // Initialise our remaining computed constants. + for (const auto &equation : model->equations()) { if ((equation->type() == AnalyserEquation::Type::COMPUTED_CONSTANT) && isTrackedEquation(equation)) { - methodBody += generateEquationCode(model, equation, remainingEquations, generatedConstantDependencies); + methodBody += generateInitialiseVariableCode(model, equation->computedConstant(0), + remainingEquations, remainingStates, remainingConstants, + remainingComputedConstants, remainingAlgebraic, + &generatedConstantDependencies); + } + } + + // Initialise our algebraic variables that are initialised using a computed constant. + + for (const auto &algebraic : model->algebraic()) { + if (algebraic->initialisingVariable() != nullptr) { + methodBody += generateInitialiseVariableCode(model, algebraic, + remainingEquations, remainingStates, remainingConstants, + remainingComputedConstants, remainingAlgebraic, + &generatedConstantDependencies); } } @@ -2518,7 +2633,7 @@ void Generator::GeneratorImpl::addImplementationComputeVariablesMethodCode(const if (!implementationComputeVariablesMethodString.empty()) { std::string methodBody; auto equations = model->equations(); - std::vector newRemainingEquations {std::begin(equations), std::end(equations)}; + auto newRemainingEquations = equations; std::vector generatedConstantDependencies; for (const auto &equation : equations) { @@ -2796,14 +2911,21 @@ std::string Generator::implementationCode(const AnalyserModelPtr &model) // Add code for the implementation to initialise our variables. - auto equations = model->equations(); - std::vector remainingEquations {std::begin(equations), std::end(equations)}; + auto remainingEquations = model->equations(); + auto remainingStates = model->states(); + auto remainingConstants = model->constants(); + auto remainingComputedConstants = model->computedConstants(); + auto remainingAlgebraic = model->algebraic(); - pFunc()->addImplementationInitialiseVariablesMethodCode(model, remainingEquations); + pFunc()->addImplementationInitialiseVariablesMethodCode(model, remainingEquations, remainingStates, + remainingConstants, remainingComputedConstants, + remainingAlgebraic); // Add code for the implementation to compute our computed constants. - pFunc()->addImplementationComputeComputedConstantsMethodCode(model, remainingEquations); + pFunc()->addImplementationComputeComputedConstantsMethodCode(model, remainingEquations, remainingStates, + remainingConstants, remainingComputedConstants, + remainingAlgebraic); // Add code for the implementation to compute our rates (and any variables // on which they depend). diff --git a/src/generator_p.h b/src/generator_p.h index 0fe2c9680..6a607f1ad 100644 --- a/src/generator_p.h +++ b/src/generator_p.h @@ -164,8 +164,8 @@ struct Generator::GeneratorImpl: public Logger::LoggerImpl std::string generateMethodBodyCode(const std::string &methodBody) const; - std::string generateDoubleOrConstantVariableNameCode(const AnalyserModelPtr &model, - const VariablePtr &variable); + std::string generateDoubleOrVariableNameCode(const AnalyserModelPtr &model, + const VariablePtr &variable); std::string generateVariableNameCode(const AnalyserModelPtr &model, const VariablePtr &variable, bool state = true); @@ -192,9 +192,6 @@ struct Generator::GeneratorImpl: public Logger::LoggerImpl COMPUTE_VARIABLES }; - std::string generateConstantInitialisationCode(const AnalyserModelPtr &model, - const std::vector::iterator constant, - std::vector &remainingConstants); std::string generateZeroInitialisationCode(const AnalyserModelPtr &model, const AnalyserVariablePtr &variable); std::string generateInitialisationCode(const AnalyserModelPtr &model, const AnalyserVariablePtr &variable, @@ -208,12 +205,30 @@ struct Generator::GeneratorImpl: public Logger::LoggerImpl std::string generateEquationCode(const AnalyserModelPtr &model, const AnalyserEquationPtr &equation, std::vector &remainingEquations, std::vector &generatedConstantDependencies); + bool hasComputedConstantDependency(const AnalyserModelPtr &model, + const AnalyserVariablePtr &variable); + std::string generateInitialiseVariableCode(const AnalyserModelPtr &model, + const AnalyserVariablePtr &variable, + std::vector &remainingEquations, + std::vector &remainingStates, + std::vector &remainingConstants, + std::vector &remainingComputedConstants, + std::vector &remainingAlgebraic, + std::vector *generatedConstantDependencies = nullptr); void addInterfaceComputeModelMethodsCode(const AnalyserModelPtr &model); void addImplementationInitialiseVariablesMethodCode(const AnalyserModelPtr &model, - std::vector &remainingEquations); + std::vector &remainingEquations, + std::vector &remainingStates, + std::vector &remainingConstants, + std::vector &remainingComputedConstants, + std::vector &remainingAlgebraic); void addImplementationComputeComputedConstantsMethodCode(const AnalyserModelPtr &model, - std::vector &remainingEquations); + std::vector &remainingEquations, + std::vector &remainingStates, + std::vector &remainingConstants, + std::vector &remainingComputedConstants, + std::vector &remainingAlgebraic); void addImplementationComputeRatesMethodCode(const AnalyserModelPtr &model, std::vector &remainingEquations); void addImplementationComputeVariablesMethodCode(const AnalyserModelPtr &model, diff --git a/src/issue.cpp b/src/issue.cpp index 6d43d195d..c5c5e10f8 100644 --- a/src/issue.cpp +++ b/src/issue.cpp @@ -202,7 +202,8 @@ static const std::map> ruleToInfo {Issue::ReferenceRule::ANALYSER_UNITS, {"ANALYSER_UNITS", "", docsUrl, ""}}, {Issue::ReferenceRule::ANALYSER_UNLINKED_UNITS, {"ANALYSER_UNLINKED_UNITS", "", docsUrl, ""}}, {Issue::ReferenceRule::ANALYSER_VARIABLE_INITIALISED_MORE_THAN_ONCE, {"ANALYSER_VARIABLE_INITIALISED_MORE_THAN_ONCE", "", docsUrl, ""}}, - {Issue::ReferenceRule::ANALYSER_VARIABLE_NON_CONSTANT_INITIALISATION, {"ANALYSER_VARIABLE_NON_CONSTANT_INITIALISATION", "", docsUrl, ""}}, + {Issue::ReferenceRule::ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE, {"ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE", "", docsUrl, ""}}, + {Issue::ReferenceRule::ANALYSER_VARIABLE_INITIALISED_USING_VARIABLE_WITH_DIFFERENT_UNITS, {"ANALYSER_VARIABLE_INITIALISED_USING_VARIABLE_WITH_DIFFERENT_UNITS", "", docsUrl, ""}}, {Issue::ReferenceRule::ANALYSER_VOI_INITIALISED, {"ANALYSER_VOI_INITIALISED", "", docsUrl, ""}}, {Issue::ReferenceRule::ANALYSER_VOI_SEVERAL, {"ANALYSER_VOI_SEVERAL", "", docsUrl, ""}}, {Issue::ReferenceRule::ANALYSER_ODE_NOT_FIRST_ORDER, {"ANALYSER_ODE_NOT_FIRST_ORDER", "", docsUrl, ""}}, diff --git a/tests/analyser/analyser.cpp b/tests/analyser/analyser.cpp index c3f5c8b5a..67db637c1 100644 --- a/tests/analyser/analyser.cpp +++ b/tests/analyser/analyser.cpp @@ -237,15 +237,15 @@ TEST(Analyser, variableInitialisedTwice) EXPECT_EQ(libcellml::AnalyserModel::Type::INVALID, analyser->model()->type()); } -TEST(Analyser, nonConstantInitialisingVariable) +TEST(Analyser, variableInitialisedUsingANonExistingVariable) { auto parser = libcellml::Parser::create(); - auto model = parser->parseModel(fileContents("analyser/non_constant_initialising_variable.cellml")); + auto model = parser->parseModel(fileContents("analyser/variable_initialised_using_a_non_existing_variable.cellml")); EXPECT_EQ(size_t(0), parser->issueCount()); const std::vector expectedIssues = { - "Variable 'x' in component 'main' is initialised using variable 'k2', which is not a constant.", + "Variable 'x' in component 'main' has an invalid initial value 'k'. Initial values must be a real number string or a variable reference.", }; auto analyser = libcellml::Analyser::create(); @@ -255,22 +255,29 @@ TEST(Analyser, nonConstantInitialisingVariable) EXPECT_EQ_ISSUES_CELLMLELEMENTTYPES_LEVELS_REFERENCERULES_URLS(expectedIssues, expectedCellmlElementTypes(expectedIssues.size(), libcellml::CellmlElementType::VARIABLE), expectedLevels(expectedIssues.size(), libcellml::Issue::Level::ERROR), - expectedReferenceRules(expectedIssues.size(), libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_NON_CONSTANT_INITIALISATION), - expectedUrls(expectedIssues.size(), "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_NON_CONSTANT_INITIALISATION"), + expectedReferenceRules(expectedIssues.size(), libcellml::Issue::ReferenceRule::VARIABLE_INITIAL_VALUE_VALUE), + expectedUrls(expectedIssues.size(), "https://cellml-specification.readthedocs.io/en/latest/reference/formal_and_informative/specB08.html?issue=VARIABLE_INITIAL_VALUE_VALUE"), analyser); EXPECT_EQ(libcellml::AnalyserModel::Type::INVALID, analyser->model()->type()); } -TEST(Analyser, nonExistingInitialisingVariable) +TEST(Analyser, variableInitialisedUsingAnotherVariable) { + // Note: this should be in sync with the corresponding Generator test. + auto parser = libcellml::Parser::create(); - auto model = parser->parseModel(fileContents("analyser/non_existing_initialising_variable.cellml")); + auto model = parser->parseModel(fileContents("analyser/variable_initialised_using_another_variable.cellml")); EXPECT_EQ(size_t(0), parser->issueCount()); const std::vector expectedIssues = { - "Variable 'x' in component 'main' has an invalid initial value 'k'. Initial values must be a real number string or a variable reference.", + "Variable 'kStateStateAlgebraic' in component 'main' is initialised using variable 'kStateAlgebraic', which is an algebraic variable. Only a reference to a constant, a computed constant, a state variable, or a non-linear algebraic variable is allowed.", + "Variable 'kNlaStateAlgebraic' in component 'main' is initialised using variable 'kStateAlgebraic', which is an algebraic variable. Only a reference to a constant, a computed constant, a state variable, or a non-linear algebraic variable is allowed.", + "Variable 'xStateNlaAlgebraic' in component 'main' is initialised using variable 'kStateNlaAlgebraic', which is an algebraic variable. Only a reference to a constant, a computed constant, a state variable, or a non-linear algebraic variable is allowed.", + "Variable 'xNlaNlaAlgebraic' in component 'main' is initialised using variable 'kNlaNlaAlgebraic', which is an algebraic variable. Only a reference to a constant, a computed constant, a state variable, or a non-linear algebraic variable is allowed.", + "Variable 'xStateAlgebraic' in component 'main' is initialised using variable 'kStateAlgebraic', which is an algebraic variable. Only a reference to a constant, a computed constant, a state variable, or a non-linear algebraic variable is allowed.", + "Variable 'xNlaAlgebraic' in component 'main' is initialised using variable 'kNlaAlgebraic', which is an algebraic variable. Only a reference to a constant, a computed constant, a state variable, or a non-linear algebraic variable is allowed.", }; auto analyser = libcellml::Analyser::create(); @@ -280,8 +287,8 @@ TEST(Analyser, nonExistingInitialisingVariable) EXPECT_EQ_ISSUES_CELLMLELEMENTTYPES_LEVELS_REFERENCERULES_URLS(expectedIssues, expectedCellmlElementTypes(expectedIssues.size(), libcellml::CellmlElementType::VARIABLE), expectedLevels(expectedIssues.size(), libcellml::Issue::Level::ERROR), - expectedReferenceRules(expectedIssues.size(), libcellml::Issue::ReferenceRule::VARIABLE_INITIAL_VALUE_VALUE), - expectedUrls(expectedIssues.size(), "https://cellml-specification.readthedocs.io/en/latest/reference/formal_and_informative/specB08.html?issue=VARIABLE_INITIAL_VALUE_VALUE"), + expectedReferenceRules(expectedIssues.size(), libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE), + expectedUrls(expectedIssues.size(), "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE"), analyser); EXPECT_EQ(libcellml::AnalyserModel::Type::INVALID, analyser->model()->type()); diff --git a/tests/bindings/python/test_issue.py b/tests/bindings/python/test_issue.py index 3de5258c4..f669efae3 100644 --- a/tests/bindings/python/test_issue.py +++ b/tests/bindings/python/test_issue.py @@ -36,7 +36,8 @@ def test_reference_rule_enum(self): self.assertIsInstance(Issue.ReferenceRule.ANALYSER_UNLINKED_UNITS, int) self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE, int) self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VARIABLE_INITIALISED_MORE_THAN_ONCE, int) - self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VARIABLE_NON_CONSTANT_INITIALISATION, int) + self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE, int) + self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VARIABLE_INITIALISED_USING_VARIABLE_WITH_DIFFERENT_UNITS, int) self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VARIABLE_UNUSED, int) self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VOI_INITIALISED, int) self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VOI_SEVERAL, int) diff --git a/tests/generator/generator.cpp b/tests/generator/generator.cpp index 44fff5455..a58165534 100644 --- a/tests/generator/generator.cpp +++ b/tests/generator/generator.cpp @@ -1740,10 +1740,12 @@ TEST(Generator, daeModel) EXPECT_EQ_FILE_CONTENTS("generator/dae_cellml_1_1_model/model.py", generator->implementationCode(analyserModel)); } -TEST(Generator, variableInitialisedUsingAConstant) +TEST(Generator, variableInitialisedUsingAnotherVariable) { + // Note: this should be in sync with the corresponding Analyser test. + auto parser = libcellml::Parser::create(); - auto model = parser->parseModel(fileContents("generator/variable_initialised_using_a_constant/model.cellml")); + auto model = parser->parseModel(fileContents("generator/variable_initialised_using_another_variable/model.cellml")); EXPECT_EQ(size_t(0), parser->issueCount()); @@ -1756,14 +1758,14 @@ TEST(Generator, variableInitialisedUsingAConstant) auto analyserModel = analyser->model(); auto generator = libcellml::Generator::create(); - EXPECT_EQ_FILE_CONTENTS("generator/variable_initialised_using_a_constant/model.h", generator->interfaceCode(analyserModel)); - EXPECT_EQ_FILE_CONTENTS("generator/variable_initialised_using_a_constant/model.c", generator->implementationCode(analyserModel)); + EXPECT_EQ_FILE_CONTENTS("generator/variable_initialised_using_another_variable/model.h", generator->interfaceCode(analyserModel)); + EXPECT_EQ_FILE_CONTENTS("generator/variable_initialised_using_another_variable/model.c", generator->implementationCode(analyserModel)); auto profile = libcellml::GeneratorProfile::create(libcellml::GeneratorProfile::Profile::PYTHON); generator->setProfile(profile); - EXPECT_EQ_FILE_CONTENTS("generator/variable_initialised_using_a_constant/model.py", generator->implementationCode(analyserModel)); + EXPECT_EQ_FILE_CONTENTS("generator/variable_initialised_using_another_variable/model.py", generator->implementationCode(analyserModel)); } TEST(Generator, modelOutOfScope) diff --git a/tests/resources/analyser/non_constant_initialising_variable.cellml b/tests/resources/analyser/non_constant_initialising_variable.cellml deleted file mode 100644 index be92d160c..000000000 --- a/tests/resources/analyser/non_constant_initialising_variable.cellml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - k2 - k1 - - - - - - - t - - x - - 1.23 - - - - - - - diff --git a/tests/resources/analyser/non_existing_initialising_variable.cellml b/tests/resources/analyser/non_existing_initialising_variable.cellml deleted file mode 100644 index 6bc6ecda3..000000000 --- a/tests/resources/analyser/non_existing_initialising_variable.cellml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - t - - x - - 1.23 - - - - - - - diff --git a/tests/resources/analyser/variable_initialised_using_a_non_existing_variable.cellml b/tests/resources/analyser/variable_initialised_using_a_non_existing_variable.cellml new file mode 100644 index 000000000..88cebc3ec --- /dev/null +++ b/tests/resources/analyser/variable_initialised_using_a_non_existing_variable.cellml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + t + + x + + 1.23 + + + + diff --git a/tests/resources/analyser/variable_initialised_using_another_variable.cellml b/tests/resources/analyser/variable_initialised_using_another_variable.cellml new file mode 100644 index 000000000..46bae06b6 --- /dev/null +++ b/tests/resources/analyser/variable_initialised_using_another_variable.cellml @@ -0,0 +1,618 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + t + + xStateStateCst + + 1.23 + + + + + + + t + + kStateStateCst + + 1.23 + + + + + + + t + + xStateStateCompCst + + 1.23 + + + + + + + t + + kStateStateCompCst + + 1.23 + + + + + + + t + + xStateStateState + + 1.23 + + + + + + + t + + kStateStateState + + 1.23 + + + + + + + t + + xStateStateAlgebraic + + 1.23 + + + + + + + t + + kStateStateAlgebraic + + 1.23 + + + + + + + t + + xStateStateNla + + 1.23 + + + + + + + t + + kStateStateNla + + 1.23 + + + + + + + + + t + xNlaStateCst + + + + + + + t + + kNlaStateCst + + 1.23 + + + + t + xNlaStateCompCst + + + + + + + t + + kNlaStateCompCst + + 1.23 + + + + t + xNlaStateState + + + + + + + t + + kNlaStateState + + 1.23 + + + + t + xNlaStateAlgebraic + + + + + + + t + + kNlaStateAlgebraic + + 1.23 + + + + t + xNlaStateNla + + + + + + + t + + kNlaStateNla + + 1.23 + + + + + + + + + + + + t + + xStateNlaCst + + 1.23 + + + + t + kStateNlaCst + + + + + + + t + + xStateNlaCompCst + + 1.23 + + + + t + kStateNlaCompCst + + + + + + + t + + xStateNlaState + + 1.23 + + + + t + kStateNlaState + + + + + + + t + + xStateNlaAlgebraic + + 1.23 + + + + kStateNlaAlgebraic + t + + + + + + + t + + xStateNlaNla + + 1.23 + + + + t + kStateNlaNla + + + + + + + + + t + xNlaNlaCst + + + + t + kNlaNlaCst + + + + t + xNlaNlaCompCst + + + + t + kNlaNlaCompCst + + + + t + xNlaNlaState + + + + t + kNlaNlaState + + + + t + xNlaNlaAlgebraic + + + + kNlaNlaAlgebraic + t + + + + t + xNlaNlaNla + + + + t + kNlaNlaNla + + + + + + + + + + + + t + + xStateCst + + 1.23 + + + + + + + t + + xStateCompCst + + 1.23 + + + + kStateCompCst + + + 1.23 + kStateCst + + + + + + + + t + + xStateState + + 1.23 + + + + + + + t + + kStateState + + 1.23 + + + + + + + t + + xStateAlgebraic + + 1.23 + + + + kStateAlgebraic + t + + + + + + + t + + xStateNla + + 1.23 + + + + t + kStateNla + + + + + + + + + t + xNlaCst + + + + t + xNlaCompCst + + + + kNlaCompCst + + + 1.23 + kNlaCst + + + + + t + xNlaState + + + + + + + t + + kNlaState + + 1.23 + + + + t + xNlaAlgebraic + + + + kNlaAlgebraic + t + + + + t + xNlaNla + + + + t + kNlaNla + + + + diff --git a/tests/resources/generator/variable_initialised_using_a_constant/model.c b/tests/resources/generator/variable_initialised_using_a_constant/model.c deleted file mode 100644 index ba3054bf2..000000000 --- a/tests/resources/generator/variable_initialised_using_a_constant/model.c +++ /dev/null @@ -1,98 +0,0 @@ -/* The content of this file was generated using the C profile of libCellML 0.6.3. */ - -#include "model.h" - -#include -#include - -const char VERSION[] = "0.7.0"; -const char LIBCELLML_VERSION[] = "0.6.3"; - -const size_t STATE_COUNT = 1; -const size_t CONSTANT_COUNT = 1; -const size_t COMPUTED_CONSTANT_COUNT = 0; -const size_t ALGEBRAIC_COUNT = 0; - -const VariableInfo VOI_INFO = {"t", "second", "component_1"}; - -const VariableInfo STATE_INFO[] = { - {"X", "dimensionless", "component_1"} -}; - -const VariableInfo CONSTANT_INFO[] = { - {"X_init", "dimensionless", "component_2"} -}; - -const VariableInfo COMPUTED_CONSTANT_INFO[] = { -}; - -const VariableInfo ALGEBRAIC_INFO[] = { -}; - -double * createStatesArray() -{ - double *res = (double *) malloc(STATE_COUNT*sizeof(double)); - - for (size_t i = 0; i < STATE_COUNT; ++i) { - res[i] = NAN; - } - - return res; -} - -double * createConstantsArray() -{ - double *res = (double *) malloc(CONSTANT_COUNT*sizeof(double)); - - for (size_t i = 0; i < CONSTANT_COUNT; ++i) { - res[i] = NAN; - } - - return res; -} - -double * createComputedConstantsArray() -{ - double *res = (double *) malloc(COMPUTED_CONSTANT_COUNT*sizeof(double)); - - for (size_t i = 0; i < COMPUTED_CONSTANT_COUNT; ++i) { - res[i] = NAN; - } - - return res; -} - -double * createAlgebraicArray() -{ - double *res = (double *) malloc(ALGEBRAIC_COUNT*sizeof(double)); - - for (size_t i = 0; i < ALGEBRAIC_COUNT; ++i) { - res[i] = NAN; - } - - return res; -} - -void deleteArray(double *array) -{ - free(array); -} - -void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) -{ - constants[0] = 7.0; - states[0] = constants[0]; -} - -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) -{ -} - -void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) -{ - rates[0] = 3.0; -} - -void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) -{ -} diff --git a/tests/resources/generator/variable_initialised_using_a_constant/model.cellml b/tests/resources/generator/variable_initialised_using_a_constant/model.cellml deleted file mode 100644 index 3439329db..000000000 --- a/tests/resources/generator/variable_initialised_using_a_constant/model.cellml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - t - - X - - 3 - - - - - - - - - - diff --git a/tests/resources/generator/variable_initialised_using_a_constant/model.py b/tests/resources/generator/variable_initialised_using_a_constant/model.py deleted file mode 100644 index 8d49f57b3..000000000 --- a/tests/resources/generator/variable_initialised_using_a_constant/model.py +++ /dev/null @@ -1,62 +0,0 @@ -# The content of this file was generated using the Python profile of libCellML 0.6.3. - -from enum import Enum -from math import * - - -__version__ = "0.6.0" -LIBCELLML_VERSION = "0.6.3" - -STATE_COUNT = 1 -CONSTANT_COUNT = 1 -COMPUTED_CONSTANT_COUNT = 0 -ALGEBRAIC_COUNT = 0 - -VOI_INFO = {"name": "t", "units": "second", "component": "component_1"} - -STATE_INFO = [ - {"name": "X", "units": "dimensionless", "component": "component_1"} -] - -CONSTANT_INFO = [ - {"name": "X_init", "units": "dimensionless", "component": "component_2"} -] - -COMPUTED_CONSTANT_INFO = [ -] - -ALGEBRAIC_INFO = [ -] - - -def create_states_array(): - return [nan]*STATE_COUNT - - -def create_constants_array(): - return [nan]*CONSTANT_COUNT - - -def create_computed_constants_array(): - return [nan]*COMPUTED_CONSTANT_COUNT - - -def create_algebraic_array(): - return [nan]*ALGEBRAIC_COUNT - - -def initialise_variables(states, rates, constants, computed_constants, algebraic): - constants[0] = 7.0 - states[0] = constants[0] - - -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): - pass - - -def compute_rates(voi, states, rates, constants, computed_constants, algebraic): - rates[0] = 3.0 - - -def compute_variables(voi, states, rates, constants, computed_constants, algebraic): - pass diff --git a/tests/resources/generator/variable_initialised_using_another_variable/model.c b/tests/resources/generator/variable_initialised_using_another_variable/model.c new file mode 100644 index 000000000..f5ef18653 --- /dev/null +++ b/tests/resources/generator/variable_initialised_using_another_variable/model.c @@ -0,0 +1,817 @@ +/* The content of this file was generated using the C profile of libCellML 0.6.3. */ + +#include "model.h" + +#include +#include + +const char VERSION[] = "0.7.0"; +const char LIBCELLML_VERSION[] = "0.6.3"; + +const size_t STATE_COUNT = 22; +const size_t CONSTANT_COUNT = 2; +const size_t COMPUTED_CONSTANT_COUNT = 2; +const size_t ALGEBRAIC_COUNT = 22; + +const VariableInfo VOI_INFO = {"t", "dimensionless", "main"}; + +const VariableInfo STATE_INFO[] = { + {"xStateStateCst", "dimensionless", "main"}, + {"kStateStateCst", "dimensionless", "main"}, + {"xStateStateCompCst", "dimensionless", "main"}, + {"kStateStateCompCst", "dimensionless", "main"}, + {"xStateStateState", "dimensionless", "main"}, + {"kStateStateState", "dimensionless", "main"}, + {"xStateStateNla", "dimensionless", "main"}, + {"kStateStateNla", "dimensionless", "main"}, + {"kNlaStateCst", "dimensionless", "main"}, + {"kNlaStateCompCst", "dimensionless", "main"}, + {"kNlaStateState", "dimensionless", "main"}, + {"kNlaStateNla", "dimensionless", "main"}, + {"xStateNlaCst", "dimensionless", "main"}, + {"xStateNlaCompCst", "dimensionless", "main"}, + {"xStateNlaState", "dimensionless", "main"}, + {"xStateNlaNla", "dimensionless", "main"}, + {"xStateCst", "dimensionless", "main"}, + {"xStateCompCst", "dimensionless", "main"}, + {"xStateState", "dimensionless", "main"}, + {"kStateState", "dimensionless", "main"}, + {"xStateNla", "dimensionless", "main"}, + {"kNlaState", "dimensionless", "main"} +}; + +const VariableInfo CONSTANT_INFO[] = { + {"kStateCst", "dimensionless", "main"}, + {"kNlaCst", "dimensionless", "main"} +}; + +const VariableInfo COMPUTED_CONSTANT_INFO[] = { + {"kStateCompCst", "dimensionless", "main"}, + {"kNlaCompCst", "dimensionless", "main"} +}; + +const VariableInfo ALGEBRAIC_INFO[] = { + {"xNlaStateCst", "dimensionless", "main"}, + {"xNlaStateCompCst", "dimensionless", "main"}, + {"xNlaStateState", "dimensionless", "main"}, + {"xNlaStateNla", "dimensionless", "main"}, + {"kStateNlaCst", "dimensionless", "main"}, + {"kStateNlaCompCst", "dimensionless", "main"}, + {"kStateNlaState", "dimensionless", "main"}, + {"kStateNlaNla", "dimensionless", "main"}, + {"xNlaNlaCst", "dimensionless", "main"}, + {"kNlaNlaCst", "dimensionless", "main"}, + {"xNlaNlaCompCst", "dimensionless", "main"}, + {"kNlaNlaCompCst", "dimensionless", "main"}, + {"xNlaNlaState", "dimensionless", "main"}, + {"kNlaNlaState", "dimensionless", "main"}, + {"xNlaNlaNla", "dimensionless", "main"}, + {"kNlaNlaNla", "dimensionless", "main"}, + {"kStateNla", "dimensionless", "main"}, + {"xNlaCst", "dimensionless", "main"}, + {"xNlaCompCst", "dimensionless", "main"}, + {"xNlaState", "dimensionless", "main"}, + {"xNlaNla", "dimensionless", "main"}, + {"kNlaNla", "dimensionless", "main"} +}; + +double * createStatesArray() +{ + double *res = (double *) malloc(STATE_COUNT*sizeof(double)); + + for (size_t i = 0; i < STATE_COUNT; ++i) { + res[i] = NAN; + } + + return res; +} + +double * createConstantsArray() +{ + double *res = (double *) malloc(CONSTANT_COUNT*sizeof(double)); + + for (size_t i = 0; i < CONSTANT_COUNT; ++i) { + res[i] = NAN; + } + + return res; +} + +double * createComputedConstantsArray() +{ + double *res = (double *) malloc(COMPUTED_CONSTANT_COUNT*sizeof(double)); + + for (size_t i = 0; i < COMPUTED_CONSTANT_COUNT; ++i) { + res[i] = NAN; + } + + return res; +} + +double * createAlgebraicArray() +{ + double *res = (double *) malloc(ALGEBRAIC_COUNT*sizeof(double)); + + for (size_t i = 0; i < ALGEBRAIC_COUNT; ++i) { + res[i] = NAN; + } + + return res; +} + +void deleteArray(double *array) +{ + free(array); +} + +typedef struct { + double voi; + double *states; + double *rates; + double *constants; + double *computedConstants; + double *algebraic; +} RootFindingInfo; + +extern void nlaSolve(void (*objectiveFunction)(double *, double *, void *), + double *u, size_t n, void *data); + +void objectiveFunction0(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[0] = u[0]; + + f[0] = voi-algebraic[0]; +} + +void findRoot0(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[0]; + + nlaSolve(objectiveFunction0, u, 1, &rfi); + + algebraic[0] = u[0]; +} + +void objectiveFunction1(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[1] = u[0]; + + f[0] = voi-algebraic[1]; +} + +void findRoot1(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[1]; + + nlaSolve(objectiveFunction1, u, 1, &rfi); + + algebraic[1] = u[0]; +} + +void objectiveFunction2(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[2] = u[0]; + + f[0] = voi-algebraic[2]; +} + +void findRoot2(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[2]; + + nlaSolve(objectiveFunction2, u, 1, &rfi); + + algebraic[2] = u[0]; +} + +void objectiveFunction3(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[3] = u[0]; + + f[0] = voi-algebraic[3]; +} + +void findRoot3(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[3]; + + nlaSolve(objectiveFunction3, u, 1, &rfi); + + algebraic[3] = u[0]; +} + +void objectiveFunction4(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[4] = u[0]; + + f[0] = voi-algebraic[4]; +} + +void findRoot4(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[4]; + + nlaSolve(objectiveFunction4, u, 1, &rfi); + + algebraic[4] = u[0]; +} + +void objectiveFunction5(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[5] = u[0]; + + f[0] = voi-algebraic[5]; +} + +void findRoot5(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[5]; + + nlaSolve(objectiveFunction5, u, 1, &rfi); + + algebraic[5] = u[0]; +} + +void objectiveFunction6(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[6] = u[0]; + + f[0] = voi-algebraic[6]; +} + +void findRoot6(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[6]; + + nlaSolve(objectiveFunction6, u, 1, &rfi); + + algebraic[6] = u[0]; +} + +void objectiveFunction7(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[7] = u[0]; + + f[0] = voi-algebraic[7]; +} + +void findRoot7(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[7]; + + nlaSolve(objectiveFunction7, u, 1, &rfi); + + algebraic[7] = u[0]; +} + +void objectiveFunction8(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[8] = u[0]; + + f[0] = voi-algebraic[8]; +} + +void findRoot8(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[8]; + + nlaSolve(objectiveFunction8, u, 1, &rfi); + + algebraic[8] = u[0]; +} + +void objectiveFunction9(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[9] = u[0]; + + f[0] = voi-algebraic[9]; +} + +void findRoot9(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[9]; + + nlaSolve(objectiveFunction9, u, 1, &rfi); + + algebraic[9] = u[0]; +} + +void objectiveFunction10(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[10] = u[0]; + + f[0] = voi-algebraic[10]; +} + +void findRoot10(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[10]; + + nlaSolve(objectiveFunction10, u, 1, &rfi); + + algebraic[10] = u[0]; +} + +void objectiveFunction11(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[11] = u[0]; + + f[0] = voi-algebraic[11]; +} + +void findRoot11(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[11]; + + nlaSolve(objectiveFunction11, u, 1, &rfi); + + algebraic[11] = u[0]; +} + +void objectiveFunction12(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[12] = u[0]; + + f[0] = voi-algebraic[12]; +} + +void findRoot12(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[12]; + + nlaSolve(objectiveFunction12, u, 1, &rfi); + + algebraic[12] = u[0]; +} + +void objectiveFunction13(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[13] = u[0]; + + f[0] = voi-algebraic[13]; +} + +void findRoot13(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[13]; + + nlaSolve(objectiveFunction13, u, 1, &rfi); + + algebraic[13] = u[0]; +} + +void objectiveFunction14(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[14] = u[0]; + + f[0] = voi-algebraic[14]; +} + +void findRoot14(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[14]; + + nlaSolve(objectiveFunction14, u, 1, &rfi); + + algebraic[14] = u[0]; +} + +void objectiveFunction15(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[15] = u[0]; + + f[0] = voi-algebraic[15]; +} + +void findRoot15(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[15]; + + nlaSolve(objectiveFunction15, u, 1, &rfi); + + algebraic[15] = u[0]; +} + +void objectiveFunction16(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[16] = u[0]; + + f[0] = voi-algebraic[16]; +} + +void findRoot16(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[16]; + + nlaSolve(objectiveFunction16, u, 1, &rfi); + + algebraic[16] = u[0]; +} + +void objectiveFunction17(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[17] = u[0]; + + f[0] = voi-algebraic[17]; +} + +void findRoot17(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[17]; + + nlaSolve(objectiveFunction17, u, 1, &rfi); + + algebraic[17] = u[0]; +} + +void objectiveFunction18(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[18] = u[0]; + + f[0] = voi-algebraic[18]; +} + +void findRoot18(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[18]; + + nlaSolve(objectiveFunction18, u, 1, &rfi); + + algebraic[18] = u[0]; +} + +void objectiveFunction19(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[19] = u[0]; + + f[0] = voi-algebraic[19]; +} + +void findRoot19(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[19]; + + nlaSolve(objectiveFunction19, u, 1, &rfi); + + algebraic[19] = u[0]; +} + +void objectiveFunction20(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[20] = u[0]; + + f[0] = voi-algebraic[20]; +} + +void findRoot20(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[20]; + + nlaSolve(objectiveFunction20, u, 1, &rfi); + + algebraic[20] = u[0]; +} + +void objectiveFunction21(double *u, double *f, void *data) +{ + double voi = ((RootFindingInfo *) data)->voi; + double *states = ((RootFindingInfo *) data)->states; + double *rates = ((RootFindingInfo *) data)->rates; + double *constants = ((RootFindingInfo *) data)->constants; + double *computedConstants = ((RootFindingInfo *) data)->computedConstants; + double *algebraic = ((RootFindingInfo *) data)->algebraic; + + algebraic[21] = u[0]; + + f[0] = voi-algebraic[21]; +} + +void findRoot21(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + double u[1]; + + u[0] = algebraic[21]; + + nlaSolve(objectiveFunction21, u, 1, &rfi); + + algebraic[21] = u[0]; +} + +void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + constants[0] = 3.0; + states[1] = constants[0]; + states[0] = states[1]; + states[19] = 5.0; + states[5] = states[19]; + states[4] = states[5]; + algebraic[16] = 7.0; + states[7] = algebraic[16]; + states[6] = states[7]; + states[8] = constants[0]; + states[10] = states[19]; + states[11] = algebraic[16]; + constants[1] = 3.0; + algebraic[4] = constants[1]; + states[12] = algebraic[4]; + states[21] = 5.0; + algebraic[6] = states[21]; + states[14] = algebraic[6]; + algebraic[21] = 7.0; + algebraic[7] = algebraic[21]; + states[15] = algebraic[7]; + states[16] = constants[0]; + states[18] = states[19]; + states[20] = algebraic[16]; + algebraic[0] = states[8]; + algebraic[2] = states[10]; + algebraic[3] = states[11]; + algebraic[9] = constants[1]; + algebraic[8] = algebraic[9]; + algebraic[13] = states[21]; + algebraic[12] = algebraic[13]; + algebraic[15] = algebraic[21]; + algebraic[14] = algebraic[15]; + algebraic[17] = constants[1]; + algebraic[19] = states[21]; + algebraic[20] = algebraic[21]; +} + +void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + computedConstants[0] = 1.23*constants[0]; + states[3] = computedConstants[0]; + states[2] = states[3]; + states[9] = computedConstants[0]; + computedConstants[1] = 1.23*constants[1]; + algebraic[5] = computedConstants[1]; + states[13] = algebraic[5]; + states[17] = computedConstants[0]; + algebraic[1] = states[9]; + algebraic[11] = computedConstants[1]; + algebraic[10] = algebraic[11]; + algebraic[18] = computedConstants[1]; +} + +void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + rates[0] = 1.23; + rates[1] = 1.23; + rates[2] = 1.23; + rates[3] = 1.23; + rates[4] = 1.23; + rates[5] = 1.23; + rates[6] = 1.23; + rates[7] = 1.23; + rates[8] = 1.23; + rates[9] = 1.23; + rates[10] = 1.23; + rates[11] = 1.23; + rates[12] = 1.23; + rates[13] = 1.23; + rates[14] = 1.23; + rates[15] = 1.23; + rates[16] = 1.23; + rates[17] = 1.23; + rates[18] = 1.23; + rates[19] = 1.23; + rates[20] = 1.23; + rates[21] = 1.23; +} + +void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +{ + findRoot0(voi, states, rates, constants, computedConstants, algebraic); + findRoot1(voi, states, rates, constants, computedConstants, algebraic); + findRoot2(voi, states, rates, constants, computedConstants, algebraic); + findRoot3(voi, states, rates, constants, computedConstants, algebraic); + findRoot4(voi, states, rates, constants, computedConstants, algebraic); + findRoot5(voi, states, rates, constants, computedConstants, algebraic); + findRoot6(voi, states, rates, constants, computedConstants, algebraic); + findRoot7(voi, states, rates, constants, computedConstants, algebraic); + findRoot8(voi, states, rates, constants, computedConstants, algebraic); + findRoot9(voi, states, rates, constants, computedConstants, algebraic); + findRoot10(voi, states, rates, constants, computedConstants, algebraic); + findRoot11(voi, states, rates, constants, computedConstants, algebraic); + findRoot12(voi, states, rates, constants, computedConstants, algebraic); + findRoot13(voi, states, rates, constants, computedConstants, algebraic); + findRoot14(voi, states, rates, constants, computedConstants, algebraic); + findRoot15(voi, states, rates, constants, computedConstants, algebraic); + findRoot16(voi, states, rates, constants, computedConstants, algebraic); + findRoot17(voi, states, rates, constants, computedConstants, algebraic); + findRoot18(voi, states, rates, constants, computedConstants, algebraic); + findRoot19(voi, states, rates, constants, computedConstants, algebraic); + findRoot20(voi, states, rates, constants, computedConstants, algebraic); + findRoot21(voi, states, rates, constants, computedConstants, algebraic); +} diff --git a/tests/resources/generator/variable_initialised_using_another_variable/model.cellml b/tests/resources/generator/variable_initialised_using_another_variable/model.cellml new file mode 100644 index 000000000..8aa9c460d --- /dev/null +++ b/tests/resources/generator/variable_initialised_using_another_variable/model.cellml @@ -0,0 +1,510 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + t + + xStateStateCst + + 1.23 + + + + + + + t + + kStateStateCst + + 1.23 + + + + + + + t + + xStateStateCompCst + + 1.23 + + + + + + + t + + kStateStateCompCst + + 1.23 + + + + + + + t + + xStateStateState + + 1.23 + + + + + + + t + + kStateStateState + + 1.23 + + + + + + + t + + xStateStateNla + + 1.23 + + + + + + + t + + kStateStateNla + + 1.23 + + + + + + + + + t + xNlaStateCst + + + + + + + t + + kNlaStateCst + + 1.23 + + + + t + xNlaStateCompCst + + + + + + + t + + kNlaStateCompCst + + 1.23 + + + + t + xNlaStateState + + + + + + + t + + kNlaStateState + + 1.23 + + + + t + xNlaStateNla + + + + + + + t + + kNlaStateNla + + 1.23 + + + + + + + + + + + + t + + xStateNlaCst + + 1.23 + + + + t + kStateNlaCst + + + + + + + t + + xStateNlaCompCst + + 1.23 + + + + t + kStateNlaCompCst + + + + + + + t + + xStateNlaState + + 1.23 + + + + t + kStateNlaState + + + + + + + t + + xStateNlaNla + + 1.23 + + + + t + kStateNlaNla + + + + + + + + + t + xNlaNlaCst + + + + t + kNlaNlaCst + + + + t + xNlaNlaCompCst + + + + t + kNlaNlaCompCst + + + + t + xNlaNlaState + + + + t + kNlaNlaState + + + + t + xNlaNlaNla + + + + t + kNlaNlaNla + + + + + + + + + + + + t + + xStateCst + + 1.23 + + + + + + + t + + xStateCompCst + + 1.23 + + + + kStateCompCst + + + 1.23 + kStateCst + + + + + + + + t + + xStateState + + 1.23 + + + + + + + t + + kStateState + + 1.23 + + + + + + + t + + xStateNla + + 1.23 + + + + t + kStateNla + + + + + + + + + t + xNlaCst + + + + t + xNlaCompCst + + + + kNlaCompCst + + + 1.23 + kNlaCst + + + + + t + xNlaState + + + + + + + t + + kNlaState + + 1.23 + + + + t + xNlaNla + + + + t + kNlaNla + + + + diff --git a/tests/resources/generator/variable_initialised_using_a_constant/model.h b/tests/resources/generator/variable_initialised_using_another_variable/model.h similarity index 96% rename from tests/resources/generator/variable_initialised_using_a_constant/model.h rename to tests/resources/generator/variable_initialised_using_another_variable/model.h index c8465ae64..4c9d096d7 100644 --- a/tests/resources/generator/variable_initialised_using_a_constant/model.h +++ b/tests/resources/generator/variable_initialised_using_another_variable/model.h @@ -13,9 +13,9 @@ extern const size_t COMPUTED_CONSTANT_COUNT; extern const size_t ALGEBRAIC_COUNT; typedef struct { - char name[7]; + char name[19]; char units[14]; - char component[12]; + char component[5]; } VariableInfo; extern const VariableInfo VOI_INFO; diff --git a/tests/resources/generator/variable_initialised_using_another_variable/model.py b/tests/resources/generator/variable_initialised_using_another_variable/model.py new file mode 100644 index 000000000..1bab75746 --- /dev/null +++ b/tests/resources/generator/variable_initialised_using_another_variable/model.py @@ -0,0 +1,704 @@ +# The content of this file was generated using the Python profile of libCellML 0.6.3. + +from enum import Enum +from math import * + + +__version__ = "0.6.0" +LIBCELLML_VERSION = "0.6.3" + +STATE_COUNT = 22 +CONSTANT_COUNT = 2 +COMPUTED_CONSTANT_COUNT = 2 +ALGEBRAIC_COUNT = 22 + +VOI_INFO = {"name": "t", "units": "dimensionless", "component": "main"} + +STATE_INFO = [ + {"name": "xStateStateCst", "units": "dimensionless", "component": "main"}, + {"name": "kStateStateCst", "units": "dimensionless", "component": "main"}, + {"name": "xStateStateCompCst", "units": "dimensionless", "component": "main"}, + {"name": "kStateStateCompCst", "units": "dimensionless", "component": "main"}, + {"name": "xStateStateState", "units": "dimensionless", "component": "main"}, + {"name": "kStateStateState", "units": "dimensionless", "component": "main"}, + {"name": "xStateStateNla", "units": "dimensionless", "component": "main"}, + {"name": "kStateStateNla", "units": "dimensionless", "component": "main"}, + {"name": "kNlaStateCst", "units": "dimensionless", "component": "main"}, + {"name": "kNlaStateCompCst", "units": "dimensionless", "component": "main"}, + {"name": "kNlaStateState", "units": "dimensionless", "component": "main"}, + {"name": "kNlaStateNla", "units": "dimensionless", "component": "main"}, + {"name": "xStateNlaCst", "units": "dimensionless", "component": "main"}, + {"name": "xStateNlaCompCst", "units": "dimensionless", "component": "main"}, + {"name": "xStateNlaState", "units": "dimensionless", "component": "main"}, + {"name": "xStateNlaNla", "units": "dimensionless", "component": "main"}, + {"name": "xStateCst", "units": "dimensionless", "component": "main"}, + {"name": "xStateCompCst", "units": "dimensionless", "component": "main"}, + {"name": "xStateState", "units": "dimensionless", "component": "main"}, + {"name": "kStateState", "units": "dimensionless", "component": "main"}, + {"name": "xStateNla", "units": "dimensionless", "component": "main"}, + {"name": "kNlaState", "units": "dimensionless", "component": "main"} +] + +CONSTANT_INFO = [ + {"name": "kStateCst", "units": "dimensionless", "component": "main"}, + {"name": "kNlaCst", "units": "dimensionless", "component": "main"} +] + +COMPUTED_CONSTANT_INFO = [ + {"name": "kStateCompCst", "units": "dimensionless", "component": "main"}, + {"name": "kNlaCompCst", "units": "dimensionless", "component": "main"} +] + +ALGEBRAIC_INFO = [ + {"name": "xNlaStateCst", "units": "dimensionless", "component": "main"}, + {"name": "xNlaStateCompCst", "units": "dimensionless", "component": "main"}, + {"name": "xNlaStateState", "units": "dimensionless", "component": "main"}, + {"name": "xNlaStateNla", "units": "dimensionless", "component": "main"}, + {"name": "kStateNlaCst", "units": "dimensionless", "component": "main"}, + {"name": "kStateNlaCompCst", "units": "dimensionless", "component": "main"}, + {"name": "kStateNlaState", "units": "dimensionless", "component": "main"}, + {"name": "kStateNlaNla", "units": "dimensionless", "component": "main"}, + {"name": "xNlaNlaCst", "units": "dimensionless", "component": "main"}, + {"name": "kNlaNlaCst", "units": "dimensionless", "component": "main"}, + {"name": "xNlaNlaCompCst", "units": "dimensionless", "component": "main"}, + {"name": "kNlaNlaCompCst", "units": "dimensionless", "component": "main"}, + {"name": "xNlaNlaState", "units": "dimensionless", "component": "main"}, + {"name": "kNlaNlaState", "units": "dimensionless", "component": "main"}, + {"name": "xNlaNlaNla", "units": "dimensionless", "component": "main"}, + {"name": "kNlaNlaNla", "units": "dimensionless", "component": "main"}, + {"name": "kStateNla", "units": "dimensionless", "component": "main"}, + {"name": "xNlaCst", "units": "dimensionless", "component": "main"}, + {"name": "xNlaCompCst", "units": "dimensionless", "component": "main"}, + {"name": "xNlaState", "units": "dimensionless", "component": "main"}, + {"name": "xNlaNla", "units": "dimensionless", "component": "main"}, + {"name": "kNlaNla", "units": "dimensionless", "component": "main"} +] + + +def create_states_array(): + return [nan]*STATE_COUNT + + +def create_constants_array(): + return [nan]*CONSTANT_COUNT + + +def create_computed_constants_array(): + return [nan]*COMPUTED_CONSTANT_COUNT + + +def create_algebraic_array(): + return [nan]*ALGEBRAIC_COUNT + + +from nlasolver import nla_solve + + +def objective_function_0(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[0] = u[0] + + f[0] = voi-algebraic[0] + + +def find_root_0(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[0] + + u = nla_solve(objective_function_0, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[0] = u[0] + + +def objective_function_1(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[1] = u[0] + + f[0] = voi-algebraic[1] + + +def find_root_1(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[1] + + u = nla_solve(objective_function_1, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[1] = u[0] + + +def objective_function_2(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[2] = u[0] + + f[0] = voi-algebraic[2] + + +def find_root_2(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[2] + + u = nla_solve(objective_function_2, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[2] = u[0] + + +def objective_function_3(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[3] = u[0] + + f[0] = voi-algebraic[3] + + +def find_root_3(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[3] + + u = nla_solve(objective_function_3, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[3] = u[0] + + +def objective_function_4(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[4] = u[0] + + f[0] = voi-algebraic[4] + + +def find_root_4(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[4] + + u = nla_solve(objective_function_4, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[4] = u[0] + + +def objective_function_5(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[5] = u[0] + + f[0] = voi-algebraic[5] + + +def find_root_5(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[5] + + u = nla_solve(objective_function_5, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[5] = u[0] + + +def objective_function_6(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[6] = u[0] + + f[0] = voi-algebraic[6] + + +def find_root_6(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[6] + + u = nla_solve(objective_function_6, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[6] = u[0] + + +def objective_function_7(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[7] = u[0] + + f[0] = voi-algebraic[7] + + +def find_root_7(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[7] + + u = nla_solve(objective_function_7, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[7] = u[0] + + +def objective_function_8(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[8] = u[0] + + f[0] = voi-algebraic[8] + + +def find_root_8(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[8] + + u = nla_solve(objective_function_8, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[8] = u[0] + + +def objective_function_9(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[9] = u[0] + + f[0] = voi-algebraic[9] + + +def find_root_9(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[9] + + u = nla_solve(objective_function_9, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[9] = u[0] + + +def objective_function_10(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[10] = u[0] + + f[0] = voi-algebraic[10] + + +def find_root_10(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[10] + + u = nla_solve(objective_function_10, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[10] = u[0] + + +def objective_function_11(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[11] = u[0] + + f[0] = voi-algebraic[11] + + +def find_root_11(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[11] + + u = nla_solve(objective_function_11, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[11] = u[0] + + +def objective_function_12(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[12] = u[0] + + f[0] = voi-algebraic[12] + + +def find_root_12(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[12] + + u = nla_solve(objective_function_12, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[12] = u[0] + + +def objective_function_13(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[13] = u[0] + + f[0] = voi-algebraic[13] + + +def find_root_13(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[13] + + u = nla_solve(objective_function_13, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[13] = u[0] + + +def objective_function_14(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[14] = u[0] + + f[0] = voi-algebraic[14] + + +def find_root_14(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[14] + + u = nla_solve(objective_function_14, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[14] = u[0] + + +def objective_function_15(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[15] = u[0] + + f[0] = voi-algebraic[15] + + +def find_root_15(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[15] + + u = nla_solve(objective_function_15, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[15] = u[0] + + +def objective_function_16(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[16] = u[0] + + f[0] = voi-algebraic[16] + + +def find_root_16(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[16] + + u = nla_solve(objective_function_16, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[16] = u[0] + + +def objective_function_17(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[17] = u[0] + + f[0] = voi-algebraic[17] + + +def find_root_17(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[17] + + u = nla_solve(objective_function_17, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[17] = u[0] + + +def objective_function_18(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[18] = u[0] + + f[0] = voi-algebraic[18] + + +def find_root_18(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[18] + + u = nla_solve(objective_function_18, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[18] = u[0] + + +def objective_function_19(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[19] = u[0] + + f[0] = voi-algebraic[19] + + +def find_root_19(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[19] + + u = nla_solve(objective_function_19, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[19] = u[0] + + +def objective_function_20(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[20] = u[0] + + f[0] = voi-algebraic[20] + + +def find_root_20(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[20] + + u = nla_solve(objective_function_20, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[20] = u[0] + + +def objective_function_21(u, f, data): + voi = data[0] + states = data[1] + rates = data[2] + constants = data[3] + computed_constants = data[4] + algebraic = data[5] + + algebraic[21] = u[0] + + f[0] = voi-algebraic[21] + + +def find_root_21(voi, states, rates, constants, computed_constants, algebraic): + u = [nan]*1 + + u[0] = algebraic[21] + + u = nla_solve(objective_function_21, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + + algebraic[21] = u[0] + + +def initialise_variables(states, rates, constants, computed_constants, algebraic): + constants[0] = 3.0 + states[1] = constants[0] + states[0] = states[1] + states[19] = 5.0 + states[5] = states[19] + states[4] = states[5] + algebraic[16] = 7.0 + states[7] = algebraic[16] + states[6] = states[7] + states[8] = constants[0] + states[10] = states[19] + states[11] = algebraic[16] + constants[1] = 3.0 + algebraic[4] = constants[1] + states[12] = algebraic[4] + states[21] = 5.0 + algebraic[6] = states[21] + states[14] = algebraic[6] + algebraic[21] = 7.0 + algebraic[7] = algebraic[21] + states[15] = algebraic[7] + states[16] = constants[0] + states[18] = states[19] + states[20] = algebraic[16] + algebraic[0] = states[8] + algebraic[2] = states[10] + algebraic[3] = states[11] + algebraic[9] = constants[1] + algebraic[8] = algebraic[9] + algebraic[13] = states[21] + algebraic[12] = algebraic[13] + algebraic[15] = algebraic[21] + algebraic[14] = algebraic[15] + algebraic[17] = constants[1] + algebraic[19] = states[21] + algebraic[20] = algebraic[21] + + +def compute_computed_constants(states, rates, constants, computed_constants, algebraic): + computed_constants[0] = 1.23*constants[0] + states[3] = computed_constants[0] + states[2] = states[3] + states[9] = computed_constants[0] + computed_constants[1] = 1.23*constants[1] + algebraic[5] = computed_constants[1] + states[13] = algebraic[5] + states[17] = computed_constants[0] + algebraic[1] = states[9] + algebraic[11] = computed_constants[1] + algebraic[10] = algebraic[11] + algebraic[18] = computed_constants[1] + + +def compute_rates(voi, states, rates, constants, computed_constants, algebraic): + rates[0] = 1.23 + rates[1] = 1.23 + rates[2] = 1.23 + rates[3] = 1.23 + rates[4] = 1.23 + rates[5] = 1.23 + rates[6] = 1.23 + rates[7] = 1.23 + rates[8] = 1.23 + rates[9] = 1.23 + rates[10] = 1.23 + rates[11] = 1.23 + rates[12] = 1.23 + rates[13] = 1.23 + rates[14] = 1.23 + rates[15] = 1.23 + rates[16] = 1.23 + rates[17] = 1.23 + rates[18] = 1.23 + rates[19] = 1.23 + rates[20] = 1.23 + rates[21] = 1.23 + + +def compute_variables(voi, states, rates, constants, computed_constants, algebraic): + find_root_0(voi, states, rates, constants, computed_constants, algebraic) + find_root_1(voi, states, rates, constants, computed_constants, algebraic) + find_root_2(voi, states, rates, constants, computed_constants, algebraic) + find_root_3(voi, states, rates, constants, computed_constants, algebraic) + find_root_4(voi, states, rates, constants, computed_constants, algebraic) + find_root_5(voi, states, rates, constants, computed_constants, algebraic) + find_root_6(voi, states, rates, constants, computed_constants, algebraic) + find_root_7(voi, states, rates, constants, computed_constants, algebraic) + find_root_8(voi, states, rates, constants, computed_constants, algebraic) + find_root_9(voi, states, rates, constants, computed_constants, algebraic) + find_root_10(voi, states, rates, constants, computed_constants, algebraic) + find_root_11(voi, states, rates, constants, computed_constants, algebraic) + find_root_12(voi, states, rates, constants, computed_constants, algebraic) + find_root_13(voi, states, rates, constants, computed_constants, algebraic) + find_root_14(voi, states, rates, constants, computed_constants, algebraic) + find_root_15(voi, states, rates, constants, computed_constants, algebraic) + find_root_16(voi, states, rates, constants, computed_constants, algebraic) + find_root_17(voi, states, rates, constants, computed_constants, algebraic) + find_root_18(voi, states, rates, constants, computed_constants, algebraic) + find_root_19(voi, states, rates, constants, computed_constants, algebraic) + find_root_20(voi, states, rates, constants, computed_constants, algebraic) + find_root_21(voi, states, rates, constants, computed_constants, algebraic) From 6d27883fcc276dc8b05c63ab03e33aa7b60b506b Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Tue, 16 Sep 2025 17:02:54 +1200 Subject: [PATCH 5/9] Generator profile: have different signatures for the computeComputedConstants() method. --- src/api/libcellml/generatorprofile.h | 20 ++++-- src/generator.cpp | 8 +-- src/generatorprofile.cpp | 63 ++++++++++++++----- src/generatorprofile_p.h | 7 ++- src/generatorprofilesha1values.h | 4 +- src/generatorprofiletools.cpp | 7 ++- .../javascript/generatorprofile.test.js | 14 +++-- .../bindings/python/test_generator_profile.py | 22 +++++-- tests/coverage/coverage.cpp | 3 +- tests/generator/generatorprofile.cpp | 26 ++++++-- .../algebraic_eqn_computed_var_on_rhs/model.c | 2 +- .../model.external.c | 2 +- .../model.external.h | 2 +- .../model.external.py | 2 +- .../algebraic_eqn_computed_var_on_rhs/model.h | 2 +- .../model.py | 2 +- .../algebraic_eqn_const_var_on_rhs/model.c | 2 +- .../algebraic_eqn_const_var_on_rhs/model.h | 2 +- .../algebraic_eqn_const_var_on_rhs/model.py | 2 +- .../algebraic_eqn_constant_on_rhs/model.c | 2 +- .../algebraic_eqn_constant_on_rhs/model.h | 2 +- .../algebraic_eqn_constant_on_rhs/model.py | 2 +- .../model.c | 2 +- .../model.external.c | 2 +- .../model.external.h | 2 +- .../model.external.py | 2 +- .../model.h | 2 +- .../model.py | 2 +- .../model.c | 2 +- .../model.external.c | 2 +- .../model.external.h | 2 +- .../model.external.py | 2 +- .../model.h | 2 +- .../model.py | 2 +- .../model.not.ordered.c | 2 +- .../model.not.ordered.h | 2 +- .../model.not.ordered.py | 2 +- .../model.ordered.c | 2 +- .../model.ordered.h | 2 +- .../model.ordered.py | 2 +- .../algebraic_unknown_var_on_rhs/model.c | 2 +- .../algebraic_unknown_var_on_rhs/model.h | 2 +- .../algebraic_unknown_var_on_rhs/model.py | 2 +- .../generator/cell_geometry_model/model.c | 2 +- .../cell_geometry_model/model.external.c | 2 +- .../cell_geometry_model/model.external.h | 2 +- .../cell_geometry_model/model.external.py | 2 +- .../generator/cell_geometry_model/model.h | 2 +- .../generator/cell_geometry_model/model.py | 2 +- .../generator/cellml_slc_example/model.py | 2 +- .../cellml_unit_scaling_constant/model.c | 2 +- .../cellml_unit_scaling_constant/model.h | 2 +- .../cellml_unit_scaling_constant/model.py | 2 +- .../model.c | 2 +- .../model.h | 2 +- .../model.py | 2 +- 56 files changed, 172 insertions(+), 94 deletions(-) diff --git a/src/api/libcellml/generatorprofile.h b/src/api/libcellml/generatorprofile.h index 1e92420d2..6395eca10 100644 --- a/src/api/libcellml/generatorprofile.h +++ b/src/api/libcellml/generatorprofile.h @@ -3771,10 +3771,13 @@ class LIBCELLML_EXPORT GeneratorProfile * Return the @c std::string for the interface to compute computed * constants. * + * @param forDifferentialModel Whether the interface to compute computed + * constants is for a differential model, as opposed to an algebraic model. + * * @return The @c std::string for the interface to compute computed * constants. */ - std::string interfaceComputeComputedConstantsMethodString() const; + std::string interfaceComputeComputedConstantsMethodString(bool forDifferentialModel) const; /** * @brief Set the @c std::string for the interface to compute computed @@ -3782,10 +3785,13 @@ class LIBCELLML_EXPORT GeneratorProfile * * Set the @c std::string for the interface to compute computed constants. * + * @param forDifferentialModel Whether the interface to compute computed + * constants is for a differential model, as opposed to an algebraic model. * @param interfaceComputeComputedConstantsMethodString The @c std::string * to use for the interface to compute computed constants. */ - void setInterfaceComputeComputedConstantsMethodString(const std::string &interfaceComputeComputedConstantsMethodString); + void setInterfaceComputeComputedConstantsMethodString(bool forDifferentialModel, + const std::string &interfaceComputeComputedConstantsMethodString); /** * @brief Get the @c std::string for the implementation to compute computed @@ -3794,10 +3800,13 @@ class LIBCELLML_EXPORT GeneratorProfile * Return the @c std::string for the implementation to compute computed * constants. * + * @param forDifferentialModel Whether the implementation to compute computed + * constants is for a differential model, as opposed to an algebraic model. + * * @return The @c std::string for the implementation to compute computed * constants. */ - std::string implementationComputeComputedConstantsMethodString() const; + std::string implementationComputeComputedConstantsMethodString(bool forDifferentialModel) const; /** * @brief Set the @c std::string for the implementation to compute computed @@ -3807,11 +3816,14 @@ class LIBCELLML_EXPORT GeneratorProfile * constants. To be useful, the string should contain the [CODE] tag, which * will be replaced with some code to compute computed constants. * + * @param forDifferentialModel Whether the implementation to compute computed + * constants is for a differential model, as opposed to an algebraic model. * @param implementationComputeComputedConstantsMethodString The * @c std::string to use for the implementation to compute computed * constants. */ - void setImplementationComputeComputedConstantsMethodString(const std::string &implementationComputeComputedConstantsMethodString); + void setImplementationComputeComputedConstantsMethodString(bool forDifferentialModel, + const std::string &implementationComputeComputedConstantsMethodString); /** * @brief Get the @c std::string for the interface to compute rates. diff --git a/src/generator.cpp b/src/generator.cpp index 0a04b47c0..114a86034 100644 --- a/src/generator.cpp +++ b/src/generator.cpp @@ -2444,8 +2444,8 @@ void Generator::GeneratorImpl::addInterfaceComputeModelMethodsCode(const Analyse code += interfaceInitialiseVariablesMethodString; } - if (!mProfile->interfaceComputeComputedConstantsMethodString().empty()) { - code += mProfile->interfaceComputeComputedConstantsMethodString(); + if (!mProfile->interfaceComputeComputedConstantsMethodString(modelHasOdes(model)).empty()) { + code += mProfile->interfaceComputeComputedConstantsMethodString(modelHasOdes(model)); } auto interfaceComputeRatesMethodString = mProfile->interfaceComputeRatesMethodString(model->hasExternalVariables()); @@ -2551,7 +2551,7 @@ void Generator::GeneratorImpl::addImplementationComputeComputedConstantsMethodCo std::vector &remainingComputedConstants, std::vector &remainingAlgebraic) { - if (!mProfile->implementationComputeComputedConstantsMethodString().empty()) { + if (!mProfile->implementationComputeComputedConstantsMethodString(modelHasOdes(model)).empty()) { // Initialise our remaining states (which are initialised using a computed constant). std::string methodBody; @@ -2588,7 +2588,7 @@ void Generator::GeneratorImpl::addImplementationComputeComputedConstantsMethodCo } mCode += newLineIfNeeded() - + replace(mProfile->implementationComputeComputedConstantsMethodString(), + + replace(mProfile->implementationComputeComputedConstantsMethodString(modelHasOdes(model)), "[CODE]", generateMethodBodyCode(methodBody)); } } diff --git a/src/generatorprofile.cpp b/src/generatorprofile.cpp index 0766c1ec3..8280995d5 100644 --- a/src/generatorprofile.cpp +++ b/src/generatorprofile.cpp @@ -489,11 +489,17 @@ void GeneratorProfile::GeneratorProfileImpl::loadProfile(GeneratorProfile::Profi "[CODE]" "}\n"; - mInterfaceComputeComputedConstantsMethodString = "void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic);\n"; - mImplementationComputeComputedConstantsMethodString = "void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic)\n" - "{\n" - "[CODE]" - "}\n"; + mInterfaceComputeComputedConstantsMethodFamString = "void computeComputedConstants(double *constants, double *computedConstants, double *algebraic);\n"; + mImplementationComputeComputedConstantsMethodFamString = "void computeComputedConstants(double *constants, double *computedConstants, double *algebraic)\n" + "{\n" + "[CODE]" + "}\n"; + + mInterfaceComputeComputedConstantsMethodFdmString = "void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic);\n"; + mImplementationComputeComputedConstantsMethodFdmString = "void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic)\n" + "{\n" + "[CODE]" + "}\n"; mInterfaceComputeRatesMethodWoevString = "void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic);\n"; mImplementationComputeRatesMethodWoevString = "void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic)\n{\n" @@ -920,10 +926,15 @@ void GeneratorProfile::GeneratorProfileImpl::loadProfile(GeneratorProfile::Profi "def initialise_variables(states, rates, constants, computed_constants, algebraic):\n" "[CODE]"; - mInterfaceComputeComputedConstantsMethodString = ""; - mImplementationComputeComputedConstantsMethodString = "\n" - "def compute_computed_constants(states, rates, constants, computed_constants, algebraic):\n" - "[CODE]"; + mInterfaceComputeComputedConstantsMethodFamString = ""; + mImplementationComputeComputedConstantsMethodFamString = "\n" + "def compute_computed_constants(constants, computed_constants, algebraic):\n" + "[CODE]"; + + mInterfaceComputeComputedConstantsMethodFdmString = ""; + mImplementationComputeComputedConstantsMethodFdmString = "\n" + "def compute_computed_constants(states, rates, constants, computed_constants, algebraic):\n" + "[CODE]"; mInterfaceComputeRatesMethodWoevString = ""; mImplementationComputeRatesMethodWoevString = "\n" @@ -2796,24 +2807,42 @@ void GeneratorProfile::setImplementationInitialiseVariablesMethodString(bool for } } -std::string GeneratorProfile::interfaceComputeComputedConstantsMethodString() const +std::string GeneratorProfile::interfaceComputeComputedConstantsMethodString(bool forDifferentialModel) const { - return mPimpl->mInterfaceComputeComputedConstantsMethodString; + if (forDifferentialModel) { + return mPimpl->mInterfaceComputeComputedConstantsMethodFdmString; + } + + return mPimpl->mInterfaceComputeComputedConstantsMethodFamString; } -void GeneratorProfile::setInterfaceComputeComputedConstantsMethodString(const std::string &interfaceComputeComputedConstantsMethodString) +void GeneratorProfile::setInterfaceComputeComputedConstantsMethodString(bool forDifferentialModel, + const std::string &interfaceComputeComputedConstantsMethodString) { - mPimpl->mInterfaceComputeComputedConstantsMethodString = interfaceComputeComputedConstantsMethodString; + if (forDifferentialModel) { + mPimpl->mInterfaceComputeComputedConstantsMethodFdmString = interfaceComputeComputedConstantsMethodString; + } else { + mPimpl->mInterfaceComputeComputedConstantsMethodFamString = interfaceComputeComputedConstantsMethodString; + } } -std::string GeneratorProfile::implementationComputeComputedConstantsMethodString() const +std::string GeneratorProfile::implementationComputeComputedConstantsMethodString(bool forDifferentialModel) const { - return mPimpl->mImplementationComputeComputedConstantsMethodString; + if (forDifferentialModel) { + return mPimpl->mImplementationComputeComputedConstantsMethodFdmString; + } + + return mPimpl->mImplementationComputeComputedConstantsMethodFamString; } -void GeneratorProfile::setImplementationComputeComputedConstantsMethodString(const std::string &implementationComputeComputedConstantsMethodString) +void GeneratorProfile::setImplementationComputeComputedConstantsMethodString(bool forDifferentialModel, + const std::string &implementationComputeComputedConstantsMethodString) { - mPimpl->mImplementationComputeComputedConstantsMethodString = implementationComputeComputedConstantsMethodString; + if (forDifferentialModel) { + mPimpl->mImplementationComputeComputedConstantsMethodFdmString = implementationComputeComputedConstantsMethodString; + } else { + mPimpl->mImplementationComputeComputedConstantsMethodFamString = implementationComputeComputedConstantsMethodString; + } } std::string GeneratorProfile::interfaceComputeRatesMethodString(bool withExternalVariables) const diff --git a/src/generatorprofile_p.h b/src/generatorprofile_p.h index 128fb0780..2f7512e2d 100644 --- a/src/generatorprofile_p.h +++ b/src/generatorprofile_p.h @@ -279,8 +279,11 @@ struct GeneratorProfile::GeneratorProfileImpl std::string mInterfaceInitialiseVariablesMethodFdmString; std::string mImplementationInitialiseVariablesMethodFdmString; - std::string mInterfaceComputeComputedConstantsMethodString; - std::string mImplementationComputeComputedConstantsMethodString; + std::string mInterfaceComputeComputedConstantsMethodFamString; + std::string mImplementationComputeComputedConstantsMethodFamString; + + std::string mInterfaceComputeComputedConstantsMethodFdmString; + std::string mImplementationComputeComputedConstantsMethodFdmString; std::string mInterfaceComputeRatesMethodWoevString; std::string mImplementationComputeRatesMethodWoevString; diff --git a/src/generatorprofilesha1values.h b/src/generatorprofilesha1values.h index b1a7ce016..5216f3397 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[] = "04e859db813265e0d038a44b09d15ff6d906832e"; -static const char PYTHON_GENERATOR_PROFILE_SHA1[] = "a364089abbeeaed3ac67117ef21abcd349f2ef37"; +static const char C_GENERATOR_PROFILE_SHA1[] = "9254590f711f1507d2dac0e36dfe50b0af5e53fe"; +static const char PYTHON_GENERATOR_PROFILE_SHA1[] = "e629150db1ea7fd90d7c5b3c301d7d46c1f37401"; } // namespace libcellml diff --git a/src/generatorprofiletools.cpp b/src/generatorprofiletools.cpp index 0a719b460..101b9ace4 100644 --- a/src/generatorprofiletools.cpp +++ b/src/generatorprofiletools.cpp @@ -539,8 +539,11 @@ std::string generatorProfileAsString(const GeneratorProfilePtr &generatorProfile profileContents += generatorProfile->interfaceInitialiseVariablesMethodString(true) + generatorProfile->implementationInitialiseVariablesMethodString(true); - profileContents += generatorProfile->interfaceComputeComputedConstantsMethodString() - + generatorProfile->implementationComputeComputedConstantsMethodString(); + profileContents += generatorProfile->interfaceComputeComputedConstantsMethodString(false) + + generatorProfile->implementationComputeComputedConstantsMethodString(false); + + profileContents += generatorProfile->interfaceComputeComputedConstantsMethodString(true) + + generatorProfile->implementationComputeComputedConstantsMethodString(true); profileContents += generatorProfile->interfaceComputeRatesMethodString(false) + generatorProfile->implementationComputeRatesMethodString(false); diff --git a/tests/bindings/javascript/generatorprofile.test.js b/tests/bindings/javascript/generatorprofile.test.js index 92f3482f8..65c644fe0 100644 --- a/tests/bindings/javascript/generatorprofile.test.js +++ b/tests/bindings/javascript/generatorprofile.test.js @@ -1062,14 +1062,20 @@ describe("GeneratorProfile tests", () => { test("Checking GeneratorProfile.interfaceComputeComputedConstantsMethodString.", () => { const x = new libcellml.GeneratorProfile(libcellml.GeneratorProfile.Profile.C) - x.setInterfaceComputeComputedConstantsMethodString("something") - expect(x.interfaceComputeComputedConstantsMethodString()).toBe("something") + x.setInterfaceComputeComputedConstantsMethodString(false, "something") + expect(x.interfaceComputeComputedConstantsMethodString(false)).toBe("something") + + x.setInterfaceComputeComputedConstantsMethodString(true, "something") + expect(x.interfaceComputeComputedConstantsMethodString(true)).toBe("something") }); test("Checking GeneratorProfile.implementationComputeComputedConstantsMethodString.", () => { const x = new libcellml.GeneratorProfile(libcellml.GeneratorProfile.Profile.C) - x.setImplementationComputeComputedConstantsMethodString("something") - expect(x.implementationComputeComputedConstantsMethodString()).toBe("something") + x.setImplementationComputeComputedConstantsMethodString(false, "something") + expect(x.implementationComputeComputedConstantsMethodString(false)).toBe("something") + + x.setImplementationComputeComputedConstantsMethodString(true, "something") + expect(x.implementationComputeComputedConstantsMethodString(true)).toBe("something") }); test("Checking GeneratorProfile.interfaceComputeRatesMethodString.", () => { 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 c280840b4..361213d2c 100644 --- a/tests/bindings/python/test_generator_profile.py +++ b/tests/bindings/python/test_generator_profile.py @@ -698,10 +698,15 @@ def test_implementation_compute_computed_constants_method_string(self): g = GeneratorProfile() + self.assertEqual('void computeComputedConstants(double *constants, double *computedConstants, double *algebraic)\n{\n[CODE]}\n', + g.implementationComputeComputedConstantsMethodString(False)) + g.setImplementationComputeComputedConstantsMethodString(False, GeneratorProfileTestCase.VALUE) + self.assertEqual(GeneratorProfileTestCase.VALUE, g.implementationComputeComputedConstantsMethodString(False)) + self.assertEqual('void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic)\n{\n[CODE]}\n', - g.implementationComputeComputedConstantsMethodString()) - g.setImplementationComputeComputedConstantsMethodString(GeneratorProfileTestCase.VALUE) - self.assertEqual(GeneratorProfileTestCase.VALUE, g.implementationComputeComputedConstantsMethodString()) + g.implementationComputeComputedConstantsMethodString(True)) + g.setImplementationComputeComputedConstantsMethodString(True, GeneratorProfileTestCase.VALUE) + self.assertEqual(GeneratorProfileTestCase.VALUE, g.implementationComputeComputedConstantsMethodString(True)) def test_implementation_compute_rates_method_string(self): from libcellml import GeneratorProfile @@ -980,10 +985,15 @@ def test_interface_compute_computed_constants_method_string(self): g = GeneratorProfile() + self.assertEqual('void computeComputedConstants(double *constants, double *computedConstants, double *algebraic);\n', + g.interfaceComputeComputedConstantsMethodString(False)) + g.setInterfaceComputeComputedConstantsMethodString(False, GeneratorProfileTestCase.VALUE) + self.assertEqual(GeneratorProfileTestCase.VALUE, g.interfaceComputeComputedConstantsMethodString(False)) + self.assertEqual('void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic);\n', - g.interfaceComputeComputedConstantsMethodString()) - g.setInterfaceComputeComputedConstantsMethodString(GeneratorProfileTestCase.VALUE) - self.assertEqual(GeneratorProfileTestCase.VALUE, g.interfaceComputeComputedConstantsMethodString()) + g.interfaceComputeComputedConstantsMethodString(True)) + g.setInterfaceComputeComputedConstantsMethodString(True, GeneratorProfileTestCase.VALUE) + self.assertEqual(GeneratorProfileTestCase.VALUE, g.interfaceComputeComputedConstantsMethodString(True)) def test_interface_compute_rates_method_string(self): from libcellml import GeneratorProfile diff --git a/tests/coverage/coverage.cpp b/tests/coverage/coverage.cpp index 7735c6cc2..1acaf4f3c 100644 --- a/tests/coverage/coverage.cpp +++ b/tests/coverage/coverage.cpp @@ -918,7 +918,8 @@ TEST(Coverage, generator) profile->setHasInterface(true); profile->setHasPowerOperator(true); profile->setHasXorOperator(true); - profile->setImplementationComputeComputedConstantsMethodString(""); + profile->setImplementationComputeComputedConstantsMethodString(false, ""); + profile->setImplementationComputeComputedConstantsMethodString(true, ""); profile->setImplementationComputeRatesMethodString(true, ""); profile->setImplementationHeaderString("[INTERFACE_FILE_NAME]"); profile->setInterfaceFileNameString(""); diff --git a/tests/generator/generatorprofile.cpp b/tests/generator/generatorprofile.cpp index d5f501323..3116f60a7 100644 --- a/tests/generator/generatorprofile.cpp +++ b/tests/generator/generatorprofile.cpp @@ -574,13 +574,21 @@ TEST(GeneratorProfile, defaultMiscellaneousValues) "}\n", generatorProfile->implementationInitialiseVariablesMethodString(true)); + EXPECT_EQ("void computeComputedConstants(double *constants, double *computedConstants, double *algebraic);\n", + generatorProfile->interfaceComputeComputedConstantsMethodString(false)); + EXPECT_EQ("void computeComputedConstants(double *constants, double *computedConstants, double *algebraic)\n" + "{\n" + "[CODE]" + "}\n", + generatorProfile->implementationComputeComputedConstantsMethodString(false)); + EXPECT_EQ("void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic);\n", - generatorProfile->interfaceComputeComputedConstantsMethodString()); + generatorProfile->interfaceComputeComputedConstantsMethodString(true)); EXPECT_EQ("void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic)\n" "{\n" "[CODE]" "}\n", - generatorProfile->implementationComputeComputedConstantsMethodString()); + generatorProfile->implementationComputeComputedConstantsMethodString(true)); EXPECT_EQ("void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic);\n", generatorProfile->interfaceComputeRatesMethodString(false)); @@ -1054,8 +1062,11 @@ TEST(GeneratorProfile, miscellaneous) generatorProfile->setImplementationInitialiseVariablesMethodString(false, value); generatorProfile->setImplementationInitialiseVariablesMethodString(true, value); - generatorProfile->setInterfaceComputeComputedConstantsMethodString(value); - generatorProfile->setImplementationComputeComputedConstantsMethodString(value); + generatorProfile->setInterfaceComputeComputedConstantsMethodString(false, value); + generatorProfile->setInterfaceComputeComputedConstantsMethodString(true, value); + + generatorProfile->setImplementationComputeComputedConstantsMethodString(false, value); + generatorProfile->setImplementationComputeComputedConstantsMethodString(true, value); generatorProfile->setInterfaceComputeRatesMethodString(false, value); generatorProfile->setInterfaceComputeRatesMethodString(true, value); @@ -1206,8 +1217,11 @@ TEST(GeneratorProfile, miscellaneous) EXPECT_EQ(value, generatorProfile->interfaceInitialiseVariablesMethodString(true)); EXPECT_EQ(value, generatorProfile->implementationInitialiseVariablesMethodString(true)); - EXPECT_EQ(value, generatorProfile->interfaceComputeComputedConstantsMethodString()); - EXPECT_EQ(value, generatorProfile->implementationComputeComputedConstantsMethodString()); + EXPECT_EQ(value, generatorProfile->interfaceComputeComputedConstantsMethodString(false)); + EXPECT_EQ(value, generatorProfile->interfaceComputeComputedConstantsMethodString(true)); + + EXPECT_EQ(value, generatorProfile->implementationComputeComputedConstantsMethodString(false)); + EXPECT_EQ(value, generatorProfile->implementationComputeComputedConstantsMethodString(true)); EXPECT_EQ(value, generatorProfile->interfaceComputeRatesMethodString(false)); EXPECT_EQ(value, generatorProfile->implementationComputeRatesMethodString(false)); diff --git a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.c b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.c index 5e853951f..aa3029a4e 100644 --- a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.c +++ b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.c @@ -66,7 +66,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a computedConstants[0] = 1.0; } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { computedConstants[1] = computedConstants[0]; } 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 e8253a378..6068a921c 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 @@ -80,7 +80,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a { } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.h b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.h index 8e9c87273..575760ef9 100644 --- a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.h +++ b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.external.h @@ -33,5 +33,5 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 04df33cf7..2cfb56cfa 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 @@ -47,7 +47,7 @@ def initialise_variables(constants, computed_constants, algebraic): pass -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.h b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.h index d0ddfd342..73f8e99dc 100644 --- a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.h +++ b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.py b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.py index c2552ef37..6f538c4bf 100644 --- a/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.py +++ b/tests/resources/generator/algebraic_eqn_computed_var_on_rhs/model.py @@ -39,7 +39,7 @@ def initialise_variables(constants, computed_constants, algebraic): computed_constants[0] = 1.0 -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): computed_constants[1] = computed_constants[0] diff --git a/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.c b/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.c index 9b254dbde..d6b64e5a4 100644 --- a/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.c +++ b/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.c @@ -66,7 +66,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a constants[0] = 1.0; } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[0]; } diff --git a/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.h b/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.h index d0ddfd342..73f8e99dc 100644 --- a/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.h +++ b/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.py b/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.py index f99b3c2c3..bd23a89e8 100644 --- a/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.py +++ b/tests/resources/generator/algebraic_eqn_const_var_on_rhs/model.py @@ -39,7 +39,7 @@ def initialise_variables(constants, computed_constants, algebraic): constants[0] = 1.0 -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): computed_constants[0] = constants[0] diff --git a/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.c b/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.c index c86a8cfbb..c0e131064 100644 --- a/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.c +++ b/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.c @@ -65,7 +65,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a computedConstants[0] = 1.0; } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.h b/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.h index 6cc68f7eb..42603a123 100644 --- a/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.h +++ b/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.py b/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.py index 3eac23920..623d9b8df 100644 --- a/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.py +++ b/tests/resources/generator/algebraic_eqn_constant_on_rhs/model.py @@ -38,7 +38,7 @@ def initialise_variables(constants, computed_constants, algebraic): computed_constants[0] = 1.0 -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.c b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.c index 82aacb87e..1afb8cbc0 100644 --- a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.c +++ b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.c @@ -103,7 +103,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a algebraic[0] = 1.0; } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { } 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 f82fb4fec..84ebba9b6 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 @@ -119,7 +119,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a algebraic[0] = 1.0; } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.h b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.h index 8e9c87273..575760ef9 100644 --- a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.h +++ b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.external.h @@ -33,5 +33,5 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 b09a47a7e..88be6afba 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 @@ -75,7 +75,7 @@ def initialise_variables(constants, computed_constants, algebraic): algebraic[0] = 1.0 -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.h b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.h index d0ddfd342..73f8e99dc 100644 --- a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.h +++ b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.py b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.py index e84a6e166..f756e4bca 100644 --- a/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.py +++ b/tests/resources/generator/algebraic_eqn_with_one_non_isolated_unknown/model.py @@ -67,7 +67,7 @@ def initialise_variables(constants, computed_constants, algebraic): algebraic[0] = 1.0 -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.c b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.c index 7976da66b..6dedbe4ee 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.c +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.c @@ -109,7 +109,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a algebraic[2] = 1.0; } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.c b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.c index 3574aa012..f19635e67 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.c +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.c @@ -81,7 +81,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a { } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.h b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.h index 218a4d856..d05a88c19 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.h +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.h @@ -33,5 +33,5 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.py b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.py index 33408c7b0..be2547b29 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.py +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.external.py @@ -48,7 +48,7 @@ def initialise_variables(constants, computed_constants, algebraic): pass -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.h b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.h index 52244d964..cc21e1e3b 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.h +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.py b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.py index 63734a12e..a88c1a33d 100644 --- a/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.py +++ b/tests/resources/generator/algebraic_system_with_three_linked_unknowns/model.py @@ -73,7 +73,7 @@ def initialise_variables(constants, computed_constants, algebraic): algebraic[2] = 1.0 -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.c b/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.c index c1d79c8ba..ff1111b72 100644 --- a/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.c +++ b/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.c @@ -109,7 +109,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a algebraic[1] = 1.0; } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = 3.0*constants[1]+constants[0]; } diff --git a/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.h b/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.h index 52244d964..cc21e1e3b 100644 --- a/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.h +++ b/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.py b/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.py index c556155a8..2dc831c75 100644 --- a/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.py +++ b/tests/resources/generator/algebraic_system_with_various_dependencies/model.not.ordered.py @@ -73,7 +73,7 @@ def initialise_variables(constants, computed_constants, algebraic): algebraic[1] = 1.0 -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): computed_constants[0] = 3.0*constants[1]+constants[0] diff --git a/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.c b/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.c index c76ebad41..41e1b706c 100644 --- a/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.c +++ b/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.c @@ -109,7 +109,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a algebraic[1] = 1.0; } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = 3.0*constants[1]+constants[0]; } diff --git a/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.h b/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.h index 52244d964..cc21e1e3b 100644 --- a/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.h +++ b/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.py b/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.py index c556155a8..2dc831c75 100644 --- a/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.py +++ b/tests/resources/generator/algebraic_system_with_various_dependencies/model.ordered.py @@ -73,7 +73,7 @@ def initialise_variables(constants, computed_constants, algebraic): algebraic[1] = 1.0 -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): computed_constants[0] = 3.0*constants[1]+constants[0] diff --git a/tests/resources/generator/algebraic_unknown_var_on_rhs/model.c b/tests/resources/generator/algebraic_unknown_var_on_rhs/model.c index b16dfa743..a6b1f117b 100644 --- a/tests/resources/generator/algebraic_unknown_var_on_rhs/model.c +++ b/tests/resources/generator/algebraic_unknown_var_on_rhs/model.c @@ -66,7 +66,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a computedConstants[0] = 1.0; } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { computedConstants[1] = computedConstants[0]; } diff --git a/tests/resources/generator/algebraic_unknown_var_on_rhs/model.h b/tests/resources/generator/algebraic_unknown_var_on_rhs/model.h index 6cc68f7eb..42603a123 100644 --- a/tests/resources/generator/algebraic_unknown_var_on_rhs/model.h +++ b/tests/resources/generator/algebraic_unknown_var_on_rhs/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/algebraic_unknown_var_on_rhs/model.py b/tests/resources/generator/algebraic_unknown_var_on_rhs/model.py index 1d2df7343..3c3797ba2 100644 --- a/tests/resources/generator/algebraic_unknown_var_on_rhs/model.py +++ b/tests/resources/generator/algebraic_unknown_var_on_rhs/model.py @@ -39,7 +39,7 @@ def initialise_variables(constants, computed_constants, algebraic): computed_constants[0] = 1.0 -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): computed_constants[1] = computed_constants[0] diff --git a/tests/resources/generator/cell_geometry_model/model.c b/tests/resources/generator/cell_geometry_model/model.c index 607894f84..ccf1d5a5d 100644 --- a/tests/resources/generator/cell_geometry_model/model.c +++ b/tests/resources/generator/cell_geometry_model/model.c @@ -69,7 +69,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a constants[1] = 0.0011; } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = 1000.0*3.14*constants[1]*constants[1]*constants[0]; computedConstants[1] = 0.02*computedConstants[0]; diff --git a/tests/resources/generator/cell_geometry_model/model.external.c b/tests/resources/generator/cell_geometry_model/model.external.c index 2ac70d8b1..6f5db0644 100644 --- a/tests/resources/generator/cell_geometry_model/model.external.c +++ b/tests/resources/generator/cell_geometry_model/model.external.c @@ -82,7 +82,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a { } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/cell_geometry_model/model.external.h b/tests/resources/generator/cell_geometry_model/model.external.h index 38e6d3436..c834f8a7b 100644 --- a/tests/resources/generator/cell_geometry_model/model.external.h +++ b/tests/resources/generator/cell_geometry_model/model.external.h @@ -33,5 +33,5 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); diff --git a/tests/resources/generator/cell_geometry_model/model.external.py b/tests/resources/generator/cell_geometry_model/model.external.py index f88f0ca61..35a06e000 100644 --- a/tests/resources/generator/cell_geometry_model/model.external.py +++ b/tests/resources/generator/cell_geometry_model/model.external.py @@ -49,7 +49,7 @@ def initialise_variables(constants, computed_constants, algebraic): pass -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): pass diff --git a/tests/resources/generator/cell_geometry_model/model.h b/tests/resources/generator/cell_geometry_model/model.h index d659dddb0..2c09f5594 100644 --- a/tests/resources/generator/cell_geometry_model/model.h +++ b/tests/resources/generator/cell_geometry_model/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/cell_geometry_model/model.py b/tests/resources/generator/cell_geometry_model/model.py index e112f251d..d87fcb163 100644 --- a/tests/resources/generator/cell_geometry_model/model.py +++ b/tests/resources/generator/cell_geometry_model/model.py @@ -42,7 +42,7 @@ def initialise_variables(constants, computed_constants, algebraic): constants[1] = 0.0011 -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): computed_constants[0] = 1000.0*3.14*constants[1]*constants[1]*constants[0] computed_constants[1] = 0.02*computed_constants[0] diff --git a/tests/resources/generator/cellml_slc_example/model.py b/tests/resources/generator/cellml_slc_example/model.py index 5e26394ae..7d1aa8d0f 100644 --- a/tests/resources/generator/cellml_slc_example/model.py +++ b/tests/resources/generator/cellml_slc_example/model.py @@ -55,7 +55,7 @@ def initialise_variables(constants, computed_constants, algebraic): constants[8] = 1.1 -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): computed_constants[0] = constants[8]*(constants[7]*constants[1]-constants[6]*constants[2])/(constants[5]*constants[2]+constants[4]*constants[1]+constants[3]*constants[2]*constants[1]+constants[0]) diff --git a/tests/resources/generator/cellml_unit_scaling_constant/model.c b/tests/resources/generator/cellml_unit_scaling_constant/model.c index e2410829d..117364619 100644 --- a/tests/resources/generator/cellml_unit_scaling_constant/model.c +++ b/tests/resources/generator/cellml_unit_scaling_constant/model.c @@ -91,7 +91,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a constants[8] = constants[7]; } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { computedConstants[0] = constants[1]+constants[0]; computedConstants[1] = 0.001*constants[1]+0.001*constants[0]; diff --git a/tests/resources/generator/cellml_unit_scaling_constant/model.h b/tests/resources/generator/cellml_unit_scaling_constant/model.h index 5892bfabd..a9a0c0734 100644 --- a/tests/resources/generator/cellml_unit_scaling_constant/model.h +++ b/tests/resources/generator/cellml_unit_scaling_constant/model.h @@ -28,5 +28,5 @@ double * createAlgebraicArray(); void deleteArray(double *array); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic); diff --git a/tests/resources/generator/cellml_unit_scaling_constant/model.py b/tests/resources/generator/cellml_unit_scaling_constant/model.py index 8b7f10c34..7e7835da7 100644 --- a/tests/resources/generator/cellml_unit_scaling_constant/model.py +++ b/tests/resources/generator/cellml_unit_scaling_constant/model.py @@ -64,7 +64,7 @@ def initialise_variables(constants, computed_constants, algebraic): constants[8] = constants[7] -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): computed_constants[0] = constants[1]+constants[0] computed_constants[1] = 0.001*constants[1]+0.001*constants[0] computed_constants[2] = 1000.0*constants[3]+1000.0*constants[4] 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 36670a310..22a375076 100644 --- a/tests/resources/generator/unknown_variable_as_external_variable/model.c +++ b/tests/resources/generator/unknown_variable_as_external_variable/model.c @@ -96,7 +96,7 @@ void initialiseVariables(double *constants, double *computedConstants, double *a constants[7] = 1.1; } -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic) { } diff --git a/tests/resources/generator/unknown_variable_as_external_variable/model.h b/tests/resources/generator/unknown_variable_as_external_variable/model.h index a5362a8f3..2eb0866b4 100644 --- a/tests/resources/generator/unknown_variable_as_external_variable/model.h +++ b/tests/resources/generator/unknown_variable_as_external_variable/model.h @@ -33,5 +33,5 @@ void deleteArray(double *array); typedef double (* ExternalVariable)(double *constants, double *computedConstants, double *algebraic, double *externals, size_t index); void initialiseVariables(double *constants, double *computedConstants, double *algebraic); -void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic); +void computeComputedConstants(double *constants, double *computedConstants, double *algebraic); void computeVariables(double *constants, double *computedConstants, double *algebraic, double *externals, ExternalVariable externalVariable); 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 5ad2f8975..1fbb9afe2 100644 --- a/tests/resources/generator/unknown_variable_as_external_variable/model.py +++ b/tests/resources/generator/unknown_variable_as_external_variable/model.py @@ -62,7 +62,7 @@ def initialise_variables(constants, computed_constants, algebraic): constants[7] = 1.1 -def compute_computed_constants(states, rates, constants, computed_constants, algebraic): +def compute_computed_constants(constants, computed_constants, algebraic): pass From 1088791b8bbd06f9f02c897990d2fc0077f522a5 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Wed, 5 Nov 2025 16:00:53 +1300 Subject: [PATCH 6/9] Analyser: account for an underconstrained NLA system. --- src/analyser.cpp | 41 ++++-- src/analyser_p.h | 1 + src/api/libcellml/issue.h | 3 +- src/bindings/javascript/issue.cpp | 3 +- src/bindings/python/__init__.py | 3 +- src/issue.cpp | 3 +- tests/analyser/analyser.cpp | 109 +++++++++++--- tests/bindings/python/test_issue.py | 3 +- .../overconstrained_nla_system.cellml | 68 +++++++-- .../underconstrained_nla_system.cellml | 48 +++++++ .../unsuitably_constrained_nla_system.cellml | 133 ++++++++++++++++++ 11 files changed, 371 insertions(+), 44 deletions(-) create mode 100644 tests/resources/analyser/underconstrained_nla_system.cellml create mode 100644 tests/resources/analyser/unsuitably_constrained_nla_system.cellml diff --git a/src/analyser.cpp b/src/analyser.cpp index 296099b2b..fc5b21bee 100644 --- a/src/analyser.cpp +++ b/src/analyser.cpp @@ -2289,9 +2289,13 @@ void Analyser::AnalyserImpl::addInvalidVariableIssue(const AnalyserInternalVaria case AnalyserInternalVariable::Type::SHOULD_BE_STATE: descriptionEnd = "is used in an ODE, but it is not initialised"; + break; + case AnalyserInternalVariable::Type::UNDERCONSTRAINED: + descriptionEnd = "is underconstrained"; + break; default: // AnalyserInternalVariable::Type::OVERCONSTRAINED. - descriptionEnd = "is computed more than once"; + descriptionEnd = "is overconstrained"; break; } @@ -2571,7 +2575,7 @@ void Analyser::AnalyserImpl::analyseModel(const ModelPtr &model) break; case AnalyserInternalVariable::Type::OVERCONSTRAINED: - addInvalidVariableIssue(internalVariable, Issue::ReferenceRule::ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE); + addInvalidVariableIssue(internalVariable, Issue::ReferenceRule::ANALYSER_VARIABLE_OVERCONSTRAINED); break; default: // Other types we don't care about. @@ -2736,6 +2740,7 @@ void Analyser::AnalyserImpl::analyseModel(const ModelPtr &model) // were removed (as a result of some variables in an NLA equation // having been marked as external). + AnalyserInternalVariablePtrs underconstrainedVariables; AnalyserInternalVariablePtrs overconstrainedVariables; for (const auto &internalEquation : mInternalEquations) { @@ -2762,16 +2767,28 @@ void Analyser::AnalyserImpl::analyseModel(const ModelPtr &model) } } break; case AnalyserInternalEquation::Type::NLA: - if (internalEquation->mNlaSiblings.size() + 1 > internalEquation->mUnknownVariables.size()) { - // There are more NLA equations than unknown variables, so all - // the unknown variables involved in the NLA system should be - // considered as overconstrained. + if (internalEquation->mNlaSiblings.size() + 1 < internalEquation->mUnknownVariables.size()) { + // There are fewer NLA equations than unknown variables, so all the unknown variables involved in the + // NLA system should be considered as underconstrained. + + for (const auto &unknownVariable : internalEquation->mUnknownVariables) { + if (std::find(underconstrainedVariables.begin(), underconstrainedVariables.end(), unknownVariable) == underconstrainedVariables.end()) { + unknownVariable->mType = AnalyserInternalVariable::Type::UNDERCONSTRAINED; + + addInvalidVariableIssue(unknownVariable, Issue::ReferenceRule::ANALYSER_VARIABLE_UNDERCONSTRAINED); + + underconstrainedVariables.push_back(unknownVariable); + } + } + } else if (internalEquation->mNlaSiblings.size() + 1 > internalEquation->mUnknownVariables.size()) { + // There are more NLA equations than unknown variables, so all the unknown variables involved in the NLA + // system should be considered as overconstrained. for (const auto &unknownVariable : internalEquation->mUnknownVariables) { if (std::find(overconstrainedVariables.begin(), overconstrainedVariables.end(), unknownVariable) == overconstrainedVariables.end()) { unknownVariable->mType = AnalyserInternalVariable::Type::OVERCONSTRAINED; - addInvalidVariableIssue(unknownVariable, Issue::ReferenceRule::ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE); + addInvalidVariableIssue(unknownVariable, Issue::ReferenceRule::ANALYSER_VARIABLE_OVERCONSTRAINED); overconstrainedVariables.push_back(unknownVariable); } @@ -2785,7 +2802,15 @@ void Analyser::AnalyserImpl::analyseModel(const ModelPtr &model) } if (mAnalyser->errorCount() != 0) { - mModel->mPimpl->mType = AnalyserModel::Type::OVERCONSTRAINED; + if (!underconstrainedVariables.empty()) { + if (!overconstrainedVariables.empty()) { + mModel->mPimpl->mType = AnalyserModel::Type::UNSUITABLY_CONSTRAINED; + } else { + mModel->mPimpl->mType = AnalyserModel::Type::UNDERCONSTRAINED; + } + } else { + mModel->mPimpl->mType = AnalyserModel::Type::OVERCONSTRAINED; + } return; } diff --git a/src/analyser_p.h b/src/analyser_p.h index 93bf59ea3..b4339e860 100644 --- a/src/analyser_p.h +++ b/src/analyser_p.h @@ -51,6 +51,7 @@ struct AnalyserInternalVariable COMPUTED_VARIABLE_BASED_CONSTANT, INITIALISED_ALGEBRAIC, ALGEBRAIC, + UNDERCONSTRAINED, OVERCONSTRAINED }; diff --git a/src/api/libcellml/issue.h b/src/api/libcellml/issue.h index 12c5cfbf7..37564ec2f 100644 --- a/src/api/libcellml/issue.h +++ b/src/api/libcellml/issue.h @@ -200,7 +200,8 @@ class LIBCELLML_EXPORT Issue ANALYSER_VARIABLE_UNUSED, ANALYSER_STATE_NOT_INITIALISED, ANALYSER_STATE_RATE_AS_ALGEBRAIC, - ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE, + ANALYSER_VARIABLE_UNDERCONSTRAINED, + ANALYSER_VARIABLE_OVERCONSTRAINED, ANALYSER_EXTERNAL_VARIABLE_DIFFERENT_MODEL, ANALYSER_EXTERNAL_VARIABLE_VOI, ANALYSER_EXTERNAL_VARIABLE_USE_PRIMARY_VARIABLE, diff --git a/src/bindings/javascript/issue.cpp b/src/bindings/javascript/issue.cpp index 88c92f22a..23496fae9 100644 --- a/src/bindings/javascript/issue.cpp +++ b/src/bindings/javascript/issue.cpp @@ -39,7 +39,8 @@ EMSCRIPTEN_BINDINGS(libcellml_issue) { .value("ANALYSER_STATE_RATE_AS_ALGEBRAIC", libcellml::Issue::ReferenceRule::ANALYSER_STATE_RATE_AS_ALGEBRAIC) .value("ANALYSER_UNITS", libcellml::Issue::ReferenceRule::ANALYSER_UNITS) .value("ANALYSER_UNLINKED_UNITS", libcellml::Issue::ReferenceRule::ANALYSER_UNLINKED_UNITS) - .value("ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE", libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE) + .value("ANALYSER_VARIABLE_UNDERCONSTRAINED", libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_UNDERCONSTRAINED) + .value("ANALYSER_VARIABLE_OVERCONSTRAINED", libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_OVERCONSTRAINED) .value("ANALYSER_VARIABLE_INITIALISED_MORE_THAN_ONCE", libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_INITIALISED_MORE_THAN_ONCE) .value("ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE", libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE) .value("ANALYSER_VARIABLE_INITIALISED_USING_VARIABLE_WITH_DIFFERENT_UNITS", libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_INITIALISED_USING_VARIABLE_WITH_DIFFERENT_UNITS) diff --git a/src/bindings/python/__init__.py b/src/bindings/python/__init__.py index 677f04a49..ed991013a 100644 --- a/src/bindings/python/__init__.py +++ b/src/bindings/python/__init__.py @@ -318,7 +318,8 @@ class Object: 'ANALYSER_VARIABLE_UNUSED', 'ANALYSER_STATE_NOT_INITIALISED', 'ANALYSER_STATE_RATE_AS_ALGEBRAIC', - 'ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE', + 'ANALYSER_VARIABLE_UNDERCONSTRAINED', + 'ANALYSER_VARIABLE_OVERCONSTRAINED', 'ANALYSER_EXTERNAL_VARIABLE_DIFFERENT_MODEL', 'ANALYSER_EXTERNAL_VARIABLE_VOI', 'ANALYSER_EXTERNAL_VARIABLE_USE_PRIMARY_VARIABLE', diff --git a/src/issue.cpp b/src/issue.cpp index c5c5e10f8..f14f803a3 100644 --- a/src/issue.cpp +++ b/src/issue.cpp @@ -210,7 +210,8 @@ static const std::map> ruleToInfo {Issue::ReferenceRule::ANALYSER_VARIABLE_UNUSED, {"ANALYSER_VARIABLE_UNUSED", "", docsUrl, ""}}, {Issue::ReferenceRule::ANALYSER_STATE_NOT_INITIALISED, {"ANALYSER_STATE_NOT_INITIALISED", "", docsUrl, ""}}, {Issue::ReferenceRule::ANALYSER_STATE_RATE_AS_ALGEBRAIC, {"ANALYSER_STATE_RATE_AS_ALGEBRAIC", "", docsUrl, ""}}, - {Issue::ReferenceRule::ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE, {"ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE", "", docsUrl, ""}}, + {Issue::ReferenceRule::ANALYSER_VARIABLE_UNDERCONSTRAINED, {"ANALYSER_VARIABLE_UNDERCONSTRAINED", "", docsUrl, ""}}, + {Issue::ReferenceRule::ANALYSER_VARIABLE_OVERCONSTRAINED, {"ANALYSER_VARIABLE_OVERCONSTRAINED", "", docsUrl, ""}}, {Issue::ReferenceRule::ANALYSER_EXTERNAL_VARIABLE_DIFFERENT_MODEL, {"ANALYSER_EXTERNAL_VARIABLE_DIFFERENT_MODEL", "", docsUrl, ""}}, {Issue::ReferenceRule::ANALYSER_EXTERNAL_VARIABLE_VOI, {"ANALYSER_EXTERNAL_VARIABLE_VOI", "", docsUrl, ""}}, {Issue::ReferenceRule::ANALYSER_EXTERNAL_VARIABLE_USE_PRIMARY_VARIABLE, {"ANALYSER_EXTERNAL_VARIABLE_USE_PRIMARY_VARIABLE", "", docsUrl, ""}}, diff --git a/tests/analyser/analyser.cpp b/tests/analyser/analyser.cpp index 167c1cc0c..423f7fe84 100644 --- a/tests/analyser/analyser.cpp +++ b/tests/analyser/analyser.cpp @@ -354,7 +354,7 @@ TEST(Analyser, overconstrained) EXPECT_EQ(size_t(0), parser->issueCount()); const std::vector expectedIssues = { - "Variable 'x' in component 'my_component' is computed more than once.", + "Variable 'x' in component 'my_component' is overconstrained.", }; auto analyser = libcellml::Analyser::create(); @@ -364,8 +364,8 @@ TEST(Analyser, overconstrained) EXPECT_EQ_ISSUES_CELLMLELEMENTTYPES_LEVELS_REFERENCERULES_URLS(expectedIssues, expectedCellmlElementTypes(expectedIssues.size(), libcellml::CellmlElementType::VARIABLE), expectedLevels(expectedIssues.size(), libcellml::Issue::Level::ERROR), - expectedReferenceRules(expectedIssues.size(), libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE), - expectedUrls(expectedIssues.size(), "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE"), + expectedReferenceRules(expectedIssues.size(), libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_OVERCONSTRAINED), + expectedUrls(expectedIssues.size(), "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_OVERCONSTRAINED"), analyser); EXPECT_EQ(libcellml::AnalyserModel::Type::OVERCONSTRAINED, analyser->model()->type()); @@ -379,15 +379,15 @@ TEST(Analyser, unsuitablyConstrained) EXPECT_EQ(size_t(0), parser->issueCount()); const std::vector expectedIssues = { - "Variable 'y' in component 'my_component' is computed more than once.", + "Variable 'y' in component 'my_component' is overconstrained.", "The type of variable 'x' in component 'my_component' is unknown.", }; const std::vector expectedReferenceRules = { - libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE, + libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_OVERCONSTRAINED, libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_UNUSED, }; const std::vector expectedUrls = { - "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE", + "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_OVERCONSTRAINED", "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_UNUSED", }; @@ -912,8 +912,8 @@ TEST(Analyser, algebraicSystemWithThreeLinkedUnknownsWithOneExternalVariable) EXPECT_EQ(size_t(0), parser->issueCount()); const std::vector expectedIssues = { - "Variable 'z' in component 'my_algebraic_system' is computed more than once.", - "Variable 'y' in component 'my_algebraic_system' is computed more than once.", + "Variable 'z' in component 'my_algebraic_system' is overconstrained.", + "Variable 'y' in component 'my_algebraic_system' is overconstrained.", }; auto analyser = libcellml::Analyser::create(); @@ -925,8 +925,8 @@ TEST(Analyser, algebraicSystemWithThreeLinkedUnknownsWithOneExternalVariable) EXPECT_EQ_ISSUES_CELLMLELEMENTTYPES_LEVELS_REFERENCERULES_URLS(expectedIssues, expectedCellmlElementTypes(expectedIssues.size(), libcellml::CellmlElementType::VARIABLE), expectedLevels(expectedIssues.size(), libcellml::Issue::Level::ERROR), - expectedReferenceRules(expectedIssues.size(), libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE), - expectedUrls(expectedIssues.size(), "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE"), + expectedReferenceRules(expectedIssues.size(), libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_OVERCONSTRAINED), + expectedUrls(expectedIssues.size(), "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_OVERCONSTRAINED"), analyser); EXPECT_EQ(libcellml::AnalyserModel::Type::OVERCONSTRAINED, analyser->model()->type()); @@ -940,7 +940,7 @@ TEST(Analyser, algebraicSystemWithThreeLinkedUnknownsWithTwoExternalVariables) EXPECT_EQ(size_t(0), parser->issueCount()); const std::vector expectedIssues = { - "Variable 'y' in component 'my_algebraic_system' is computed more than once.", + "Variable 'y' in component 'my_algebraic_system' is overconstrained.", }; auto analyser = libcellml::Analyser::create(); @@ -953,13 +953,40 @@ TEST(Analyser, algebraicSystemWithThreeLinkedUnknownsWithTwoExternalVariables) EXPECT_EQ_ISSUES_CELLMLELEMENTTYPES_LEVELS_REFERENCERULES_URLS(expectedIssues, expectedCellmlElementTypes(expectedIssues.size(), libcellml::CellmlElementType::VARIABLE), expectedLevels(expectedIssues.size(), libcellml::Issue::Level::ERROR), - expectedReferenceRules(expectedIssues.size(), libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE), - expectedUrls(expectedIssues.size(), "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE"), + expectedReferenceRules(expectedIssues.size(), libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_OVERCONSTRAINED), + expectedUrls(expectedIssues.size(), "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_OVERCONSTRAINED"), analyser); EXPECT_EQ(libcellml::AnalyserModel::Type::OVERCONSTRAINED, analyser->model()->type()); } +TEST(Analyser, underconstrainedNlaSystem) +{ + auto parser = libcellml::Parser::create(); + auto model = parser->parseModel(fileContents("analyser/underconstrained_nla_system.cellml")); + + EXPECT_EQ(size_t(0), parser->issueCount()); + + const std::vector expectedIssues = { + "Variable 'z' in component 'my_algebraic_system' is underconstrained.", + "Variable 'y' in component 'my_algebraic_system' is underconstrained.", + "Variable 'x' in component 'my_algebraic_system' is underconstrained.", + }; + + auto analyser = libcellml::Analyser::create(); + + analyser->analyseModel(model); + + EXPECT_EQ_ISSUES_CELLMLELEMENTTYPES_LEVELS_REFERENCERULES_URLS(expectedIssues, + expectedCellmlElementTypes(expectedIssues.size(), libcellml::CellmlElementType::VARIABLE), + expectedLevels(expectedIssues.size(), libcellml::Issue::Level::ERROR), + expectedReferenceRules(expectedIssues.size(), libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_UNDERCONSTRAINED), + expectedUrls(expectedIssues.size(), "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_UNDERCONSTRAINED"), + analyser); + + EXPECT_EQ(libcellml::AnalyserModel::Type::UNDERCONSTRAINED, analyser->model()->type()); +} + TEST(Analyser, overconstrainedNlaSystem) { auto parser = libcellml::Parser::create(); @@ -968,8 +995,9 @@ TEST(Analyser, overconstrainedNlaSystem) EXPECT_EQ(size_t(0), parser->issueCount()); const std::vector expectedIssues = { - "Variable 'y' in component 'my_algebraic_system' is computed more than once.", - "Variable 'x' in component 'my_algebraic_system' is computed more than once.", + "Variable 'z' in component 'my_algebraic_system' is overconstrained.", + "Variable 'y' in component 'my_algebraic_system' is overconstrained.", + "Variable 'x' in component 'my_algebraic_system' is overconstrained.", }; auto analyser = libcellml::Analyser::create(); @@ -979,9 +1007,56 @@ TEST(Analyser, overconstrainedNlaSystem) EXPECT_EQ_ISSUES_CELLMLELEMENTTYPES_LEVELS_REFERENCERULES_URLS(expectedIssues, expectedCellmlElementTypes(expectedIssues.size(), libcellml::CellmlElementType::VARIABLE), expectedLevels(expectedIssues.size(), libcellml::Issue::Level::ERROR), - expectedReferenceRules(expectedIssues.size(), libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE), - expectedUrls(expectedIssues.size(), "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE"), + expectedReferenceRules(expectedIssues.size(), libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_OVERCONSTRAINED), + expectedUrls(expectedIssues.size(), "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_OVERCONSTRAINED"), analyser); EXPECT_EQ(libcellml::AnalyserModel::Type::OVERCONSTRAINED, analyser->model()->type()); } + +TEST(Analyser, unsuitablyConstrainedNlaSystem) +{ + auto parser = libcellml::Parser::create(); + auto model = parser->parseModel(fileContents("analyser/unsuitably_constrained_nla_system.cellml")); + + EXPECT_EQ(size_t(0), parser->issueCount()); + + const std::vector expectedIssues = { + "Variable 'z1' in component 'my_algebraic_system' is underconstrained.", + "Variable 'y1' in component 'my_algebraic_system' is underconstrained.", + "Variable 'x1' in component 'my_algebraic_system' is underconstrained.", + "Variable 'z2' in component 'my_algebraic_system' is overconstrained.", + "Variable 'y2' in component 'my_algebraic_system' is overconstrained.", + "Variable 'x2' in component 'my_algebraic_system' is overconstrained.", + }; + const std::vector expectedReferenceRules = { + libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_UNDERCONSTRAINED, + libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_UNDERCONSTRAINED, + libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_UNDERCONSTRAINED, + libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_OVERCONSTRAINED, + libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_OVERCONSTRAINED, + libcellml::Issue::ReferenceRule::ANALYSER_VARIABLE_OVERCONSTRAINED, + }; + const std::vector expectedUrls = { + "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_UNDERCONSTRAINED", + "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_UNDERCONSTRAINED", + "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_UNDERCONSTRAINED", + "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_OVERCONSTRAINED", + "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_OVERCONSTRAINED", + "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_OVERCONSTRAINED", + }; + + auto analyser = libcellml::Analyser::create(); + + analyser->analyseModel(model); + printIssues(analyser); + + EXPECT_EQ_ISSUES_CELLMLELEMENTTYPES_LEVELS_REFERENCERULES_URLS(expectedIssues, + expectedCellmlElementTypes(expectedIssues.size(), libcellml::CellmlElementType::VARIABLE), + expectedLevels(expectedIssues.size(), libcellml::Issue::Level::ERROR), + expectedReferenceRules, + expectedUrls, + analyser); + + EXPECT_EQ(libcellml::AnalyserModel::Type::UNSUITABLY_CONSTRAINED, analyser->model()->type()); +} diff --git a/tests/bindings/python/test_issue.py b/tests/bindings/python/test_issue.py index f669efae3..ad4da9484 100644 --- a/tests/bindings/python/test_issue.py +++ b/tests/bindings/python/test_issue.py @@ -34,7 +34,8 @@ def test_reference_rule_enum(self): self.assertIsInstance(Issue.ReferenceRule.ANALYSER_STATE_RATE_AS_ALGEBRAIC, int) self.assertIsInstance(Issue.ReferenceRule.ANALYSER_UNITS, int) self.assertIsInstance(Issue.ReferenceRule.ANALYSER_UNLINKED_UNITS, int) - self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VARIABLE_COMPUTED_MORE_THAN_ONCE, int) + self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VARIABLE_UNDERCONSTRAINED, int) + self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VARIABLE_OVERCONSTRAINED, int) self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VARIABLE_INITIALISED_MORE_THAN_ONCE, int) self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE, int) self.assertIsInstance(Issue.ReferenceRule.ANALYSER_VARIABLE_INITIALISED_USING_VARIABLE_WITH_DIFFERENT_UNITS, int) diff --git a/tests/resources/analyser/overconstrained_nla_system.cellml b/tests/resources/analyser/overconstrained_nla_system.cellml index 2e2f03058..1c76da7dc 100644 --- a/tests/resources/analyser/overconstrained_nla_system.cellml +++ b/tests/resources/analyser/overconstrained_nla_system.cellml @@ -1,49 +1,89 @@ + x: 1 -> 3 + y: 1 -> -2 + z: 1 -> 1 + x + y + z = 2 + 6x - 4y + 5z = 31 + 5x + 2y + 2z = 13 + -2x + y + 3z = -5--> + + + + + + x + y + z + + 2 + - 2 + 6 x - y + + + -4 + y + + + + 5 + z + - 15 + 31 - + - 3 + 5 x - y + + + 2 + y + + + + 2 + z + - 5 + 31 - x + + + -2 + x + y + + + 3 + z + - 11 + -5 diff --git a/tests/resources/analyser/underconstrained_nla_system.cellml b/tests/resources/analyser/underconstrained_nla_system.cellml new file mode 100644 index 000000000..38a29f930 --- /dev/null +++ b/tests/resources/analyser/underconstrained_nla_system.cellml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + x + y + z + + 2 + + + + + + + + 6 + x + + + + -4 + y + + + + 5 + z + + + 31 + + + + diff --git a/tests/resources/analyser/unsuitably_constrained_nla_system.cellml b/tests/resources/analyser/unsuitably_constrained_nla_system.cellml new file mode 100644 index 000000000..c53a42e1f --- /dev/null +++ b/tests/resources/analyser/unsuitably_constrained_nla_system.cellml @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + x1 + y1 + z1 + + 2 + + + + + + + + 6 + x1 + + + + -4 + y1 + + + + 5 + z1 + + + 31 + + + + + + + + + + + x2 + y2 + z2 + + 2 + + + + + + + + 6 + x2 + + + + -4 + y2 + + + + 5 + z2 + + + 31 + + + + + + + + 5 + x2 + + + + 2 + y2 + + + + 2 + z2 + + + 31 + + + + + + + + -2 + x2 + + y2 + + + 3 + z2 + + + -5 + + + + From 8b928f4fdd000ae1814f2938cd91819ef563cf8c Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Wed, 19 Nov 2025 19:12:06 +1300 Subject: [PATCH 7/9] Some cleaning up following the recent merge (see commit 452ebebbc). --- src/analyser.cpp | 4 +- .../model.c | 428 +++++++++--------- .../model.py | 422 ++++++++--------- 3 files changed, 427 insertions(+), 427 deletions(-) diff --git a/src/analyser.cpp b/src/analyser.cpp index d2a2933d9..aa7bdd383 100644 --- a/src/analyser.cpp +++ b/src/analyser.cpp @@ -2614,7 +2614,7 @@ void Analyser::AnalyserImpl::analyseModel(const ModelPtr &model) && !isCellMLReal(internalVariable->mInitialisingVariable->initialValue())) { auto initialisingInternalVariable = Analyser::AnalyserImpl::internalVariable(owningComponent(internalVariable->mInitialisingVariable)->variable(internalVariable->mInitialisingVariable->initialValue())); - if (initialisingInternalVariable->mType == AnalyserInternalVariable::Type::ALGEBRAIC) { + if (initialisingInternalVariable->mType == AnalyserInternalVariable::Type::ALGEBRAIC_VARIABLE) { auto issue = Issue::IssueImpl::create(); issue->mPimpl->setDescription("Variable '" + internalVariable->mVariable->name() @@ -2630,7 +2630,7 @@ void Analyser::AnalyserImpl::analyseModel(const ModelPtr &model) } if (mAnalyser->errorCount() != 0) { - mModel->mPimpl->mType = AnalyserModel::Type::INVALID; + mAnalyserModel->mPimpl->mType = AnalyserModel::Type::INVALID; return; } diff --git a/tests/resources/generator/variable_initialised_using_another_variable/model.c b/tests/resources/generator/variable_initialised_using_another_variable/model.c index f5ef18653..69f212522 100644 --- a/tests/resources/generator/variable_initialised_using_another_variable/model.c +++ b/tests/resources/generator/variable_initialised_using_another_variable/model.c @@ -11,7 +11,7 @@ const char LIBCELLML_VERSION[] = "0.6.3"; const size_t STATE_COUNT = 22; const size_t CONSTANT_COUNT = 2; const size_t COMPUTED_CONSTANT_COUNT = 2; -const size_t ALGEBRAIC_COUNT = 22; +const size_t ALGEBRAIC_VARIABLE_COUNT = 22; const VariableInfo VOI_INFO = {"t", "dimensionless", "main"}; @@ -108,11 +108,11 @@ double * createComputedConstantsArray() return res; } -double * createAlgebraicArray() +double * createAlgebraicVariablesArray() { - double *res = (double *) malloc(ALGEBRAIC_COUNT*sizeof(double)); + double *res = (double *) malloc(ALGEBRAIC_VARIABLE_COUNT*sizeof(double)); - for (size_t i = 0; i < ALGEBRAIC_COUNT; ++i) { + for (size_t i = 0; i < ALGEBRAIC_VARIABLE_COUNT; ++i) { res[i] = NAN; } @@ -130,7 +130,7 @@ typedef struct { double *rates; double *constants; double *computedConstants; - double *algebraic; + double *algebraicVariables; } RootFindingInfo; extern void nlaSolve(void (*objectiveFunction)(double *, double *, void *), @@ -143,23 +143,23 @@ void objectiveFunction0(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[0] = u[0]; + algebraicVariables[0] = u[0]; - f[0] = voi-algebraic[0]; + f[0] = voi-algebraicVariables[0]; } -void findRoot0(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot0(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[0]; + u[0] = algebraicVariables[0]; nlaSolve(objectiveFunction0, u, 1, &rfi); - algebraic[0] = u[0]; + algebraicVariables[0] = u[0]; } void objectiveFunction1(double *u, double *f, void *data) @@ -169,23 +169,23 @@ void objectiveFunction1(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[1] = u[0]; + algebraicVariables[1] = u[0]; - f[0] = voi-algebraic[1]; + f[0] = voi-algebraicVariables[1]; } -void findRoot1(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot1(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[1]; + u[0] = algebraicVariables[1]; nlaSolve(objectiveFunction1, u, 1, &rfi); - algebraic[1] = u[0]; + algebraicVariables[1] = u[0]; } void objectiveFunction2(double *u, double *f, void *data) @@ -195,23 +195,23 @@ void objectiveFunction2(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[2] = u[0]; + algebraicVariables[2] = u[0]; - f[0] = voi-algebraic[2]; + f[0] = voi-algebraicVariables[2]; } -void findRoot2(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot2(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[2]; + u[0] = algebraicVariables[2]; nlaSolve(objectiveFunction2, u, 1, &rfi); - algebraic[2] = u[0]; + algebraicVariables[2] = u[0]; } void objectiveFunction3(double *u, double *f, void *data) @@ -221,23 +221,23 @@ void objectiveFunction3(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[3] = u[0]; + algebraicVariables[3] = u[0]; - f[0] = voi-algebraic[3]; + f[0] = voi-algebraicVariables[3]; } -void findRoot3(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot3(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[3]; + u[0] = algebraicVariables[3]; nlaSolve(objectiveFunction3, u, 1, &rfi); - algebraic[3] = u[0]; + algebraicVariables[3] = u[0]; } void objectiveFunction4(double *u, double *f, void *data) @@ -247,23 +247,23 @@ void objectiveFunction4(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[4] = u[0]; + algebraicVariables[4] = u[0]; - f[0] = voi-algebraic[4]; + f[0] = voi-algebraicVariables[4]; } -void findRoot4(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot4(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[4]; + u[0] = algebraicVariables[4]; nlaSolve(objectiveFunction4, u, 1, &rfi); - algebraic[4] = u[0]; + algebraicVariables[4] = u[0]; } void objectiveFunction5(double *u, double *f, void *data) @@ -273,23 +273,23 @@ void objectiveFunction5(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[5] = u[0]; + algebraicVariables[5] = u[0]; - f[0] = voi-algebraic[5]; + f[0] = voi-algebraicVariables[5]; } -void findRoot5(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot5(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[5]; + u[0] = algebraicVariables[5]; nlaSolve(objectiveFunction5, u, 1, &rfi); - algebraic[5] = u[0]; + algebraicVariables[5] = u[0]; } void objectiveFunction6(double *u, double *f, void *data) @@ -299,23 +299,23 @@ void objectiveFunction6(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[6] = u[0]; + algebraicVariables[6] = u[0]; - f[0] = voi-algebraic[6]; + f[0] = voi-algebraicVariables[6]; } -void findRoot6(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot6(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[6]; + u[0] = algebraicVariables[6]; nlaSolve(objectiveFunction6, u, 1, &rfi); - algebraic[6] = u[0]; + algebraicVariables[6] = u[0]; } void objectiveFunction7(double *u, double *f, void *data) @@ -325,23 +325,23 @@ void objectiveFunction7(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[7] = u[0]; + algebraicVariables[7] = u[0]; - f[0] = voi-algebraic[7]; + f[0] = voi-algebraicVariables[7]; } -void findRoot7(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot7(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[7]; + u[0] = algebraicVariables[7]; nlaSolve(objectiveFunction7, u, 1, &rfi); - algebraic[7] = u[0]; + algebraicVariables[7] = u[0]; } void objectiveFunction8(double *u, double *f, void *data) @@ -351,23 +351,23 @@ void objectiveFunction8(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[8] = u[0]; + algebraicVariables[8] = u[0]; - f[0] = voi-algebraic[8]; + f[0] = voi-algebraicVariables[8]; } -void findRoot8(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot8(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[8]; + u[0] = algebraicVariables[8]; nlaSolve(objectiveFunction8, u, 1, &rfi); - algebraic[8] = u[0]; + algebraicVariables[8] = u[0]; } void objectiveFunction9(double *u, double *f, void *data) @@ -377,23 +377,23 @@ void objectiveFunction9(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[9] = u[0]; + algebraicVariables[9] = u[0]; - f[0] = voi-algebraic[9]; + f[0] = voi-algebraicVariables[9]; } -void findRoot9(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot9(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[9]; + u[0] = algebraicVariables[9]; nlaSolve(objectiveFunction9, u, 1, &rfi); - algebraic[9] = u[0]; + algebraicVariables[9] = u[0]; } void objectiveFunction10(double *u, double *f, void *data) @@ -403,23 +403,23 @@ void objectiveFunction10(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[10] = u[0]; + algebraicVariables[10] = u[0]; - f[0] = voi-algebraic[10]; + f[0] = voi-algebraicVariables[10]; } -void findRoot10(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot10(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[10]; + u[0] = algebraicVariables[10]; nlaSolve(objectiveFunction10, u, 1, &rfi); - algebraic[10] = u[0]; + algebraicVariables[10] = u[0]; } void objectiveFunction11(double *u, double *f, void *data) @@ -429,23 +429,23 @@ void objectiveFunction11(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[11] = u[0]; + algebraicVariables[11] = u[0]; - f[0] = voi-algebraic[11]; + f[0] = voi-algebraicVariables[11]; } -void findRoot11(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot11(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[11]; + u[0] = algebraicVariables[11]; nlaSolve(objectiveFunction11, u, 1, &rfi); - algebraic[11] = u[0]; + algebraicVariables[11] = u[0]; } void objectiveFunction12(double *u, double *f, void *data) @@ -455,23 +455,23 @@ void objectiveFunction12(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[12] = u[0]; + algebraicVariables[12] = u[0]; - f[0] = voi-algebraic[12]; + f[0] = voi-algebraicVariables[12]; } -void findRoot12(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot12(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[12]; + u[0] = algebraicVariables[12]; nlaSolve(objectiveFunction12, u, 1, &rfi); - algebraic[12] = u[0]; + algebraicVariables[12] = u[0]; } void objectiveFunction13(double *u, double *f, void *data) @@ -481,23 +481,23 @@ void objectiveFunction13(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[13] = u[0]; + algebraicVariables[13] = u[0]; - f[0] = voi-algebraic[13]; + f[0] = voi-algebraicVariables[13]; } -void findRoot13(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot13(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[13]; + u[0] = algebraicVariables[13]; nlaSolve(objectiveFunction13, u, 1, &rfi); - algebraic[13] = u[0]; + algebraicVariables[13] = u[0]; } void objectiveFunction14(double *u, double *f, void *data) @@ -507,23 +507,23 @@ void objectiveFunction14(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[14] = u[0]; + algebraicVariables[14] = u[0]; - f[0] = voi-algebraic[14]; + f[0] = voi-algebraicVariables[14]; } -void findRoot14(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot14(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[14]; + u[0] = algebraicVariables[14]; nlaSolve(objectiveFunction14, u, 1, &rfi); - algebraic[14] = u[0]; + algebraicVariables[14] = u[0]; } void objectiveFunction15(double *u, double *f, void *data) @@ -533,23 +533,23 @@ void objectiveFunction15(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[15] = u[0]; + algebraicVariables[15] = u[0]; - f[0] = voi-algebraic[15]; + f[0] = voi-algebraicVariables[15]; } -void findRoot15(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot15(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[15]; + u[0] = algebraicVariables[15]; nlaSolve(objectiveFunction15, u, 1, &rfi); - algebraic[15] = u[0]; + algebraicVariables[15] = u[0]; } void objectiveFunction16(double *u, double *f, void *data) @@ -559,23 +559,23 @@ void objectiveFunction16(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[16] = u[0]; + algebraicVariables[16] = u[0]; - f[0] = voi-algebraic[16]; + f[0] = voi-algebraicVariables[16]; } -void findRoot16(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot16(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[16]; + u[0] = algebraicVariables[16]; nlaSolve(objectiveFunction16, u, 1, &rfi); - algebraic[16] = u[0]; + algebraicVariables[16] = u[0]; } void objectiveFunction17(double *u, double *f, void *data) @@ -585,23 +585,23 @@ void objectiveFunction17(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[17] = u[0]; + algebraicVariables[17] = u[0]; - f[0] = voi-algebraic[17]; + f[0] = voi-algebraicVariables[17]; } -void findRoot17(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot17(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[17]; + u[0] = algebraicVariables[17]; nlaSolve(objectiveFunction17, u, 1, &rfi); - algebraic[17] = u[0]; + algebraicVariables[17] = u[0]; } void objectiveFunction18(double *u, double *f, void *data) @@ -611,23 +611,23 @@ void objectiveFunction18(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[18] = u[0]; + algebraicVariables[18] = u[0]; - f[0] = voi-algebraic[18]; + f[0] = voi-algebraicVariables[18]; } -void findRoot18(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot18(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[18]; + u[0] = algebraicVariables[18]; nlaSolve(objectiveFunction18, u, 1, &rfi); - algebraic[18] = u[0]; + algebraicVariables[18] = u[0]; } void objectiveFunction19(double *u, double *f, void *data) @@ -637,23 +637,23 @@ void objectiveFunction19(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[19] = u[0]; + algebraicVariables[19] = u[0]; - f[0] = voi-algebraic[19]; + f[0] = voi-algebraicVariables[19]; } -void findRoot19(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot19(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[19]; + u[0] = algebraicVariables[19]; nlaSolve(objectiveFunction19, u, 1, &rfi); - algebraic[19] = u[0]; + algebraicVariables[19] = u[0]; } void objectiveFunction20(double *u, double *f, void *data) @@ -663,23 +663,23 @@ void objectiveFunction20(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[20] = u[0]; + algebraicVariables[20] = u[0]; - f[0] = voi-algebraic[20]; + f[0] = voi-algebraicVariables[20]; } -void findRoot20(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot20(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[20]; + u[0] = algebraicVariables[20]; nlaSolve(objectiveFunction20, u, 1, &rfi); - algebraic[20] = u[0]; + algebraicVariables[20] = u[0]; } void objectiveFunction21(double *u, double *f, void *data) @@ -689,26 +689,26 @@ void objectiveFunction21(double *u, double *f, void *data) double *rates = ((RootFindingInfo *) data)->rates; double *constants = ((RootFindingInfo *) data)->constants; double *computedConstants = ((RootFindingInfo *) data)->computedConstants; - double *algebraic = ((RootFindingInfo *) data)->algebraic; + double *algebraicVariables = ((RootFindingInfo *) data)->algebraicVariables; - algebraic[21] = u[0]; + algebraicVariables[21] = u[0]; - f[0] = voi-algebraic[21]; + f[0] = voi-algebraicVariables[21]; } -void findRoot21(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void findRoot21(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { - RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraic }; + RootFindingInfo rfi = { voi, states, rates, constants, computedConstants, algebraicVariables }; double u[1]; - u[0] = algebraic[21]; + u[0] = algebraicVariables[21]; nlaSolve(objectiveFunction21, u, 1, &rfi); - algebraic[21] = u[0]; + algebraicVariables[21] = u[0]; } -void initialiseVariables(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void initialiseArrays(double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { constants[0] = 3.0; states[1] = constants[0]; @@ -716,36 +716,36 @@ void initialiseVariables(double *states, double *rates, double *constants, doubl states[19] = 5.0; states[5] = states[19]; states[4] = states[5]; - algebraic[16] = 7.0; - states[7] = algebraic[16]; + algebraicVariables[16] = 7.0; + states[7] = algebraicVariables[16]; states[6] = states[7]; states[8] = constants[0]; states[10] = states[19]; - states[11] = algebraic[16]; + states[11] = algebraicVariables[16]; constants[1] = 3.0; - algebraic[4] = constants[1]; - states[12] = algebraic[4]; + algebraicVariables[4] = constants[1]; + states[12] = algebraicVariables[4]; states[21] = 5.0; - algebraic[6] = states[21]; - states[14] = algebraic[6]; - algebraic[21] = 7.0; - algebraic[7] = algebraic[21]; - states[15] = algebraic[7]; + algebraicVariables[6] = states[21]; + states[14] = algebraicVariables[6]; + algebraicVariables[21] = 7.0; + algebraicVariables[7] = algebraicVariables[21]; + states[15] = algebraicVariables[7]; states[16] = constants[0]; states[18] = states[19]; - states[20] = algebraic[16]; - algebraic[0] = states[8]; - algebraic[2] = states[10]; - algebraic[3] = states[11]; - algebraic[9] = constants[1]; - algebraic[8] = algebraic[9]; - algebraic[13] = states[21]; - algebraic[12] = algebraic[13]; - algebraic[15] = algebraic[21]; - algebraic[14] = algebraic[15]; - algebraic[17] = constants[1]; - algebraic[19] = states[21]; - algebraic[20] = algebraic[21]; + states[20] = algebraicVariables[16]; + algebraicVariables[0] = states[8]; + algebraicVariables[2] = states[10]; + algebraicVariables[3] = states[11]; + algebraicVariables[9] = constants[1]; + algebraicVariables[8] = algebraicVariables[9]; + algebraicVariables[13] = states[21]; + algebraicVariables[12] = algebraicVariables[13]; + algebraicVariables[15] = algebraicVariables[21]; + algebraicVariables[14] = algebraicVariables[15]; + algebraicVariables[17] = constants[1]; + algebraicVariables[19] = states[21]; + algebraicVariables[20] = algebraicVariables[21]; } void computeComputedConstants(double *states, double *rates, double *constants, double *computedConstants, double *algebraic) @@ -755,16 +755,16 @@ void computeComputedConstants(double *states, double *rates, double *constants, states[2] = states[3]; states[9] = computedConstants[0]; computedConstants[1] = 1.23*constants[1]; - algebraic[5] = computedConstants[1]; - states[13] = algebraic[5]; + algebraicVariables[5] = computedConstants[1]; + states[13] = algebraicVariables[5]; states[17] = computedConstants[0]; - algebraic[1] = states[9]; - algebraic[11] = computedConstants[1]; - algebraic[10] = algebraic[11]; - algebraic[18] = computedConstants[1]; + algebraicVariables[1] = states[9]; + algebraicVariables[11] = computedConstants[1]; + algebraicVariables[10] = algebraicVariables[11]; + algebraicVariables[18] = computedConstants[1]; } -void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) +void computeRates(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) { rates[0] = 1.23; rates[1] = 1.23; @@ -790,28 +790,28 @@ void computeRates(double voi, double *states, double *rates, double *constants, rates[21] = 1.23; } -void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraic) -{ - findRoot0(voi, states, rates, constants, computedConstants, algebraic); - findRoot1(voi, states, rates, constants, computedConstants, algebraic); - findRoot2(voi, states, rates, constants, computedConstants, algebraic); - findRoot3(voi, states, rates, constants, computedConstants, algebraic); - findRoot4(voi, states, rates, constants, computedConstants, algebraic); - findRoot5(voi, states, rates, constants, computedConstants, algebraic); - findRoot6(voi, states, rates, constants, computedConstants, algebraic); - findRoot7(voi, states, rates, constants, computedConstants, algebraic); - findRoot8(voi, states, rates, constants, computedConstants, algebraic); - findRoot9(voi, states, rates, constants, computedConstants, algebraic); - findRoot10(voi, states, rates, constants, computedConstants, algebraic); - findRoot11(voi, states, rates, constants, computedConstants, algebraic); - findRoot12(voi, states, rates, constants, computedConstants, algebraic); - findRoot13(voi, states, rates, constants, computedConstants, algebraic); - findRoot14(voi, states, rates, constants, computedConstants, algebraic); - findRoot15(voi, states, rates, constants, computedConstants, algebraic); - findRoot16(voi, states, rates, constants, computedConstants, algebraic); - findRoot17(voi, states, rates, constants, computedConstants, algebraic); - findRoot18(voi, states, rates, constants, computedConstants, algebraic); - findRoot19(voi, states, rates, constants, computedConstants, algebraic); - findRoot20(voi, states, rates, constants, computedConstants, algebraic); - findRoot21(voi, states, rates, constants, computedConstants, algebraic); +void computeVariables(double voi, double *states, double *rates, double *constants, double *computedConstants, double *algebraicVariables) +{ + findRoot0(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot1(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot2(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot3(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot4(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot5(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot6(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot7(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot8(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot9(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot10(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot11(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot12(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot13(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot14(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot15(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot16(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot17(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot18(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot19(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot20(voi, states, rates, constants, computedConstants, algebraicVariables); + findRoot21(voi, states, rates, constants, computedConstants, algebraicVariables); } diff --git a/tests/resources/generator/variable_initialised_using_another_variable/model.py b/tests/resources/generator/variable_initialised_using_another_variable/model.py index 1bab75746..3c6dab99a 100644 --- a/tests/resources/generator/variable_initialised_using_another_variable/model.py +++ b/tests/resources/generator/variable_initialised_using_another_variable/model.py @@ -10,7 +10,7 @@ STATE_COUNT = 22 CONSTANT_COUNT = 2 COMPUTED_CONSTANT_COUNT = 2 -ALGEBRAIC_COUNT = 22 +ALGEBRAIC_VARIABLE_COUNT = 22 VOI_INFO = {"name": "t", "units": "dimensionless", "component": "main"} @@ -87,8 +87,8 @@ def create_computed_constants_array(): return [nan]*COMPUTED_CONSTANT_COUNT -def create_algebraic_array(): - return [nan]*ALGEBRAIC_COUNT +def create_algebraic_variables_array(): + return [nan]*ALGEBRAIC_VARIABLE_COUNT from nlasolver import nla_solve @@ -100,21 +100,21 @@ def objective_function_0(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[0] = u[0] + algebraicVariables[0] = u[0] - f[0] = voi-algebraic[0] + f[0] = voi-algebraicVariables[0] -def find_root_0(voi, states, rates, constants, computed_constants, algebraic): +def find_root_0(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[0] + u[0] = algebraicVariables[0] - u = nla_solve(objective_function_0, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_0, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[0] = u[0] + algebraicVariables[0] = u[0] def objective_function_1(u, f, data): @@ -123,21 +123,21 @@ def objective_function_1(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[1] = u[0] + algebraicVariables[1] = u[0] - f[0] = voi-algebraic[1] + f[0] = voi-algebraicVariables[1] -def find_root_1(voi, states, rates, constants, computed_constants, algebraic): +def find_root_1(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[1] + u[0] = algebraicVariables[1] - u = nla_solve(objective_function_1, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_1, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[1] = u[0] + algebraicVariables[1] = u[0] def objective_function_2(u, f, data): @@ -146,21 +146,21 @@ def objective_function_2(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[2] = u[0] + algebraicVariables[2] = u[0] - f[0] = voi-algebraic[2] + f[0] = voi-algebraicVariables[2] -def find_root_2(voi, states, rates, constants, computed_constants, algebraic): +def find_root_2(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[2] + u[0] = algebraicVariables[2] - u = nla_solve(objective_function_2, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_2, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[2] = u[0] + algebraicVariables[2] = u[0] def objective_function_3(u, f, data): @@ -169,21 +169,21 @@ def objective_function_3(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[3] = u[0] + algebraicVariables[3] = u[0] - f[0] = voi-algebraic[3] + f[0] = voi-algebraicVariables[3] -def find_root_3(voi, states, rates, constants, computed_constants, algebraic): +def find_root_3(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[3] + u[0] = algebraicVariables[3] - u = nla_solve(objective_function_3, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_3, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[3] = u[0] + algebraicVariables[3] = u[0] def objective_function_4(u, f, data): @@ -192,21 +192,21 @@ def objective_function_4(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[4] = u[0] + algebraicVariables[4] = u[0] - f[0] = voi-algebraic[4] + f[0] = voi-algebraicVariables[4] -def find_root_4(voi, states, rates, constants, computed_constants, algebraic): +def find_root_4(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[4] + u[0] = algebraicVariables[4] - u = nla_solve(objective_function_4, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_4, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[4] = u[0] + algebraicVariables[4] = u[0] def objective_function_5(u, f, data): @@ -215,21 +215,21 @@ def objective_function_5(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[5] = u[0] + algebraicVariables[5] = u[0] - f[0] = voi-algebraic[5] + f[0] = voi-algebraicVariables[5] -def find_root_5(voi, states, rates, constants, computed_constants, algebraic): +def find_root_5(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[5] + u[0] = algebraicVariables[5] - u = nla_solve(objective_function_5, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_5, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[5] = u[0] + algebraicVariables[5] = u[0] def objective_function_6(u, f, data): @@ -238,21 +238,21 @@ def objective_function_6(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[6] = u[0] + algebraicVariables[6] = u[0] - f[0] = voi-algebraic[6] + f[0] = voi-algebraicVariables[6] -def find_root_6(voi, states, rates, constants, computed_constants, algebraic): +def find_root_6(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[6] + u[0] = algebraicVariables[6] - u = nla_solve(objective_function_6, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_6, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[6] = u[0] + algebraicVariables[6] = u[0] def objective_function_7(u, f, data): @@ -261,21 +261,21 @@ def objective_function_7(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[7] = u[0] + algebraicVariables[7] = u[0] - f[0] = voi-algebraic[7] + f[0] = voi-algebraicVariables[7] -def find_root_7(voi, states, rates, constants, computed_constants, algebraic): +def find_root_7(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[7] + u[0] = algebraicVariables[7] - u = nla_solve(objective_function_7, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_7, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[7] = u[0] + algebraicVariables[7] = u[0] def objective_function_8(u, f, data): @@ -284,21 +284,21 @@ def objective_function_8(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[8] = u[0] + algebraicVariables[8] = u[0] - f[0] = voi-algebraic[8] + f[0] = voi-algebraicVariables[8] -def find_root_8(voi, states, rates, constants, computed_constants, algebraic): +def find_root_8(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[8] + u[0] = algebraicVariables[8] - u = nla_solve(objective_function_8, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_8, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[8] = u[0] + algebraicVariables[8] = u[0] def objective_function_9(u, f, data): @@ -307,21 +307,21 @@ def objective_function_9(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[9] = u[0] + algebraicVariables[9] = u[0] - f[0] = voi-algebraic[9] + f[0] = voi-algebraicVariables[9] -def find_root_9(voi, states, rates, constants, computed_constants, algebraic): +def find_root_9(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[9] + u[0] = algebraicVariables[9] - u = nla_solve(objective_function_9, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_9, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[9] = u[0] + algebraicVariables[9] = u[0] def objective_function_10(u, f, data): @@ -330,21 +330,21 @@ def objective_function_10(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[10] = u[0] + algebraicVariables[10] = u[0] - f[0] = voi-algebraic[10] + f[0] = voi-algebraicVariables[10] -def find_root_10(voi, states, rates, constants, computed_constants, algebraic): +def find_root_10(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[10] + u[0] = algebraicVariables[10] - u = nla_solve(objective_function_10, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_10, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[10] = u[0] + algebraicVariables[10] = u[0] def objective_function_11(u, f, data): @@ -353,21 +353,21 @@ def objective_function_11(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[11] = u[0] + algebraicVariables[11] = u[0] - f[0] = voi-algebraic[11] + f[0] = voi-algebraicVariables[11] -def find_root_11(voi, states, rates, constants, computed_constants, algebraic): +def find_root_11(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[11] + u[0] = algebraicVariables[11] - u = nla_solve(objective_function_11, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_11, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[11] = u[0] + algebraicVariables[11] = u[0] def objective_function_12(u, f, data): @@ -376,21 +376,21 @@ def objective_function_12(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[12] = u[0] + algebraicVariables[12] = u[0] - f[0] = voi-algebraic[12] + f[0] = voi-algebraicVariables[12] -def find_root_12(voi, states, rates, constants, computed_constants, algebraic): +def find_root_12(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[12] + u[0] = algebraicVariables[12] - u = nla_solve(objective_function_12, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_12, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[12] = u[0] + algebraicVariables[12] = u[0] def objective_function_13(u, f, data): @@ -399,21 +399,21 @@ def objective_function_13(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[13] = u[0] + algebraicVariables[13] = u[0] - f[0] = voi-algebraic[13] + f[0] = voi-algebraicVariables[13] -def find_root_13(voi, states, rates, constants, computed_constants, algebraic): +def find_root_13(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[13] + u[0] = algebraicVariables[13] - u = nla_solve(objective_function_13, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_13, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[13] = u[0] + algebraicVariables[13] = u[0] def objective_function_14(u, f, data): @@ -422,21 +422,21 @@ def objective_function_14(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[14] = u[0] + algebraicVariables[14] = u[0] - f[0] = voi-algebraic[14] + f[0] = voi-algebraicVariables[14] -def find_root_14(voi, states, rates, constants, computed_constants, algebraic): +def find_root_14(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[14] + u[0] = algebraicVariables[14] - u = nla_solve(objective_function_14, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_14, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[14] = u[0] + algebraicVariables[14] = u[0] def objective_function_15(u, f, data): @@ -445,21 +445,21 @@ def objective_function_15(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[15] = u[0] + algebraicVariables[15] = u[0] - f[0] = voi-algebraic[15] + f[0] = voi-algebraicVariables[15] -def find_root_15(voi, states, rates, constants, computed_constants, algebraic): +def find_root_15(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[15] + u[0] = algebraicVariables[15] - u = nla_solve(objective_function_15, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_15, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[15] = u[0] + algebraicVariables[15] = u[0] def objective_function_16(u, f, data): @@ -468,21 +468,21 @@ def objective_function_16(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[16] = u[0] + algebraicVariables[16] = u[0] - f[0] = voi-algebraic[16] + f[0] = voi-algebraicVariables[16] -def find_root_16(voi, states, rates, constants, computed_constants, algebraic): +def find_root_16(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[16] + u[0] = algebraicVariables[16] - u = nla_solve(objective_function_16, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_16, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[16] = u[0] + algebraicVariables[16] = u[0] def objective_function_17(u, f, data): @@ -491,21 +491,21 @@ def objective_function_17(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[17] = u[0] + algebraicVariables[17] = u[0] - f[0] = voi-algebraic[17] + f[0] = voi-algebraicVariables[17] -def find_root_17(voi, states, rates, constants, computed_constants, algebraic): +def find_root_17(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[17] + u[0] = algebraicVariables[17] - u = nla_solve(objective_function_17, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_17, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[17] = u[0] + algebraicVariables[17] = u[0] def objective_function_18(u, f, data): @@ -514,21 +514,21 @@ def objective_function_18(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[18] = u[0] + algebraicVariables[18] = u[0] - f[0] = voi-algebraic[18] + f[0] = voi-algebraicVariables[18] -def find_root_18(voi, states, rates, constants, computed_constants, algebraic): +def find_root_18(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[18] + u[0] = algebraicVariables[18] - u = nla_solve(objective_function_18, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_18, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[18] = u[0] + algebraicVariables[18] = u[0] def objective_function_19(u, f, data): @@ -537,21 +537,21 @@ def objective_function_19(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[19] = u[0] + algebraicVariables[19] = u[0] - f[0] = voi-algebraic[19] + f[0] = voi-algebraicVariables[19] -def find_root_19(voi, states, rates, constants, computed_constants, algebraic): +def find_root_19(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[19] + u[0] = algebraicVariables[19] - u = nla_solve(objective_function_19, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_19, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[19] = u[0] + algebraicVariables[19] = u[0] def objective_function_20(u, f, data): @@ -560,21 +560,21 @@ def objective_function_20(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[20] = u[0] + algebraicVariables[20] = u[0] - f[0] = voi-algebraic[20] + f[0] = voi-algebraicVariables[20] -def find_root_20(voi, states, rates, constants, computed_constants, algebraic): +def find_root_20(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[20] + u[0] = algebraicVariables[20] - u = nla_solve(objective_function_20, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_20, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[20] = u[0] + algebraicVariables[20] = u[0] def objective_function_21(u, f, data): @@ -583,60 +583,60 @@ def objective_function_21(u, f, data): rates = data[2] constants = data[3] computed_constants = data[4] - algebraic = data[5] + algebraic_variables = data[5] - algebraic[21] = u[0] + algebraicVariables[21] = u[0] - f[0] = voi-algebraic[21] + f[0] = voi-algebraicVariables[21] -def find_root_21(voi, states, rates, constants, computed_constants, algebraic): +def find_root_21(voi, states, rates, constants, computed_constants, algebraic_variables): u = [nan]*1 - u[0] = algebraic[21] + u[0] = algebraicVariables[21] - u = nla_solve(objective_function_21, u, 1, [voi, states, rates, constants, computed_constants, algebraic]) + u = nla_solve(objective_function_21, u, 1, [voi, states, rates, constants, computed_constants, algebraic_variables]) - algebraic[21] = u[0] + algebraicVariables[21] = u[0] -def initialise_variables(states, rates, constants, computed_constants, algebraic): +def initialise_arrays(states, rates, constants, computed_constants, algebraic_variables): constants[0] = 3.0 states[1] = constants[0] states[0] = states[1] states[19] = 5.0 states[5] = states[19] states[4] = states[5] - algebraic[16] = 7.0 - states[7] = algebraic[16] + algebraicVariables[16] = 7.0 + states[7] = algebraicVariables[16] states[6] = states[7] states[8] = constants[0] states[10] = states[19] - states[11] = algebraic[16] + states[11] = algebraicVariables[16] constants[1] = 3.0 - algebraic[4] = constants[1] - states[12] = algebraic[4] + algebraicVariables[4] = constants[1] + states[12] = algebraicVariables[4] states[21] = 5.0 - algebraic[6] = states[21] - states[14] = algebraic[6] - algebraic[21] = 7.0 - algebraic[7] = algebraic[21] - states[15] = algebraic[7] + algebraicVariables[6] = states[21] + states[14] = algebraicVariables[6] + algebraicVariables[21] = 7.0 + algebraicVariables[7] = algebraicVariables[21] + states[15] = algebraicVariables[7] states[16] = constants[0] states[18] = states[19] - states[20] = algebraic[16] - algebraic[0] = states[8] - algebraic[2] = states[10] - algebraic[3] = states[11] - algebraic[9] = constants[1] - algebraic[8] = algebraic[9] - algebraic[13] = states[21] - algebraic[12] = algebraic[13] - algebraic[15] = algebraic[21] - algebraic[14] = algebraic[15] - algebraic[17] = constants[1] - algebraic[19] = states[21] - algebraic[20] = algebraic[21] + states[20] = algebraicVariables[16] + algebraicVariables[0] = states[8] + algebraicVariables[2] = states[10] + algebraicVariables[3] = states[11] + algebraicVariables[9] = constants[1] + algebraicVariables[8] = algebraicVariables[9] + algebraicVariables[13] = states[21] + algebraicVariables[12] = algebraicVariables[13] + algebraicVariables[15] = algebraicVariables[21] + algebraicVariables[14] = algebraicVariables[15] + algebraicVariables[17] = constants[1] + algebraicVariables[19] = states[21] + algebraicVariables[20] = algebraicVariables[21] def compute_computed_constants(states, rates, constants, computed_constants, algebraic): @@ -645,16 +645,16 @@ def compute_computed_constants(states, rates, constants, computed_constants, alg states[2] = states[3] states[9] = computed_constants[0] computed_constants[1] = 1.23*constants[1] - algebraic[5] = computed_constants[1] - states[13] = algebraic[5] + algebraicVariables[5] = computed_constants[1] + states[13] = algebraicVariables[5] states[17] = computed_constants[0] - algebraic[1] = states[9] - algebraic[11] = computed_constants[1] - algebraic[10] = algebraic[11] - algebraic[18] = computed_constants[1] + algebraicVariables[1] = states[9] + algebraicVariables[11] = computed_constants[1] + algebraicVariables[10] = algebraicVariables[11] + algebraicVariables[18] = computed_constants[1] -def compute_rates(voi, states, rates, constants, computed_constants, algebraic): +def compute_rates(voi, states, rates, constants, computed_constants, algebraic_variables): rates[0] = 1.23 rates[1] = 1.23 rates[2] = 1.23 @@ -679,26 +679,26 @@ def compute_rates(voi, states, rates, constants, computed_constants, algebraic): rates[21] = 1.23 -def compute_variables(voi, states, rates, constants, computed_constants, algebraic): - find_root_0(voi, states, rates, constants, computed_constants, algebraic) - find_root_1(voi, states, rates, constants, computed_constants, algebraic) - find_root_2(voi, states, rates, constants, computed_constants, algebraic) - find_root_3(voi, states, rates, constants, computed_constants, algebraic) - find_root_4(voi, states, rates, constants, computed_constants, algebraic) - find_root_5(voi, states, rates, constants, computed_constants, algebraic) - find_root_6(voi, states, rates, constants, computed_constants, algebraic) - find_root_7(voi, states, rates, constants, computed_constants, algebraic) - find_root_8(voi, states, rates, constants, computed_constants, algebraic) - find_root_9(voi, states, rates, constants, computed_constants, algebraic) - find_root_10(voi, states, rates, constants, computed_constants, algebraic) - find_root_11(voi, states, rates, constants, computed_constants, algebraic) - find_root_12(voi, states, rates, constants, computed_constants, algebraic) - find_root_13(voi, states, rates, constants, computed_constants, algebraic) - find_root_14(voi, states, rates, constants, computed_constants, algebraic) - find_root_15(voi, states, rates, constants, computed_constants, algebraic) - find_root_16(voi, states, rates, constants, computed_constants, algebraic) - find_root_17(voi, states, rates, constants, computed_constants, algebraic) - find_root_18(voi, states, rates, constants, computed_constants, algebraic) - find_root_19(voi, states, rates, constants, computed_constants, algebraic) - find_root_20(voi, states, rates, constants, computed_constants, algebraic) - find_root_21(voi, states, rates, constants, computed_constants, algebraic) +def compute_variables(voi, states, rates, constants, computed_constants, algebraic_variables): + find_root_0(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_1(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_2(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_3(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_4(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_5(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_6(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_7(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_8(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_9(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_10(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_11(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_12(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_13(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_14(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_15(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_16(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_17(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_18(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_19(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_20(voi, states, rates, constants, computed_constants, algebraic_variables) + find_root_21(voi, states, rates, constants, computed_constants, algebraic_variables) From 122571eb96d30a7d23266ca4e2161d9235bc8985 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Thu, 20 Nov 2025 14:40:20 +1300 Subject: [PATCH 8/9] Some minor cleaning up following the recent merge (see commit c3f0ccad1). --- tests/analyser/analyser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/analyser/analyser.cpp b/tests/analyser/analyser.cpp index 9547df3b1..92cd932a8 100644 --- a/tests/analyser/analyser.cpp +++ b/tests/analyser/analyser.cpp @@ -291,7 +291,7 @@ TEST(Analyser, variableInitialisedUsingAnotherVariable) expectedUrls(expectedIssues.size(), "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_INITIALISED_USING_ALGEBRAIC_VARIABLE"), analyser); - EXPECT_EQ(libcellml::AnalyserModel::Type::INVALID, analyser->model()->type()); + EXPECT_EQ(libcellml::AnalyserModel::Type::INVALID, analyser->analyserModel()->type()); } TEST(Analyser, nonInitialisedState) From 56dd562cd1b9b3c86999c3f0c9a8f4d897284bb4 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Thu, 20 Nov 2025 14:49:33 +1300 Subject: [PATCH 9/9] Some minor cleaning up following the recent merge (see commit 371282ff6). --- tests/analyser/analyser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/analyser/analyser.cpp b/tests/analyser/analyser.cpp index 53deae003..421a226a9 100644 --- a/tests/analyser/analyser.cpp +++ b/tests/analyser/analyser.cpp @@ -984,7 +984,7 @@ TEST(Analyser, underconstrainedNlaSystem) expectedUrls(expectedIssues.size(), "https://libcellml.org/documentation/guides/latest/runtime_codes/index?issue=ANALYSER_VARIABLE_UNDERCONSTRAINED"), analyser); - EXPECT_EQ(libcellml::AnalyserModel::Type::UNDERCONSTRAINED, analyser->model()->type()); + EXPECT_EQ(libcellml::AnalyserModel::Type::UNDERCONSTRAINED, analyser->analyserModel()->type()); } TEST(Analyser, overconstrainedNlaSystem) @@ -1058,5 +1058,5 @@ TEST(Analyser, unsuitablyConstrainedNlaSystem) expectedUrls, analyser); - EXPECT_EQ(libcellml::AnalyserModel::Type::UNSUITABLY_CONSTRAINED, analyser->model()->type()); + EXPECT_EQ(libcellml::AnalyserModel::Type::UNSUITABLY_CONSTRAINED, analyser->analyserModel()->type()); }