@@ -31,6 +31,7 @@ Rq: The distinction between pivp_string and pivp_list is not always obvious.

[

%Commands

compile_from_expression/3,

compile_from_pivp/2,

compile_from_pivp/3,

%Grammar

polynomial/1,

...

...

@@ -49,7 +50,11 @@ Rq: The distinction between pivp_string and pivp_list is not always obvious.

:-use_module(reaction_rules).

:-use_module(util).

:-doc('The Turing completeness of continuous CRNs \\cite{FLBP17cmsb} states that any computable function over the reals can be computed by a CRN over a finite set of molecular species. Biocham uses the proof of that result to compile any computable real function presented as the solution of a polynomial differential equation system into a finite CRN. The restriction to reactions with at most two reactants is an option.').

:-doc('The Turing completeness of continuous CRNs \\cite{FLBP17cmsb} states that any computable function over the reals can be computed by a CRN over a finite set of molecular species. Biocham uses the proof of that result to compile any computable real function presented as the solution of a polynomial differential equation system into a finite CRN.').

:-doc('The restriction to reactions with at most two reactants is an option.').

:-doc('The lazy introduction of molecular species for negative real values is another option.').

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

...

...

@@ -236,26 +241,53 @@ monomial(X) :-

name(X).

%! compile_from_pivp(+PIVP_string, +Output)

%

% biocham command

%

% Creates a biochemical reaction network that computes the projection of multivariate function f(t) on one variable Output,

compiles a PIVP into a CRN (with initial concentration values) that computes the projection on one variable Output as a function of time, of the multivariate function f(t) solution of the PIVP.

'),

option(

binomial_reduction,

yesno,

_Reduction,

'Determine if the binomial reduction has to be performed'

compiles a PIVP into biochemical reactions. Use \'time\' as input

to get output f(t), or use any other input x to get f(x) as output.

compiles a PIVP into a CRN (with initial concentration values) that computes the value of variable Output at time Input, of the multivariate function f(t) solution of the PIVP.