curve-sampling 0.2.0

Adaptive sampling of parametric
Documentation
Curve Sampling
==============

This module provide a collection of routines to perform adaptive
sampling of curves as well as manipulating those samplings.


Usage
-----

Add this to your `Cargo.toml`:

```
[dependencies]
curve-sampling = "0.1.0"
```

See the [documentation](https://docs.rs/curve-sampling/).

Example
-------

To sample the function x ↦ x sin(1/x) on the interval [-0.4, 0.4] with
227 function evaluations, simply do

```rust
use curve_sampling::Sampling;
let s = Sampling::fun(|x| x * (1. / x).sin(), -0.4, 0.4).n(227).build();
```

You can save the resulting sampling to [TikZ][] with

```rust
s.latex().write(&mut File::create("graph.tex")?)?;
```

or to a data file (whose format is compatible with [Gnuplot][]) with

```rust
s.write(&mut File::create("graph.dat")?)?;
```

Asking [Gnuplot][] to draw the resulting curve (with `plot 'graph.dat'`) 
yields:

![x sin(1/x)](https://user-images.githubusercontent.com/1255665/186882845-81dcbe02-808b-40d7-9fad-a838e326ce78.png)

P.S. The number of evaluations (227) was chosen to match a depth 5
recursion for
[Mathematica](https://github.com/Chris00/rust-curve-sampling/wiki).


[TikZ]: https://tikz.dev/
[Gnuplot]: http://www.gnuplot.info/