///|
/// Body carries an original KDE sample index, coordinate and estimated density,
/// rather than an input observation or probability mass. Quantile carries the
/// original quantile index and value; its requested probability is not retained.
pub(all) enum ViolinPart {
Body(Int32, Double, Double)
Mean
Median
Minimum
Maximum
Range
Quantile(Int32, Double)
} derive(Eq, Debug)
///|
pub extend ViolinPart with Eq::{equal, not_equal}
///|
pub extend ViolinPart with @debug.Debug::{to_repr}
///|
/// Immutable scalar summary of an original zero-based violin group.
/// No source observations, KDE arrays or mutable statistics are retained.
pub struct ViolinInfo {
group_index : Int32
position : Double
horizontal : Bool
mean : Double
median : Double
minimum : Double
maximum : Double
part : ViolinPart
} derive(Eq, Debug)
///|
pub extend ViolinInfo with Eq::{equal, not_equal}
///|
pub extend ViolinInfo with @debug.Debug::{to_repr}
///|
pub fn violin_info(
group_index : Int32,
position~ : Double,
mean~ : Double,
median~ : Double,
minimum~ : Double,
maximum~ : Double,
part~ : ViolinPart,
horizontal~ : Bool = false,
) -> ViolinInfo {
{ group_index, position, horizontal, mean, median, minimum, maximum, part, }
}