sciforge 0.0.3

A comprehensive scientific computing library in pure Rust with zero dependencies
Documentation
use crate::constants::{DISSOLVED_O2_COEFF, HB_O2_CAPACITY, O2_DELIVERY_SCALING};

pub fn tidal_volume(respiratory_rate: f64, minute_ventilation: f64) -> f64 {
    minute_ventilation / respiratory_rate
}

pub fn alveolar_ventilation(tidal_volume: f64, dead_space: f64, rate: f64) -> f64 {
    (tidal_volume - dead_space) * rate
}

pub fn alveolar_gas_equation(fio2: f64, p_atm: f64, p_h2o: f64, paco2: f64, rq: f64) -> f64 {
    fio2 * (p_atm - p_h2o) - paco2 / rq
}

pub fn airway_resistance(pressure_drop: f64, flow: f64) -> f64 {
    pressure_drop / flow
}

pub fn lung_compliance(volume_change: f64, pressure_change: f64) -> f64 {
    volume_change / pressure_change
}

pub fn oxygen_content(hb: f64, sao2: f64, pao2: f64) -> f64 {
    HB_O2_CAPACITY * hb * sao2 + DISSOLVED_O2_COEFF * pao2
}

pub fn oxygen_delivery(cardiac_output: f64, cao2: f64) -> f64 {
    cardiac_output * cao2 * O2_DELIVERY_SCALING
}

pub fn fick_oxygen_consumption(cardiac_output: f64, cao2: f64, cvo2: f64) -> f64 {
    cardiac_output * (cao2 - cvo2) * O2_DELIVERY_SCALING
}