diffsol-nl 0.1.0

Time-unaware non-linear solver traits and implementations (Newton, line search) for diffsol.
Documentation
# diffsol-nl

Non-linear solver foundation for [diffsol](https://github.com/martinjrobins/diffsol) —
the non-linear operator and solver traits used by the ODE/DAE solvers,
together with a Newton implementation.

Most users should depend on the [`diffsol`](https://crates.io/crates/diffsol) crate
directly. Use `diffsol-nl` when you want to build on the non-linear solver layer itself.

## Traits

- **Operators**: the `NonLinearOp` trait describing a function `F(x)`, and
  `NonLinearOpJacobian` describing its Jacobian `J(x)`. These are deliberately
  time-unaware; the richer, time-aware operator traits live in the `diffsol` crate.
- **Solvers**: the `NonLinearSolver` trait for solving `F(x) = 0`.
- **Support types**: `Convergence`, the `LineSearch` trait with `NoLineSearch` and
  `BacktrackingLineSearch` implementations, and the `NlError` error type.

## Implementations

- `NewtonNonlinearSolver`: a Newton solver built on top of a
  [`diffsol-la`]https://crates.io/crates/diffsol-la `LinearSolver`.

Each linear-algebra backend is selected via a feature flag, forwarded to `diffsol-la`:

- `nalgebra`: nalgebra-backed containers and solvers (enabled by default).
- `faer`: faer-backed containers and solvers (enabled by default).
- `cuda`: in-built CUDA containers and solvers (disabled by default).
- `suitesparse`: the KLU sparse direct solver from SuiteSparse (disabled by default).

## Links

- Main crate: <https://crates.io/crates/diffsol>
- Documentation: <https://docs.rs/diffsol-nl>
- Book: <https://martinjrobins.github.io/diffsol/>

## License

Licensed under the MIT license. See the [repository](https://github.com/martinjrobins/diffsol) for details.