embedded-trig-f32
embedded-trig-f32 est une bibliothèque de fonctions trigonométriques f32 ultra-rapide, écrite en Pur Rust, sans aucune dépendance (zero-deps) et optimisée pour les systèmes embarqués no_std.
🚀 Points forts
- Zéro Dépendance : Pas besoin de
libm. - Hardware-Aware : Utilise l'instruction FPU
VSQRTsi disponible, sinon bascule sur Newton-Raphson. - Haute Performance : Utilise des approximations rationnelles (Bhaskara I) et polynomiales (McCutcheon) pour un compromis idéal vitesse/précision.
- Sécurité : Retourne des
Result<f32, TrigError>pour les fonctions inverses, évitant les crashs silencieux. - #![forbid(unsafe_code)] : Pour une safety .
🛠 Installation
Ajoute ceci à ton fichier Cargo.toml :
[]
= "0.1.0"
Pour profiter de la puissance de la FPU sur ton Cortex-M33(comme sur le RP2350) ou STM32, configure ton .cargo/config.toml :
[target.thumbv8m.main-none-eabihf]
rustflags = ["-C", "target-cpu=cortex-m33", "-C", "target-feature=+vfp2"]
📖 Fonctions disponibles
| Fonction | Description | Retour |
|---|---|---|
sin(x) |
Sinus (radians) | f32 |
cos(x) |
Cosinus (radians) | f32 |
atan2(y, x) |
Arc tangente 2 | Result<f32, TrigError> |
asin(x) |
Arc sinus | Result<f32, TrigError> |
acos(x) |
Arc cosinus | Result<f32, TrigError> |
💻 Exemple d'utilisation
Voici comment l'utiliser dans un projet de contrôle moteur ou de robotique :
use ;
🧪 Précision & Tests
La bibliothèque est testée avec une tolérance de 2.10^{-3} (Bhaskara).
Pour lancer les tests sur votre machine de développement :
cargo test
⚖️ Licence
Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU (GPL) version 2 ou ultérieure.
Copyright (C) 2026 Jorge Andre Castro