[go: up one dir, main page]

enterpolation 0.3.0

A library for creating and computing interpolations, extrapolations and smoothing of generic data points.
Documentation
#![cfg_attr(any(not(doctest), all(feature = "linear", feature = "bspline", feature = "std")), doc = include_str!("../README.md"))]
#![cfg_attr(not(feature = "std"), no_std)]
#![warn(
    anonymous_parameters,
    missing_copy_implementations,
    missing_debug_implementations,
    missing_docs,
    nonstandard_style,
    rust_2018_idioms,
    single_use_lifetimes,
    trivial_casts,
    trivial_numeric_casts,
    unreachable_pub,
    unused_extern_crates,
    unused_qualifications,
    variant_size_differences
)]

#[cfg(test)]
#[macro_use]
extern crate assert_float_eq;

#[cfg(not(any(feature = "std", feature = "libm")))]
compile_error!(
    "The enterpolation crate needs a library for floats. Please enable either \"std\" or \"libm\" as a feature."
);

#[cfg(feature = "bezier")]
pub mod bezier;
#[cfg(feature = "bspline")]
pub mod bspline;
pub mod easing;
#[cfg(feature = "linear")]
pub mod linear;
pub mod utils;
pub mod weights;

mod base;
mod builder;

pub use topology_traits::Merge;

#[cfg(feature = "std")]
pub use base::DynSpace;
pub use base::{
    Chain, Clamp, Composite, ConstChain, ConstEquidistant, ConstSpace, Curve, Equidistant, Extract,
    NotSorted, Repeat, Signal, Slice, Sorted, SortedChain, Space, Stack, Stepper, TransformInput,
    Wrap,
};
pub use easing::Identity;
// pub use weights::{Homogeneous, Weighted, Weights, IntoWeight};