use-math
use-math composes the focused RustUse math crates into one entry point while keeping their APIs direct and explicit. It re-exports the currently supported geometry, combinatorics, Catalan-family, progression, integer-helper, boolean-algebra, set-helper, trigonometry, descriptive statistics, compact linear algebra, finite algebra law, raw-number, complex-number, numerical-calculus, probability, real-number, and rational-number surfaces at the crate root, exposes nested modules for every focused crate in the workspace, and keeps the shared prelude limited to the items that already have concrete ergonomic value.
What this crate provides
| Entry point | What it exposes | Best fit |
|---|---|---|
| Root re-exports | Direct access to enabled geometry, combinatorics, Catalan-family, progression, integer-helper, boolean-algebra, set-helper, trigonometry, descriptive statistics, compact linear algebra, finite algebra law, raw-number, complex-number, numerical-calculus, probability, real-number, and rational-number items | Call sites that want short imports |
use_math::geometry |
The use-geometry crate as a nested module |
Code that prefers explicit geometry namespacing |
use_math::combinatorics |
The use-combinatorics crate as a nested module |
Code that prefers explicit combinatorics namespacing |
use_math::algebra |
The use-algebra crate as a nested module |
Code that prefers explicit algebra namespacing |
use_math::prelude |
Common items from enabled concrete features | Small apps, examples, and quick starts |
| If you need to... | Start here |
|---|---|
| Add one dependency and opt into math surfaces with features | use-math |
| Keep geometry-only code isolated | use-geometry directly |
| Keep counting-only code isolated | use-combinatorics directly |
| Keep Catalan-family sequence helpers isolated | use-catalan directly |
| Keep progression helpers isolated | use-series directly |
| Keep finite algebra law helpers isolated | use-algebra directly |
| Keep integer-helper code isolated | use-integer directly |
| Keep boolean algebra helpers isolated | use-logic directly |
| Keep set helpers isolated | use-set directly |
| Keep trigonometry helpers isolated | use-trigonometry directly |
| Keep descriptive statistics helpers isolated | use-statistics directly |
| Keep compact linear-algebra helpers isolated | use-linear directly |
| Keep raw-number helpers isolated | use-number directly |
| Keep complex-number primitives isolated | use-complex directly |
| Keep numerical-calculus helpers isolated | use-calculus directly |
| Keep explicit probability primitives isolated | use-probability directly |
| Keep finite-value and interval helpers isolated | use-real directly |
| Keep exact rational arithmetic isolated | use-rational directly |
| Minimize both dependency weight and API width | The focused crate directly |
When to choose the facade
Use the facade when consumer ergonomics matter more than squeezing the dependency graph to the smallest possible shape.
| Scenario | Choose use-math? |
Why |
|---|---|---|
| You want one dependency for geometry, counting, Catalan-family sequences, progression helpers, integer helpers, boolean algebra helpers, set helpers, trigonometry helpers, descriptive statistics helpers, compact linear-algebra helpers, raw-number helpers, complex primitives, numerical calculus, probability, real-number helpers, and rational arithmetic | Yes | The facade keeps imports unified behind features |
| You are building a small app or example project | Yes | Root re-exports and the prelude reduce setup friction |
| You want namespace access to every focused crate | Usually yes | The facade exposes every focused crate name consistently today |
| You only need geometry | Usually no | use-geometry stays narrower and more explicit |
| You only need combinatorics | Usually no | use-combinatorics avoids unrelated modules |
| You only need Catalan-family sequence helpers | Usually no | use-catalan keeps that counting surface narrow and explicit |
| You only need progression helpers | Usually no | use-series keeps nth-term and partial-sum helpers narrow and explicit |
| You only need finite algebra law helpers | Usually no | use-algebra keeps closure-based structure checks explicit and local |
| You only need integer helpers | Usually no | use-integer keeps parity, divisibility, and gcd/lcm logic local |
| You only need boolean algebra helpers | Usually no | use-logic keeps named truth-table helpers explicit and local |
| You only need set helpers | Usually no | use-set keeps membership and set-operation intent explicit and local |
| You only need trigonometry helpers | Usually no | use-trigonometry keeps degree/radian handling and trig evaluation explicit and local |
| You only need descriptive statistics helpers | Usually no | use-statistics keeps mean, median, and variance summaries explicit and local |
| You only need compact linear-algebra helpers | Usually no | use-linear keeps small vectors, matrices, and singular solves explicit and local |
| You only need raw-number helpers | Usually no | use-number keeps plain f64 classification and shared constants explicit and local |
| You only need numerical calculus | Usually no | use-calculus keeps the approximation policy local and direct |
| You only need probability primitives | Usually no | use-probability keeps event assumptions local and direct |
| You only need finite-value or interval helpers | Usually no | use-real keeps floating-point validation and tolerance policy local |
| You only need exact rational arithmetic | Usually no | use-rational keeps exact fraction normalization and arithmetic local |
[!TIP] The facade is intentionally thin. It is not a second abstraction layer over the focused crates.
Installation
Default features enable the current full surface:
[]
= "0.0.1"
Geometry only:
[]
= { = "0.0.1", = false, = ["geometry"] }
Combinatorics only:
[]
= { = "0.0.1", = false, = ["combinatorics"] }
Quick examples
Checked counting from the root
#
#
#
#
#
Catalan-family counting from the root
#
#
#
#
#
Progression helpers from the root
#
#
#
#
#
Boolean algebra helpers from the root
#
#
#
#
#
Set helpers from the root
#
#
#
#
#
Trigonometry helpers from the root
#
#
#
#
#
Descriptive statistics from the root
#
#
#
#
#
Linear algebra helpers from the root
#
#
#
#
#
Raw-number helpers from the root
#
#
#
#
#
Finite algebra law helpers from the root
#
#
#
#
#
Integer helpers from the root
#
#
#
#
#
Geometry from the root
#
#
#
#
#
Geometry extras behind the feature gate
#
#
#
#
#
Numerical calculus from the root
#
#
#
#
#
Probability from the root
#
#
#
#
#
Real-number helpers from the root
#
#
#
#
#
Rational arithmetic from the root
#
#
#
#
#
Feature model
| Feature | Enables | Default |
|---|---|---|
geometry |
Re-exports from use-geometry, including Aabb2 and tolerance-aware orientation helpers |
No |
combinatorics |
Re-exports from use-combinatorics |
No |
catalan |
Re-exports from use-catalan, including catalan, fuss_catalan, and CatalanError |
No |
algebra |
Re-exports from use-algebra, including finite algebra-law helpers such as identity_element, is_abelian_group, and is_ring |
No |
series |
Re-exports from use-series, including arithmetic and geometric progression helpers |
No |
integer |
Re-exports from use-integer, including IntegerSign, divisibility helpers, and gcd/lcm |
No |
logic |
Re-exports from use-logic, including implication, equivalence, XOR, NAND, NOR, and majority helpers |
No |
set |
Re-exports from use-set, including membership predicates and order-preserving set operations |
No |
trigonometry |
Re-exports from use-trigonometry, including Angle, degree/radian conversion helpers, normalization helpers, and sin_deg/cos_deg/tan_deg |
No |
statistics |
Re-exports from use-statistics, including StatisticsError, mean/median, variance, and standard-deviation helpers |
No |
linear |
Re-exports from use-linear, including LinearVector2, Matrix2, dot, solve_2x2, and LinearError |
No |
number |
Re-exports from use-number, including floating-point classification helpers and shared numeric constants |
No |
complex |
Re-exports from use-complex, including Complex and Imaginary |
No |
calculus |
Re-exports from use-calculus, including Differentiator, Integrator, and limit helpers |
No |
probability |
Re-exports from use-probability, including Probability, Bernoulli, and independent-event helpers |
No |
rational |
Re-exports from use-rational, including Rational and RationalError |
No |
real |
Re-exports from use-real, including Real, RealInterval, and approx_eq |
No |
full |
Every focused crate feature in the workspace | Yes |
[!NOTE]
fullis the default today because the facade exists to smooth over multi-crate integration. Disable defaults when you need tighter control over compile surface. Every focused crate feature now exposes both nested modules and concrete root-level re-exports.
Design constraints
- The facade stays close to the focused crates instead of inventing a separate object model.
- Small APIs are preferred over broad trait-heavy abstractions.
- Depend on the focused crates directly when the facade would be wider than you need.
- Facade-only wrapper types, macros, and a second abstraction layer are intentionally out of scope.
Status
use-math is a concrete pre-1.0 facade crate in the RustUse docs surface. The API remains intentionally thin while every focused crate in the workspace now exposes a concrete public surface.