diff --git a/pharmsol/data/structs/struct.Data.html b/pharmsol/data/structs/struct.Data.html index f4cbd6f..59631a5 100644 --- a/pharmsol/data/structs/struct.Data.html +++ b/pharmsol/data/structs/struct.Data.html @@ -8,7 +8,7 @@
source

pub fn write_pmetrics(&self, file: &File)

source

pub fn filter_include(&self, include: &[String]) -> Data

Filter the Data to include only the Subjects with IDs in the include vector

source

pub fn filter_exclude(&self, exclude: Vec<String>) -> Data

Filter the Data to exclude the Subjects with IDs in the exclude vector

source

pub fn expand(&self, idelta: f64, tad: f64) -> Data

Expand the data by adding observations at intervals of idelta

-

Trait Implementations§

source§

impl Clone for Data

source§

fn clone(&self) -> Data

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Data

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Data

source§

fn default() -> Data

Returns the “default value” for a type. Read more
source§

impl Display for Data

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Equation> EstimateTheta<E> for Data

source§

fn estimate_theta(&self, equation: &E, point: &Array1<f64>) -> Array2<f64>

Auto Trait Implementations§

§

impl Freeze for Data

§

impl RefUnwindSafe for Data

§

impl Send for Data

§

impl Sync for Data

§

impl Unpin for Data

§

impl UnwindSafe for Data

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Clone for Data

source§

fn clone(&self) -> Data

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Data

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Data

source§

fn default() -> Data

Returns the “default value” for a type. Read more
source§

impl Display for Data

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Equation> EstimateTheta<E> for Data

source§

fn estimate_theta(&self, equation: &E, point: &Array1<f64>) -> Array2<f64>

Auto Trait Implementations§

§

impl Freeze for Data

§

impl RefUnwindSafe for Data

§

impl Send for Data

§

impl Sync for Data

§

impl Unpin for Data

§

impl UnwindSafe for Data

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/pharmsol/simulator/equation/ode/index.html b/pharmsol/simulator/equation/ode/index.html index 74d6100..d31e2d2 100644 --- a/pharmsol/simulator/equation/ode/index.html +++ b/pharmsol/simulator/equation/ode/index.html @@ -1 +1 @@ -pharmsol::simulator::equation::ode - Rust

Module pharmsol::simulator::equation::ode

source ·

Structs§

\ No newline at end of file +pharmsol::simulator::equation::ode - Rust

Module pharmsol::simulator::equation::ode

source ·

Structs§

\ No newline at end of file diff --git a/pharmsol/simulator/equation/ode/struct.ODE.html b/pharmsol/simulator/equation/ode/struct.ODE.html index ed66143..d41a340 100644 --- a/pharmsol/simulator/equation/ode/struct.ODE.html +++ b/pharmsol/simulator/equation/ode/struct.ODE.html @@ -5,7 +5,7 @@ init: Init, out: Out, neqs: Neqs, -) -> Self

Trait Implementations§

source§

impl Clone for ODE

source§

fn clone(&self) -> ODE

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ODE

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Equation for ODE

Trait Implementations§

source§

impl Clone for ODE

source§

fn clone(&self) -> ODE

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ODE

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Equation for ODE

source§

fn estimate_likelihood( &self, subject: &Subject, support_point: &Vec<f64>, @@ -21,7 +21,7 @@ subject: &Subject, support_point: &Vec<f64>, error_model: Option<&ErrorModel<'_>>, -) -> (Self::P, Option<f64>)

source§

impl EquationTypes for ODE

Auto Trait Implementations§

§

impl Freeze for ODE

§

impl RefUnwindSafe for ODE

§

impl Send for ODE

§

impl Sync for ODE

§

impl Unpin for ODE

§

impl UnwindSafe for ODE

Blanket Implementations§

source§

impl<T> Any for T
where +) -> (Self::P, Option<f64>)

source§

impl EquationTypes for ODE

§

type S = Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>

§

type P = SubjectPredictions

Auto Trait Implementations§

§

impl Freeze for ODE

§

impl RefUnwindSafe for ODE

§

impl Send for ODE

§

impl Sync for ODE

§

impl Unpin for ODE

§

impl UnwindSafe for ODE

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/pharmsol/simulator/equation/trait.Equation.html b/pharmsol/simulator/equation/trait.Equation.html index 2c7a924..0f90013 100644 --- a/pharmsol/simulator/equation/trait.Equation.html +++ b/pharmsol/simulator/equation/trait.Equation.html @@ -37,4 +37,4 @@ subject: &Subject, support_point: &Vec<f64>, error_model: Option<&ErrorModel<'_>>, -) -> (Self::P, Option<f64>)

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Equation for Analytical

source§

impl Equation for ODE

source§

impl Equation for SDE

\ No newline at end of file +) -> (Self::P, Option<f64>)

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Equation for Analytical

source§

impl Equation for ODE

source§

impl Equation for SDE

\ No newline at end of file diff --git a/pharmsol/simulator/equation/trait.EquationTypes.html b/pharmsol/simulator/equation/trait.EquationTypes.html index 1b62a75..1d1a61b 100644 --- a/pharmsol/simulator/equation/trait.EquationTypes.html +++ b/pharmsol/simulator/equation/trait.EquationTypes.html @@ -1,4 +1,4 @@ EquationTypes in pharmsol::simulator::equation - Rust

Trait pharmsol::simulator::equation::EquationTypes

source ·
pub trait EquationTypes {
     type S: State;
     type P: Predictions;
-}

Required Associated Types§

Implementors§

\ No newline at end of file +}

Required Associated Types§

source

type S: State

source

type P: Predictions

Implementors§

source§

impl EquationTypes for Analytical

source§

impl EquationTypes for ODE

source§

impl EquationTypes for SDE

\ No newline at end of file diff --git a/pharmsol/simulator/equation/trait.State.html b/pharmsol/simulator/equation/trait.State.html index bb150f7..b1affbe 100644 --- a/pharmsol/simulator/equation/trait.State.html +++ b/pharmsol/simulator/equation/trait.State.html @@ -1,4 +1,4 @@ State in pharmsol::simulator::equation - Rust

Trait pharmsol::simulator::equation::State

source ·
pub trait State {
     // Required method
     fn add_bolus(&mut self, input: usize, amount: f64);
-}

Required Methods§

source

fn add_bolus(&mut self, input: usize, amount: f64)

Implementations on Foreign Types§

source§

impl State for Vec<DVector<f64>>

source§

fn add_bolus(&mut self, input: usize, amount: f64)

source§

impl State for DVector<f64>

source§

fn add_bolus(&mut self, input: usize, amount: f64)

Implementors§

\ No newline at end of file +}

Required Methods§

source

fn add_bolus(&mut self, input: usize, amount: f64)

Implementations on Foreign Types§

source§

impl State for Vec<DVector<f64>>

source§

fn add_bolus(&mut self, input: usize, amount: f64)

source§

impl State for DVector<f64>

source§

fn add_bolus(&mut self, input: usize, amount: f64)

Implementors§

\ No newline at end of file diff --git a/search-index.js b/search-index.js index 8f6361b..0bbd7df 100644 --- a/search-index.js +++ b/search-index.js @@ -1,5 +1,5 @@ var searchIndex = new Map(JSON.parse('[\ -["pharmsol",{"t":"EECEQQQQCCEEECCCCCFKNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNPFFFGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOPFGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPGFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNEEECCCEEEEEEEHEEEEEFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNONNNNNNNNNNNNNNNNNNNNNNIIIIIIIIIICCKKRKRKMCMNMNCCNMFNNNNNNNNNNNNNNNNHHNNNNNHHNNFNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNKKMM","n":["ODE","SubjectBuilderExt","data","equation","fa","fetch_cov","fetch_params","lag","prelude","simulator","Data","Occasion","Subject","builder","covariate","error_model","event","structs","SubjectBuilder","SubjectBuilderExt","bolus","borrow","borrow_mut","build","builder","clone","clone_into","clone_to_uninit","covariate","deref","deref_mut","drop","event","fmt","from","from_subset","infusion","init","into","is_in_subset","observation","observation_with_error","repeat","reset","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","vzip","CarryForward","Covariate","CovariateSegment","Covariates","InterpolationMethod","Linear","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","covariates","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_subset","from_subset","from_subset","from_subset","get_covariate","init","init","init","init","interpolate","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","method","name","new","segments","to","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","intercept","slope","value","Add","ErrorModel","ErrorType","Prop","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","from_subset","from_subset","gl","init","init","into","into","is_in_subset","is_in_subset","new","to_owned","to_owned","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Bolus","Bolus","Event","Infusion","Infusion","Observation","Observation","amount","amount","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","duration","errorpoly","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_subset","from_subset","from_subset","from_subset","ignore","init","init","init","init","input","input","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","outeq","time","time","time","to_owned","to_owned","to_owned","to_owned","to_string","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","value","vzip","vzip","vzip","vzip","Data","Occasion","Subject","add_subject","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","builder","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","deserialize","drop","drop","drop","estimate_theta","events","expand","filter_exclude","filter_include","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from_subset","from_subset","from_subset","get_covariates","get_events","get_subjects","id","index","init","init","init","into","into","into","is_in_subset","is_in_subset","is_in_subset","new","occasions","optimal_support_point","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","write_pmetrics","EstimateTheta","OptimalSupportPoint","SubjectBuilderExt","data","models","simulator","Covariates","Data","ErrorModel","ErrorType","Event","Occasion","Subject","read_pmetrics","one_compartment","one_compartment_with_absorption","two_compartments","two_compartments_with_absorption","Equation","PopulationPredictions","Prediction","SubjectPredictions","absolute_error","add_prediction","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","default","default","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","equation","errorpoly","flat_observations","flat_predictions","flat_time","fmt","fmt","fmt","from","from","from","from","from","from_subset","from_subset","from_subset","get_predictions","init","init","init","into","into","into","is_in_subset","is_in_subset","is_in_subset","likelihood","likelihood","observation","outeq","percentage_error","prediction","prediction_error","psi","squared_error","squared_error","subject_predictions","time","to_owned","to_owned","to_string","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","AnalyticalEq","DiffEq","Diffusion","Drift","Fa","Init","Lag","Neqs","Out","SecEq","equation","fitting","Equation","EquationTypes","P","Predictions","S","State","add_bolus","analytical","estimate_likelihood","estimate_predictions","get_predictions","new","ode","sde","simulate_subject","squared_error","Analytical","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","estimate_likelihood","fmt","from","from_subset","init","into","is_in_subset","new","one_compartment","one_compartment_with_absorption","to_owned","to_subset","to_subset_unchecked","try_from","try_into","two_compartments","two_compartments_with_absorption","type_id","vzip","ODE","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","estimate_likelihood","fmt","from","from_subset","init","into","is_in_subset","new","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","vzip","SDE","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","estimate_likelihood","fmt","from","from_subset","init","into","is_in_subset","new","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","vzip","EstimateTheta","OptimalSupportPoint","estimate_theta","optimal_support_point"],"q":[[0,"pharmsol"],[10,"pharmsol::data"],[18,"pharmsol::data::builder"],[51,"pharmsol::data::covariate"],[159,"pharmsol::data::covariate::InterpolationMethod"],[162,"pharmsol::data::error_model"],[210,"pharmsol::data::event"],[319,"pharmsol::data::structs"],[410,"pharmsol::prelude"],[416,"pharmsol::prelude::data"],[424,"pharmsol::prelude::models"],[428,"pharmsol::prelude::simulator"],[518,"pharmsol::simulator"],[530,"pharmsol::simulator::equation"],[546,"pharmsol::simulator::equation::analytical"],[574,"pharmsol::simulator::equation::ode"],[598,"pharmsol::simulator::equation::sde"],[622,"pharmsol::simulator::fitting"],[626,"alloc::string"],[627,"core::convert"],[628,"core::fmt"],[629,"core::option"],[630,"core::result"],[631,"core::any"],[632,"std::collections::hash::map"],[633,"serde::de"],[634,"alloc::vec"],[635,"ndarray::aliases"],[636,"std::fs"],[637,"pharmsol::simulator::likelihood"],[638,"nalgebra::base::alias"],[639,"pharmsol::data::parse_pmetrics"]],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,59,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,18,0,0,0,0,18,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,21,21,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,20,21,21,18,19,19,20,21,18,19,20,21,21,18,19,20,21,20,18,19,20,21,18,19,20,21,19,20,21,20,19,18,19,20,21,20,21,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,60,60,61,27,0,0,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,10,0,0,10,0,10,28,29,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,29,30,10,10,28,29,30,10,28,29,30,10,28,29,30,30,10,28,29,30,28,29,10,28,29,30,10,28,29,30,30,28,29,30,10,28,29,30,10,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,30,10,28,29,30,0,0,0,31,31,6,32,31,6,32,6,31,6,32,31,6,32,31,6,32,31,31,6,32,31,6,32,6,32,31,6,32,31,32,31,31,31,31,31,6,6,32,32,31,6,32,31,6,32,32,32,31,6,32,31,6,32,31,6,32,31,6,32,31,6,6,31,6,32,31,6,32,31,6,32,31,6,32,31,6,32,31,6,32,31,6,32,31,6,32,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,39,38,40,39,38,39,38,39,38,39,38,38,40,39,38,40,39,38,40,39,38,40,39,38,0,38,39,39,39,39,38,38,40,40,39,39,38,40,39,38,39,40,39,38,40,39,38,40,39,38,39,38,38,38,38,38,38,0,39,38,40,38,39,38,38,40,39,38,40,39,38,40,39,38,40,39,38,40,39,38,40,39,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0,62,0,41,0,35,35,42,42,0,0,35,42,0,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,0,0,43,43,43,43,43,0,0,43,43,0,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,0,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,0,0,57,58],"f":"````````````````````{{bddf}b}{{{h{c}}}{{h{e}}}{}{}}{{{h{jc}}}{{h{je}}}{}{}}{bl}{cb{{A`{n}}}}{{{h{b}}}b}{{{h{c}}{h{je}}}Ab{}{}}{{{h{c}}}Ab{}}{{bcdd}b{{A`{n}}}}{f{{h{c}}}{}}{f{{h{jc}}}{}}{fAb}{{bAd}b}{{{h{b}}{h{jAf}}}Ah}{cc{}}{{{h{c}}}e{}{}}{{bddfd}b}{{}f}{ce{}{}}{{{h{c}}}Aj{}}{{bddf}b}{{bddf{An{{Al{dddd}}}}Aj}b}{{bfd}b}{bb}8{{{h{c}}}{{An{e}}}{}{}}9{c{{B`{e}}}{}{}}0{{{h{c}}}Bb{}}8``````{{{h{c}}}{{h{e}}}{}{}}000{{{h{jc}}}{{h{je}}}{}{}}000{{{h{Bd}}}Bd}{{{h{Bf}}}Bf}{{{h{Bh}}}Bh}{{{h{Bj}}}Bj}{{{h{c}}{h{je}}}Ab{}{}}000{{{h{c}}}Ab{}}000{{{h{Bj}}}{{Bl{n{h{Bh}}}}}}{{}Bj}{f{{h{c}}}{}}000{f{{h{jc}}}{}}000{c{{B`{Bd}}}Bn}{c{{B`{Bf}}}Bn}{c{{B`{Bh}}}Bn}{c{{B`{Bj}}}Bn}{fAb}000{{{h{Bd}}{h{jAf}}}Ah}{{{h{Bf}}{h{jAf}}}Ah}{{{h{Bh}}{h{jAf}}}Ah}0{{{h{Bj}}{h{jAf}}}Ah}0{cc{}}{{{h{Bf}}}d}111{{{h{c}}}e{}{}}000{{{h{Bj}}{h{C`}}}{{An{{h{Bh}}}}}}{{}f}000{{{h{Bh}}d}{{An{d}}}}{ce{}{}}000{{{h{c}}}Aj{}}000{{{h{Bf}}}{{h{Bd}}}}{{{h{Bh}}}{{h{C`}}}}{{}Bj}{{{h{Bh}}}{{Cb{{h{Bf}}}}}}:9999{{{h{c}}}n{}}0{{{h{c}}}{{An{e}}}{}{}}000;;;;{c{{B`{e}}}{}{}}0000000{{{h{c}}}Bb{}}0009999```````{{{h{c}}}{{h{e}}}{}{}}0{{{h{jc}}}{{h{je}}}{}{}}0{{{h{Cd}}}Cd}{{{h{Cf}}}Cf}{{{h{c}}{h{je}}}Ab{}{}}0{{{h{c}}}Ab{}}0{f{{h{c}}}{}}0{f{{h{jc}}}{}}0{fAb}0{{{h{Cd}}{h{jAf}}}Ah}{{{h{Cf}}{h{jAf}}}Ah}{cc{}}0{{{h{c}}}e{}{}}0{{{h{Cd}}}d}{{}f}0{ce{}{}}0{{{h{c}}}Aj{}}0{{{Al{dddd}}d{h{Cf}}}Cd}55{{{h{c}}}{{An{e}}}{}{}}066{c{{B`{e}}}{}{}}000{{{h{c}}}Bb{}}055```````{{{h{Ch}}}d}{{{h{Cj}}}d}{{{h{c}}}{{h{e}}}{}{}}000{{{h{jc}}}{{h{je}}}{}{}}000{{{h{Ad}}}Ad}{{{h{Ch}}}Ch}{{{h{Cj}}}Cj}{{{h{Cl}}}Cl}{{{h{c}}{h{je}}}Ab{}{}}000{{{h{c}}}Ab{}}000{f{{h{c}}}{}}000{f{{h{jc}}}{}}000{c{{B`{Ad}}}Bn}{c{{B`{Ch}}}Bn}{c{{B`{Cj}}}Bn}{c{{B`{Cl}}}Bn}{fAb}000?{{{h{Cl}}}{{An{{Al{dddd}}}}}}{{{h{Ad}}{h{jAf}}}Ah}0{{{h{Ch}}{h{jAf}}}Ah}{{{h{Cj}}{h{jAf}}}Ah}{{{h{Cl}}{h{jAf}}}Ah}{cc{}}000{{{h{c}}}e{}{}}000{{{h{Cl}}}Aj}{{}f}000{{{h{Ch}}}f}{{{h{Cj}}}f}{ce{}{}}000{{{h{c}}}Aj{}}000{{{h{Cl}}}f}{{{h{Ch}}}d}{{{h{Cj}}}d}{{{h{Cl}}}d}::::{{{h{c}}}n{}}{{{h{c}}}{{An{e}}}{}{}}000<<<<{c{{B`{e}}}{}{}}0000000{{{h{c}}}Bb{}}00049999```{{{h{jCn}}l}Ab}{{{h{c}}}{{h{e}}}{}{}}00{{{h{jc}}}{{h{je}}}{}{}}00{cb{{A`{n}}}}{{{h{Cn}}}Cn}{{{h{l}}}l}{{{h{D`}}}D`}{{{h{c}}{h{je}}}Ab{}{}}00{{{h{c}}}Ab{}}00{{}Cn}{f{{h{c}}}{}}00{f{{h{jc}}}{}}00{c{{B`{l}}}Bn}{c{{B`{D`}}}Bn}{fAb}00{{{h{Cn}}{h{c}}{h{{Db{d}}}}}{{Dd{d}}}Df}{{{h{D`}}}{{Cb{{h{Ad}}}}}}{{{h{Cn}}dd}Cn}{{{h{Cn}}{Cb{n}}}Cn}{{{h{Cn}}{h{{Dh{n}}}}}Cn}{{{h{Cn}}{h{jAf}}}Ah}0{{{h{l}}{h{jAf}}}Ah}0{{{h{D`}}{h{jAf}}}Ah}0{cc{}}00{{{h{c}}}e{}{}}00{{{h{D`}}}{{An{{h{Bj}}}}}}{{{h{D`}}{An{{h{{Bl{fd}}}}}}{An{{h{{Bl{fd}}}}}}Aj}{{Cb{Ad}}}}{{{h{Cn}}}{{Cb{{h{l}}}}}}{{{h{l}}}{{h{n}}}}{{{h{D`}}}f}{{}f}00{ce{}{}}00{{{h{c}}}Aj{}}00{{{Cb{l}}}Cn}{{{h{l}}}{{Cb{{h{D`}}}}}}{{{h{l}}{h{c}}{h{{Db{d}}}}}{{Db{d}}}Df};;;{{{h{c}}}n{}}00{{{h{c}}}{{An{e}}}{}{}}00==={c{{B`{e}}}{}{}}00000{{{h{c}}}Bb{}}00888{{{h{Cn}}{h{Dj}}}Ab}`````````````{c{{B`{Cn`}}}{{A`{n}}}}````````{{{h{Dl}}}d}{{{h{jDn}}Dl}Ab}{{{h{c}}}{{h{e}}}{}{}}00{{{h{jc}}}{{h{je}}}{}{}}00{{{h{Dn}}}Dn}{{{h{Dl}}}Dl}{{{h{c}}{h{je}}}Ab{}{}}0{{{h{c}}}Ab{}}00{{}E`}{{}Dn}{{}Dl}{f{{h{c}}}{}}00{f{{h{jc}}}{}}00{fAb}00`{{{h{Dl}}}{{An{{Al{dddd}}}}}}{{{h{Dn}}}{{Cb{d}}}}00{{{h{Dn}}{h{jAf}}}Ah}{{{h{Dl}}{h{jAf}}}Ah}0{cc{}}{{{Dd{Dn}}}E`}1{{{Cb{Dl}}}Dn}2{{{h{c}}}e{}{}}00{{{h{Dn}}}{{h{{Cb{Dl}}}}}}{{}f}00{ce{}{}}00{{{h{c}}}Aj{}}00{{{h{Dn}}{h{Cd}}}d}{{{h{Dl}}{h{Cd}}}d}{{{h{Dl}}}d}{{{h{Dl}}}f}111{{{h{c}}{h{Cn}}{h{{Dd{d}}}}{h{Cd}}AjAj}{{Dd{d}}}Df}{{{h{Dn}}}d}3`3::{{{h{c}}}n{}}{{{h{c}}}{{An{e}}}{}{}}00<<<{c{{B`{e}}}{}{}}00000{{{h{c}}}Bb{}}00;;;``````````````````{{{h{jEb}}fd}Ab}`{{{h{Df}}{h{l}}{h{{Cb{d}}}}{h{Cd}}Aj}d}{{{h{Df}}{h{l}}{h{{Cb{d}}}}}c{}}{{{h{Ed}}}{{h{{Cb{Dl}}}}}}{fEd}``{{{h{Df}}{h{l}}{h{{Cb{d}}}}{An{{h{Cd}}}}}{{Al{c{An{d}}}}}{}}{{{h{Ed}}}d}`{{{h{c}}}{{h{e}}}{}{}}{{{h{jc}}}{{h{je}}}{}{}}{{{h{Ef}}}Ef}{{{h{c}}{h{je}}}Ab{}{}}{{{h{c}}}Ab{}}{f{{h{c}}}{}}{f{{h{jc}}}{}}{fAb}{{{h{Ef}}{h{l}}{h{{Cb{d}}}}{h{Cd}}Aj}d}{{{h{Ef}}{h{jAf}}}Ah}{cc{}}{{{h{c}}}e{}{}}{{}f}{ce{}{}}{{{h{c}}}Aj{}}{{EhEjElEnF`FbFd}Ef}{{{h{{Ff{d}}}}{h{{Ff{d}}}}d{Ff{d}}{h{Bj}}}{{Ff{d}}}}05{{{h{c}}}{{An{e}}}{}{}}6{c{{B`{e}}}{}{}}022{{{h{c}}}Bb{}}6`{{{h{c}}}{{h{e}}}{}{}}{{{h{jc}}}{{h{je}}}{}{}}{{{h{Fh}}}Fh}{{{h{c}}{h{je}}}Ab{}{}}{{{h{c}}}Ab{}}{f{{h{c}}}{}}{f{{h{jc}}}{}}{fAb}{{{h{Fh}}{h{l}}{h{{Cb{d}}}}{h{Cd}}Aj}d}{{{h{Fh}}{h{jAf}}}Ah}{cc{}}{{{h{c}}}e{}{}}{{}f}{ce{}{}}{{{h{c}}}Aj{}}{{FjElEnF`FbFd}Fh}4{{{h{c}}}{{An{e}}}{}{}}5{c{{B`{e}}}{}{}}0{{{h{c}}}Bb{}}5`{{{h{c}}}{{h{e}}}{}{}}{{{h{jc}}}{{h{je}}}{}{}}{{{h{Fl}}}Fl}{{{h{c}}{h{je}}}Ab{}{}}{{{h{c}}}Ab{}}{f{{h{c}}}{}}{f{{h{jc}}}{}}{fAb}{{{h{Fl}}{h{l}}{h{{Cb{d}}}}{h{Cd}}Aj}d}{{{h{Fl}}{h{jAf}}}Ah}{cc{}}{{{h{c}}}e{}{}}{{}f}{ce{}{}}{{{h{c}}}Aj{}}{{FnG`ElEnF`FbFdf}Fl}4{{{h{c}}}{{An{e}}}{}{}}5{c{{B`{e}}}{}{}}0{{{h{c}}}Bb{}}5``{{{h{Gb}}{h{c}}{h{{Db{d}}}}}{{Dd{d}}}Df}{{{h{Gd}}{h{c}}{h{{Db{d}}}}}{{Db{d}}}Df}","D":"Jl","p":[[5,"SubjectBuilder",18],[1,"f64"],[1,"usize"],[1,"reference"],[0,"mut"],[5,"Subject",319],[5,"String",626],[10,"Into",627],[1,"unit"],[6,"Event",210],[5,"Formatter",628],[8,"Result",628],[1,"bool"],[1,"tuple"],[6,"Option",629],[6,"Result",630],[5,"TypeId",631],[6,"InterpolationMethod",51],[5,"CovariateSegment",51],[5,"Covariate",51],[5,"Covariates",51],[5,"HashMap",632],[10,"Deserializer",633],[1,"str"],[5,"Vec",634],[5,"ErrorModel",162],[6,"ErrorType",162],[5,"Bolus",210],[5,"Infusion",210],[5,"Observation",210],[5,"Data",319],[5,"Occasion",319],[8,"Array1",635],[8,"Array2",635],[10,"Equation",530],[1,"slice"],[5,"File",636],[5,"Prediction",428,637],[5,"SubjectPredictions",428,637],[5,"PopulationPredictions",428,637],[10,"State",530],[10,"Predictions",530],[5,"Analytical",546],[8,"AnalyticalEq",518],[8,"SecEq",518],[8,"Lag",518],[8,"Fa",518],[8,"Init",518],[8,"Out",518],[8,"Neqs",518],[8,"DVector",638],[5,"ODE",574],[8,"DiffEq",518],[5,"SDE",598],[8,"Drift",518],[8,"Diffusion",518],[10,"EstimateTheta",622],[10,"OptimalSupportPoint",622],[10,"SubjectBuilderExt",18],[15,"Linear",159],[15,"CarryForward",159],[10,"EquationTypes",530]],"r":[[0,574],[1,18],[3,518],[10,319],[11,319],[12,319],[410,622],[411,622],[412,18],[416,51],[417,319],[418,162],[419,162],[420,210],[421,319],[422,319],[423,639],[424,546],[425,546],[426,546],[427,546],[428,530],[429,637],[430,637],[431,637],[459,518],[492,637]],"b":[[97,"impl-Display-for-Covariate"],[98,"impl-Debug-for-Covariate"],[99,"impl-Debug-for-Covariates"],[100,"impl-Display-for-Covariates"],[257,"impl-Debug-for-Event"],[258,"impl-Display-for-Event"],[356,"impl-Debug-for-Data"],[357,"impl-Display-for-Data"],[358,"impl-Display-for-Subject"],[359,"impl-Debug-for-Subject"],[360,"impl-Debug-for-Occasion"],[361,"impl-Display-for-Occasion"],[465,"impl-Display-for-Prediction"],[466,"impl-Debug-for-Prediction"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABwCKgAAACIAJAACACgADAA4AC0AZwAAAGsACQB5AD8AuwAEAMIAEADUAAAA1wAAANkAAADcACMAAgEEAAsBAwAQAQMAGgEDACIBGAA8AQMARAEdAGUBBQBuAQQAdAEAAHYBAgB8AQIAgAEnAKkBBQCwASMA1QEAANcBAADZAQYA4wEjABECCQAcAhEALwIBADICAQA2AgQAPQIMAEsCAQBOAhMAYwIBAGYCDAA="}]\ +["pharmsol",{"t":"EECEQQQQCCEEECCCCCFKNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNPFFFGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOPFGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPGFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNEEECCCEEEEEEEHEEEEEFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNONNNNNNNNNNNNNNNNNNNNNNIIIIIIIIIICCKKRKRKMCMNMNCCNMFNNNNNNNNNNNNNNNNHHNNNNNHHNNFNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNKKMM","n":["ODE","SubjectBuilderExt","data","equation","fa","fetch_cov","fetch_params","lag","prelude","simulator","Data","Occasion","Subject","builder","covariate","error_model","event","structs","SubjectBuilder","SubjectBuilderExt","bolus","borrow","borrow_mut","build","builder","clone","clone_into","clone_to_uninit","covariate","deref","deref_mut","drop","event","fmt","from","from_subset","infusion","init","into","is_in_subset","observation","observation_with_error","repeat","reset","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","vzip","CarryForward","Covariate","CovariateSegment","Covariates","InterpolationMethod","Linear","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","covariates","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_subset","from_subset","from_subset","from_subset","get_covariate","init","init","init","init","interpolate","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","method","name","new","segments","to","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","intercept","slope","value","Add","ErrorModel","ErrorType","Prop","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","from_subset","from_subset","gl","init","init","into","into","is_in_subset","is_in_subset","new","to_owned","to_owned","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Bolus","Bolus","Event","Infusion","Infusion","Observation","Observation","amount","amount","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","duration","errorpoly","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_subset","from_subset","from_subset","from_subset","ignore","init","init","init","init","input","input","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","outeq","time","time","time","to_owned","to_owned","to_owned","to_owned","to_string","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","value","vzip","vzip","vzip","vzip","Data","Occasion","Subject","add_subject","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","builder","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","deserialize","drop","drop","drop","estimate_theta","events","expand","filter_exclude","filter_include","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from_subset","from_subset","from_subset","get_covariates","get_events","get_subjects","id","index","init","init","init","into","into","into","is_in_subset","is_in_subset","is_in_subset","new","occasions","optimal_support_point","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","write_pmetrics","EstimateTheta","OptimalSupportPoint","SubjectBuilderExt","data","models","simulator","Covariates","Data","ErrorModel","ErrorType","Event","Occasion","Subject","read_pmetrics","one_compartment","one_compartment_with_absorption","two_compartments","two_compartments_with_absorption","Equation","PopulationPredictions","Prediction","SubjectPredictions","absolute_error","add_prediction","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","default","default","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","equation","errorpoly","flat_observations","flat_predictions","flat_time","fmt","fmt","fmt","from","from","from","from","from","from_subset","from_subset","from_subset","get_predictions","init","init","init","into","into","into","is_in_subset","is_in_subset","is_in_subset","likelihood","likelihood","observation","outeq","percentage_error","prediction","prediction_error","psi","squared_error","squared_error","subject_predictions","time","to_owned","to_owned","to_string","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","AnalyticalEq","DiffEq","Diffusion","Drift","Fa","Init","Lag","Neqs","Out","SecEq","equation","fitting","Equation","EquationTypes","P","Predictions","S","State","add_bolus","analytical","estimate_likelihood","estimate_predictions","get_predictions","new","ode","sde","simulate_subject","squared_error","Analytical","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","estimate_likelihood","fmt","from","from_subset","init","into","is_in_subset","new","one_compartment","one_compartment_with_absorption","to_owned","to_subset","to_subset_unchecked","try_from","try_into","two_compartments","two_compartments_with_absorption","type_id","vzip","ODE","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","estimate_likelihood","fmt","from","from_subset","init","into","is_in_subset","new","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","vzip","SDE","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","estimate_likelihood","fmt","from","from_subset","init","into","is_in_subset","new","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","vzip","EstimateTheta","OptimalSupportPoint","estimate_theta","optimal_support_point"],"q":[[0,"pharmsol"],[10,"pharmsol::data"],[18,"pharmsol::data::builder"],[51,"pharmsol::data::covariate"],[159,"pharmsol::data::covariate::InterpolationMethod"],[162,"pharmsol::data::error_model"],[210,"pharmsol::data::event"],[319,"pharmsol::data::structs"],[410,"pharmsol::prelude"],[416,"pharmsol::prelude::data"],[424,"pharmsol::prelude::models"],[428,"pharmsol::prelude::simulator"],[518,"pharmsol::simulator"],[530,"pharmsol::simulator::equation"],[546,"pharmsol::simulator::equation::analytical"],[574,"pharmsol::simulator::equation::ode"],[598,"pharmsol::simulator::equation::sde"],[622,"pharmsol::simulator::fitting"],[626,"alloc::string"],[627,"core::convert"],[628,"core::fmt"],[629,"core::option"],[630,"core::result"],[631,"core::any"],[632,"std::collections::hash::map"],[633,"serde::de"],[634,"alloc::vec"],[635,"ndarray::aliases"],[636,"std::fs"],[637,"pharmsol::simulator::likelihood"],[638,"nalgebra::base::alias"],[639,"pharmsol::data::parse_pmetrics"]],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,59,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,18,0,0,0,0,18,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,21,21,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,20,21,21,18,19,19,20,21,18,19,20,21,21,18,19,20,21,20,18,19,20,21,18,19,20,21,19,20,21,20,19,18,19,20,21,20,21,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,60,60,61,27,0,0,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,10,0,0,10,0,10,28,29,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,29,30,10,10,28,29,30,10,28,29,30,10,28,29,30,30,10,28,29,30,28,29,10,28,29,30,10,28,29,30,30,28,29,30,10,28,29,30,10,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,10,28,29,30,30,10,28,29,30,0,0,0,31,31,6,32,31,6,32,6,31,6,32,31,6,32,31,6,32,31,31,6,32,31,6,32,6,32,31,6,32,31,32,31,31,31,31,31,6,6,32,32,31,6,32,31,6,32,32,32,31,6,32,31,6,32,31,6,32,31,6,32,31,6,6,31,6,32,31,6,32,31,6,32,31,6,32,31,6,32,31,6,32,31,6,32,31,6,32,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,39,38,40,39,38,39,38,39,38,39,38,38,40,39,38,40,39,38,40,39,38,40,39,38,0,38,39,39,39,39,38,38,40,40,39,39,38,40,39,38,39,40,39,38,40,39,38,40,39,38,39,38,38,38,38,38,38,0,39,38,40,38,39,38,38,40,39,38,40,39,38,40,39,38,40,39,38,40,39,38,40,39,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0,62,0,41,0,35,35,42,42,0,0,35,42,0,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,0,0,43,43,43,43,43,0,0,43,43,0,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,0,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,0,0,57,58],"f":"````````````````````{{bddf}b}{{{h{c}}}{{h{e}}}{}{}}{{{h{jc}}}{{h{je}}}{}{}}{bl}{cb{{A`{n}}}}{{{h{b}}}b}{{{h{c}}{h{je}}}Ab{}{}}{{{h{c}}}Ab{}}{{bcdd}b{{A`{n}}}}{f{{h{c}}}{}}{f{{h{jc}}}{}}{fAb}{{bAd}b}{{{h{b}}{h{jAf}}}Ah}{cc{}}{{{h{c}}}e{}{}}{{bddfd}b}{{}f}{ce{}{}}{{{h{c}}}Aj{}}{{bddf}b}{{bddf{An{{Al{dddd}}}}Aj}b}{{bfd}b}{bb}8{{{h{c}}}{{An{e}}}{}{}}9{c{{B`{e}}}{}{}}0{{{h{c}}}Bb{}}8``````{{{h{c}}}{{h{e}}}{}{}}000{{{h{jc}}}{{h{je}}}{}{}}000{{{h{Bd}}}Bd}{{{h{Bf}}}Bf}{{{h{Bh}}}Bh}{{{h{Bj}}}Bj}{{{h{c}}{h{je}}}Ab{}{}}000{{{h{c}}}Ab{}}000{{{h{Bj}}}{{Bl{n{h{Bh}}}}}}{{}Bj}{f{{h{c}}}{}}000{f{{h{jc}}}{}}000{c{{B`{Bd}}}Bn}{c{{B`{Bf}}}Bn}{c{{B`{Bh}}}Bn}{c{{B`{Bj}}}Bn}{fAb}000{{{h{Bd}}{h{jAf}}}Ah}{{{h{Bf}}{h{jAf}}}Ah}{{{h{Bh}}{h{jAf}}}Ah}0{{{h{Bj}}{h{jAf}}}Ah}0{cc{}}0{{{h{Bf}}}d}11{{{h{c}}}e{}{}}000{{{h{Bj}}{h{C`}}}{{An{{h{Bh}}}}}}{{}f}000{{{h{Bh}}d}{{An{d}}}}{ce{}{}}000{{{h{c}}}Aj{}}000{{{h{Bf}}}{{h{Bd}}}}{{{h{Bh}}}{{h{C`}}}}{{}Bj}{{{h{Bh}}}{{Cb{{h{Bf}}}}}}:9999{{{h{c}}}n{}}0{{{h{c}}}{{An{e}}}{}{}}000;;;;{c{{B`{e}}}{}{}}0000000{{{h{c}}}Bb{}}0009999```````{{{h{c}}}{{h{e}}}{}{}}0{{{h{jc}}}{{h{je}}}{}{}}0{{{h{Cd}}}Cd}{{{h{Cf}}}Cf}{{{h{c}}{h{je}}}Ab{}{}}0{{{h{c}}}Ab{}}0{f{{h{c}}}{}}0{f{{h{jc}}}{}}0{fAb}0{{{h{Cd}}{h{jAf}}}Ah}{{{h{Cf}}{h{jAf}}}Ah}{cc{}}0{{{h{c}}}e{}{}}0{{{h{Cd}}}d}{{}f}0{ce{}{}}0{{{h{c}}}Aj{}}0{{{Al{dddd}}d{h{Cf}}}Cd}55{{{h{c}}}{{An{e}}}{}{}}066{c{{B`{e}}}{}{}}000{{{h{c}}}Bb{}}055```````{{{h{Ch}}}d}{{{h{Cj}}}d}{{{h{c}}}{{h{e}}}{}{}}000{{{h{jc}}}{{h{je}}}{}{}}000{{{h{Ad}}}Ad}{{{h{Ch}}}Ch}{{{h{Cj}}}Cj}{{{h{Cl}}}Cl}{{{h{c}}{h{je}}}Ab{}{}}000{{{h{c}}}Ab{}}000{f{{h{c}}}{}}000{f{{h{jc}}}{}}000{c{{B`{Ad}}}Bn}{c{{B`{Ch}}}Bn}{c{{B`{Cj}}}Bn}{c{{B`{Cl}}}Bn}{fAb}000?{{{h{Cl}}}{{An{{Al{dddd}}}}}}{{{h{Ad}}{h{jAf}}}Ah}0{{{h{Ch}}{h{jAf}}}Ah}{{{h{Cj}}{h{jAf}}}Ah}{{{h{Cl}}{h{jAf}}}Ah}{cc{}}000{{{h{c}}}e{}{}}000{{{h{Cl}}}Aj}{{}f}000{{{h{Ch}}}f}{{{h{Cj}}}f}{ce{}{}}000{{{h{c}}}Aj{}}000{{{h{Cl}}}f}{{{h{Ch}}}d}{{{h{Cj}}}d}{{{h{Cl}}}d}::::{{{h{c}}}n{}}{{{h{c}}}{{An{e}}}{}{}}000<<<<{c{{B`{e}}}{}{}}0000000{{{h{c}}}Bb{}}00049999```{{{h{jCn}}l}Ab}{{{h{c}}}{{h{e}}}{}{}}00{{{h{jc}}}{{h{je}}}{}{}}00{cb{{A`{n}}}}{{{h{Cn}}}Cn}{{{h{l}}}l}{{{h{D`}}}D`}{{{h{c}}{h{je}}}Ab{}{}}00{{{h{c}}}Ab{}}00{{}Cn}{f{{h{c}}}{}}00{f{{h{jc}}}{}}00{c{{B`{l}}}Bn}{c{{B`{D`}}}Bn}{fAb}00{{{h{Cn}}{h{c}}{h{{Db{d}}}}}{{Dd{d}}}Df}{{{h{D`}}}{{Cb{{h{Ad}}}}}}{{{h{Cn}}dd}Cn}{{{h{Cn}}{Cb{n}}}Cn}{{{h{Cn}}{h{{Dh{n}}}}}Cn}{{{h{Cn}}{h{jAf}}}Ah}0{{{h{l}}{h{jAf}}}Ah}0{{{h{D`}}{h{jAf}}}Ah}0{cc{}}00{{{h{c}}}e{}{}}00{{{h{D`}}}{{An{{h{Bj}}}}}}{{{h{D`}}{An{{h{{Bl{fd}}}}}}{An{{h{{Bl{fd}}}}}}Aj}{{Cb{Ad}}}}{{{h{Cn}}}{{Cb{{h{l}}}}}}{{{h{l}}}{{h{n}}}}{{{h{D`}}}f}{{}f}00{ce{}{}}00{{{h{c}}}Aj{}}00{{{Cb{l}}}Cn}{{{h{l}}}{{Cb{{h{D`}}}}}}{{{h{l}}{h{c}}{h{{Db{d}}}}}{{Db{d}}}Df};;;{{{h{c}}}n{}}00{{{h{c}}}{{An{e}}}{}{}}00==={c{{B`{e}}}{}{}}00000{{{h{c}}}Bb{}}00888{{{h{Cn}}{h{Dj}}}Ab}`````````````{c{{B`{Cn`}}}{{A`{n}}}}````````{{{h{Dl}}}d}{{{h{jDn}}Dl}Ab}{{{h{c}}}{{h{e}}}{}{}}00{{{h{jc}}}{{h{je}}}{}{}}00{{{h{Dn}}}Dn}{{{h{Dl}}}Dl}{{{h{c}}{h{je}}}Ab{}{}}0{{{h{c}}}Ab{}}00{{}E`}{{}Dn}{{}Dl}{f{{h{c}}}{}}00{f{{h{jc}}}{}}00{fAb}00`{{{h{Dl}}}{{An{{Al{dddd}}}}}}{{{h{Dn}}}{{Cb{d}}}}00{{{h{Dn}}{h{jAf}}}Ah}{{{h{Dl}}{h{jAf}}}Ah}0{cc{}}{{{Dd{Dn}}}E`}1{{{Cb{Dl}}}Dn}2{{{h{c}}}e{}{}}00{{{h{Dn}}}{{h{{Cb{Dl}}}}}}{{}f}00{ce{}{}}00{{{h{c}}}Aj{}}00{{{h{Dn}}{h{Cd}}}d}{{{h{Dl}}{h{Cd}}}d}{{{h{Dl}}}d}{{{h{Dl}}}f}111{{{h{c}}{h{Cn}}{h{{Dd{d}}}}{h{Cd}}AjAj}{{Dd{d}}}Df}{{{h{Dn}}}d}3`3::{{{h{c}}}n{}}{{{h{c}}}{{An{e}}}{}{}}00<<<{c{{B`{e}}}{}{}}00000{{{h{c}}}Bb{}}00;;;``````````````````{{{h{jEb}}fd}Ab}`{{{h{Df}}{h{l}}{h{{Cb{d}}}}{h{Cd}}Aj}d}{{{h{Df}}{h{l}}{h{{Cb{d}}}}}c{}}{{{h{Ed}}}{{h{{Cb{Dl}}}}}}{fEd}``{{{h{Df}}{h{l}}{h{{Cb{d}}}}{An{{h{Cd}}}}}{{Al{c{An{d}}}}}{}}{{{h{Ed}}}d}`{{{h{c}}}{{h{e}}}{}{}}{{{h{jc}}}{{h{je}}}{}{}}{{{h{Ef}}}Ef}{{{h{c}}{h{je}}}Ab{}{}}{{{h{c}}}Ab{}}{f{{h{c}}}{}}{f{{h{jc}}}{}}{fAb}{{{h{Ef}}{h{l}}{h{{Cb{d}}}}{h{Cd}}Aj}d}{{{h{Ef}}{h{jAf}}}Ah}{cc{}}{{{h{c}}}e{}{}}{{}f}{ce{}{}}{{{h{c}}}Aj{}}{{EhEjElEnF`FbFd}Ef}{{{h{{Ff{d}}}}{h{{Ff{d}}}}d{Ff{d}}{h{Bj}}}{{Ff{d}}}}05{{{h{c}}}{{An{e}}}{}{}}6{c{{B`{e}}}{}{}}022{{{h{c}}}Bb{}}6`{{{h{c}}}{{h{e}}}{}{}}{{{h{jc}}}{{h{je}}}{}{}}{{{h{Fh}}}Fh}{{{h{c}}{h{je}}}Ab{}{}}{{{h{c}}}Ab{}}{f{{h{c}}}{}}{f{{h{jc}}}{}}{fAb}{{{h{Fh}}{h{l}}{h{{Cb{d}}}}{h{Cd}}Aj}d}{{{h{Fh}}{h{jAf}}}Ah}{cc{}}{{{h{c}}}e{}{}}{{}f}{ce{}{}}{{{h{c}}}Aj{}}{{FjElEnF`FbFd}Fh}4{{{h{c}}}{{An{e}}}{}{}}5{c{{B`{e}}}{}{}}0{{{h{c}}}Bb{}}5`{{{h{c}}}{{h{e}}}{}{}}{{{h{jc}}}{{h{je}}}{}{}}{{{h{Fl}}}Fl}{{{h{c}}{h{je}}}Ab{}{}}{{{h{c}}}Ab{}}{f{{h{c}}}{}}{f{{h{jc}}}{}}{fAb}{{{h{Fl}}{h{l}}{h{{Cb{d}}}}{h{Cd}}Aj}d}{{{h{Fl}}{h{jAf}}}Ah}{cc{}}{{{h{c}}}e{}{}}{{}f}{ce{}{}}{{{h{c}}}Aj{}}{{FnG`ElEnF`FbFdf}Fl}4{{{h{c}}}{{An{e}}}{}{}}5{c{{B`{e}}}{}{}}0{{{h{c}}}Bb{}}5``{{{h{Gb}}{h{c}}{h{{Db{d}}}}}{{Dd{d}}}Df}{{{h{Gd}}{h{c}}{h{{Db{d}}}}}{{Db{d}}}Df}","D":"Jl","p":[[5,"SubjectBuilder",18],[1,"f64"],[1,"usize"],[1,"reference"],[0,"mut"],[5,"Subject",319],[5,"String",626],[10,"Into",627],[1,"unit"],[6,"Event",210],[5,"Formatter",628],[8,"Result",628],[1,"bool"],[1,"tuple"],[6,"Option",629],[6,"Result",630],[5,"TypeId",631],[6,"InterpolationMethod",51],[5,"CovariateSegment",51],[5,"Covariate",51],[5,"Covariates",51],[5,"HashMap",632],[10,"Deserializer",633],[1,"str"],[5,"Vec",634],[5,"ErrorModel",162],[6,"ErrorType",162],[5,"Bolus",210],[5,"Infusion",210],[5,"Observation",210],[5,"Data",319],[5,"Occasion",319],[8,"Array1",635],[8,"Array2",635],[10,"Equation",530],[1,"slice"],[5,"File",636],[5,"Prediction",428,637],[5,"SubjectPredictions",428,637],[5,"PopulationPredictions",428,637],[10,"State",530],[10,"Predictions",530],[5,"Analytical",546],[8,"AnalyticalEq",518],[8,"SecEq",518],[8,"Lag",518],[8,"Fa",518],[8,"Init",518],[8,"Out",518],[8,"Neqs",518],[8,"DVector",638],[5,"ODE",574],[8,"DiffEq",518],[5,"SDE",598],[8,"Drift",518],[8,"Diffusion",518],[10,"EstimateTheta",622],[10,"OptimalSupportPoint",622],[10,"SubjectBuilderExt",18],[15,"Linear",159],[15,"CarryForward",159],[10,"EquationTypes",530]],"r":[[0,574],[1,18],[3,518],[10,319],[11,319],[12,319],[410,622],[411,622],[412,18],[416,51],[417,319],[418,162],[419,162],[420,210],[421,319],[422,319],[423,639],[424,546],[425,546],[426,546],[427,546],[428,530],[429,637],[430,637],[431,637],[459,518],[492,637]],"b":[[97,"impl-Debug-for-Covariate"],[98,"impl-Display-for-Covariate"],[99,"impl-Debug-for-Covariates"],[100,"impl-Display-for-Covariates"],[257,"impl-Display-for-Event"],[258,"impl-Debug-for-Event"],[356,"impl-Display-for-Data"],[357,"impl-Debug-for-Data"],[358,"impl-Display-for-Subject"],[359,"impl-Debug-for-Subject"],[360,"impl-Display-for-Occasion"],[361,"impl-Debug-for-Occasion"],[465,"impl-Debug-for-Prediction"],[466,"impl-Display-for-Prediction"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABwCKgAAACIAJAACACgADAA4AC0AaAAAAGsACQB5AD8AuwAEAMIAEADUAAAA1wAAANkAAADcACMAAgEEAAsBAwAQAQMAGgEDACIBGAA8AQMARAEdAGUBBQBuAQQAdAEAAHYBAgB8AQIAgAEnAKkBBQCwASMA1QEAANcBAADZAQYA4wEjABECCQAcAhEALwIBADICAQA2AgQAPQIMAEsCAQBOAhMAYwIBAGYCDAA="}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/src/pharmsol/simulator/equation/ode/mod.rs.html b/src/pharmsol/simulator/equation/ode/mod.rs.html index 1854a21..6fa0e06 100644 --- a/src/pharmsol/simulator/equation/ode/mod.rs.html +++ b/src/pharmsol/simulator/equation/ode/mod.rs.html @@ -199,6 +199,42 @@ 199 200 201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237
mod closure;
 mod diffsol_traits;
 
@@ -252,8 +288,24 @@
         self[input] += amount;
     }
 }
-fn spphash(spp: &[f64]) -> u64 {
-    spp.iter().fold(0, |acc, x| acc + x.to_bits())
+
+// Hash the support points by converting them to bits and summing them
+// The wrapping_add is used to avoid overflow, and prevent panics
+fn spphash(spp: &[f64]) -> u64 {
+    let mut hasher = std::hash::DefaultHasher::new();
+    spp.iter().for_each(|&value| {
+        // Normalize negative zero to zero, e.g. -0.0 -> 0.0
+        let normalized_value = if value == 0.0 && value.is_sign_negative() {
+            0.0
+        } else {
+            value
+        };
+        // Convert the value to bits and hash it
+        let bits = normalized_value.to_bits();
+        std::hash::Hash::hash(&bits, &mut hasher);
+    });
+
+    std::hash::Hasher::finish(&hasher)
 }
 
 #[inline(always)]
@@ -400,4 +452,24 @@
         _estimate_likelihood(self, subject, support_point, error_model, cache)
     }
 }
+
+// Test spphash
+#[cfg(test)]
+mod tests {
+    use super::*;
+    #[test]
+    fn test_spphash() {
+        let spp1 = vec![1.0, 2.0, 3.0];
+        let spp2 = vec![1.0, 2.0, 3.0];
+        let spp3 = vec![3.0, 2.0, 1.0];
+        let spp4 = vec![1.0, 2.0, 3.000001];
+        // Equal values should have the same hash
+        assert_eq!(spphash(&spp1), spphash(&spp2));
+        // Mirrored values should have different hashes
+        assert_ne!(spphash(&spp1), spphash(&spp3));
+        // Very close values should have different hashes
+        // Note: Due to f64 precision this will fail for values that are very close, e.g. 3.0 and 3.0000000000000001
+        assert_ne!(spphash(&spp1), spphash(&spp4));
+    }
+}
 
\ No newline at end of file