# Changelog
## v0.8.1
### Added
- None
### Changed
- added `must_use` attribute to `Vector` struct (new clippy +beta lint fail on `Vector` methods returning `Self` without attribute)
## v0.8.0
### Added
- `parallel` feature
- Optional `parallel` feature rayon parallel iterators over `Vector` scalars
- Optional `parallel` feature rayon parallel slices over immutable `Vector` scalar references
- Optional `parallel` feature rayon parallel slices over mutable `Vector` scalar references
- Optional `parallel` feature `Vector::into_par_iter` method
- Optional `parallel` feature `Vector::par_iter` method
- Optional `parallel` feature `Vector::par_iter_mut` method
- Optional `parallel` feature `Vector::as_parallel_slice` method
- Optional `parallel` feature `Vector::as_parallel_slice_mut` method
### Changed
- release.toml: updated the regular expression for lib.rs automated version number replacements
- docs: revised Getting Started guide with available optional feature support
- docs: revised Getting Started guide installation instructions with new, optional feature Cargo.toml configuration
- docs: revised Getting Started guide, Iteration and Loops section, with information on new, optional parallel iterator support
## v0.7.0
### Added
- `macros` module
- `vector!` macro for initialization of `Vector` with infallible data
- `try_vector!` macro for initialization of `Vector` with fallible data
- `Vector::min` method for element-wise minimum value with `Num` data types that support the `std::cmp::Ord` trait
- `Vector::min_fp` method for element-wise minimum value with floating point data types that do not support the `std::cmp::Ord` trait
- `Vector::max` method for element-wise maximum value with `Num` data types that support the `std::cmp::Ord` trait
- `Vector::max_fp` method for element-wise maximum value with floating point data types that do not support the `std::cmp::Ord` trait
### Changed
- docs: revise Getting Started guide docs with `vector!` macro initialization strategy for infallible data collection types
- docs: revise Getting Started guide docs with `try_vector!` macro initialization strategy for fallible data collection types
- docs: revise API docs numeric type syntax in some examples
## v0.6.0
### Added
- `Vector::mean` method for arithmetic mean statistic with floating point data
- `Vector::mean_geo` method for geometric mean statistic with floating point data
- `Vector::mean_harmonic` method for harmonic mean statistic with floating point data
- `Vector::median` method for median statistic with floating point data
- `Vector::variance` method for variance statistic with floating point data (supports population and sample variance)
- `Vector::stddev` method for standard deviation statistic with floating point data (supports population and sample std dev)
- `Vector::to_usize` method for explicit type cast support
- `Vector::to_u8` method for explicit type cast support
- `Vector::to_u16` method for explicit type cast support
- `Vector::to_u32` method for explicit type cast support
- `Vector::to_u64` method for explicit type cast support
- `Vector::to_u128` method for explicit type cast support
- `Vector::to_isize` method for explicit type cast support
- `Vector::to_i8` method for explicit type cast support
- `Vector::to_i16` method for explicit type cast support
- `Vector::to_i32` method for explicit type cast support
- `Vector::to_i64` method for explicit type cast support
- `Vector::to_i128` method for explicit type cast support
- `Vector::to_f32` method for explicit type cast support
- `Vector::to_f64` method for explicit type cast support
### Changed
- docs: Getting Started guide revised with new "Descriptive Statistics" section
- docs: Getting Started guide revised with new "Numeric Type Casts" section
- docs: Getting Started guide updated with Complex number type cast support example
- docs: API docs revised with updated Vector numeric type cast information and internal links
## v0.5.1
### Added
- None
### Changed
- Cargo.toml config: reduced keyword number from 7 to 5. crates.io does not accept > 5 keywords
## v0.5.0
### Added
- `Vector` struct `pretty` method for pretty-print formatted `String` of data contents
- Implement `Display` trait for `Vector` type
- cargo fuzz + libFuzzer based fuzzing infrastructure support
### Changed
- Cargo.toml configuration: updated keyword metadata
- tests: add unit tests of Vector type introspection with `Any` trait implementation
- docs: Getting Started guide: revised to indicate the maximum length of a `Vector` type
- docs: Developer: revised to include new documentation of how to execute only unit tests and only doc tests
- docs: Developer: revised to include documentation of cargo fuzz based fuzzing on the library
## v0.4.0
### Added
- `Vector` struct `enumerate` method for enumeration over (index, value) tuples
- `Vector` struct `product` method for element-wise products (supports int, float, and complex number types)
- `Vector` struct `sum` method for element-wise sums (supports int, float, and complex number types)
- `Vector::product` Criterion benchmark tests
### Changed
- None
## v0.3.1
### Added
- None
### Changed
- docs: Getting Started guide: updated integer overflow / underflow text
- docs: Getting Started guide: typo fix
## v0.3.0
### Added
- `Vector` struct complex number support with the `num::Complex` data type
- PartialEq trait implementation for `Vector` of `num::Complex` types with integer real and imaginary parts
- PartialEq trait implementation for `Vector` of `num::Complex` types with floating point real and imaginary parts
- AbsDiffEq trait implementation for `Vector` of `num::Complex` types with floating point real and imaginary parts
- RelativeEq trait implementation for `Vector` of `num::Complex` types with floating point real and imaginary parts
- UlpsEq trait implementation for `Vector` of `num::Complex` types with floating point real and imaginary parts
- Mul trait implementation to support `Vector` of `num::Complex` types scalar multiplication with integer scalar values
- Mul trait implementation to support `Vector` of `num::Complex` types scalar multiplication with floating point scalar values
- Lossless `Vector` of `num::Complex` types unsigned integer to signed integer real and imaginary part cast support
- Lossless `Vector` of `num::Complex` types signed integer to signed integer real and imaginary part cast support
- Lossless `Vector` of `num::Complex` types unsigned integer to unsigned integer real and imaginary part cast support
- Lossless `Vector` of `num::Complex` types unsigned integer to signed integer real and imaginary part cast support
- Lossless `Vector` of `num::Complex` types unsigned integer to float real and imaginary part cast support
- Lossless `Vector` of `num::Complex` types signed integer to float real and imaginary part cast support
- Lossless `Vector` `f32` to `f64` floating point type cast support
### Changed
- refactor Neg trait implementation to support `Vector` of `num::Complex` types
- docs: Getting Started guide: major revision to document the new support for `Vector` of complex numbers
- docs: Getting Started guide: added new`Vector` unary negation operator documentation
- docs: API: major revision to document the new support for `Vector` of complex numbers
- docs: API: updated Vector `dot` method documentation to indicate that the method is not intended for complex number types
- docs: API: updated Vector `Float` trait bound methods documentation to indicate that these methods are intended for real, floating point types
- docs: README: minor revisions to document the new support for `Vector` of complex numbers
## v0.2.1
### Added
- integer and float Vector PartialEq testing with `==` operator benchmarks
- rustc nightly toolchain CI testing on Ubuntu Linux, macOS, and Windows
- scheduled nightly CI testing with rustc stable, beta, and nightly toolchains on Ubuntu Linux, macOS, and Windows
### Changed
- minor documentation updates
## v0.2.0
### Added
- customizable f32 and f64 `Vector` absolute epsilon difference partial equivalence relation support (#11)
- customizable f32 and f64 `Vector` relative epsilon difference partial equivalence relation support (#11)
- customizable f32 and f64 `Vector` units in last place (ULPs) difference partial equivalence relation support (#11)
- `Vector` initialization Criterion benchmarks (#6, #9)
### Changed
- `Vector` initialization with std lib `Vec` reference types execution time improvement (#7)
## v0.1.3
### Added
- Minimum Rust version compatibility policy added to the `lib.rs` (docs.rs/vectora) and source repository README documentation
### Changed
- None
## v0.1.2
### Added
- None
### Changed
- typo fixes in the source documentation
## v0.1.1
### Added
- how to add vectora package to Cargo.toml dependencies documentation
- maintainer documentation
### Changed
- source cleanup: removed unused, commented out imports
- src/lib.rs documentation revisions
- README.md documentation revisions and formatting
## v0.1.0
- initial release