#![feature(box_syntax)]
#![feature(cfg_target_feature)]
extern crate simd;
extern crate num_cpus;
extern crate crossbeam;
extern crate num;
extern crate rustfft;
mod vector_types;
mod multicore_support;
mod simd_extensions;
mod complex_extensions;
pub mod window_functions;
pub mod conv_types;
pub mod interop_facade;
pub use vector_types::
{
DataVectorDomain,
DataVector,
VecResult,
VoidResult,
ErrorReason,
GenericVectorOperations,
RealVectorOperations,
ComplexVectorOperations,
TimeDomainOperations,
FrequencyDomainOperations,
SymmetricFrequencyDomainOperations,
SymmetricTimeDomainOperations,
GenericDataVector,
ComplexFreqVector,
ComplexTimeVector,
RealTimeVector,
RealFreqVector,
DataVector32,
RealTimeVector32,
ComplexTimeVector32,
RealFreqVector32,
ComplexFreqVector32,
DataVector64,
RealTimeVector64,
ComplexTimeVector64,
RealFreqVector64,
ComplexFreqVector64,
Operation,
Statistics,
RededicateVector,
Scale,
Offset,
Convolution,
VectorConvolution,
FrequencyMultiplication,
CrossCorrelation,
Interpolation,
RealInterpolation,
PaddingOption
};
pub use multicore_support::MultiCoreSettings;
use num::traits::Float;
pub trait RealNumber : Float + Copy + Clone + Send + Sync { }
impl<T> RealNumber for T
where T: Float + Copy + Clone + Send + Sync {}