//! The min/max reduction every envelope goes through.
//!
//! - [`fold`](mod@fold): folds samples into `[min, max]` columns (vectorized, parallel on the rayon pool,
//! NaN skipped), for channel-major and time-major blocks.
//! - [`buckets`]: min/max of one slice into a fixed number of buckets.
//! - [`device`] (feature `device`): the same columns from samples already on the device, so
//! only the columns are downloaded; its kernel lives in [`kernels`].
pub use ;
pub use envelope_on_device;
pub use envelope_kernel;
pub use ;