Moduledimensional-1.6.2Haskell2010
Numeric.Units.Dimensional.SIUnits
Summary
This module defines the SI prefixes, the SI base units and the SI derived units. It also defines the units outside of the SI that are accepted for use with the SI. Any chapters, sections or tables referenced are from [1] unless otherwise specified.
References
Contents
Synopsis
- value metre
- value meter
- value gram
- value second
- value ampere
- value kelvin
- value mole
- value candela
- value radian
- value steradian
- value hertz
- value newton
- value pascal
- value joule
- value watt
- value coulomb
- value volt
- value farad
- value ohm
- value siemens
- value weber
- value tesla
- value henry
- value lumen
- value lux
- value degreeCelsius
- value fromDegreeCelsiusAbsolute
- value toDegreeCelsiusAbsolute
- value becquerel
- value gray
- value sievert
- value katal
- value minute
- value hour
- value day
- value hectare
- value litre
- value liter
- value tonne
- value metricTon
- value degree
- value arcminute
- value arcsecond
- value degreeOfArc
- value minuteOfArc
- value secondOfArc
- value astronomicalUnit
- value deka
- value deca
- value hecto
- value kilo
- value mega
- value giga
- value tera
- value peta
- value exa
- value zetta
- value yotta
- value ronna
- value quetta
- value deci
- value centi
- value milli
- value micro
- value nano
- value pico
- value femto
- value atto
- value zepto
- value yocto
- value ronto
- value quecto
- data Prefix
- value applyPrefix
- value siPrefixes
- Packagedimensional-1.6.2
- Exports75
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceSIUnits.hs
SI Base Units
These are the base units from section 4.1. To avoid a myriad of one-letter functions that would doubtlessly cause clashes and frustration in users' code, we spell out all unit names in full, as we did for prefixes. We also elect to spell the unit names in singular form, as allowed by section 9.7 "Other spelling conventions".
We define the SI base units in the order of table 1.
SI Derived Units
From Table 3, SI derived units with special names and symbols, including the radian and steradian.
Celsius Temperature
A problematic area is units which increase proportionally to the base SI units but cross zero at a different point. An example would be degrees Celsius (see section 4.2.1.1). The author feels that it is appropriate to define a unit for use with relative quantities (taking only into account the proportionality) and complement the unit with functions for converting absolute values.
The function fromDegreeCelsiusAbsolute should be used in lieu of "*~ degreeCelsius" when working with absolute temperatures. Similarily, toDegreeCelsiusAbsolute should be used in lieu of "/~ degreeCelsius" when working with absolute temperatures.
Units Admitted for Reasons of Safeguarding Human Health
The last units from Table 3 are SI derived units with special names and symbols admitted for reasons of safeguarding human health.
Units Accepted for Use with the SI
There are several units that are not strictly part of the SI but are either permanently or temporarily accepted for use with the SI. We define the permanently accepted ones in this module.
From Table 6, Units accepted for use with the SI.
We start with time which we grant exclusive rights to minute and second.
Units of Plane Angle
Since minute and second are already in use for time we use arcminute and arcsecond [2] for plane angle instead.
Alternate (longer) forms of the above. In particular degreeOfArc can be used if there is a percieved need to disambiguate from e.g. temperature.
Units Formerly Defined By Experiment
We decline to provide here those units - listed in Table 7 - which, while accepted for use with the SI, have values which are determined experimentally. For versioning purposes, those units can be found in Numeric.Units.Dimensional.NonSI.
However, in 2012 the IAU redefined the astronomical unit as a conventional unit of length directly tied to the meter, with a length of exactly 149 597 870 700 m and the official abbreviation of au [3]. We therefore include it here.
SI Prefixes
Prefixes are used to form decimal multiples and submultiples of SI Units as described in section 4.4.
By defining SI prefixes as functions applied to a Unit we satisfy section 6.2.6 "Unacceptability of stand-alone prefixes".
We define all SI prefixes from Table 5. Multiples first.
An alias for deca.
The "deca" prefix, denoting a factor of 10.
The "hecto" prefix, denoting a factor of 100.
The "kilo" prefix, denoting a factor of 1000.
The "mega" prefix, denoting a factor of 10^6.
The "giga" prefix, denoting a factor of 10^9.
The "tera" prefix, denoting a factor of 10^12.
The "peta" prefix, denoting a factor of 10^15.
The "exa" prefix, denoting a factor of 10^18.
The "zetta" prefix, denoting a factor of 10^21.
The "yotta" prefix, denoting a factor of 10^24.
The "ronna" prefix, denoting a factor of 10^27.
The "quetta" prefix, denoting a factor of 10^30.
Then the submultiples.
The "deci" prefix, denoting a factor of 0.1.
The "centi" prefix, denoting a factor of 0.01.
The "milli" prefix, denoting a factor of 0.001.
The "micro" prefix, denoting a factor of 10^-6.
The "nano" prefix, denoting a factor of 10^-9.
The "pico" prefix, denoting a factor of 10^-12.
The "femto" prefix, denoting a factor of 10^-15.
The "atto" prefix, denoting a factor of 10^-18.
The "zepto" prefix, denoting a factor of 10^-21.
The "yocto" prefix, denoting a factor of 10^-24.
The "ronto" prefix, denoting a factor of 10^-27.
The "quecto" prefix, denoting a factor of 10^-30.
We supply an explicit representation of an SI prefix, along with a function to apply one and a list of all prefixes defined by the SI.
A metric prefix.
Instances7Eq, Data, Ord, Generic, NFData, HasInterchangeName, …
Eq PrefixDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.UnitNames.InternalData PrefixDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.UnitNames.InternalOrd PrefixDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.UnitNames.InternalGeneric PrefixDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.UnitNames.InternalNFData PrefixDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.UnitNames.InternalHasInterchangeName PrefixDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.UnitNames.Internaltype Rep Prefix = D1 ('MetaDataDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.UnitNames.Internal"Prefix"
"Numeric.Units.Dimensional.UnitNames.Internal"
"dimensional-1.6.2-6bFHms4cKH82WlYjTKWbCv"
'False) (C1 ('MetaCons"Prefix"
'PrefixI 'True) (S1 ('MetaSel ('Just"prefixName"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PrefixName) :*: S1 ('MetaSel ('Just"scaleFactor"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)))
A list of all Prefixes defined by the SI.