项目作者: MattX

项目描述 :
Rust piecewise linear function manipulation library
高级语言: Rust
项目地址: git://github.com/MattX/piecewise-linear.git
创建时间: 2019-08-14T00:47:23Z
项目社区:https://github.com/MattX/piecewise-linear

开源协议:Apache License 2.0

下载


Build Status
Apache 2 licensed
piecewise-linear on Crates.io

piecewise-linear

Documentation, view on GitHub.

This crate is beta quality, please report any issues you encounter.

Piecewise linear function manipulation utilities

This crate provides utilities to manipulate continuous
piecewise linear functions.
These are functions whose graph is made up of straight-line sections:

A piecewise linear function

It uses geo for geometric primitives and types.

Usage example

  1. let f = PiecewiseLinearFunction::try_from(vec![(0., 0.), (1., 1.), (2., 1.5)]).unwrap();
  2. assert_eq!(f.y_at_x(1.25), Some(1.125));

Features

  • Efficient iterator over inflection points of n functions
  • Shrink and expand function domain
  • Sum
  • Max
  • Numerical integration
  • Negation

Various convenience features are also implemented. See
the documentation
for more details. Pull requests for other features are very welcome!

Other things to be done

  • Improve CI with clippy and fmt
  • Benchmarks
  • Add links in rustdoc
  • More tests

Contributing

Feel free to open issues and pull requests! Documentation improvements
are appreciated. Please fully document new public features and provide
a unit testing suite for any new code.

License

Licensed under the Apache-2.0 license. See the LICENSE file for details.

Contribution

Unless you explicitly state otherwise, any contribution intentionally
submitted for inclusion in the work by you, as defined in the
Apache-2.0 license, shall be licensed as above, without
any additional terms or conditions.