package org.checkerframework.checker.units.qual;

/**
 * SI prefixes.
 *
 * <p>From <a
 * href="https://en.wikipedia.org/wiki/SI_prefix">http://en.wikipedia.org/wiki/SI_prefix</a>:
 *
 * <pre>
 * yotta   Y   1000^8     10^24    1000000000000000000000000   Septillion      Quadrillion     1991
 * zetta   Z   1000^7     10^21    1000000000000000000000      Sextillion      Trilliard       1991
 * exa     E   1000^6     10^18    1000000000000000000         Quintillion     Trillion        1975
 * peta    P   1000^5     10^15    1000000000000000            Quadrillion     Billiard        1975
 * tera    T   1000^4     10^12    1000000000000               Trillion        Billion         1960
 * giga    G   1000^3     10^9     1000000000                  Billion         Milliard        1960
 * mega    M   1000^2     10^6     1000000                     Million                         1960
 * kilo    k   1000^1     10^3     1000                        Thousand                        1795
 * hecto   h   1000^2/3   10^2     100                         Hundred                         1795
 * deca    da  1000^1/3   10^1     10                          Ten                             1795
 * 1000^0     10^0     1                           One
 * deci    d   1000^-1/3  10^-1    0.1                         Tenth                           1795
 * centi   c   1000^-2/3  10^-2    0.01                        Hundredth                       1795
 * milli   m   1000^-1    10^-3    0.001                       Thousandth                      1795
 * micro   my  1000^-2    10^-6    0.000001                    Millionth                       1960
 * nano    n   1000^-3    10^-9    0.000000001                 Billionth       Milliardth      1960
 * pico    p   1000^-4    10^-12   0.000000000001              Trillionth      Billionth       1960
 * femto   f   1000^-5    10^-15   0.000000000000001           Quadrillionth   Billiardth      1964
 * atto    a   1000^-6    10^-18   0.000000000000000001        Quintillionth   Trillionth      1964
 * zepto   z   1000^-7    10^-21   0.000000000000000000001     Sextillionth    Trilliardth     1991
 * yocto   y   1000^-8    10^-24   0.000000000000000000000001  Septillionth    Quadrillionth   1991
 * </pre>
 *
 * @checker_framework.manual #units-checker Units Checker
 */
public enum Prefix {
  /** SI prefix for 10^24. */
  yotta,
  /** SI prefix for 10^21. */
  zetta,
  /** SI prefix for 10^18. */
  exa,
  /** SI prefix for 10^15. */
  peta,
  /** SI prefix for 10^12. */
  tera,
  /** SI prefix for 10^9. */
  giga,
  /** SI prefix for 10^6. */
  mega,
  /** SI prefix for 10^3. */
  kilo,
  /** SI prefix for 10^2. */
  hecto,
  /** SI prefix for 10^1. */
  deca,
  /** SI prefix for 10^0, or 1. */
  one,
  /** SI prefix for 10^-1. */
  deci,
  /** SI prefix for 10^-2. */
  centi,
  /** SI prefix for 10^-3. */
  milli,
  /** SI prefix for 10^-6. */
  micro,
  /** SI prefix for 10^-9. */
  nano,
  /** SI prefix for 10^-12. */
  pico,
  /** SI prefix for 10^-15. */
  femto,
  /** SI prefix for 10^-18. */
  atto,
  /** SI prefix for 10^-21. */
  zepto,
  /** SI prefix for 10^-24. */
  yocto
}
