Generated Code
The following is c code generated by the CellML API from this CellML file. (Back to language selection)
The raw code is available.
/*
There are a total of 34 entries in the algebraic variable array.
There are a total of 15 entries in each of the rate and state variable arrays.
There are a total of 59 entries in the constant variable array.
*/
/*
* VOI is time in component environment (second).
* ALGEBRAIC[0] is L_iso in component beta_1_adrenergic_parameters (uM).
* CONSTANTS[0] is K_H in component beta_1_adrenergic_parameters (uM).
* CONSTANTS[1] is K_L in component beta_1_adrenergic_parameters (uM).
* CONSTANTS[2] is K_C in component beta_1_adrenergic_parameters (uM).
* ALGEBRAIC[1] is L_ach in component muscarinic_parameters (uM).
* CONSTANTS[3] is K_H in component muscarinic_parameters (uM).
* CONSTANTS[4] is K_L in component muscarinic_parameters (uM).
* CONSTANTS[5] is K_C in component muscarinic_parameters (uM).
* CONSTANTS[6] is k_PDE2 in component PDE_parameters (per_sec).
* CONSTANTS[7] is Km_PDE2 in component PDE_parameters (uM).
* CONSTANTS[8] is k_PDE3 in component PDE_parameters (per_sec).
* CONSTANTS[9] is Km_PDE3 in component PDE_parameters (uM).
* CONSTANTS[10] is k_PDE4 in component PDE_parameters (per_sec).
* CONSTANTS[11] is Km_PDE4 in component PDE_parameters (uM).
* CONSTANTS[12] is k_act1 in component G_s_parameters (per_sec).
* CONSTANTS[13] is k_act2 in component G_s_parameters (per_sec).
* CONSTANTS[14] is k_hydr in component G_s_parameters (per_sec).
* CONSTANTS[15] is k_reas in component G_s_parameters (per_uM_per_sec).
* CONSTANTS[16] is k_act1 in component G_i_parameters (per_sec).
* CONSTANTS[17] is k_act2 in component G_i_parameters (per_sec).
* CONSTANTS[18] is k_hydr in component G_i_parameters (per_sec).
* CONSTANTS[19] is k_reas in component G_i_parameters (per_uM_per_sec).
* ALGEBRAIC[12] is R in component caveolar_beta_1_adrenergic_receptor_module (uM).
* ALGEBRAIC[13] is LR in component caveolar_beta_1_adrenergic_receptor_module (uM).
* ALGEBRAIC[14] is LRG in component caveolar_beta_1_adrenergic_receptor_module (uM).
* ALGEBRAIC[15] is RG in component caveolar_beta_1_adrenergic_receptor_module (uM).
* CONSTANTS[20] is R_Total in component caveolar_beta_1_adrenergic_receptor_module (uM).
* ALGEBRAIC[5] is Gs_alpha_beta_gamma in component caveolar_G_s_protein_activation_module (uM).
* ALGEBRAIC[16] is R in component caveolar_muscarinic_receptor_module (uM).
* ALGEBRAIC[17] is LR in component caveolar_muscarinic_receptor_module (uM).
* ALGEBRAIC[18] is LRG in component caveolar_muscarinic_receptor_module (uM).
* ALGEBRAIC[19] is RG in component caveolar_muscarinic_receptor_module (uM).
* CONSTANTS[21] is R_Total in component caveolar_muscarinic_receptor_module (uM).
* ALGEBRAIC[6] is Gi_alpha_beta_gamma in component caveolar_G_i_protein_activation_module (uM).
* STATES[0] is Gs_alpha_GTP in component caveolar_G_s_protein_activation_module (uM).
* STATES[1] is Gs_beta_gamma in component caveolar_G_s_protein_activation_module (uM).
* STATES[2] is Gs_alpha_GDP in component caveolar_G_s_protein_activation_module (uM).
* CONSTANTS[22] is Gs_Total in component caveolar_G_s_protein_activation_module (uM).
* STATES[3] is Gi_alpha_GTP in component caveolar_G_i_protein_activation_module (uM).
* STATES[4] is Gi_beta_gamma in component caveolar_G_i_protein_activation_module (uM).
* STATES[5] is Gi_alpha_GDP in component caveolar_G_i_protein_activation_module (uM).
* CONSTANTS[23] is Gi_Total in component caveolar_G_i_protein_activation_module (uM).
* ALGEBRAIC[20] is R in component extracaveolar_beta_1_adrenergic_receptor_module (uM).
* ALGEBRAIC[21] is LR in component extracaveolar_beta_1_adrenergic_receptor_module (uM).
* ALGEBRAIC[22] is LRG in component extracaveolar_beta_1_adrenergic_receptor_module (uM).
* ALGEBRAIC[23] is RG in component extracaveolar_beta_1_adrenergic_receptor_module (uM).
* CONSTANTS[24] is R_Total in component extracaveolar_beta_1_adrenergic_receptor_module (uM).
* ALGEBRAIC[7] is Gs_alpha_beta_gamma in component extracaveolar_G_s_protein_activation_module (uM).
* ALGEBRAIC[24] is R in component extracaveolar_muscarinic_receptor_module (uM).
* ALGEBRAIC[25] is LR in component extracaveolar_muscarinic_receptor_module (uM).
* ALGEBRAIC[26] is LRG in component extracaveolar_muscarinic_receptor_module (uM).
* ALGEBRAIC[27] is RG in component extracaveolar_muscarinic_receptor_module (uM).
* CONSTANTS[25] is R_Total in component extracaveolar_muscarinic_receptor_module (uM).
* ALGEBRAIC[8] is Gi_alpha_beta_gamma in component extracaveolar_G_i_protein_activation_module (uM).
* STATES[6] is Gs_alpha_GTP in component extracaveolar_G_s_protein_activation_module (uM).
* STATES[7] is Gs_beta_gamma in component extracaveolar_G_s_protein_activation_module (uM).
* STATES[8] is Gs_alpha_GDP in component extracaveolar_G_s_protein_activation_module (uM).
* CONSTANTS[26] is Gs_Total in component extracaveolar_G_s_protein_activation_module (uM).
* STATES[9] is Gi_alpha_GTP in component extracaveolar_G_i_protein_activation_module (uM).
* STATES[10] is Gi_beta_gamma in component extracaveolar_G_i_protein_activation_module (uM).
* STATES[11] is Gi_alpha_GDP in component extracaveolar_G_i_protein_activation_module (uM).
* CONSTANTS[27] is Gi_Total in component extracaveolar_G_i_protein_activation_module (uM).
* ALGEBRAIC[9] is dcAMP_AC_56_dt in component AC56_module (uM_per_sec).
* ALGEBRAIC[2] is k_AC56 in component AC56_module (per_sec).
* CONSTANTS[28] is AC_56 in component AC56_module (uM).
* CONSTANTS[29] is AF56 in component AC56_module (dimensionless).
* CONSTANTS[30] is MW_AC56 in component AC56_module (kDa).
* CONSTANTS[31] is ATP in component AC56_module (uM).
* CONSTANTS[32] is Km_ATP in component AC56_module (uM).
* ALGEBRAIC[10] is dcAMP_AC_47_ecav_dt in component AC47_ecav_module (uM_per_sec).
* ALGEBRAIC[3] is k_AC47_ecav in component AC47_ecav_module (per_sec).
* CONSTANTS[33] is AC_47_ecav in component AC47_ecav_module (uM).
* CONSTANTS[34] is AF47 in component AC47_ecav_module (dimensionless).
* CONSTANTS[35] is MW_AC47 in component AC47_ecav_module (kDa).
* CONSTANTS[36] is ATP in component AC47_ecav_module (uM).
* CONSTANTS[37] is Km_ATP in component AC47_ecav_module (uM).
* CONSTANTS[55] is dcAMP_AC_47_cyt_dt in component AC47_cyt_module (uM_per_sec).
* CONSTANTS[38] is k_AC47_cyt in component AC47_cyt_module (per_sec).
* CONSTANTS[39] is AC_47_cyt in component AC47_cyt_module (uM).
* CONSTANTS[40] is AF47 in component AC47_cyt_module (dimensionless).
* CONSTANTS[41] is ATP in component AC47_cyt_module (uM).
* CONSTANTS[42] is Km_ATP in component AC47_cyt_module (uM).
* ALGEBRAIC[28] is dcAMP_cav_PDE2_dt in component caveolar_PDE_module (uM_per_sec).
* ALGEBRAIC[31] is dcAMP_cav_PDE3_dt in component caveolar_PDE_module (uM_per_sec).
* ALGEBRAIC[33] is dcAMP_cav_PDE4_dt in component caveolar_PDE_module (uM_per_sec).
* STATES[12] is cAMP_cav in component cAMP_flux_module (uM).
* CONSTANTS[43] is PDE2 in component caveolar_PDE_module (uM).
* CONSTANTS[44] is PDE3 in component caveolar_PDE_module (uM).
* CONSTANTS[45] is PDE4 in component caveolar_PDE_module (uM).
* ALGEBRAIC[29] is dcAMP_ecav_PDE2_dt in component extracaveolar_PDE_module (uM_per_sec).
* ALGEBRAIC[32] is dcAMP_ecav_PDE4_dt in component extracaveolar_PDE_module (uM_per_sec).
* STATES[13] is cAMP_ecav in component cAMP_flux_module (uM).
* CONSTANTS[46] is PDE2 in component extracaveolar_PDE_module (uM).
* CONSTANTS[47] is PDE4 in component extracaveolar_PDE_module (uM).
* ALGEBRAIC[4] is dcAMP_cyt_PDE2_dt in component bulk_cytoplasmic_PDE_module (uM_per_sec).
* ALGEBRAIC[11] is dcAMP_cyt_PDE3_dt in component bulk_cytoplasmic_PDE_module (uM_per_sec).
* ALGEBRAIC[30] is dcAMP_cyt_PDE4_dt in component bulk_cytoplasmic_PDE_module (uM_per_sec).
* STATES[14] is cAMP_cyt in component cAMP_flux_module (uM).
* CONSTANTS[48] is PDE2 in component bulk_cytoplasmic_PDE_module (uM).
* CONSTANTS[49] is PDE3 in component bulk_cytoplasmic_PDE_module (uM).
* CONSTANTS[50] is PDE4 in component bulk_cytoplasmic_PDE_module (uM).
* CONSTANTS[56] is V_cav in component cAMP_flux_module (liter).
* CONSTANTS[57] is V_ecav in component cAMP_flux_module (liter).
* CONSTANTS[58] is V_cyt in component cAMP_flux_module (liter).
* CONSTANTS[51] is V_cell in component cAMP_flux_module (liter).
* CONSTANTS[52] is J_cav_ecav in component cAMP_flux_module (liters_per_second).
* CONSTANTS[53] is J_cav_cyt in component cAMP_flux_module (liters_per_second).
* CONSTANTS[54] is J_ecav_cyt in component cAMP_flux_module (liters_per_second).
* RATES[0] is d/dt Gs_alpha_GTP in component caveolar_G_s_protein_activation_module (uM).
* RATES[1] is d/dt Gs_beta_gamma in component caveolar_G_s_protein_activation_module (uM).
* RATES[2] is d/dt Gs_alpha_GDP in component caveolar_G_s_protein_activation_module (uM).
* RATES[3] is d/dt Gi_alpha_GTP in component caveolar_G_i_protein_activation_module (uM).
* RATES[4] is d/dt Gi_beta_gamma in component caveolar_G_i_protein_activation_module (uM).
* RATES[5] is d/dt Gi_alpha_GDP in component caveolar_G_i_protein_activation_module (uM).
* RATES[6] is d/dt Gs_alpha_GTP in component extracaveolar_G_s_protein_activation_module (uM).
* RATES[7] is d/dt Gs_beta_gamma in component extracaveolar_G_s_protein_activation_module (uM).
* RATES[8] is d/dt Gs_alpha_GDP in component extracaveolar_G_s_protein_activation_module (uM).
* RATES[9] is d/dt Gi_alpha_GTP in component extracaveolar_G_i_protein_activation_module (uM).
* RATES[10] is d/dt Gi_beta_gamma in component extracaveolar_G_i_protein_activation_module (uM).
* RATES[11] is d/dt Gi_alpha_GDP in component extracaveolar_G_i_protein_activation_module (uM).
* RATES[12] is d/dt cAMP_cav in component cAMP_flux_module (uM).
* RATES[13] is d/dt cAMP_ecav in component cAMP_flux_module (uM).
* RATES[14] is d/dt cAMP_cyt in component cAMP_flux_module (uM).
*/
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 0.035;
CONSTANTS[1] = 0.386;
CONSTANTS[2] = 8.809;
CONSTANTS[3] = 0.16;
CONSTANTS[4] = 11;
CONSTANTS[5] = 30;
CONSTANTS[6] = 20;
CONSTANTS[7] = 50;
CONSTANTS[8] = 1.25;
CONSTANTS[9] = 0.08;
CONSTANTS[10] = 2.5;
CONSTANTS[11] = 2.2;
CONSTANTS[12] = 5;
CONSTANTS[13] = 0.1;
CONSTANTS[14] = 0.8;
CONSTANTS[15] = 1.21e3;
CONSTANTS[16] = 2.5;
CONSTANTS[17] = 0.05;
CONSTANTS[18] = 0.8;
CONSTANTS[19] = 1.21e3;
CONSTANTS[20] = 0.633;
CONSTANTS[21] = 0.633;
STATES[0] = 0.041983438;
STATES[1] = 0.042634499;
STATES[2] = 0.000651061;
CONSTANTS[22] = 10;
STATES[3] = 0.012644961;
STATES[4] = 0.013274751;
STATES[5] = 0.00062979;
CONSTANTS[23] = 20;
CONSTANTS[24] = 0.633;
CONSTANTS[25] = 0.633;
STATES[6] = 0.083866891;
STATES[7] = 0.084522918;
STATES[8] = 0.000656025;
CONSTANTS[26] = 10;
STATES[9] = 0.001018705;
STATES[10] = 0.001475253;
STATES[11] = 0.000456548;
CONSTANTS[27] = 1;
CONSTANTS[28] = 3.379;
CONSTANTS[29] = 500;
CONSTANTS[30] = 130;
CONSTANTS[31] = 5000;
CONSTANTS[32] = 315;
CONSTANTS[33] = 0.2;
CONSTANTS[34] = 130;
CONSTANTS[35] = 130;
CONSTANTS[36] = 5000;
CONSTANTS[37] = 315;
CONSTANTS[38] = 1.08e-3;
CONSTANTS[39] = 0.136;
CONSTANTS[40] = 130;
CONSTANTS[41] = 5000;
CONSTANTS[42] = 315;
STATES[12] = 0.11750433;
CONSTANTS[43] = 4.5;
CONSTANTS[44] = 5.6;
CONSTANTS[45] = 2;
STATES[13] = 1.092200547;
CONSTANTS[46] = 0.02;
CONSTANTS[47] = 0.16;
STATES[14] = 0.992583576;
CONSTANTS[48] = 5e-3;
CONSTANTS[49] = 7.5e-3;
CONSTANTS[50] = 5e-3;
CONSTANTS[51] = 38e-12;
CONSTANTS[52] = 7.5e-15;
CONSTANTS[53] = 7.5e-14;
CONSTANTS[54] = 1.5e-17;
CONSTANTS[55] = ( CONSTANTS[38]*CONSTANTS[39]*CONSTANTS[40]*CONSTANTS[41])/(CONSTANTS[42]+CONSTANTS[41]);
CONSTANTS[56] = 0.0100000*CONSTANTS[51];
CONSTANTS[57] = 0.0200000*CONSTANTS[51];
CONSTANTS[58] = 0.500000*CONSTANTS[51];
}
void
computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
RATES[2] = STATES[0]*CONSTANTS[14] - STATES[2]*STATES[1]*CONSTANTS[15];
RATES[5] = STATES[3]*CONSTANTS[18] - STATES[5]*STATES[4]*CONSTANTS[19];
RATES[8] = STATES[6]*CONSTANTS[14] - STATES[8]*STATES[7]*CONSTANTS[15];
RATES[11] = STATES[9]*CONSTANTS[18] - STATES[11]*STATES[10]*CONSTANTS[19];
ALGEBRAIC[0] = (VOI>120.000&&VOI<=720.000 ? 1.00000 : 1.00000);
ALGEBRAIC[5] = (CONSTANTS[22] - STATES[0]) - STATES[2];
rootfind_0(VOI, CONSTANTS, RATES, STATES, ALGEBRAIC, pret);
RATES[0] = ( ALGEBRAIC[15]*CONSTANTS[13]+ ALGEBRAIC[14]*CONSTANTS[12]) - STATES[0]*CONSTANTS[14];
RATES[1] = ( ALGEBRAIC[15]*CONSTANTS[13]+ ALGEBRAIC[14]*CONSTANTS[12]) - STATES[2]*STATES[1]*CONSTANTS[15];
ALGEBRAIC[1] = (VOI>240.000&&VOI<=540.000 ? 0.00000 : 0.00000);
ALGEBRAIC[6] = (CONSTANTS[23] - STATES[3]) - STATES[5];
rootfind_1(VOI, CONSTANTS, RATES, STATES, ALGEBRAIC, pret);
RATES[3] = ( ALGEBRAIC[19]*CONSTANTS[17]+ ALGEBRAIC[18]*CONSTANTS[16]) - STATES[3]*CONSTANTS[18];
RATES[4] = ( ALGEBRAIC[19]*CONSTANTS[17]+ ALGEBRAIC[18]*CONSTANTS[16]) - STATES[5]*STATES[4]*CONSTANTS[19];
ALGEBRAIC[7] = (CONSTANTS[26] - STATES[6]) - STATES[8];
rootfind_2(VOI, CONSTANTS, RATES, STATES, ALGEBRAIC, pret);
RATES[6] = ( ALGEBRAIC[23]*CONSTANTS[13]+ ALGEBRAIC[22]*CONSTANTS[12]) - STATES[6]*CONSTANTS[14];
RATES[7] = ( ALGEBRAIC[23]*CONSTANTS[13]+ ALGEBRAIC[22]*CONSTANTS[12]) - STATES[8]*STATES[7]*CONSTANTS[15];
ALGEBRAIC[8] = (CONSTANTS[27] - STATES[9]) - STATES[11];
rootfind_3(VOI, CONSTANTS, RATES, STATES, ALGEBRAIC, pret);
RATES[9] = ( ALGEBRAIC[27]*CONSTANTS[17]+ ALGEBRAIC[26]*CONSTANTS[16]) - STATES[9]*CONSTANTS[18];
RATES[10] = ( ALGEBRAIC[27]*CONSTANTS[17]+ ALGEBRAIC[26]*CONSTANTS[16]) - STATES[11]*STATES[10]*CONSTANTS[19];
ALGEBRAIC[4] = ( CONSTANTS[6]*CONSTANTS[48]*STATES[14])/(CONSTANTS[7]+STATES[14]);
ALGEBRAIC[11] = ( CONSTANTS[8]*CONSTANTS[49]*STATES[14])/(CONSTANTS[9]+STATES[14]);
ALGEBRAIC[30] = ( CONSTANTS[10]*CONSTANTS[50]*STATES[14])/(CONSTANTS[11]+STATES[14]);
RATES[14] = (CONSTANTS[55] - (ALGEBRAIC[4]+ALGEBRAIC[11]+ALGEBRAIC[30]))+( CONSTANTS[53]*(STATES[12] - STATES[14]))/CONSTANTS[58]+( CONSTANTS[54]*(STATES[13] - STATES[14]))/CONSTANTS[58];
ALGEBRAIC[3] = (( (0.0630000+( 2.01000*pow( STATES[6]*1000.00, 1.00430))/(31.5440+pow( STATES[6]*1000.00, 1.00430)))*(1.00000+( (1.00000/3.01000)*49.1000*pow( STATES[10]*1000.00, 0.892100))/(25.4400+pow( STATES[10]*1000.00, 0.892100)))*CONSTANTS[35])/60.0000)*0.00100000;
ALGEBRAIC[10] = ( ALGEBRAIC[3]*CONSTANTS[33]*CONSTANTS[34]*CONSTANTS[36])/(CONSTANTS[37]+CONSTANTS[36]);
ALGEBRAIC[29] = ( CONSTANTS[6]*CONSTANTS[46]*STATES[13])/(CONSTANTS[7]+STATES[13]);
ALGEBRAIC[32] = ( CONSTANTS[10]*CONSTANTS[47]*STATES[13])/(CONSTANTS[11]+STATES[13]);
RATES[13] = ((ALGEBRAIC[10] - (ALGEBRAIC[29]+ALGEBRAIC[32]))+( CONSTANTS[52]*(STATES[12] - STATES[13]))/CONSTANTS[57]) - ( CONSTANTS[54]*(STATES[13] - STATES[14]))/CONSTANTS[57];
ALGEBRAIC[2] = (( (0.700000+( 3.82340*pow(STATES[0]/1.00000, 0.978700))/(0.198600+pow(STATES[0]/1.00000, 0.978700)))*(1.00000+( (1.00000/1.44320)*- 1.00610*pow(STATES[3]/1.00000, 0.835600))/(0.191800+pow(STATES[3]/1.00000, 0.835600)))*CONSTANTS[30])/60.0000)*0.00100000;
ALGEBRAIC[9] = ( ALGEBRAIC[2]*CONSTANTS[28]*CONSTANTS[29]*CONSTANTS[31])/(CONSTANTS[32]+CONSTANTS[31]);
ALGEBRAIC[28] = ( CONSTANTS[6]*CONSTANTS[43]*STATES[12])/(CONSTANTS[7]+STATES[12]);
ALGEBRAIC[31] = ( CONSTANTS[8]*CONSTANTS[44]*STATES[12])/(CONSTANTS[9]+STATES[12]);
ALGEBRAIC[33] = ( CONSTANTS[10]*CONSTANTS[45]*STATES[12])/(CONSTANTS[11]+STATES[12]);
RATES[12] = ((ALGEBRAIC[9] - (ALGEBRAIC[28]+ALGEBRAIC[31]+ALGEBRAIC[33])) - ( CONSTANTS[52]*(STATES[12] - STATES[13]))/CONSTANTS[56]) - ( CONSTANTS[53]*(STATES[12] - STATES[14]))/CONSTANTS[56];
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = (VOI>120.000&&VOI<=720.000 ? 1.00000 : 1.00000);
ALGEBRAIC[5] = (CONSTANTS[22] - STATES[0]) - STATES[2];
ALGEBRAIC[1] = (VOI>240.000&&VOI<=540.000 ? 0.00000 : 0.00000);
ALGEBRAIC[6] = (CONSTANTS[23] - STATES[3]) - STATES[5];
ALGEBRAIC[7] = (CONSTANTS[26] - STATES[6]) - STATES[8];
ALGEBRAIC[8] = (CONSTANTS[27] - STATES[9]) - STATES[11];
ALGEBRAIC[4] = ( CONSTANTS[6]*CONSTANTS[48]*STATES[14])/(CONSTANTS[7]+STATES[14]);
ALGEBRAIC[11] = ( CONSTANTS[8]*CONSTANTS[49]*STATES[14])/(CONSTANTS[9]+STATES[14]);
ALGEBRAIC[30] = ( CONSTANTS[10]*CONSTANTS[50]*STATES[14])/(CONSTANTS[11]+STATES[14]);
ALGEBRAIC[3] = (( (0.0630000+( 2.01000*pow( STATES[6]*1000.00, 1.00430))/(31.5440+pow( STATES[6]*1000.00, 1.00430)))*(1.00000+( (1.00000/3.01000)*49.1000*pow( STATES[10]*1000.00, 0.892100))/(25.4400+pow( STATES[10]*1000.00, 0.892100)))*CONSTANTS[35])/60.0000)*0.00100000;
ALGEBRAIC[10] = ( ALGEBRAIC[3]*CONSTANTS[33]*CONSTANTS[34]*CONSTANTS[36])/(CONSTANTS[37]+CONSTANTS[36]);
ALGEBRAIC[29] = ( CONSTANTS[6]*CONSTANTS[46]*STATES[13])/(CONSTANTS[7]+STATES[13]);
ALGEBRAIC[32] = ( CONSTANTS[10]*CONSTANTS[47]*STATES[13])/(CONSTANTS[11]+STATES[13]);
ALGEBRAIC[2] = (( (0.700000+( 3.82340*pow(STATES[0]/1.00000, 0.978700))/(0.198600+pow(STATES[0]/1.00000, 0.978700)))*(1.00000+( (1.00000/1.44320)*- 1.00610*pow(STATES[3]/1.00000, 0.835600))/(0.191800+pow(STATES[3]/1.00000, 0.835600)))*CONSTANTS[30])/60.0000)*0.00100000;
ALGEBRAIC[9] = ( ALGEBRAIC[2]*CONSTANTS[28]*CONSTANTS[29]*CONSTANTS[31])/(CONSTANTS[32]+CONSTANTS[31]);
ALGEBRAIC[28] = ( CONSTANTS[6]*CONSTANTS[43]*STATES[12])/(CONSTANTS[7]+STATES[12]);
ALGEBRAIC[31] = ( CONSTANTS[8]*CONSTANTS[44]*STATES[12])/(CONSTANTS[9]+STATES[12]);
ALGEBRAIC[33] = ( CONSTANTS[10]*CONSTANTS[45]*STATES[12])/(CONSTANTS[11]+STATES[12]);
}
void objfunc_0(double *p, double *hx, int m, int n, void *adata)
{
struct rootfind_info* rfi = (struct rootfind_info*)adata;
#define VOI rfi->aVOI
#define CONSTANTS rfi->aCONSTANTS
#define RATES rfi->aRATES
#define STATES rfi->aSTATES
#define ALGEBRAIC rfi->aALGEBRAIC
#define pret rfi->aPRET
ALGEBRAIC[12] = p[0];
ALGEBRAIC[13] = p[1];
ALGEBRAIC[14] = p[2];
ALGEBRAIC[15] = p[3];
hx[0] = ALGEBRAIC[12] - (((CONSTANTS[20] - ALGEBRAIC[13]) - ALGEBRAIC[14]) - ALGEBRAIC[15]);
hx[1] = ALGEBRAIC[13] - ( ALGEBRAIC[0]*ALGEBRAIC[12])/CONSTANTS[1];
hx[2] = ALGEBRAIC[14] - ( ALGEBRAIC[0]*ALGEBRAIC[12]*ALGEBRAIC[5])/( CONSTANTS[0]*CONSTANTS[2]);
hx[3] = ALGEBRAIC[15] - ( ALGEBRAIC[12]*ALGEBRAIC[5])/CONSTANTS[2];
#undef VOI
#undef CONSTANTS
#undef RATES
#undef STATES
#undef ALGEBRAIC
#undef pret
}
void rootfind_0(double VOI, double* CONSTANTS, double* RATES,
double* STATES, double* ALGEBRAIC, int* pret)
{
static double p[4] = {0.1,0.1,0.1,0.1};
double bp[4], work[LM_DIF_WORKSZ(4, 4)];
struct rootfind_info rfi;
rfi.aVOI = VOI;
rfi.aCONSTANTS = CONSTANTS;
rfi.aRATES = RATES;
rfi.aSTATES = STATES;
rfi.aALGEBRAIC = ALGEBRAIC;
rfi.aPRET = pret;
do_levmar(objfunc_0, p, bp, work, pret, 4, &rfi);
ALGEBRAIC[12] = p[0];
ALGEBRAIC[13] = p[1];
ALGEBRAIC[14] = p[2];
ALGEBRAIC[15] = p[3];
}
void objfunc_1(double *p, double *hx, int m, int n, void *adata)
{
struct rootfind_info* rfi = (struct rootfind_info*)adata;
#define VOI rfi->aVOI
#define CONSTANTS rfi->aCONSTANTS
#define RATES rfi->aRATES
#define STATES rfi->aSTATES
#define ALGEBRAIC rfi->aALGEBRAIC
#define pret rfi->aPRET
ALGEBRAIC[16] = p[0];
ALGEBRAIC[17] = p[1];
ALGEBRAIC[18] = p[2];
ALGEBRAIC[19] = p[3];
hx[0] = ALGEBRAIC[16] - (((CONSTANTS[21] - ALGEBRAIC[17]) - ALGEBRAIC[18]) - ALGEBRAIC[19]);
hx[1] = ALGEBRAIC[17] - ( ALGEBRAIC[1]*ALGEBRAIC[16])/CONSTANTS[4];
hx[2] = ALGEBRAIC[18] - ( ALGEBRAIC[1]*ALGEBRAIC[16]*ALGEBRAIC[6])/( CONSTANTS[3]*CONSTANTS[5]);
hx[3] = ALGEBRAIC[19] - ( ALGEBRAIC[16]*ALGEBRAIC[6])/CONSTANTS[5];
#undef VOI
#undef CONSTANTS
#undef RATES
#undef STATES
#undef ALGEBRAIC
#undef pret
}
void rootfind_1(double VOI, double* CONSTANTS, double* RATES,
double* STATES, double* ALGEBRAIC, int* pret)
{
static double p[4] = {0.1,0.1,0.1,0.1};
double bp[4], work[LM_DIF_WORKSZ(4, 4)];
struct rootfind_info rfi;
rfi.aVOI = VOI;
rfi.aCONSTANTS = CONSTANTS;
rfi.aRATES = RATES;
rfi.aSTATES = STATES;
rfi.aALGEBRAIC = ALGEBRAIC;
rfi.aPRET = pret;
do_levmar(objfunc_1, p, bp, work, pret, 4, &rfi);
ALGEBRAIC[16] = p[0];
ALGEBRAIC[17] = p[1];
ALGEBRAIC[18] = p[2];
ALGEBRAIC[19] = p[3];
}
void objfunc_2(double *p, double *hx, int m, int n, void *adata)
{
struct rootfind_info* rfi = (struct rootfind_info*)adata;
#define VOI rfi->aVOI
#define CONSTANTS rfi->aCONSTANTS
#define RATES rfi->aRATES
#define STATES rfi->aSTATES
#define ALGEBRAIC rfi->aALGEBRAIC
#define pret rfi->aPRET
ALGEBRAIC[20] = p[0];
ALGEBRAIC[21] = p[1];
ALGEBRAIC[22] = p[2];
ALGEBRAIC[23] = p[3];
hx[0] = ALGEBRAIC[20] - (((CONSTANTS[24] - ALGEBRAIC[21]) - ALGEBRAIC[22]) - ALGEBRAIC[23]);
hx[1] = ALGEBRAIC[21] - ( ALGEBRAIC[0]*ALGEBRAIC[20])/CONSTANTS[1];
hx[2] = ALGEBRAIC[22] - ( ALGEBRAIC[0]*ALGEBRAIC[20]*ALGEBRAIC[7])/( CONSTANTS[0]*CONSTANTS[2]);
hx[3] = ALGEBRAIC[23] - ( ALGEBRAIC[20]*ALGEBRAIC[7])/CONSTANTS[2];
#undef VOI
#undef CONSTANTS
#undef RATES
#undef STATES
#undef ALGEBRAIC
#undef pret
}
void rootfind_2(double VOI, double* CONSTANTS, double* RATES,
double* STATES, double* ALGEBRAIC, int* pret)
{
static double p[4] = {0.1,0.1,0.1,0.1};
double bp[4], work[LM_DIF_WORKSZ(4, 4)];
struct rootfind_info rfi;
rfi.aVOI = VOI;
rfi.aCONSTANTS = CONSTANTS;
rfi.aRATES = RATES;
rfi.aSTATES = STATES;
rfi.aALGEBRAIC = ALGEBRAIC;
rfi.aPRET = pret;
do_levmar(objfunc_2, p, bp, work, pret, 4, &rfi);
ALGEBRAIC[20] = p[0];
ALGEBRAIC[21] = p[1];
ALGEBRAIC[22] = p[2];
ALGEBRAIC[23] = p[3];
}
void objfunc_3(double *p, double *hx, int m, int n, void *adata)
{
struct rootfind_info* rfi = (struct rootfind_info*)adata;
#define VOI rfi->aVOI
#define CONSTANTS rfi->aCONSTANTS
#define RATES rfi->aRATES
#define STATES rfi->aSTATES
#define ALGEBRAIC rfi->aALGEBRAIC
#define pret rfi->aPRET
ALGEBRAIC[24] = p[0];
ALGEBRAIC[25] = p[1];
ALGEBRAIC[26] = p[2];
ALGEBRAIC[27] = p[3];
hx[0] = ALGEBRAIC[24] - (((CONSTANTS[25] - ALGEBRAIC[25]) - ALGEBRAIC[26]) - ALGEBRAIC[27]);
hx[1] = ALGEBRAIC[25] - ( ALGEBRAIC[1]*ALGEBRAIC[24])/CONSTANTS[4];
hx[2] = ALGEBRAIC[26] - ( ALGEBRAIC[1]*ALGEBRAIC[24]*ALGEBRAIC[8])/( CONSTANTS[3]*CONSTANTS[5]);
hx[3] = ALGEBRAIC[27] - ( ALGEBRAIC[24]*ALGEBRAIC[8])/CONSTANTS[5];
#undef VOI
#undef CONSTANTS
#undef RATES
#undef STATES
#undef ALGEBRAIC
#undef pret
}
void rootfind_3(double VOI, double* CONSTANTS, double* RATES,
double* STATES, double* ALGEBRAIC, int* pret)
{
static double p[4] = {0.1,0.1,0.1,0.1};
double bp[4], work[LM_DIF_WORKSZ(4, 4)];
struct rootfind_info rfi;
rfi.aVOI = VOI;
rfi.aCONSTANTS = CONSTANTS;
rfi.aRATES = RATES;
rfi.aSTATES = STATES;
rfi.aALGEBRAIC = ALGEBRAIC;
rfi.aPRET = pret;
do_levmar(objfunc_3, p, bp, work, pret, 4, &rfi);
ALGEBRAIC[24] = p[0];
ALGEBRAIC[25] = p[1];
ALGEBRAIC[26] = p[2];
ALGEBRAIC[27] = p[3];
}
