GNU Units
# GNU Units

GNU Units est un programme de conversion d'unités de mesure. C'est un logiciel libre, maintenu par le projet GNU, et distribué selon les termes de la licence publique générale GNU.

## Historique

units est initialement développé dans les Laboratoires Bell pour les premières versions de leur système d'exploitation UNIX. Le programme s'impose ensuite comme un élément standard du système. Il est distribué par les laboratoires Bell jusqu'à leur version 7 d'UNIX.

Outre les diverses implémentations UNIX des années 1980, un programme similaire, appélé UDUNITS, est également développé aux États-Unis dans le cadre du projet NetCDF. UDUNITS est considéré comme le modèle standard de la conversion d'unité variable pour les fichiers netCDF. Cette variante différait de l'original par sa capacité de convertir les dates et sa disponibilité sous la forme d'une bibliothèque logicielle. Mais on ne l'a jamais présenté comme une alternative de par sa spécificité.

L'implémentation GNU du programme units est à l'origine écrite par Adrian Mariano, mais comprend déjà plusieurs extensions à la version originale, parmi lesquelles :

* Les exposants peuvent s'écrire avec '^' ou '**'. Dans ce as, ils peuvent être supérieur à 9 ;
* Des sommes d'unités peuvent être converties (e.g. btu + ft lbf) ;
* Les unités qui mesurent diverses dimensions réciproques peuvent être converties (e.g. de S en Ω) ;
* Les parenthèses pour le regroupement sont prises en charge. La version originale n'autorisait qu'une seule barre oblique « / »,ce qui, parfois, nécessitait de réorganiser les expressions complexes ; la version GNU permet des expressions plus naturelles (cf. Wikilivres).
* Les conversions d'unités non linéaires (e.g., °C en ℉) sont supportées.
* Les fonctions trigonométriques sinus (noté sin) et cosinus (cos) sont incluses comme la fonction log.

La nouvelle version, réalisée le 2 juillet 2012, permet également de calculer des sommes d'unités, telles que les heures et les minutes ou les pieds et en pouces. En outre, le programme utilise désormais le codage UTF-8. On peut désormais définir les unités avec des variables d'environnement, ce qui permet de les ajuster sans modifier les paramètres régionaux.

## Utilisation

GNU units offre deux modes d'interaction en ligne de commande (cf. Wikilivres).

L'utilisateur peut par ailleurs définir ses propres unités, ou s'appuyer sur des fonctions mathématiques.

