///|
/// Calculates Inverse Probability Weights for Average Treatment Effect (ATE).
pub fn ipw_weights_ate(
treatments : Array[Bool],
propensity_scores : Array[Double],
) -> Array[Double] {
let n = if treatments.length() < propensity_scores.length() {
treatments.length()
} else {
propensity_scores.length()
}
let weights = Array::new(capacity=n)
for i in 0.. Array[Double] {
let n = if treatments.length() < propensity_scores.length() {
treatments.length()
} else {
propensity_scores.length()
}
let weights = Array::new(capacity=n)
for i in 0..