# Unitful.jl

Unitful is a Julia package for physical units. We want to support not only SI units but also any other unit system. We also want to minimize or in some cases eliminate the run-time penalty of units. There should be facilities for dimensional analysis. All of this should integrate easily with the usual mathematical operations and collections that are found in Julia base.

## Documentation

Stable and latest versions available.

## Other packages in the Unitful family

### Units packages

- UnitfulUS.jl: U.S. customary units. Serves as an example for how to implement a units package.
- UnitfulAstro.jl: Astronomical units.
- UnitfulAngles.jl: More angular units, additional trigonometric functionalities, and clock-angle conversion.
- UnitfulAtomic.jl: Easy conversion from and to atomic units.
- PowerSystemsUnits.jl: Common units for dealing with power systems.
- UnitfulMoles.jl for defining mol units of chemical elements and compounds.

### Feature additions

- UnitfulIntegration.jl: Enables use of Unitful quantities with QuadGK.jl. PRs for other integration packages are welcome.
- UnitfulEquivalences.jl: Enables conversion between equivalent quantities of different dimensions, e.g. between energy and wavelength of a photon.
- UnitfulLatexify.jl: Pretty print units and quantities in LaTeX format.
- UnitfulBuckinghamPi.jl: Solves for the adimensional Pi groups in a list of Unitful parameters, according to the Buckingham-Pi Theorem.
- NaturallyUnitful.jl: Convert to and from natural units in physics.
- UnitfulChainRules.jl: Enables use of Unitful quantities with ChainRules.jl-compatible autodifferentiation systems
- DimensionfulAngles.jl: Adds angle as a dimension. This allows dispatching on angles and derived quantities.
- UnitfulRecipes.jl (deprecated): Adds automatic labels and supports plot axes with units for Plots.jl. (UnitfulRecipes.jl is now included in Plots.jl.)

## Related packages

Unitful was inspired by: