diff --git a/test/test_unit_strings.cpp b/test/test_unit_strings.cpp index 4ce505fc..0189bb33 100644 --- a/test/test_unit_strings.cpp +++ b/test/test_unit_strings.cpp @@ -1183,7 +1183,7 @@ TEST(stringToUnits, parentheticalModifier) auto u3 = unit_from_string("British thermal unit (thermochemical)"); EXPECT_EQ(u3, precise::energy::btu_th); auto u4 = unit_from_string("short(US) ton per day"); - EXPECT_EQ(u4,precise::av::ton/precise::day); + EXPECT_EQ(u4, precise::av::ton / precise::day); } TEST(stringToUnit, handlingOfSquared) diff --git a/units/units_conversion_maps.hpp b/units/units_conversion_maps.hpp index a5fa69e1..c837c93c 100644 --- a/units/units_conversion_maps.hpp +++ b/units/units_conversion_maps.hpp @@ -205,1344 +205,1354 @@ UNITS_CPP14_CONSTEXPR_OBJECT std::array, 55> UNITS_CPP14_CONSTEXPR_OBJECT std::array< std::pair, 1212> - defined_unit_strings_si{{ - {"", precise::defunit}, - {"[]", precise::defunit}, - {"def", precise::defunit}, - {"default", precise::defunit}, - {"defunit", precise::defunit}, - {"*", precise::defunit}, - {"**", precise::defunit}, - {"***", precise::defunit}, - {"****", precise::defunit}, - {"*****", precise::defunit}, - {"******", precise::defunit}, - {"^^^", precise::defunit}, - {"1", precise::one}, - {"one", precise::one}, - {"inf", precise::infinite}, - {".inf", precise::infinite}, - {"INF", precise::infinite}, - {"infinity", precise::infinite}, - {"INFINITY", precise::infinite}, - {"-inf", precise::neginfinite}, - {"-.inf", precise::neginfinite}, - {"-.Inf", precise::neginfinite}, - {"-*inf", - precise::neginfinite}, // this is to handle internal string cleaning - {"-*Inf", precise::neginfinite}, - {"-INF", precise::neginfinite}, - {"-infinity", precise::neginfinite}, - {"-INFINITY", precise::neginfinite}, - {"infinite", precise::infinite}, - {u8"\u221e", precise::infinite}, - {u8"-\u221e", precise::neginfinite}, - {"nan", precise::nan}, - {"NaN", precise::nan}, - {"NaN%", precise::nan}, - {"NAN", precise::nan}, - {".NAN", precise::nan}, - {"NaNQ", - precise_unit( - std::numeric_limits::quiet_NaN(), - detail::unit_data(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))}, - {"NaNS", precise::nan}, - {"qNaN", - precise_unit( - std::numeric_limits::quiet_NaN(), - detail::unit_data(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))}, - {"sNaN", precise::nan}, - {"1.#SNAN", precise::nan}, - {"#SNAN", precise::nan}, - {"1.#QNAN", - precise_unit( - std::numeric_limits::quiet_NaN(), - detail::unit_data(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))}, - {"#QNAN", - precise_unit( - std::numeric_limits::quiet_NaN(), - detail::unit_data(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))}, - {"1.#IND", precise::nan}, - {"#IND", precise::nan}, - {"0.1", precise_unit(0.1, precise::one)}, - {".1", precise_unit(0.1, precise::one)}, - {"deci", precise_unit(0.1, precise::one)}, - {"0.01", precise_unit(0.01, precise::one)}, - {".01", precise_unit(0.01, precise::one)}, - {"centi", precise_unit(0.01, precise::one)}, - {"0.001", precise::milli}, - {".001", precise::milli}, - {"milli", precise::milli}, - {"1e-3", precise::milli}, - {"1e-6", precise::micro}, - {"micro", precise::micro}, - {"1e-9", precise::nano}, - {"1e-12", precise::pico}, - {"1e-15", precise::femto}, - {"1e-18", precise::atto}, - {"nano", precise::nano}, - {"pico", precise::pico}, - {"femto", precise::femto}, - {"atto", precise::atto}, - {"yocto", precise::yocto}, - {"zepto", precise::zepto}, - {"ronto", precise::ronto}, - {"quecto", precise::quecto}, - {"10", precise_unit(10.0, precise::one)}, - {"ten", precise_unit(10.0, precise::one)}, - {"two", precise_unit(2.0, precise::one)}, - {"twenty", precise_unit(20.0, precise::one)}, - {"twelve", precise_unit(12.0, precise::one)}, - {"eight", precise_unit(8.0, precise::one)}, - {"100", precise_unit(100, precise::one)}, - {"hundred", precise_unit(100, precise::one)}, - {"fifty", precise_unit(50, precise::one)}, - {"centum", precise_unit(100, precise::one)}, - {"1000", precise::kilo}, - {"thousand", precise::kilo}, - {"1000000", precise::mega}, - {"million", precise::mega}, - {"1000000000", precise::giga}, - {"billion", precise::giga}, - {"billion_US", precise::giga}, - {"milliard", precise::giga}, - {"billion_br", precise::tera}, - {"trillion", precise::tera}, - {"trillion_US", precise::tera}, - {"trillion_br", precise::exa}, - {"quadrillion", precise::peta}, - {"1e3", precise::kilo}, - {"1e6", precise::mega}, - {"1e9", precise::giga}, - {"1e12", precise::tera}, - {"1e15", precise::peta}, - {"1e18", precise::exa}, - {"kilo", precise::kilo}, - {"k", precise::kilo}, - {"mega", precise::mega}, - {"giga", precise::giga}, - {"tera", precise::tera}, - {"peta", precise::peta}, - {"exa", precise::exa}, - {"yotta", precise::yotta}, - {"zetta", precise::zetta}, - {"ronna", precise::ronna}, - {"quetta", precise::quetta}, - {"%", precise::percent}, - {"%age", precise::percent}, - {"permille", precise::milli}, - {u8"\u2030", precise::milli}, // per mille symbol - {"bp", precise_unit(0.1, precise::milli)}, - {"basispoint", precise_unit(0.1, precise::milli)}, - {u8"\u2031", - precise_unit(0.1, precise::milli)}, // per ten thousand symbol - {"pct", precise::percent}, - {"pi", precise_unit(constants::pi, one)}, - {"PI", precise_unit(constants::pi, one)}, - {"[pi]", precise_unit(constants::pi, one)}, - {"thenumberpi", precise_unit(constants::pi, one)}, - {"[PI]", precise_unit(constants::pi, one)}, - {"Pi", precise_unit(constants::pi, one)}, - {u8"\u03C0", precise_unit(constants::pi, one)}, - {u8"\U0001D70B", precise_unit(constants::pi, one)}, - {u8"\U0001D745", precise_unit(constants::pi, one)}, - {u8"\U0001D6D1", precise_unit(constants::pi, one)}, - {u8"\u03B5", precise::pu* precise::m}, // strain - {u8"\u0190", precise::pu* precise::m}, // strain - {"strain", precise::pu* precise::m}, // strain - {"m", precise::m}, - {"Sm", precise::m}, // standard meter used in oil and gas usually Sm^3 - {"meter", precise::m}, - {"metre", precise::m}, - {"squaremeter", - precise::m.pow(2)}, // to simplify some things later in the chain - {"cubicmeter", precise::m.pow(3)}, - {"micron", precise::micro* precise::m}, - {"fermi", precise::femto* precise::m}, - {"xunit", precise::distance::xu}, - {"xu", precise::distance::xu}, - {"X", precise::distance::xu}, - {"cc", precise::cm.pow(3)}, - {"cubiccentimeter", precise::cm.pow(3)}, - {"m/s^2", precise::m / precise::s.pow(2)}, - {"kg/m^3", precise::kg / precise::m.pow(3)}, - {"kg", precise::kg}, - {"KG", precise::kg}, - {"kilogram", precise::kg}, - {"mol", precise::mol}, - {"einstein", precise::mol}, // technically of photons - {"gmol", precise::mol}, - {"lbmol", precise_unit(424.0, precise::mol)}, - {"atom", constants::Na.as_unit().inv()}, - {"avogadroconstant", constants::Na.as_unit()}, - {"molecule", constants::Na.as_unit().inv()}, - {"molec", constants::Na.as_unit().inv()}, - {"nucleon", constants::Na.as_unit().inv()}, - {"nuc", constants::Na.as_unit().inv()}, - {"MOL", precise::mol}, - {"mOL", precise::mol}, - {"mole", precise::mol}, - {"M", precise::laboratory::molarity}, - {"molar", precise::laboratory::molarity}, - {"Molar", precise::laboratory::molarity}, - {"eq", precise::mol}, - {"Eq", precise::mol}, - {"equivalent", {1.0, precise::one, commodities::packaging::equivalent}}, - {"EQ", precise::mol}, - {"osm", - precise_unit(1.0, precise::mol, commodities::packaging::particle)}, - {"osmole", - precise_unit(1.0, precise::mol, commodities::packaging::particle)}, - {"osmol", - precise_unit(1.0, precise::mol, commodities::packaging::particle)}, - {"OSM", - precise_unit(1.0, precise::mol, commodities::packaging::particle)}, - {"totalacidnumber", precise::generate_custom_unit(213)}, - {"TAN", precise::generate_custom_unit(213)}, - {"g%", precise_unit(10.0, precise::g / precise::L)}, - {"gram%", precise_unit(10.0, precise::g / precise::L)}, - {"G%", precise_unit(10.0, precise::g / precise::L)}, - {"U", precise::laboratory::enzyme_unit}, - // this may not be best but it doesn't actually conflict with anything - // else right now - {"units", precise::laboratory::enzyme_unit}, - {"enzymeunit", precise::laboratory::enzyme_unit}, - {"internationalunitofenzymeactivity", precise::laboratory::enzyme_unit}, - {"eu", precise::laboratory::enzyme_unit}, - {"A", precise::A}, - {"amp", precise::A}, - {"amps", precise::A}, - {"ampturn", precise::A* precise::count}, - {"At", precise::A* precise::count}, - {"V", precise::V}, - {"volt", precise::V}, - {"volt_ac", precise::V}, - {"volt_dc", precise::V}, - {"voltAC", precise::V}, - {"voltDC", precise::V}, - {"W", precise::W}, - {"W/m^2", precise::W / precise::m.pow(2)}, - {"watt", precise::W}, - {"kW", precise::electrical::kW}, - {"kilowatt", precise::electrical::kW}, - {"MW", precise::MW}, - {"megawatt", precise::MW}, - {"MVA", precise::electrical::MVAR}, - {"mvar", precise::electrical::MVAR}, - {"MVAR", precise::electrical::MVAR}, - {"VA", precise::electrical::VAR}, - {"voltampreactive", precise::electrical::VAR}, - {"VAR", precise::electrical::VAR}, - {"var", precise::electrical::VAR}, - {"s", precise::s}, - {"sec", precise::s}, - {"sec_time", precise::s}, - {"MAS", precise::mega* precise::s}, - {"mAS", precise::mega* precise::s}, - {"second", precise::s}, - {"second_time", precise::s}, - {"shake", precise_unit(10.0, precise::ns)}, - {"jiffy", precise_unit(0.01, precise::s)}, // use the computer science - // definition for playback - // and clock rate - {"cd", precise::cd}, - {"mcd", - precise::milli* precise::cd}, // prefer milli candela to micro-day - {"CD", precise::cd}, - {"candela", precise::cd}, - {"metercandle", precise::lumen / precise::m.pow(2)}, - {"centimetercandle", precise::lumen / precise::cm.pow(2)}, - {"K", precise::K}, - {"kelvin", precise::K}, - {"kelvins", precise::K}, - {"degKelvin", precise::K}, - {"degsKelvin", precise::K}, - {"degkelvin", precise::K}, - {"degskelvin", precise::K}, - {"degK", precise::K}, - {"degsK", precise::K}, - {"N", precise::N}, - {"Ns", precise::N* precise::s}, // this would not pass through to the - // separation functions - {"Nm", precise::N* precise::m}, // this would not pass through to the - // separation functions - {"As", precise::A* precise::s}, // this would not pass through to the - // separation functions - {"Ah", precise::A* precise::hr}, // this would not pass through to the + defined_unit_strings_si{ + {{"", precise::defunit}, + {"[]", precise::defunit}, + {"def", precise::defunit}, + {"default", precise::defunit}, + {"defunit", precise::defunit}, + {"*", precise::defunit}, + {"**", precise::defunit}, + {"***", precise::defunit}, + {"****", precise::defunit}, + {"*****", precise::defunit}, + {"******", precise::defunit}, + {"^^^", precise::defunit}, + {"1", precise::one}, + {"one", precise::one}, + {"inf", precise::infinite}, + {".inf", precise::infinite}, + {"INF", precise::infinite}, + {"infinity", precise::infinite}, + {"INFINITY", precise::infinite}, + {"-inf", precise::neginfinite}, + {"-.inf", precise::neginfinite}, + {"-.Inf", precise::neginfinite}, + {"-*inf", + precise::neginfinite}, // this is to handle internal string cleaning + {"-*Inf", precise::neginfinite}, + {"-INF", precise::neginfinite}, + {"-infinity", precise::neginfinite}, + {"-INFINITY", precise::neginfinite}, + {"infinite", precise::infinite}, + {u8"\u221e", precise::infinite}, + {u8"-\u221e", precise::neginfinite}, + {"nan", precise::nan}, + {"NaN", precise::nan}, + {"NaN%", precise::nan}, + {"NAN", precise::nan}, + {".NAN", precise::nan}, + {"NaNQ", + precise_unit( + std::numeric_limits::quiet_NaN(), + detail::unit_data(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))}, + {"NaNS", precise::nan}, + {"qNaN", + precise_unit( + std::numeric_limits::quiet_NaN(), + detail::unit_data(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))}, + {"sNaN", precise::nan}, + {"1.#SNAN", precise::nan}, + {"#SNAN", precise::nan}, + {"1.#QNAN", + precise_unit( + std::numeric_limits::quiet_NaN(), + detail::unit_data(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))}, + {"#QNAN", + precise_unit( + std::numeric_limits::quiet_NaN(), + detail::unit_data(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))}, + {"1.#IND", precise::nan}, + {"#IND", precise::nan}, + {"0.1", precise_unit(0.1, precise::one)}, + {".1", precise_unit(0.1, precise::one)}, + {"deci", precise_unit(0.1, precise::one)}, + {"0.01", precise_unit(0.01, precise::one)}, + {".01", precise_unit(0.01, precise::one)}, + {"centi", precise_unit(0.01, precise::one)}, + {"0.001", precise::milli}, + {".001", precise::milli}, + {"milli", precise::milli}, + {"1e-3", precise::milli}, + {"1e-6", precise::micro}, + {"micro", precise::micro}, + {"1e-9", precise::nano}, + {"1e-12", precise::pico}, + {"1e-15", precise::femto}, + {"1e-18", precise::atto}, + {"nano", precise::nano}, + {"pico", precise::pico}, + {"femto", precise::femto}, + {"atto", precise::atto}, + {"yocto", precise::yocto}, + {"zepto", precise::zepto}, + {"ronto", precise::ronto}, + {"quecto", precise::quecto}, + {"10", precise_unit(10.0, precise::one)}, + {"ten", precise_unit(10.0, precise::one)}, + {"two", precise_unit(2.0, precise::one)}, + {"twenty", precise_unit(20.0, precise::one)}, + {"twelve", precise_unit(12.0, precise::one)}, + {"eight", precise_unit(8.0, precise::one)}, + {"100", precise_unit(100, precise::one)}, + {"hundred", precise_unit(100, precise::one)}, + {"fifty", precise_unit(50, precise::one)}, + {"centum", precise_unit(100, precise::one)}, + {"1000", precise::kilo}, + {"thousand", precise::kilo}, + {"1000000", precise::mega}, + {"million", precise::mega}, + {"1000000000", precise::giga}, + {"billion", precise::giga}, + {"billion_US", precise::giga}, + {"milliard", precise::giga}, + {"billion_br", precise::tera}, + {"trillion", precise::tera}, + {"trillion_US", precise::tera}, + {"trillion_br", precise::exa}, + {"quadrillion", precise::peta}, + {"1e3", precise::kilo}, + {"1e6", precise::mega}, + {"1e9", precise::giga}, + {"1e12", precise::tera}, + {"1e15", precise::peta}, + {"1e18", precise::exa}, + {"kilo", precise::kilo}, + {"k", precise::kilo}, + {"mega", precise::mega}, + {"giga", precise::giga}, + {"tera", precise::tera}, + {"peta", precise::peta}, + {"exa", precise::exa}, + {"yotta", precise::yotta}, + {"zetta", precise::zetta}, + {"ronna", precise::ronna}, + {"quetta", precise::quetta}, + {"%", precise::percent}, + {"%age", precise::percent}, + {"permille", precise::milli}, + {u8"\u2030", precise::milli}, // per mille symbol + {"bp", precise_unit(0.1, precise::milli)}, + {"basispoint", precise_unit(0.1, precise::milli)}, + {u8"\u2031", + precise_unit(0.1, precise::milli)}, // per ten thousand symbol + {"pct", precise::percent}, + {"pi", precise_unit(constants::pi, one)}, + {"PI", precise_unit(constants::pi, one)}, + {"[pi]", precise_unit(constants::pi, one)}, + {"thenumberpi", precise_unit(constants::pi, one)}, + {"[PI]", precise_unit(constants::pi, one)}, + {"Pi", precise_unit(constants::pi, one)}, + {u8"\u03C0", precise_unit(constants::pi, one)}, + {u8"\U0001D70B", precise_unit(constants::pi, one)}, + {u8"\U0001D745", precise_unit(constants::pi, one)}, + {u8"\U0001D6D1", precise_unit(constants::pi, one)}, + {u8"\u03B5", precise::pu* precise::m}, // strain + {u8"\u0190", precise::pu* precise::m}, // strain + {"strain", precise::pu* precise::m}, // strain + {"m", precise::m}, + {"Sm", precise::m}, // standard meter used in oil and gas usually Sm^3 + {"meter", precise::m}, + {"metre", precise::m}, + {"squaremeter", + precise::m.pow(2)}, // to simplify some things later in the chain + {"cubicmeter", precise::m.pow(3)}, + {"micron", precise::micro* precise::m}, + {"fermi", precise::femto* precise::m}, + {"xunit", precise::distance::xu}, + {"xu", precise::distance::xu}, + {"X", precise::distance::xu}, + {"cc", precise::cm.pow(3)}, + {"cubiccentimeter", precise::cm.pow(3)}, + {"m/s^2", precise::m / precise::s.pow(2)}, + {"kg/m^3", precise::kg / precise::m.pow(3)}, + {"kg", precise::kg}, + {"KG", precise::kg}, + {"kilogram", precise::kg}, + {"mol", precise::mol}, + {"einstein", precise::mol}, // technically of photons + {"gmol", precise::mol}, + {"lbmol", precise_unit(424.0, precise::mol)}, + {"atom", constants::Na.as_unit().inv()}, + {"avogadroconstant", constants::Na.as_unit()}, + {"molecule", constants::Na.as_unit().inv()}, + {"molec", constants::Na.as_unit().inv()}, + {"nucleon", constants::Na.as_unit().inv()}, + {"nuc", constants::Na.as_unit().inv()}, + {"MOL", precise::mol}, + {"mOL", precise::mol}, + {"mole", precise::mol}, + {"M", precise::laboratory::molarity}, + {"molar", precise::laboratory::molarity}, + {"Molar", precise::laboratory::molarity}, + {"eq", precise::mol}, + {"Eq", precise::mol}, + {"equivalent", + {1.0, precise::one, commodities::packaging::equivalent}}, + {"EQ", precise::mol}, + {"osm", + precise_unit(1.0, precise::mol, commodities::packaging::particle)}, + {"osmole", + precise_unit(1.0, precise::mol, commodities::packaging::particle)}, + {"osmol", + precise_unit(1.0, precise::mol, commodities::packaging::particle)}, + {"OSM", + precise_unit(1.0, precise::mol, commodities::packaging::particle)}, + {"totalacidnumber", precise::generate_custom_unit(213)}, + {"TAN", precise::generate_custom_unit(213)}, + {"g%", precise_unit(10.0, precise::g / precise::L)}, + {"gram%", precise_unit(10.0, precise::g / precise::L)}, + {"G%", precise_unit(10.0, precise::g / precise::L)}, + {"U", precise::laboratory::enzyme_unit}, + // this may not be best but it doesn't actually conflict with anything + // else right now + {"units", precise::laboratory::enzyme_unit}, + {"enzymeunit", precise::laboratory::enzyme_unit}, + {"internationalunitofenzymeactivity", + precise::laboratory::enzyme_unit}, + {"eu", precise::laboratory::enzyme_unit}, + {"A", precise::A}, + {"amp", precise::A}, + {"amps", precise::A}, + {"ampturn", precise::A* precise::count}, + {"At", precise::A* precise::count}, + {"V", precise::V}, + {"volt", precise::V}, + {"volt_ac", precise::V}, + {"volt_dc", precise::V}, + {"voltAC", precise::V}, + {"voltDC", precise::V}, + {"W", precise::W}, + {"W/m^2", precise::W / precise::m.pow(2)}, + {"watt", precise::W}, + {"kW", precise::electrical::kW}, + {"kilowatt", precise::electrical::kW}, + {"MW", precise::MW}, + {"megawatt", precise::MW}, + {"MVA", precise::electrical::MVAR}, + {"mvar", precise::electrical::MVAR}, + {"MVAR", precise::electrical::MVAR}, + {"VA", precise::electrical::VAR}, + {"voltampreactive", precise::electrical::VAR}, + {"VAR", precise::electrical::VAR}, + {"var", precise::electrical::VAR}, + {"s", precise::s}, + {"sec", precise::s}, + {"sec_time", precise::s}, + {"MAS", precise::mega* precise::s}, + {"mAS", precise::mega* precise::s}, + {"second", precise::s}, + {"second_time", precise::s}, + {"shake", precise_unit(10.0, precise::ns)}, + {"jiffy", precise_unit(0.01, precise::s)}, // use the computer science + // definition for playback + // and clock rate + {"cd", precise::cd}, + {"mcd", + precise::milli* precise::cd}, // prefer milli candela to micro-day + {"CD", precise::cd}, + {"candela", precise::cd}, + {"metercandle", precise::lumen / precise::m.pow(2)}, + {"centimetercandle", precise::lumen / precise::cm.pow(2)}, + {"K", precise::K}, + {"kelvin", precise::K}, + {"kelvins", precise::K}, + {"degKelvin", precise::K}, + {"degsKelvin", precise::K}, + {"degkelvin", precise::K}, + {"degskelvin", precise::K}, + {"degK", precise::K}, + {"degsK", precise::K}, + {"N", precise::N}, + {"Ns", precise::N* precise::s}, // this would not pass through to the // separation functions - {"Ahr", precise::A* precise::hr}, // this would not pass through to - // the separation functions - {"newton", precise::N}, - {"Pa", precise::Pa}, - {"pa", precise::Pa}, - {"pascal", precise::Pa}, - {"PAL", precise::Pa}, - {"pAL", precise::Pa}, - {"J", precise::J}, - {"joule", precise::J}, - {"Joule", precise::J}, - {"Joules", precise::J}, - {"C", precise::C}, - {"coulomb", precise::C}, - {"faraday", precise::other::faraday}, - {"farady", precise::other::faraday}, - {"chemicalfaraday", {9.64957e4, precise::C}}, - {"physicalfaraday", {9.65219e4, precise::C}}, - {"C12faraday", {9.648531, precise::C}}, - {"F", precise::F}, - {"farad", precise::F}, - {"abF", precise::cgs::abFarad}, - {"abfarad", precise::cgs::abFarad}, - {"stF", precise::cgs::statFarad}, - {"statfarad", precise::cgs::statFarad}, - {"OHM", precise::ohm}, - {"ohm", precise::ohm}, - {"Ohm", precise::ohm}, - {"kilohm", precise::kilo* precise::ohm}, // special case allowed by SI - {"megohm", precise::mega* precise::ohm}, // special case allowed by SI - {u8"\u03A9", precise::ohm}, // Greek Omega - {u8"\u2126", precise::ohm}, // Unicode Ohm symbol - {"abOhm", precise::cgs::abOhm}, - {"abohm", precise::cgs::abOhm}, - {"statohm", precise::cgs::statOhm}, - {"statOhm", precise::cgs::statOhm}, - {"S", precise::S}, - {"siemen", precise::S}, - {"siemens", precise::S}, - {"SIE", precise::S}, - {"mho", precise::S}, - {"gemmho", precise_unit(1e-6, precise::S)}, - {"MHO", precise::S}, - {"mHO", precise::S}, - {u8"\u01B1", precise::S}, - {"absiemen", precise_unit(1e9, precise::S)}, - {"abmho", precise_unit(1e9, precise::S)}, - {"statmho", precise_unit(1.0 / 8.987551787e11, S)}, - {"Wb", precise::Wb}, - {"weber", precise::Wb}, - {"T", precise::T}, - {"tesla", precise::T}, - {"H", precise::H}, - {"henry", precise::H}, - {"henries", precise::H}, - {"abhenry", precise::cgs::abHenry}, - {"abH", precise::cgs::abHenry}, - {"stathenry", precise::cgs::statHenry}, - {"stH", precise::cgs::statHenry}, - {"statH", precise::cgs::statHenry}, - {"lm", precise::lm}, - {"LM", precise::lm}, - {"lumen", precise::lm}, - {"lux", precise::lx}, - {"luxes", precise::lx}, - {"nox", precise::milli* precise::lx}, - {"lx", precise::lx}, - {"LX", precise::lx}, - {"Bq", precise::Bq}, - {"BQ", precise::Bq}, - {"becquerel", precise::Bq}, - {"rutherford", precise_unit(1e6, precise::Bq)}, - {"activity", precise::Bq}, - {"curie", precise::cgs::curie}, - {"gauss", precise::cgs::gauss}, - {"G", precise::cgs::gauss}, - {"Gs", precise::cgs::gauss}, - {"Ci", precise::cgs::curie}, - {"CI", precise::cgs::curie}, - {"Gal", precise::cgs::gal}, - {"Gals", precise::cgs::gal}, - {"galileos", precise::cgs::gal}, - {"linear", {1.0, precise::one, commodities::packaging::linear}}, - {"jansky", - precise_unit( - 1e-26, - precise::W / precise::m / precise::m / precise::Hz)}, - {"Jy", - precise_unit( - 1e-26, - precise::W / precise::m / precise::m / precise::Hz)}, - {"Mm^3", precise::kilo* precise::energy::scm}, // millum cubic meters - {"Nm^3", precise::energy::ncm}, // normal cubic meter - {"Sm^3", precise::energy::scm}, // standard cubic meter - {"MMm^3", precise::mega* precise::energy::scm}, // million cubic meters - {"bm^3", precise::giga* precise::energy::scm}, // billion cubic meters - {"tm^3", precise::tera* precise::energy::scm}, // trillion cubic meters - {"gwp", precise::climate::gwp}, // global warming potential - {"gtp", precise::climate::gtp}, // global temperature potential - {"ode", precise::climate::odp}, // ozone depletion equivalent - {"ozonedepletionequivalent", - precise::climate::odp}, // ozone depletion equivalent - {"min", precise::minute}, - {"min_time", precise::minute}, - {"mins", precise::minute}, - {"mIN", precise::minute}, - {"minute", precise::minute}, - {"minute_time", precise::minute}, - {"ms", precise::ms}, - {"millisecond", precise::ms}, - {"hr", precise::hr}, - {"HR", precise::hr}, - {"h", precise::hr}, - {"hour", precise::hr}, - {"day", precise::time::day}, - {"dy", precise::time::day}, - {"D", precise::time::day}, - {"d", precise::time::day}, - {"week", precise::time::week}, - {"weekly", precise::one / precise::time::week}, - {"wk", precise::time::week}, - {"WK", precise::time::week}, - {"y", precise::time::year}, - {"YR", precise::time::yr}, // this one gets 365 days exactly - {"yr", precise::time::yr}, // this one gets 365 days exactly - {"a", precise::area::are}, // SI symbol is are - {"year", precise::time::year}, // year SI Definition 365 days - {"yearly", precise::time::year.inv()}, // year - {"annum", precise::time::year}, // year - {"ANN", precise::time::aj}, // year - {"decade", precise::ten* precise::time::aj}, // year - {"century", precise::hundred* precise::time::aj}, // year - {"centuries", precise::hundred* precise::time::aj}, // year - {"millennia", precise::kilo* precise::time::ag}, // year - {"millennium", precise::kilo* precise::time::ag}, // year - {"syr", precise::time::syr}, // sidereal year - {"year_sdr", precise::time::syr}, // sidereal year - {"yr_sdr", precise::time::syr}, // sidereal year - {"month_sdr", - precise_unit(1.0 / 12.0, precise::time::syr)}, // sidereal month - {"mo_sdr", - precise_unit(1.0 / 12.0, precise::time::syr)}, // sidereal month - {"sday", precise::time::sday}, // sidereal day - {"day_sdr", precise::time::sday}, // sidereal day - {"dy_sdr", precise::time::sday}, // sidereal day - {"d_sdr", precise::time::sday}, // sidereal day - {"hour_sdr", - precise_unit(1.0 / 24.0, precise::time::sday)}, // sidereal hour - {"minute_sdr", - precise_unit(1.0 / 24.0 / 60.0, precise::time::sday)}, // sidereal - // minute - {"second_sdr", - precise_unit( - 1.0 / 24.0 / 60.0 / 60.0, - precise::time::sday)}, // sidereal - // second - {"hr_sdr", - precise_unit(1.0 / 24.0, precise::time::sday)}, // sidereal hour - {"min_sdr", - precise_unit(1.0 / 24.0 / 60.0, precise::time::sday)}, // sidereal - // minute - {"sec_sdr", - precise_unit( - 1.0 / 24.0 / 60.0 / 60.0, - precise::time::sday)}, // sidereal - // second - {"a_t", precise::time::at}, // tropical year - {"year_t", precise::time::at}, // tropical year - {"month_t", - precise_unit(1.0 / 12.0, precise::time::at)}, // tropical month - {"mo_t", - precise_unit(1.0 / 12.0, precise::time::at)}, // tropical month - {"month_[30]", {30.0, precise::day}}, - {"solaryear", precise::time::at}, // year - {"ANN_T", precise::time::at}, // year - {"a_j", precise::time::aj}, // year - {"meanyear_j", precise::time::aj}, // year - {"meanyr_j", precise::time::aj}, // year - {"year_j", precise::time::aj}, // year - {"yr_j", precise::time::aj}, // year - {"ANN_J", precise::time::aj}, // year - {"year(leap)", precise_unit(366.0, precise::time::day)}, // year - {"commonyear", precise_unit(365.0, precise::time::day)}, // year - {"leapyear", precise_unit(366.0, precise::time::day)}, // year - {"yearcommon", precise_unit(365.0, precise::time::day)}, // year - {"meanyear_g", precise::time::ag}, // year - {"meanyr_g", precise::time::ag}, // year - {"a_g", precise::time::ag}, // year - {"year_g", precise::time::ag}, // year - {"yr_g", precise::time::ag}, // year - {"ANN_G", precise::time::ag}, // year - {"mo", precise::time::mog}, // gregorian month - {"month", precise::time::mog}, // gregorian month - {"monthly", precise::time::mog.inv()}, // gregorian month - {"MO", precise::time::mog}, // gregorian month - {"mO", precise::time::mog}, // gregorian month - {"mos", precise::time::mos}, // synodal month - {"mo_s", precise::time::mos}, // synodal month - {"mO_S", precise::time::mos}, // synodal month - {"synodalmonth", precise::time::mos}, // synodal month - {"month_s", precise::time::mos}, // synodal month - {"lunarmonth", precise::time::mos}, // synodal month - {"lunarcycle", precise::time::mos}, // synodal month - {"moon", precise::time::mos}, // synodal month - {"mo_j", precise::time::moj}, // - {"month_j", precise::time::moj}, // - {"mO_J", precise::time::moj}, // - {"meanmonth_j", precise::time::moj}, // - {"mo_g", precise::time::mog}, // - {"mog", precise::time::mog}, // - {"month_g", precise::time::mog}, // - {"mO_G", precise::time::mog}, // - {"meanmonth_g", precise::time::mog}, // - {"eon", precise_unit(1e9, precise::time::syr)}, - {"workyear", precise_unit(2056, precise::hr)}, - {"workmonth", precise_unit(2056.0 / 12.0, precise::hr)}, - {"workweek", precise_unit(40.0, precise::hr)}, - {"workday", precise_unit(8.0, precise::hr)}, - {"arcdeg", precise::deg}, - {"angulardeg", precise::deg}, - {"deg", precise::deg}, - {"DEG", precise::deg}, - {"degE", precise::deg* precise::direction::east}, - {"east", precise::direction::east}, - {"degsE", precise::deg* precise::direction::east}, - {"degW", precise::deg* precise::direction::west}, - {"west", precise::direction::west}, - {"degsW", precise::deg* precise::direction::west}, - {"degS", precise::deg* precise::direction::south}, - {"south", precise::direction::south}, - {"degsS", precise::deg* precise::direction::south}, - {"degN", precise::deg* precise::direction::north}, - {"degsN", precise::direction::north}, - {"north", precise::direction::north}, - {"degT", precise::deg* precise::direction::north}, - {"degsT", precise::deg* precise::direction::north}, - {"true", precise::direction::north}, - {"o", precise::deg}, - {u8"\u00B0", precise::deg}, // unicode degree symbol - {"\xB0", precise::deg}, // latin-1 degree - {u8"\u00B0(s)", precise::deg}, // unicode degree symbol - {"\xB0(s)", precise::deg}, // latin-1 degree - {"degAPI", precise::special::degreeAPI}, - {u8"\u00B0API", precise::special::degreeAPI}, // unicode degree symbol - {"\xB0" - "API", - precise::special::degreeAPI}, // latin-1 degree - {"degBaume", precise::special::degreeBaumeLight}, - {u8"\u00B0Baume", - precise::special::degreeBaumeLight}, // unicode degree symbol - {"\xB0" - "Baume", - precise::special::degreeBaumeLight}, // latin-1 degree - {"degBaume_heavy", precise::special::degreeBaumeHeavy}, - {"degBaume_light", precise::special::degreeBaumeLight}, - {"degBalling", - {1.0, precise::generate_custom_unit(109), commodities::sugar}}, - {"degBrix", - {1.0, precise::generate_custom_unit(108), commodities::sugar}}, - {"deg_ang", precise::deg}, - {"arcminute", precise::angle::arcmin}, - {"arcmin", precise::angle::arcmin}, - {"amin", precise::angle::arcmin}, - {"MOA", precise::angle::arcmin}, - {"angularminute", precise::angle::arcmin}, - {"'", precise::angle::arcmin}, - {"`", precise::angle::arcmin}, - {u8"\u2032", precise::angle::arcmin}, // single prime - {"minute_ang", precise::angle::arcmin}, - {"min_ang", precise::angle::arcmin}, - {"arcsecond", precise::angle::arcsec}, - {"''", precise::angle::arcsec}, - {"``", precise::angle::arcsec}, - {"arcsec", precise::angle::arcsec}, - {"asec", precise::angle::arcsec}, - {"angularsecond", precise::angle::arcsec}, - {"\"", precise::angle::arcsec}, - {u8"\u2033", precise::angle::arcsec}, // double prime - {"second_ang", precise::angle::arcsec}, - {"sec_ang", precise::angle::arcsec}, - {"mas", precise_unit(0.001, precise::angle::arcsec)}, // milliarcsec - {"uas", precise_unit(0.000001, precise::angle::arcsec)}, // microarcsec - {"rad", precise::rad}, - {"radian", precise::rad}, - {"radiant", precise::rad}, - {"circ", precise_unit(constants::tau, precise::rad)}, - {"CIRC", precise_unit(constants::tau, precise::rad)}, - {"quadrant", precise_unit(90.0, precise::deg)}, - {"circle", precise_unit(constants::tau, precise::rad)}, - {"cycle", precise_unit(constants::tau, precise::rad)}, - {"rotation", precise_unit(constants::tau, precise::rad)}, - {"turn", precise_unit(constants::tau, precise::rad)}, - {"circle-planeangle", precise_unit(constants::tau, precise::rad)}, - {"sph", precise_unit(4.0 * constants::pi, precise::sr)}, - {"spere-solidangle", precise_unit(4.0 * constants::pi, precise::sr)}, - {"spere", precise_unit(4.0 * constants::pi, precise::sr)}, - {"speres", precise_unit(4.0 * constants::pi, precise::sr)}, - {"Spere", precise_unit(4.0 * constants::pi, precise::sr)}, - {"SPH", precise_unit(4.0 * constants::pi, precise::sr)}, - {"\xB0" - "C", - precise::degC}, - {u8"\u00B0C", precise::degC}, - {u8"\u2103", precise::degC}, // direct unicode symbol - {"\xB0" - "K", - precise::K}, - {u8"\u00B0K", precise::K}, + {"Nm", precise::N* precise::m}, // this would not pass through to the + // separation functions + {"As", precise::A* precise::s}, // this would not pass through to the + // separation functions + {"Ah", precise::A* precise::hr}, // this would not pass through to the + // separation functions + {"Ahr", precise::A* precise::hr}, // this would not pass through to + // the separation functions + {"newton", precise::N}, + {"Pa", precise::Pa}, + {"pa", precise::Pa}, + {"pascal", precise::Pa}, + {"PAL", precise::Pa}, + {"pAL", precise::Pa}, + {"J", precise::J}, + {"joule", precise::J}, + {"Joule", precise::J}, + {"Joules", precise::J}, + {"C", precise::C}, + {"coulomb", precise::C}, + {"faraday", precise::other::faraday}, + {"farady", precise::other::faraday}, + {"chemicalfaraday", {9.64957e4, precise::C}}, + {"physicalfaraday", {9.65219e4, precise::C}}, + {"C12faraday", {9.648531, precise::C}}, + {"F", precise::F}, + {"farad", precise::F}, + {"abF", precise::cgs::abFarad}, + {"abfarad", precise::cgs::abFarad}, + {"stF", precise::cgs::statFarad}, + {"statfarad", precise::cgs::statFarad}, + {"OHM", precise::ohm}, + {"ohm", precise::ohm}, + {"Ohm", precise::ohm}, + {"kilohm", precise::kilo* precise::ohm}, // special case allowed by SI + {"megohm", precise::mega* precise::ohm}, // special case allowed by SI + {u8"\u03A9", precise::ohm}, // Greek Omega + {u8"\u2126", precise::ohm}, // Unicode Ohm symbol + {"abOhm", precise::cgs::abOhm}, + {"abohm", precise::cgs::abOhm}, + {"statohm", precise::cgs::statOhm}, + {"statOhm", precise::cgs::statOhm}, + {"S", precise::S}, + {"siemen", precise::S}, + {"siemens", precise::S}, + {"SIE", precise::S}, + {"mho", precise::S}, + {"gemmho", precise_unit(1e-6, precise::S)}, + {"MHO", precise::S}, + {"mHO", precise::S}, + {u8"\u01B1", precise::S}, + {"absiemen", precise_unit(1e9, precise::S)}, + {"abmho", precise_unit(1e9, precise::S)}, + {"statmho", precise_unit(1.0 / 8.987551787e11, S)}, + {"Wb", precise::Wb}, + {"weber", precise::Wb}, + {"T", precise::T}, + {"tesla", precise::T}, + {"H", precise::H}, + {"henry", precise::H}, + {"henries", precise::H}, + {"abhenry", precise::cgs::abHenry}, + {"abH", precise::cgs::abHenry}, + {"stathenry", precise::cgs::statHenry}, + {"stH", precise::cgs::statHenry}, + {"statH", precise::cgs::statHenry}, + {"lm", precise::lm}, + {"LM", precise::lm}, + {"lumen", precise::lm}, + {"lux", precise::lx}, + {"luxes", precise::lx}, + {"nox", precise::milli* precise::lx}, + {"lx", precise::lx}, + {"LX", precise::lx}, + {"Bq", precise::Bq}, + {"BQ", precise::Bq}, + {"becquerel", precise::Bq}, + {"rutherford", precise_unit(1e6, precise::Bq)}, + {"activity", precise::Bq}, + {"curie", precise::cgs::curie}, + {"gauss", precise::cgs::gauss}, + {"G", precise::cgs::gauss}, + {"Gs", precise::cgs::gauss}, + {"Ci", precise::cgs::curie}, + {"CI", precise::cgs::curie}, + {"Gal", precise::cgs::gal}, + {"Gals", precise::cgs::gal}, + {"galileos", precise::cgs::gal}, + {"linear", {1.0, precise::one, commodities::packaging::linear}}, + {"jansky", + precise_unit( + 1e-26, + precise::W / precise::m / precise::m / precise::Hz)}, + {"Jy", + precise_unit( + 1e-26, + precise::W / precise::m / precise::m / precise::Hz)}, + {"Mm^3", precise::kilo* precise::energy::scm}, // millum cubic meters + {"Nm^3", precise::energy::ncm}, // normal cubic meter + {"Sm^3", precise::energy::scm}, // standard cubic meter + {"MMm^3", + precise::mega* precise::energy::scm}, // million cubic meters + {"bm^3", precise::giga* precise::energy::scm}, // billion cubic meters + {"tm^3", + precise::tera* precise::energy::scm}, // trillion cubic meters + {"gwp", precise::climate::gwp}, // global warming potential + {"gtp", precise::climate::gtp}, // global temperature potential + {"ode", precise::climate::odp}, // ozone depletion equivalent + {"ozonedepletionequivalent", + precise::climate::odp}, // ozone depletion equivalent + {"min", precise::minute}, + {"min_time", precise::minute}, + {"mins", precise::minute}, + {"mIN", precise::minute}, + {"minute", precise::minute}, + {"minute_time", precise::minute}, + {"ms", precise::ms}, + {"millisecond", precise::ms}, + {"hr", precise::hr}, + {"HR", precise::hr}, + {"h", precise::hr}, + {"hour", precise::hr}, + {"day", precise::time::day}, + {"dy", precise::time::day}, + {"D", precise::time::day}, + {"d", precise::time::day}, + {"week", precise::time::week}, + {"weekly", precise::one / precise::time::week}, + {"wk", precise::time::week}, + {"WK", precise::time::week}, + {"y", precise::time::year}, + {"YR", precise::time::yr}, // this one gets 365 days exactly + {"yr", precise::time::yr}, // this one gets 365 days exactly + {"a", precise::area::are}, // SI symbol is are + {"year", precise::time::year}, // year SI Definition 365 days + {"yearly", precise::time::year.inv()}, // year + {"annum", precise::time::year}, // year + {"ANN", precise::time::aj}, // year + {"decade", precise::ten* precise::time::aj}, // year + {"century", precise::hundred* precise::time::aj}, // year + {"centuries", precise::hundred* precise::time::aj}, // year + {"millennia", precise::kilo* precise::time::ag}, // year + {"millennium", precise::kilo* precise::time::ag}, // year + {"syr", precise::time::syr}, // sidereal year + {"year_sdr", precise::time::syr}, // sidereal year + {"yr_sdr", precise::time::syr}, // sidereal year + {"month_sdr", + precise_unit(1.0 / 12.0, precise::time::syr)}, // sidereal month + {"mo_sdr", + precise_unit(1.0 / 12.0, precise::time::syr)}, // sidereal month + {"sday", precise::time::sday}, // sidereal day + {"day_sdr", precise::time::sday}, // sidereal day + {"dy_sdr", precise::time::sday}, // sidereal day + {"d_sdr", precise::time::sday}, // sidereal day + {"hour_sdr", + precise_unit(1.0 / 24.0, precise::time::sday)}, // sidereal hour + {"minute_sdr", + precise_unit(1.0 / 24.0 / 60.0, precise::time::sday)}, // sidereal + // minute + {"second_sdr", + precise_unit( + 1.0 / 24.0 / 60.0 / 60.0, + precise::time::sday)}, // sidereal + // second + {"hr_sdr", + precise_unit(1.0 / 24.0, precise::time::sday)}, // sidereal hour + {"min_sdr", + precise_unit(1.0 / 24.0 / 60.0, precise::time::sday)}, // sidereal + // minute + {"sec_sdr", + precise_unit( + 1.0 / 24.0 / 60.0 / 60.0, + precise::time::sday)}, // sidereal + // second + {"a_t", precise::time::at}, // tropical year + {"year_t", precise::time::at}, // tropical year + {"month_t", + precise_unit(1.0 / 12.0, precise::time::at)}, // tropical month + {"mo_t", + precise_unit(1.0 / 12.0, precise::time::at)}, // tropical month + {"month_[30]", {30.0, precise::day}}, + {"solaryear", precise::time::at}, // year + {"ANN_T", precise::time::at}, // year + {"a_j", precise::time::aj}, // year + {"meanyear_j", precise::time::aj}, // year + {"meanyr_j", precise::time::aj}, // year + {"year_j", precise::time::aj}, // year + {"yr_j", precise::time::aj}, // year + {"ANN_J", precise::time::aj}, // year + {"year(leap)", precise_unit(366.0, precise::time::day)}, // year + {"commonyear", precise_unit(365.0, precise::time::day)}, // year + {"leapyear", precise_unit(366.0, precise::time::day)}, // year + {"yearcommon", precise_unit(365.0, precise::time::day)}, // year + {"meanyear_g", precise::time::ag}, // year + {"meanyr_g", precise::time::ag}, // year + {"a_g", precise::time::ag}, // year + {"year_g", precise::time::ag}, // year + {"yr_g", precise::time::ag}, // year + {"ANN_G", precise::time::ag}, // year + {"mo", precise::time::mog}, // gregorian month + {"month", precise::time::mog}, // gregorian month + {"monthly", precise::time::mog.inv()}, // gregorian month + {"MO", precise::time::mog}, // gregorian month + {"mO", precise::time::mog}, // gregorian month + {"mos", precise::time::mos}, // synodal month + {"mo_s", precise::time::mos}, // synodal month + {"mO_S", precise::time::mos}, // synodal month + {"synodalmonth", precise::time::mos}, // synodal month + {"month_s", precise::time::mos}, // synodal month + {"lunarmonth", precise::time::mos}, // synodal month + {"lunarcycle", precise::time::mos}, // synodal month + {"moon", precise::time::mos}, // synodal month + {"mo_j", precise::time::moj}, // + {"month_j", precise::time::moj}, // + {"mO_J", precise::time::moj}, // + {"meanmonth_j", precise::time::moj}, // + {"mo_g", precise::time::mog}, // + {"mog", precise::time::mog}, // + {"month_g", precise::time::mog}, // + {"mO_G", precise::time::mog}, // + {"meanmonth_g", precise::time::mog}, // + {"eon", precise_unit(1e9, precise::time::syr)}, + {"workyear", precise_unit(2056, precise::hr)}, + {"workmonth", precise_unit(2056.0 / 12.0, precise::hr)}, + {"workweek", precise_unit(40.0, precise::hr)}, + {"workday", precise_unit(8.0, precise::hr)}, + {"arcdeg", precise::deg}, + {"angulardeg", precise::deg}, + {"deg", precise::deg}, + {"DEG", precise::deg}, + {"degE", precise::deg* precise::direction::east}, + {"east", precise::direction::east}, + {"degsE", precise::deg* precise::direction::east}, + {"degW", precise::deg* precise::direction::west}, + {"west", precise::direction::west}, + {"degsW", precise::deg* precise::direction::west}, + {"degS", precise::deg* precise::direction::south}, + {"south", precise::direction::south}, + {"degsS", precise::deg* precise::direction::south}, + {"degN", precise::deg* precise::direction::north}, + {"degsN", precise::direction::north}, + {"north", precise::direction::north}, + {"degT", precise::deg* precise::direction::north}, + {"degsT", precise::deg* precise::direction::north}, + {"true", precise::direction::north}, + {"o", precise::deg}, + {u8"\u00B0", precise::deg}, // unicode degree symbol + {"\xB0", precise::deg}, // latin-1 degree + {u8"\u00B0(s)", precise::deg}, // unicode degree symbol + {"\xB0(s)", precise::deg}, // latin-1 degree + {"degAPI", precise::special::degreeAPI}, + {u8"\u00B0API", precise::special::degreeAPI}, // unicode degree symbol + {"\xB0" + "API", + precise::special::degreeAPI}, // latin-1 degree + {"degBaume", precise::special::degreeBaumeLight}, + {u8"\u00B0Baume", + precise::special::degreeBaumeLight}, // unicode degree symbol + {"\xB0" + "Baume", + precise::special::degreeBaumeLight}, // latin-1 degree + {"degBaume_heavy", precise::special::degreeBaumeHeavy}, + {"degBaume_light", precise::special::degreeBaumeLight}, + {"degBalling", + {1.0, precise::generate_custom_unit(109), commodities::sugar}}, + {"degBrix", + {1.0, precise::generate_custom_unit(108), commodities::sugar}}, + {"deg_ang", precise::deg}, + {"arcminute", precise::angle::arcmin}, + {"arcmin", precise::angle::arcmin}, + {"amin", precise::angle::arcmin}, + {"MOA", precise::angle::arcmin}, + {"angularminute", precise::angle::arcmin}, + {"'", precise::angle::arcmin}, + {"`", precise::angle::arcmin}, + {u8"\u2032", precise::angle::arcmin}, // single prime + {"minute_ang", precise::angle::arcmin}, + {"min_ang", precise::angle::arcmin}, + {"arcsecond", precise::angle::arcsec}, + {"''", precise::angle::arcsec}, + {"``", precise::angle::arcsec}, + {"arcsec", precise::angle::arcsec}, + {"asec", precise::angle::arcsec}, + {"angularsecond", precise::angle::arcsec}, + {"\"", precise::angle::arcsec}, + {u8"\u2033", precise::angle::arcsec}, // double prime + {"second_ang", precise::angle::arcsec}, + {"sec_ang", precise::angle::arcsec}, + {"mas", precise_unit(0.001, precise::angle::arcsec)}, // milliarcsec + {"uas", + precise_unit(0.000001, precise::angle::arcsec)}, // microarcsec + {"rad", precise::rad}, + {"radian", precise::rad}, + {"radiant", precise::rad}, + {"circ", precise_unit(constants::tau, precise::rad)}, + {"CIRC", precise_unit(constants::tau, precise::rad)}, + {"quadrant", precise_unit(90.0, precise::deg)}, + {"circle", precise_unit(constants::tau, precise::rad)}, + {"cycle", precise_unit(constants::tau, precise::rad)}, + {"rotation", precise_unit(constants::tau, precise::rad)}, + {"turn", precise_unit(constants::tau, precise::rad)}, + {"circle-planeangle", precise_unit(constants::tau, precise::rad)}, + {"sph", precise_unit(4.0 * constants::pi, precise::sr)}, + {"spere-solidangle", precise_unit(4.0 * constants::pi, precise::sr)}, + {"spere", precise_unit(4.0 * constants::pi, precise::sr)}, + {"speres", precise_unit(4.0 * constants::pi, precise::sr)}, + {"Spere", precise_unit(4.0 * constants::pi, precise::sr)}, + {"SPH", precise_unit(4.0 * constants::pi, precise::sr)}, + {"\xB0" + "C", + precise::degC}, + {u8"\u00B0C", precise::degC}, + {u8"\u2103", precise::degC}, // direct unicode symbol + {"\xB0" + "K", + precise::K}, + {u8"\u00B0K", precise::K}, - {"degC", precise::degC}, - {"oC", precise::degC}, - {"Cel", precise::degC}, - {"CEL", precise::degC}, - {"K@273.15", precise::degC}, - {"celsius", precise::degC}, - {"degCelsius", precise::degC}, - {"degsC", precise::degC}, - {"cm", precise::cm}, - {"centimeter", precise::cm}, - {"km", precise::km}, - {"kilometer", precise::km}, - {"mm", precise::mm}, - {"millimeter", precise::mm}, - {"nm", precise::nm}, - {"nanometer", precise::nm}, - {"ly", precise::distance::ly}, - {"[LY]", precise::distance::ly}, - {"lightyear", precise::distance::ly}, - {"light-year", precise::distance::ly}, - {"pc", precise::distance::parsec}, - {"parsec", precise::distance::parsec}, - {"PRS", precise::distance::parsec}, - {"pRS", precise::distance::parsec}, - {"[c]", constants::c.as_unit()}, - {"c", constants::c.as_unit()}, - {"[C]", constants::c.as_unit()}, - {"speedoflight", constants::c.as_unit()}, - {"speedoflightinvacuum", constants::c.as_unit()}, - {"light", constants::c.as_unit()}, - {"[h]", constants::h.as_unit()}, - {"[hbar]", constants::hbar.as_unit()}, - {"hbar", constants::hbar.as_unit()}, - {"[H]", constants::h.as_unit()}, - {u8"\u210E", constants::h.as_unit()}, - {u8"\u210F", - precise_unit(1.0 / constants::tau, constants::h.as_unit())}, - {"[k]", constants::k.as_unit()}, - {"[K]", constants::k.as_unit()}, - {"eps_0", constants::eps0.as_unit()}, - {"[eps_0]", constants::eps0.as_unit()}, - {"vacuumpermittivity", constants::eps0.as_unit()}, - {"[EPS_0]", constants::eps0.as_unit()}, - {u8"\u03B5" - "0", - constants::eps0.as_unit()}, - {u8"\u03B5\u2080", constants::eps0.as_unit()}, - {"mu_0", constants::mu0.as_unit()}, - {"[MU_0]", constants::mu0.as_unit()}, - {"[mu0]", constants::mu0.as_unit()}, - {"[e]", constants::e.as_unit()}, - {"e", constants::e.as_unit()}, - {"[E]", constants::e.as_unit()}, - {"elementarycharge", constants::e.as_unit()}, - {"[G]", constants::G.as_unit()}, - {"[GC]", constants::G.as_unit()}, - {"[g]", constants::g0.as_unit()}, - {"[g0]", constants::g0.as_unit()}, - {"standardgravity", constants::g0.as_unit()}, - {"standardfreefall", constants::g0.as_unit()}, - {"freefall", constants::g0.as_unit()}, - {"standardaccelerationoffreefall", constants::g0.as_unit()}, - {"accelerationofgravity", constants::g0.as_unit()}, - {"m_e", constants::me.as_unit()}, - {"[me]", constants::me.as_unit()}, - {"electronmass", constants::me.as_unit()}, - {"[M_E]", constants::me.as_unit()}, - {"m_p", constants::mp.as_unit()}, - {"[M_P]", constants::mp.as_unit()}, - {"[mp]", constants::mp.as_unit()}, - {"protonmass", constants::mp.as_unit()}, - {"m_n", constants::mn.as_unit()}, - {"[M_N]", constants::mn.as_unit()}, - {"[mn]", constants::mn.as_unit()}, - {"neutronmass", constants::mn.as_unit()}, - {"planckmass", constants::planck::mass.as_unit()}, - {"plancklength", constants::planck::length.as_unit()}, - {"plancktime", constants::planck::time.as_unit()}, - {"planckcharge", constants::planck::charge.as_unit()}, - {"plancktemperature", constants::planck::temperature.as_unit()}, - {"planckarea", constants::planck::length.as_unit().pow(2)}, - {"planckvolume", constants::planck::length.as_unit().pow(3)}, - {"planckenergy", precise_unit(1.9561e9, precise::J)}, - {"[fCs]", constants::fCs.as_unit()}, - {"[alpha]", constants::alpha.as_unit()}, - {"[mu]", constants::mu.as_unit()}, - {"[Na]", constants::Na.as_unit()}, - {"[Kcd]", constants::Kcd.as_unit()}, - {"[R]", constants::R.as_unit()}, - {"[s]", constants::s.as_unit()}, - {"[H0]", constants::H0.as_unit()}, - {"[a0]", constants::a0.as_unit()}, - {"[F]", constants::F.as_unit()}, - {"[Kj]", constants::Kj.as_unit()}, - {"[phi0]", constants::phi0.as_unit()}, - {"[Rk]", constants::Rk.as_unit()}, - {"[Rinf]", constants::Rinf.as_unit()}, - {"[planck::length]", constants::planck::length.as_unit()}, - {"[planck::mass]", constants::planck::mass.as_unit()}, - {"[planck::time]", constants::planck::time.as_unit()}, - {"[planck::charge]", constants::planck::charge.as_unit()}, - {"[planck::temperature]", constants::planck::temperature.as_unit()}, - {"[atomic::mass]", constants::atomic::mass.as_unit()}, - {"[atomic::length]", constants::atomic::length.as_unit()}, - {"[atomic::time]", constants::atomic::time.as_unit()}, - {"[atomic::charge]", constants::atomic::charge.as_unit()}, - {"[atomic::energy]", constants::atomic::energy.as_unit()}, - {"[atomic::action]", constants::atomic::action.as_unit()}, - {"[planck::area]", constants::planck::length.as_unit().pow(2)}, - {"[planck::volume]", constants::planck::length.as_unit().pow(3)}, - {"[planck::energy]", precise_unit(1.9561e9, precise::J)}, - {"dry", {1.0, precise::one, commodities::packaging::dry}}, - {"au", precise::distance::au}, - {"AU", precise::distance::au}, - {"ASU", precise::distance::au}, - {"astronomicalunit", precise::distance::au}, - {"astronomicunit", precise::distance::au}, - {"kph", precise::km / precise::hr}, - {"$", precise::currency}, - {"dollar", {1.0, precise::currency, commodities::currencies::dollar}}, - {"euro", {1.0, precise::currency, commodities::currencies::euro}}, - {"yen", {1.0, precise::currency, commodities::currencies::yen}}, - {"ruble", {1.0, precise::currency, commodities::currencies::ruble}}, - {"currency", precise::currency}, - {u8"\u00A2", {0.01, precise::currency}}, // cent symbol - {"\xA2", {0.01, precise::currency}}, // cent symbol latin-1 - {u8"\u00A3", - {1.0, precise::currency, commodities::currencies::pound}}, // pound + {"degC", precise::degC}, + {"oC", precise::degC}, + {"Cel", precise::degC}, + {"CEL", precise::degC}, + {"K@273.15", precise::degC}, + {"celsius", precise::degC}, + {"degCelsius", precise::degC}, + {"degsC", precise::degC}, + {"cm", precise::cm}, + {"centimeter", precise::cm}, + {"km", precise::km}, + {"kilometer", precise::km}, + {"mm", precise::mm}, + {"millimeter", precise::mm}, + {"nm", precise::nm}, + {"nanometer", precise::nm}, + {"ly", precise::distance::ly}, + {"[LY]", precise::distance::ly}, + {"lightyear", precise::distance::ly}, + {"light-year", precise::distance::ly}, + {"pc", precise::distance::parsec}, + {"parsec", precise::distance::parsec}, + {"PRS", precise::distance::parsec}, + {"pRS", precise::distance::parsec}, + {"[c]", constants::c.as_unit()}, + {"c", constants::c.as_unit()}, + {"[C]", constants::c.as_unit()}, + {"speedoflight", constants::c.as_unit()}, + {"speedoflightinvacuum", constants::c.as_unit()}, + {"light", constants::c.as_unit()}, + {"[h]", constants::h.as_unit()}, + {"[hbar]", constants::hbar.as_unit()}, + {"hbar", constants::hbar.as_unit()}, + {"[H]", constants::h.as_unit()}, + {u8"\u210E", constants::h.as_unit()}, + {u8"\u210F", + precise_unit(1.0 / constants::tau, constants::h.as_unit())}, + {"[k]", constants::k.as_unit()}, + {"[K]", constants::k.as_unit()}, + {"eps_0", constants::eps0.as_unit()}, + {"[eps_0]", constants::eps0.as_unit()}, + {"vacuumpermittivity", constants::eps0.as_unit()}, + {"[EPS_0]", constants::eps0.as_unit()}, + {u8"\u03B5" + "0", + constants::eps0.as_unit()}, + {u8"\u03B5\u2080", constants::eps0.as_unit()}, + {"mu_0", constants::mu0.as_unit()}, + {"[MU_0]", constants::mu0.as_unit()}, + {"[mu0]", constants::mu0.as_unit()}, + {"[e]", constants::e.as_unit()}, + {"e", constants::e.as_unit()}, + {"[E]", constants::e.as_unit()}, + {"elementarycharge", constants::e.as_unit()}, + {"[G]", constants::G.as_unit()}, + {"[GC]", constants::G.as_unit()}, + {"[g]", constants::g0.as_unit()}, + {"[g0]", constants::g0.as_unit()}, + {"standardgravity", constants::g0.as_unit()}, + {"standardfreefall", constants::g0.as_unit()}, + {"freefall", constants::g0.as_unit()}, + {"standardaccelerationoffreefall", constants::g0.as_unit()}, + {"accelerationofgravity", constants::g0.as_unit()}, + {"m_e", constants::me.as_unit()}, + {"[me]", constants::me.as_unit()}, + {"electronmass", constants::me.as_unit()}, + {"[M_E]", constants::me.as_unit()}, + {"m_p", constants::mp.as_unit()}, + {"[M_P]", constants::mp.as_unit()}, + {"[mp]", constants::mp.as_unit()}, + {"protonmass", constants::mp.as_unit()}, + {"m_n", constants::mn.as_unit()}, + {"[M_N]", constants::mn.as_unit()}, + {"[mn]", constants::mn.as_unit()}, + {"neutronmass", constants::mn.as_unit()}, + {"planckmass", constants::planck::mass.as_unit()}, + {"plancklength", constants::planck::length.as_unit()}, + {"plancktime", constants::planck::time.as_unit()}, + {"planckcharge", constants::planck::charge.as_unit()}, + {"plancktemperature", constants::planck::temperature.as_unit()}, + {"planckarea", constants::planck::length.as_unit().pow(2)}, + {"planckvolume", constants::planck::length.as_unit().pow(3)}, + {"planckenergy", precise_unit(1.9561e9, precise::J)}, + {"[fCs]", constants::fCs.as_unit()}, + {"[alpha]", constants::alpha.as_unit()}, + {"[mu]", constants::mu.as_unit()}, + {"[Na]", constants::Na.as_unit()}, + {"[Kcd]", constants::Kcd.as_unit()}, + {"[R]", constants::R.as_unit()}, + {"[s]", constants::s.as_unit()}, + {"[H0]", constants::H0.as_unit()}, + {"[a0]", constants::a0.as_unit()}, + {"[F]", constants::F.as_unit()}, + {"[Kj]", constants::Kj.as_unit()}, + {"[phi0]", constants::phi0.as_unit()}, + {"[Rk]", constants::Rk.as_unit()}, + {"[Rinf]", constants::Rinf.as_unit()}, + {"[planck::length]", constants::planck::length.as_unit()}, + {"[planck::mass]", constants::planck::mass.as_unit()}, + {"[planck::time]", constants::planck::time.as_unit()}, + {"[planck::charge]", constants::planck::charge.as_unit()}, + {"[planck::temperature]", constants::planck::temperature.as_unit()}, + {"[atomic::mass]", constants::atomic::mass.as_unit()}, + {"[atomic::length]", constants::atomic::length.as_unit()}, + {"[atomic::time]", constants::atomic::time.as_unit()}, + {"[atomic::charge]", constants::atomic::charge.as_unit()}, + {"[atomic::energy]", constants::atomic::energy.as_unit()}, + {"[atomic::action]", constants::atomic::action.as_unit()}, + {"[planck::area]", constants::planck::length.as_unit().pow(2)}, + {"[planck::volume]", constants::planck::length.as_unit().pow(3)}, + {"[planck::energy]", precise_unit(1.9561e9, precise::J)}, + {"dry", {1.0, precise::one, commodities::packaging::dry}}, + {"au", precise::distance::au}, + {"AU", precise::distance::au}, + {"ASU", precise::distance::au}, + {"astronomicalunit", precise::distance::au}, + {"astronomicunit", precise::distance::au}, + {"kph", precise::km / precise::hr}, + {"$", precise::currency}, + {"dollar", {1.0, precise::currency, commodities::currencies::dollar}}, + {"euro", {1.0, precise::currency, commodities::currencies::euro}}, + {"yen", {1.0, precise::currency, commodities::currencies::yen}}, + {"ruble", {1.0, precise::currency, commodities::currencies::ruble}}, + {"currency", precise::currency}, + {u8"\u00A2", {0.01, precise::currency}}, // cent symbol + {"\xA2", {0.01, precise::currency}}, // cent symbol latin-1 + {u8"\u00A3", + {1.0, precise::currency, commodities::currencies::pound}}, // pound + // sign + {"\xA3", + {1.0, precise::currency, commodities::currencies::pound}}, // pound + // sign + // latin-1 + {u8"\u00A4", precise::currency}, // currency sign + {"\xA4", precise::currency}, // currency sign latin-1 + {u8"\u00A5", + {1.0, precise::currency, commodities::currencies::yen}}, // Yen sign + {"\xA5", precise::currency}, // Yen sign latin-1 + {u8"\u0080", + {1.0, precise::currency, commodities::currencies::euro}}, // Euro // sign - {"\xA3", - {1.0, precise::currency, commodities::currencies::pound}}, // pound + {"\x80", + {1.0, precise::currency, commodities::currencies::euro}}, // Euro // sign - // latin-1 - {u8"\u00A4", precise::currency}, // currency sign - {"\xA4", precise::currency}, // currency sign latin-1 - {u8"\u00A5", - {1.0, precise::currency, commodities::currencies::yen}}, // Yen sign - {"\xA5", precise::currency}, // Yen sign latin-1 - {u8"\u0080", - {1.0, precise::currency, commodities::currencies::euro}}, // Euro sign - {"\x80", - {1.0, precise::currency, commodities::currencies::euro}}, // Euro sign - // extended - // ascii - {"count", precise::count}, - {"unit", precise::count}, - {"pair", precise_unit(2.0, precise::count)}, - {"dozen", precise_unit(12.0, precise::count)}, - {"bakersdozen", precise_unit(13.0, precise::count)}, - {"score", precise_unit(20.0, precise::count)}, - {"octet", precise_unit(8.0, precise::count)}, - {"gross", precise_unit(144.0, precise::count)}, - {"greatgross", precise_unit(144.0 * 12.0, precise::count)}, - {"smallgross", precise_unit(10.0 * 12.0, precise::count)}, - {"googol", precise_unit(1e100, precise::one)}, - {"half", precise_unit(0.5, precise::one)}, - {"quarter", precise_unit(0.25, precise::one)}, - {"third", precise_unit(1.0 / 3.0, precise::one)}, - {"fourth", precise_unit(0.25, precise::one)}, - {"fifth", precise_unit(0.2, precise::one)}, - {"sixth", precise_unit(1.0 / 6.0, precise::one)}, - {"eighth", precise_unit(0.125, precise::one)}, - {"tenth", precise_unit(0.1, precise::one)}, - {"cell", precise_unit(1.0, precise::count, commodities::cell)}, - {"cells", precise_unit(1.0, precise::count, commodities::cell)}, - {"{cells}", precise_unit(1.0, precise::count, commodities::cell)}, - // mainly to catch the commodity for using cell - {"{#}", precise::count}, - {"[#]", precise::count}, - {"#", precise::count}, - {"number", precise::count}, - // {"ct", precise::count}, - {"pix", - precise_unit(1.0, precise::count, commodities::pixel)}, // Pixel - {"pixel", - precise_unit(1.0, precise::count, commodities::pixel)}, // Pixel - {"dot", - precise_unit(1.0, precise::count, commodities::voxel)}, // Pixel - {"voxel", - precise_unit(1.0, precise::count, commodities::voxel)}, // Pixel - {"item", precise::count}, - {"piece", precise::count}, - {"part", precise::count}, - {"ratio", precise::ratio}, - {"rat", precise::ratio}, - {"ERR", precise::error}, - {"ERROR", precise::error}, - {"error", precise::error}, + // extended + // ascii + {"count", precise::count}, + {"unit", precise::count}, + {"pair", precise_unit(2.0, precise::count)}, + {"dozen", precise_unit(12.0, precise::count)}, + {"bakersdozen", precise_unit(13.0, precise::count)}, + {"score", precise_unit(20.0, precise::count)}, + {"octet", precise_unit(8.0, precise::count)}, + {"gross", precise_unit(144.0, precise::count)}, + {"greatgross", precise_unit(144.0 * 12.0, precise::count)}, + {"smallgross", precise_unit(10.0 * 12.0, precise::count)}, + {"googol", precise_unit(1e100, precise::one)}, + {"half", precise_unit(0.5, precise::one)}, + {"quarter", precise_unit(0.25, precise::one)}, + {"third", precise_unit(1.0 / 3.0, precise::one)}, + {"fourth", precise_unit(0.25, precise::one)}, + {"fifth", precise_unit(0.2, precise::one)}, + {"sixth", precise_unit(1.0 / 6.0, precise::one)}, + {"eighth", precise_unit(0.125, precise::one)}, + {"tenth", precise_unit(0.1, precise::one)}, + {"cell", precise_unit(1.0, precise::count, commodities::cell)}, + {"cells", precise_unit(1.0, precise::count, commodities::cell)}, + {"{cells}", precise_unit(1.0, precise::count, commodities::cell)}, + // mainly to catch the commodity for using cell + {"{#}", precise::count}, + {"[#]", precise::count}, + {"#", precise::count}, + {"number", precise::count}, + // {"ct", precise::count}, + {"pix", + precise_unit(1.0, precise::count, commodities::pixel)}, // Pixel + {"pixel", + precise_unit(1.0, precise::count, commodities::pixel)}, // Pixel + {"dot", + precise_unit(1.0, precise::count, commodities::voxel)}, // Pixel + {"voxel", + precise_unit(1.0, precise::count, commodities::voxel)}, // Pixel + {"item", precise::count}, + {"piece", precise::count}, + {"part", precise::count}, + {"ratio", precise::ratio}, + {"rat", precise::ratio}, + {"ERR", precise::error}, + {"ERROR", precise::error}, + {"error", precise::error}, - {"Gy", precise::Gy}, - {"gy", precise::Gy}, - {"GY", precise::Gy}, - {"gray", precise::Gy}, - {"Sv", precise::Sv}, - {"SV", precise::Sv}, - {"sievert", precise::Sv}, - {"sverdrup", precise_unit(1e6, precise::m.pow(3) / precise::s)}, - {"rem", precise::cgs::REM}, - {"[REM]", precise::cgs::REM}, - {"REM", precise::cgs::REM}, - {"radiationequivalentman", precise::cgs::REM}, - {"roentgenequivalentinman", precise::cgs::REM}, - {"Ky", precise::cgs::kayser}, - {"KY", precise::cgs::kayser}, - {"kayser", precise::cgs::kayser}, - {"Bi", precise::cgs::biot}, - {"BI", precise::cgs::biot}, - {"biot", precise::cgs::biot}, - {"abamp", precise::cgs::biot}, - {"abcoulomb", precise::cgs::biot* precise::s}, - {"abC", precise::cgs::biot* precise::s}, - {"statamp", precise::cgs::statC_charge / precise::s}, - {"stA", precise::cgs::statC_charge / precise::s}, - {"abA", precise::cgs::biot}, - {"St", precise::cgs::stokes}, - {"ST", precise::cgs::stokes}, - {"stoke", precise::cgs::stokes}, - {"Mx", precise::cgs::maxwell}, - {"MX", precise::cgs::maxwell}, - {"mX", precise::cgs::maxwell}, - {"maxwell", precise::cgs::maxwell}, - {"Oe", precise::cgs::oersted}, - {"OE", precise::cgs::oersted}, - {"oersted", precise::cgs::oersted}, - {"gilbert", precise::cgs::gilbert}, - {"Gb", precise::cgs::gilbert}, - {"Gi", precise::cgs::gilbert}, - {"p", precise::cgs::poise}, - {"cps", precise_unit(0.01, precise::cgs::poise)}, - // centipoise doesn't conflict with ps - {"P", precise::cgs::poise}, - {"poise", precise::cgs::poise}, - {"rhe", precise_unit(10.0, (precise::Pa * precise::s).inv())}, - {"Ba", precise::cgs::barye}, - {"BA", precise::cgs::barye}, - {"barye", precise::cgs::barye}, - {"barie", precise::cgs::barye}, - {"debye", precise::cgs::debye}, - {"roentgen", precise::cgs::roentgen}, - {"r\xF6ntgen", precise::cgs::roentgen}, - {"parker", precise::cgs::roentgen}, - {u8"r\u00f6ntgen", precise::cgs::roentgen}, - {u8"ro\u0308ntgen", precise::cgs::roentgen}, - {u8"ro\u00A8ntgen", precise::cgs::roentgen}, - {"Roe", precise::cgs::roentgen}, - {"ROE", precise::cgs::roentgen}, - {"R", precise::cgs::roentgen}, - {"Lmb", precise::cgs::lambert}, - {"LMB", precise::cgs::lambert}, - {"lambert", precise::cgs::lambert}, - {"bril", precise_unit(1e-11, precise::cgs::lambert)}, - {"skot", precise_unit(1e-7, precise::cgs::lambert)}, - {"Lb", precise::cgs::lambert}, - {"langley", precise::cgs::langley}, - {"Ly", precise::cgs::langley}, - {"unitpole", precise::cgs::unitpole}, - {"sb", precise::cgs::stilb}, - {"SB", precise::cgs::stilb}, - {"stilb", precise::cgs::stilb}, - {"apostilb", precise_unit(1e-4 / constants::pi, precise::cgs::stilb)}, - {"asb", precise_unit(1e-4 / constants::pi, precise::cgs::stilb)}, - {"blondel", precise_unit(1e-4 / constants::pi, precise::cgs::stilb)}, - {"nit", precise::cd / precise::m.pow(2)}, - {"nt", precise::cd / precise::m.pow(2)}, - {"ph", precise::cgs::phot}, - {"PHT", precise::cgs::phot}, - {"pHT", precise::cgs::phot}, - {"phot", precise::cgs::phot}, - {"[RAD]", precise::cgs::RAD}, - {"RAD", precise::cgs::RAD}, - {"radiationabsorbeddose", precise::cgs::RAD}, - {"Hz", precise::Hz}, - {"HZ", precise::Hz}, - {"hertz", precise::Hz}, - {"rpm", precise::rpm}, - {"rps", precise_unit(constants::tau, precise::rad / precise::s)}, - {"r", precise_unit(constants::tau, precise::rad)}, - {"revolutions", {constants::tau, precise::rad}}, - {"revolution", precise_unit(constants::tau, precise::rad)}, - {"rev", precise_unit(constants::tau, precise::rad)}, - {"revs", precise_unit(constants::tau, precise::rad)}, - {"rev/min", precise::rpm}, - {"rad/s", precise::rad / precise::s}, - {"kat", precise::kat}, - {"kats", precise::kat}, - {"KAT", precise::kat}, - {"katal", precise::kat}, - {"sr", precise::sr}, - {"SR", precise::sr}, - {"steradian", precise::sr}, - {"steradian-solidangle", precise::sr}, - {"$/MWh", precise::currency / precise::MWh}, - {"are", precise::area::are}, - // this is an odd form of the prefix - {"decare", {10.0, precise::area::are}}, - {"ar", precise::area::are}, - {"AR", precise::area::are}, - {"hectare", precise::area::hectare}, - {"barn", precise::area::barn}, - {"b", precise::area::barn}, - {"BRN", precise::area::barn}, - {"ha", precise::area::hectare}, - // porous solid permeability - {"mW", precise::electrical::mW}, - {"milliwatt", precise::electrical::mW}, - {"puW", precise::electrical::puMW / precise::mega}, - {"puMW", precise::electrical::puMW}, - {"puMVA", precise::electrical::puMW}, - {"pumw", precise::electrical::puMW}, - {"pumegawatt", precise::electrical::puMW}, - {"puV", precise::electrical::puV}, - {"puvolt", precise::electrical::puV}, - {"puA", precise::electrical::puA}, - {"puamp", precise::electrical::puA}, - {"mA", precise::electrical::mA}, - {"milliamp", precise::electrical::mA}, - {"kV", precise::electrical::kV}, - {"kilovolt", precise::electrical::kV}, - {"abvolt", precise::cgs::abVolt}, - {"abV", precise::cgs::abVolt}, - {"statvolt", precise::cgs::statV}, - {"stV", precise::cgs::statV}, - {"erg", precise::cgs::erg}, - {"ERG", precise::cgs::erg}, - {"dyn", precise::cgs::dyn}, - {"DYN", precise::cgs::dyn}, - {"dyne", precise::cgs::dyn}, - {"pond", precise::gm::pond}, - {"pu", precise::pu}, - {"perunit", precise::pu}, - {"flag", precise::iflag}, - {"iflag", precise::iflag}, - {"eflag", precise::eflag}, - {"FLAG", precise::iflag}, - {"EFLAG", precise::eflag}, - {"IFLAG", precise::iflag}, - {"imaginary", precise::iflag}, - {"sqrt(-1)", precise::iflag}, - {"puOhm", precise::pu* precise::ohm}, - {"puohm", precise::pu* precise::ohm}, - {"puHz", precise::electrical::puHz}, - {"puhertz", precise::electrical::puHz}, - {"mps", precise::m / precise::s}, - {"eV", precise::energy::eV}, - {"bev", precise_unit(1e9, precise::energy::eV)}, - {"Ry", precise_unit(13.60583, precise::energy::eV)}, // Rydberg - {"electronvolt", precise::energy::eV}, - {"electronVolt", precise::energy::eV}, - // Gigatonne carbon - {"GtC", precise_unit(1000000000.0, precise::t, commodities::carbon)}, - {"hartree", precise::energy::hartree}, - {"Eh", precise::energy::hartree}, // this could be confused with - // Exa-hour, but not likely - {"E_h", precise::energy::hartree}, // this could be confused with + {"Gy", precise::Gy}, + {"gy", precise::Gy}, + {"GY", precise::Gy}, + {"gray", precise::Gy}, + {"Sv", precise::Sv}, + {"SV", precise::Sv}, + {"sievert", precise::Sv}, + {"sverdrup", precise_unit(1e6, precise::m.pow(3) / precise::s)}, + {"rem", precise::cgs::REM}, + {"[REM]", precise::cgs::REM}, + {"REM", precise::cgs::REM}, + {"radiationequivalentman", precise::cgs::REM}, + {"roentgenequivalentinman", precise::cgs::REM}, + {"Ky", precise::cgs::kayser}, + {"KY", precise::cgs::kayser}, + {"kayser", precise::cgs::kayser}, + {"Bi", precise::cgs::biot}, + {"BI", precise::cgs::biot}, + {"biot", precise::cgs::biot}, + {"abamp", precise::cgs::biot}, + {"abcoulomb", precise::cgs::biot* precise::s}, + {"abC", precise::cgs::biot* precise::s}, + {"statamp", precise::cgs::statC_charge / precise::s}, + {"stA", precise::cgs::statC_charge / precise::s}, + {"abA", precise::cgs::biot}, + {"St", precise::cgs::stokes}, + {"ST", precise::cgs::stokes}, + {"stoke", precise::cgs::stokes}, + {"Mx", precise::cgs::maxwell}, + {"MX", precise::cgs::maxwell}, + {"mX", precise::cgs::maxwell}, + {"maxwell", precise::cgs::maxwell}, + {"Oe", precise::cgs::oersted}, + {"OE", precise::cgs::oersted}, + {"oersted", precise::cgs::oersted}, + {"gilbert", precise::cgs::gilbert}, + {"Gb", precise::cgs::gilbert}, + {"Gi", precise::cgs::gilbert}, + {"p", precise::cgs::poise}, + {"cps", precise_unit(0.01, precise::cgs::poise)}, + // centipoise doesn't conflict with ps + {"P", precise::cgs::poise}, + {"poise", precise::cgs::poise}, + {"rhe", precise_unit(10.0, (precise::Pa * precise::s).inv())}, + {"Ba", precise::cgs::barye}, + {"BA", precise::cgs::barye}, + {"barye", precise::cgs::barye}, + {"barie", precise::cgs::barye}, + {"debye", precise::cgs::debye}, + {"roentgen", precise::cgs::roentgen}, + {"r\xF6ntgen", precise::cgs::roentgen}, + {"parker", precise::cgs::roentgen}, + {u8"r\u00f6ntgen", precise::cgs::roentgen}, + {u8"ro\u0308ntgen", precise::cgs::roentgen}, + {u8"ro\u00A8ntgen", precise::cgs::roentgen}, + {"Roe", precise::cgs::roentgen}, + {"ROE", precise::cgs::roentgen}, + {"R", precise::cgs::roentgen}, + {"Lmb", precise::cgs::lambert}, + {"LMB", precise::cgs::lambert}, + {"lambert", precise::cgs::lambert}, + {"bril", precise_unit(1e-11, precise::cgs::lambert)}, + {"skot", precise_unit(1e-7, precise::cgs::lambert)}, + {"Lb", precise::cgs::lambert}, + {"langley", precise::cgs::langley}, + {"Ly", precise::cgs::langley}, + {"unitpole", precise::cgs::unitpole}, + {"sb", precise::cgs::stilb}, + {"SB", precise::cgs::stilb}, + {"stilb", precise::cgs::stilb}, + {"apostilb", precise_unit(1e-4 / constants::pi, precise::cgs::stilb)}, + {"asb", precise_unit(1e-4 / constants::pi, precise::cgs::stilb)}, + {"blondel", precise_unit(1e-4 / constants::pi, precise::cgs::stilb)}, + {"nit", precise::cd / precise::m.pow(2)}, + {"nt", precise::cd / precise::m.pow(2)}, + {"ph", precise::cgs::phot}, + {"PHT", precise::cgs::phot}, + {"pHT", precise::cgs::phot}, + {"phot", precise::cgs::phot}, + {"[RAD]", precise::cgs::RAD}, + {"RAD", precise::cgs::RAD}, + {"radiationabsorbeddose", precise::cgs::RAD}, + {"Hz", precise::Hz}, + {"HZ", precise::Hz}, + {"hertz", precise::Hz}, + {"rpm", precise::rpm}, + {"rps", precise_unit(constants::tau, precise::rad / precise::s)}, + {"r", precise_unit(constants::tau, precise::rad)}, + {"revolutions", {constants::tau, precise::rad}}, + {"revolution", precise_unit(constants::tau, precise::rad)}, + {"rev", precise_unit(constants::tau, precise::rad)}, + {"revs", precise_unit(constants::tau, precise::rad)}, + {"rev/min", precise::rpm}, + {"rad/s", precise::rad / precise::s}, + {"kat", precise::kat}, + {"kats", precise::kat}, + {"KAT", precise::kat}, + {"katal", precise::kat}, + {"sr", precise::sr}, + {"SR", precise::sr}, + {"steradian", precise::sr}, + {"steradian-solidangle", precise::sr}, + {"$/MWh", precise::currency / precise::MWh}, + {"are", precise::area::are}, + // this is an odd form of the prefix + {"decare", {10.0, precise::area::are}}, + {"ar", precise::area::are}, + {"AR", precise::area::are}, + {"hectare", precise::area::hectare}, + {"barn", precise::area::barn}, + {"b", precise::area::barn}, + {"BRN", precise::area::barn}, + {"ha", precise::area::hectare}, + // porous solid permeability + {"mW", precise::electrical::mW}, + {"milliwatt", precise::electrical::mW}, + {"puW", precise::electrical::puMW / precise::mega}, + {"puMW", precise::electrical::puMW}, + {"puMVA", precise::electrical::puMW}, + {"pumw", precise::electrical::puMW}, + {"pumegawatt", precise::electrical::puMW}, + {"puV", precise::electrical::puV}, + {"puvolt", precise::electrical::puV}, + {"puA", precise::electrical::puA}, + {"puamp", precise::electrical::puA}, + {"mA", precise::electrical::mA}, + {"milliamp", precise::electrical::mA}, + {"kV", precise::electrical::kV}, + {"kilovolt", precise::electrical::kV}, + {"abvolt", precise::cgs::abVolt}, + {"abV", precise::cgs::abVolt}, + {"statvolt", precise::cgs::statV}, + {"stV", precise::cgs::statV}, + {"erg", precise::cgs::erg}, + {"ERG", precise::cgs::erg}, + {"dyn", precise::cgs::dyn}, + {"DYN", precise::cgs::dyn}, + {"dyne", precise::cgs::dyn}, + {"pond", precise::gm::pond}, + {"pu", precise::pu}, + {"perunit", precise::pu}, + {"flag", precise::iflag}, + {"iflag", precise::iflag}, + {"eflag", precise::eflag}, + {"FLAG", precise::iflag}, + {"EFLAG", precise::eflag}, + {"IFLAG", precise::iflag}, + {"imaginary", precise::iflag}, + {"sqrt(-1)", precise::iflag}, + {"puOhm", precise::pu* precise::ohm}, + {"puohm", precise::pu* precise::ohm}, + {"puHz", precise::electrical::puHz}, + {"puhertz", precise::electrical::puHz}, + {"mps", precise::m / precise::s}, + {"eV", precise::energy::eV}, + {"bev", precise_unit(1e9, precise::energy::eV)}, + {"Ry", precise_unit(13.60583, precise::energy::eV)}, // Rydberg + {"electronvolt", precise::energy::eV}, + {"electronVolt", precise::energy::eV}, + // Gigatonne carbon + {"GtC", precise_unit(1000000000.0, precise::t, commodities::carbon)}, + {"hartree", precise::energy::hartree}, + {"Eh", precise::energy::hartree}, // this could be confused with // Exa-hour, but not likely - {"Ha", precise::energy::hartree}, + {"E_h", precise::energy::hartree}, // this could be confused with + // Exa-hour, but not likely + {"Ha", precise::energy::hartree}, - {"fueloilequivalentof1kiloliter", - precise::energy::foeb / precise::us::barrel* precise::m.pow(3)}, - {"atm", precise::pressure::atm}, - {"ATM", precise::pressure::atm}, - {"atmos", precise::pressure::atm}, - {"atmosphere", precise::pressure::atm}, - {"standardatmosphere", precise::pressure::atm}, - {"stdatmosphere", precise::pressure::atm}, - {"stdatm", precise::pressure::atm}, + {"fueloilequivalentof1kiloliter", + precise::energy::foeb / precise::us::barrel* precise::m.pow(3)}, + {"atm", precise::pressure::atm}, + {"ATM", precise::pressure::atm}, + {"atmos", precise::pressure::atm}, + {"atmosphere", precise::pressure::atm}, + {"standardatmosphere", precise::pressure::atm}, + {"stdatmosphere", precise::pressure::atm}, + {"stdatm", precise::pressure::atm}, - {"mmHg", precise::pressure::mmHg}, - {"mm_Hg", precise::pressure::mmHg}, - {"mM_Hg", precise::pressure::mmHg}, - {"cm_Hg", precise::ten* precise::pressure::mmHg}, - {"cM_Hg", precise::ten* precise::pressure::mmHg}, - {"m_Hg", precise::kilo* precise::pressure::mmHg}, - {"m[Hg]", precise::kilo* precise::pressure::mmHg}, - {"m_H2O", precise::kilo* precise::pressure::mmH2O}, - {"m[H2O]", precise::kilo* precise::pressure::mmH2O}, - {"cm_H2O", precise::ten* precise::pressure::mmH2O}, - {"cM_H2O", precise::ten* precise::pressure::mmH2O}, - {"cmH2O", precise::ten* precise::pressure::mmH2O}, + {"mmHg", precise::pressure::mmHg}, + {"mm_Hg", precise::pressure::mmHg}, + {"mM_Hg", precise::pressure::mmHg}, + {"cm_Hg", precise::ten* precise::pressure::mmHg}, + {"cM_Hg", precise::ten* precise::pressure::mmHg}, + {"m_Hg", precise::kilo* precise::pressure::mmHg}, + {"m[Hg]", precise::kilo* precise::pressure::mmHg}, + {"m_H2O", precise::kilo* precise::pressure::mmH2O}, + {"m[H2O]", precise::kilo* precise::pressure::mmH2O}, + {"cm_H2O", precise::ten* precise::pressure::mmH2O}, + {"cM_H2O", precise::ten* precise::pressure::mmH2O}, + {"cmH2O", precise::ten* precise::pressure::mmH2O}, - {"mm_H2O", precise::pressure::mmH2O}, - {"mmH2O", precise::pressure::mmH2O}, - {"water_90", precise::pressure::bases::water}, - {"water", precise::pressure::bases::water}, - {"water_[04]", precise::pressure::bases::water_4}, - {"water_[39]", precise::pressure::bases::water_39}, - {"water_[60]", precise::pressure::bases::water_60}, - {"waters_[04]", precise::pressure::bases::water_4}, - {"waters_[39]", precise::pressure::bases::water_39}, - {"waters_[60]", precise::pressure::bases::water_60}, - {"H2O", precise::pressure::bases::water}, - {"H2O_[04]", precise::pressure::bases::water_4}, - {"H2O_[39]", precise::pressure::bases::water_39}, - {"H2O_[60]", precise::pressure::bases::water_60}, - {"h2o", precise::pressure::bases::water}, - {"h2o_[04]", precise::pressure::bases::water_4}, - {"h2o_[39]", precise::pressure::bases::water_39}, - {"h2o_[60]", precise::pressure::bases::water_60}, - {"mercury", precise::pressure::bases::Hg}, - {"mercury_90", precise::pressure::bases::Hg}, - {"mercuries_90", precise::pressure::bases::Hg}, - {"mercury_[32]", precise::pressure::bases::Hg_32}, - {"mercury_[00]", precise::pressure::bases::Hg_0}, - {"mercury_[60]", precise::pressure::bases::Hg_60}, - {"mercuries", precise::pressure::bases::Hg}, - {"mercuries_[32]", precise::pressure::bases::Hg_32}, - {"mercuries_[00]", precise::pressure::bases::Hg_0}, - {"mercuries_[60]", precise::pressure::bases::Hg_60}, - {"Hg", precise::pressure::bases::Hg}, - {"Hg_[32]", precise::pressure::bases::Hg_32}, - {"Hg_[00]", precise::pressure::bases::Hg_0}, - {"Hg_[60]", precise::pressure::bases::Hg_60}, - // {"hg",precise::pressure::bases::Hg}, //conflicts with hectogram - {"hg_[32]", precise::pressure::bases::Hg_32}, - {"hg_[00]", precise::pressure::bases::Hg_0}, - {"hg_[60]", precise::pressure::bases::Hg_60}, - {"torr", precise::pressure::torr}, - {"Torr", precise::pressure::torr}, - {"TORR", precise::pressure::torr}, - {"$/kWh", precise::currency / precise::kWh}, - {"kWh", precise::kWh}, - {"kwh", precise::kWh}, - {"Wh", precise::W* precise::h}, - {"Wa", precise::W* precise::yr}, - {"kilowatthour", precise::kWh}, - {"MWh", precise::MWh}, - {"MWhr", precise::MWh}, - {"megawatthour", precise::MWh}, - {"M$", precise::other::MegaBuck}, - {"mil$", precise::other::MegaBuck}, - {"B$", precise::other::GigaBuck}, - {"bil$", precise::other::GigaBuck}, - {"L", precise::L}, // preferred US notation - {"l", precise::L}, - {"LT", precise::L}, - {"liter", precise::L}, - {"litre", precise::L}, - {"mL", precise::mL}, // preferred US notation - {"ml", precise::mL}, - {"LPM", precise::L / precise::minute}, - {"LPS", precise::L / precise::s}, - {"t", precise::mass::tonne}, // metric tonne - {"mt", precise::mass::tonne}, // metric tonne - {"ton_m", precise::mass::tonne}, - {"tonne", precise::mass::tonne}, - {"tonne_m", precise::mass::tonne}, - {"TNE", precise::mass::tonne}, - {"Da", precise::mass::Da}, - {"dalton", precise::mass::Da}, - {"u", precise::mass::u}, - {"amu", precise::mass::u}, - {"AMU", precise::mass::u}, - {"unifiedatomicmassunit", precise::mass::u}, - {"atomicmassunit", precise::mass::u}, + {"mm_H2O", precise::pressure::mmH2O}, + {"mmH2O", precise::pressure::mmH2O}, + {"water_90", precise::pressure::bases::water}, + {"water", precise::pressure::bases::water}, + {"water_[04]", precise::pressure::bases::water_4}, + {"water_[39]", precise::pressure::bases::water_39}, + {"water_[60]", precise::pressure::bases::water_60}, + {"waters_[04]", precise::pressure::bases::water_4}, + {"waters_[39]", precise::pressure::bases::water_39}, + {"waters_[60]", precise::pressure::bases::water_60}, + {"H2O", precise::pressure::bases::water}, + {"H2O_[04]", precise::pressure::bases::water_4}, + {"H2O_[39]", precise::pressure::bases::water_39}, + {"H2O_[60]", precise::pressure::bases::water_60}, + {"h2o", precise::pressure::bases::water}, + {"h2o_[04]", precise::pressure::bases::water_4}, + {"h2o_[39]", precise::pressure::bases::water_39}, + {"h2o_[60]", precise::pressure::bases::water_60}, + {"mercury", precise::pressure::bases::Hg}, + {"mercury_90", precise::pressure::bases::Hg}, + {"mercuries_90", precise::pressure::bases::Hg}, + {"mercury_[32]", precise::pressure::bases::Hg_32}, + {"mercury_[00]", precise::pressure::bases::Hg_0}, + {"mercury_[60]", precise::pressure::bases::Hg_60}, + {"mercuries", precise::pressure::bases::Hg}, + {"mercuries_[32]", precise::pressure::bases::Hg_32}, + {"mercuries_[00]", precise::pressure::bases::Hg_0}, + {"mercuries_[60]", precise::pressure::bases::Hg_60}, + {"Hg", precise::pressure::bases::Hg}, + {"Hg_[32]", precise::pressure::bases::Hg_32}, + {"Hg_[00]", precise::pressure::bases::Hg_0}, + {"Hg_[60]", precise::pressure::bases::Hg_60}, + // {"hg",precise::pressure::bases::Hg}, //conflicts with hectogram + {"hg_[32]", precise::pressure::bases::Hg_32}, + {"hg_[00]", precise::pressure::bases::Hg_0}, + {"hg_[60]", precise::pressure::bases::Hg_60}, + {"torr", precise::pressure::torr}, + {"Torr", precise::pressure::torr}, + {"TORR", precise::pressure::torr}, + {"$/kWh", precise::currency / precise::kWh}, + {"kWh", precise::kWh}, + {"kwh", precise::kWh}, + {"Wh", precise::W* precise::h}, + {"Wa", precise::W* precise::yr}, + {"kilowatthour", precise::kWh}, + {"MWh", precise::MWh}, + {"MWhr", precise::MWh}, + {"megawatthour", precise::MWh}, + {"M$", precise::other::MegaBuck}, + {"mil$", precise::other::MegaBuck}, + {"B$", precise::other::GigaBuck}, + {"bil$", precise::other::GigaBuck}, + {"L", precise::L}, // preferred US notation + {"l", precise::L}, + {"LT", precise::L}, + {"liter", precise::L}, + {"litre", precise::L}, + {"mL", precise::mL}, // preferred US notation + {"ml", precise::mL}, + {"LPM", precise::L / precise::minute}, + {"LPS", precise::L / precise::s}, + {"t", precise::mass::tonne}, // metric tonne + {"mt", precise::mass::tonne}, // metric tonne + {"ton_m", precise::mass::tonne}, + {"tonne", precise::mass::tonne}, + {"tonne_m", precise::mass::tonne}, + {"TNE", precise::mass::tonne}, + {"Da", precise::mass::Da}, + {"dalton", precise::mass::Da}, + {"u", precise::mass::u}, + {"amu", precise::mass::u}, + {"AMU", precise::mass::u}, + {"unifiedatomicmassunit", precise::mass::u}, + {"atomicmassunit", precise::mass::u}, - {"angstrom", precise::distance::angstrom}, - {u8"\u00C5ngstr\u00F6m", precise::distance::angstrom}, - {"\xE5ngstr\xF6m", precise::distance::angstrom}, - {u8"\u00E5ngstr\u00F6m", precise::distance::angstrom}, - {"Ao", precise::distance::angstrom}, - {"AO", precise::distance::angstrom}, - {u8"\u00C5", precise::distance::angstrom}, - {u8"A\u02DA", precise::distance::angstrom}, - {"\xC5", precise::distance::angstrom}, - {u8"\u212B", precise::distance::angstrom}, // unicode - {"bps", precise::bit / precise::s}, - {"baud", precise::bit / precise::s}, - {"Bd", precise::bit / precise::s}, - {"BD", precise::bit / precise::s}, - {"bit", precise::bit}, - {"BIT", precise::bit}, - {"nibble", precise::data::nibble}, - {"nybble", precise::data::nibble}, - {"bit_s", precise::data::bit_s}, - {"bit-s", precise::data::bit_s}, - {"BIT_S", precise::data::bit_s}, - {"bit-logarithmic", precise::data::bit_s}, - {"bitlogarithmic", precise::data::bit_s}, - {"logbit", precise::data::bit_s}, - // b is for unit barn - // B is for bel - {"Bps", precise::B / precise::s}, - {"byte", precise::B}, - {"By", precise::B}, - {"BY", precise::B}, - {"kB", precise::kB}, - {"MB", precise::MB}, - {"GB", precise::GB}, - {"floatingpointoperation", precise::computation::flop}, - {"flops", precise::computation::flops}, - {"mips", precise::computation::mips}, - {"[car_m]", precise::metric::carat}, - {"ct_m", precise::metric::carat}, - {"[CAR_M]", precise::metric::carat}, - {"carat_m", precise::metric::carat}, - {"photometriccarat", precise::metric::carat}, - {"g", precise::g}, - {"gm", precise::g}, - {"gamma", precise::micro* precise::g}, - {u8"\u1D6FE", precise::micro* precise::g}, - {"gamma{mass}", precise::micro* precise::g}, - {"gamma(mass)", precise::micro* precise::g}, - {"gamma{volume}", precise::micro* precise::L}, - {"gamma(volume)", precise::micro* precise::L}, - {"lambda{volume}", precise::micro* precise::L}, - {"lambda(volume)", precise::micro* precise::L}, - {"gamma(geo)", - precise::nano* precise::T}, // two different uses of gamma - {"gamma{geo}", - precise::nano* precise::T}, // two different uses of gamma - {"gf", precise::g* constants::g0.as_unit()}, - {"gravity", constants::g0.as_unit()}, // force of gravity - {"geopotential", constants::g0.as_unit()}, // force of gravity - {"gp", constants::g0.as_unit()}, // force of gravity - {"force", constants::g0.as_unit()}, // force of gravity - {"frc", constants::g0.as_unit()}, // force of gravity - {"kp", precise::kilo* precise::gm::pond}, - // this is probably more common than kilopoise - {"tonforce_m", precise::mass::tonne* constants::g0.as_unit()}, - {"tf", precise::mass::tonne* constants::g0.as_unit()}, - {"hyl", precise::gm::hyl}, - {"GF", precise::g* constants::g0.as_unit()}, // gram-force vs GF - {"gram", precise::g}, - {"mg", precise::mg}, - {"mcg", precise::micro* precise::g}, - {"milligram", precise::mg}, - {"carat", precise::metric::carat}, - {"karat", precise::metric::carat}, - {"ct", precise::metric::carat}, - // {"kt", precise_unit(200.0, precise::mg)}, - {"EER", precise::energy::EER}, - {"ppv", precise::one}, // parts per volume - {"ppth", precise::other::ppm* precise::kilo}, - {"PPTH", precise::other::ppm* precise::kilo}, - {"ppm", precise::other::ppm}, - {"ppmv", precise::other::ppm}, - {"PPM", precise::other::ppm}, - {"[PPM]", precise::other::ppm}, - {"partspermillion", precise::other::ppm}, - {"ppb", precise::other::ppb}, - {"ppbv", precise::other::ppb}, - {"PPB", precise::other::ppb}, - {"[PPB]", precise::other::ppb}, - {"partsperbillion", precise::other::ppb}, - {"ppt", precise::other::ppb* precise::milli}, - {"pptv", precise::other::ppb* precise::milli}, - {"pptr", precise::other::ppb* precise::milli}, - {"PPTR", precise::other::ppb* precise::milli}, - {"[PPTR]", precise::other::ppb* precise::milli}, - {"partspertrillion", precise::other::ppb* precise::milli}, - {"ppq", precise::other::ppb* precise::micro}, - {"ppqv", precise::other::ppb* precise::micro}, - {"partsperquadrillion", precise::other::ppb* precise::micro}, - {"PRU", precise::clinical::pru}, - {"peripheralvascularresistanceunit", precise::clinical::pru}, - {"peripheralresistanceunit", precise::clinical::pru}, - {"potentialvorticityunit", - precise_unit( - 1e-6, - detail::unit_data(2, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0))}, - {"PVU", - precise_unit( - 1e-6, - detail::unit_data(2, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0))}, - // unit of thermal resistance used in describing the insulating value of - // clothing; the amount of thermal resistance needed to maintain in - // comfort a resting subject in a normally ventilated room (air movement - // 10 cm/sec) at a temperature of 20 degrees C and a humidity less than - // 50% - {"clo", - precise_unit(1.55e-1, precise::K* precise::m.pow(2) / precise::W)}, - {"[MET]", precise::clinical::met}, - {"MET", precise::clinical::met}, - {"metabolicEquivalentofTask", precise::clinical::met}, - {"metabolicequivalents", precise::clinical::met}, - {"[wood'U]", precise::clinical::woodu}, - {"HRU", precise::clinical::woodu}, - {"hybridreferenceunit", precise::clinical::woodu}, - {"[WOOD'U]", precise::clinical::woodu}, - {"woodunit", precise::clinical::woodu}, - {"dpt", precise::clinical::diopter}, - {"diop", precise::clinical::diopter}, - {"[DIOP]", precise::clinical::diopter}, - {"diopter", precise::clinical::diopter}, - {"dioptre", precise::clinical::diopter}, - {"diopter(lens)", precise::clinical::diopter}, - {"[p'diop]", precise::clinical::prism_diopter}, - {"pdiop", precise::clinical::prism_diopter}, - {"[P'DIOP]", precise::clinical::prism_diopter}, - {"PD", precise::clinical::prism_diopter}, - {"prismdiopter", precise::clinical::prism_diopter}, - {"prismdiopter(magnifyingpower)", precise::clinical::prism_diopter}, - {"%slope", precise::clinical::prism_diopter}, - {"%[slope]", precise::clinical::prism_diopter}, - {"%[SLOPE]", precise::clinical::prism_diopter}, - {"%ofslope", precise::clinical::prism_diopter}, - {"drp", precise::clinical::drop}, - {"[drp]", precise::clinical::drop}, - {"[DRP]", precise::clinical::drop}, - {"drop", precise::clinical::drop}, - {"drop_[20]", precise::clinical::drop}, - {"drop_m", precise::clinical::drop}, - {"drop_m_[20]", precise::clinical::drop}, - {"Ch", precise::clinical::charriere}, - {"[CH]", precise::clinical::charriere}, - {"french(cathetergauge)", precise::clinical::charriere}, - {"frenchguage", precise::clinical::charriere}, - {"Fg", precise::clinical::charriere}, - {"mesh_i", precise::clinical::mesh}, - {"[MESH_I]", precise::clinical::mesh}, - {"mesh", precise::clinical::mesh}, - {"meshes", precise::clinical::mesh}, - {"ASD", precise::special::ASD}, - {"[m/s2/Hz^(1/2)]", precise::special::ASD}, - {"[M/s2/HZ^(1/2)]", precise::special::ASD}, - {"Hz^(1/2)", precise::special::rootHertz}, - {"HZ^(1/2)", precise::special::rootHertz}, - {"squarerootofhertz", precise::special::rootHertz}, - {"squareroothertz", precise::special::rootHertz}, - {"roothertz", precise::special::rootHertz}, - // capitalized version is needed since this is also a generated unit - {"rootHertz", precise::special::rootHertz}, - {"B", precise::data::byte}, - {"bel", precise::log::bel}, - {"dB", precise::log::dB}, - {"net", {1.0, one, commodities::packaging::net_quantity}}, - {"decibel", precise::log::dB}, - {"decibels", precise::log::dB}, - {"DB", precise::log::dB}, - {"Np", precise::log::neper}, - {"NEP", precise::log::neper}, - {"nepers", precise::log::neper}, - {"neper", precise::log::neper}, - {"octave", precise::log::logbase2}, - {"erlang", precise::generate_custom_unit(49)}, - {"Sh", precise::data::shannon}, - {"shannon", precise::data::shannon}, - {"Hart", precise::data::hartley}, - {"hartley", precise::data::hartley}, - {"SPL", precise_unit(2 * 1e-5, precise::Pa)}, - {"soundpressurelevel", precise_unit(2 * 1e-5, precise::Pa)}, - {"soundpressure", precise_unit(2 * 1e-5, precise::Pa)}, - {"sone", precise::special::sone}, - {"phon", precise::generate_custom_unit(41)}, - {"BSPL", precise::log::B_SPL}, - {"B[SPL]", precise::log::B_SPL}, - {"B_SPL", precise::log::B_SPL}, - {"b_SPL", precise::log::B_SPL}, - {"belSPL", precise::log::B_SPL}, - {"belsoundpressure", precise::log::B_SPL}, - {"dB_SPL", precise::log::dB_SPL}, - {"decibel_SPL", precise::log::dB_SPL}, - {"DB_SPL", precise::log::dB_SPL}, - {"DBSPL", precise::log::dB_SPL}, - {"B[V]", precise::log::B_V}, - {"B(V)", precise::log::B_V}, - {"BV", precise::log::B_V}, - {"Bv", precise_unit(0.775, precise::log::B_V)}, - {"Bvolt", precise::log::B_V}, - {"belvolt", precise::log::B_V}, - {"belV", precise::log::B_V}, - {"dB[V]", precise::log::dB_V}, - {"decibelV", precise::log::dB_V}, - {"dB(V)", precise::log::dB_V}, - {"DB[V]", precise::log::dB_V}, - {"B[mV]", precise::log::B_mV}, - {"B(mV)", precise::log::B_mV}, - {"belmillivolt", precise::log::B_mV}, - {"belmV", precise::log::B_mV}, - {"dB[mV]", precise::log::dB_mV}, - {"dB(mV)", precise::log::dB_mV}, - {"B[MV]", precise::log::B_mV}, - {"DB[MV]", precise::log::dB_mV}, - {"B[uV]", precise::log::B_uV}, - {"dB[uV]", precise::log::dB_uV}, - {"decibelmicrovolt", precise::log::dB_uV}, - {"B[UV]", precise::log::B_uV}, - {"B(uV)", precise::log::B_uV}, - {"BuV", precise::log::B_uV}, - {"belmicrovolt", precise::log::B_uV}, - {"DB[UV]", precise::log::dB_uV}, - {"B_tnv", precise::log::B_10nV}, - {"b_tnv", precise::log::B_10nV}, - {"bel10nanovolt", precise::log::B_10nV}, - {"dB_tnv", precise::log::dB_10nV}, - {"decibel10nanovolt", precise::log::B_10nV}, - {"B[W]", precise::log::B_W}, - {"B(W)", precise::log::B_W}, - {"belwatt", precise::log::B_W}, - {"belW", precise::log::B_W}, - {"dB[W]", precise::log::dB_W}, - {"DB[W]", precise::log::dB_W}, - {"B[kW]", precise::log::B_kW}, - {"B(kW)", precise::log::B_kW}, - {"DB[kW]", precise::log::dB_kW}, - {"B[KW]", precise::log::B_kW}, - {"belkilowatt", precise::log::B_kW}, - {"belkW", precise::log::B_kW}, - {"DB[KW]", precise::log::dB_kW}, - {"dBZ", precise::log::dBZ}, - {"BZ", precise::log::BZ}, - {"[S]", precise::laboratory::svedberg}, - {"svedbergunit", precise::laboratory::svedberg}, - {"svedberg", precise::laboratory::svedberg}, - {"HPF", precise::laboratory::HPF}, - {"hpf", precise::laboratory::HPF}, - {"highpowerfield", precise::laboratory::HPF}, - {"LPF", precise::laboratory::LPF}, - {"lpf", precise::laboratory::LPF}, - {"lowpowerfield", precise::laboratory::LPF}, - {"[arb'U]", precise::laboratory::arbU}, - {"[ARB'U]", precise::laboratory::arbU}, - {"arbitraryunit", precise::laboratory::arbU}, - {"arbunit", precise::laboratory::arbU}, - {"pdu", precise::laboratory::arbU}, - {"arbu", precise::laboratory::arbU}, - {"proceduredefinedunit", precise::laboratory::arbU}, - {"unknownunit", precise::laboratory::arbU}, - {"[IU]", precise::laboratory::IU}, - {"[iU]", precise::laboratory::IU}, - {"IU", precise::laboratory::IU}, - {"internationalunit", precise::laboratory::IU}, - {"dobson", - precise_unit(446.2, precise::micro* precise::mol / precise::m.pow(2))}, - {"DU", - precise_unit(446.2, precise::micro* precise::mol / precise::m.pow(2))}, - {"st", precise::volume::stere}, - {"stere", precise::volume::stere}, - {"STR", precise::volume::stere}, - {"[hnsf'U]", precise::clinical::hounsfield}, - {"[HNSF'U]", precise::clinical::hounsfield}, - {"[PFU]", precise::laboratory::PFU}, - {"PFU", precise::laboratory::PFU}, - {"pfu", precise::laboratory::PFU}, - {"plaqueformingunits", precise::laboratory::PFU}, - {"plaqueformingunit", precise::laboratory::PFU}, - {"[Lf]", precise::laboratory::Lf}, - {"[LF]", precise::laboratory::Lf}, - {"[IR]", precise::laboratory::IR}, - {"[Ir]", precise::laboratory::IR}, - {"50%tissuecultureinfectiousdose", - precise_unit(0.69, precise::laboratory::PFU)}, - {"50%cellcultureinfectiousdose", - precise_unit(0.69, precise::laboratory::PFU, commodities::cell)}, - {"50%embryoinfectiousdose", - precise_unit(0.69, precise::laboratory::PFU, commodities::embryo)}, - {"TCID50", precise_unit(0.69, precise::laboratory::PFU)}, - {"CCID50", - precise_unit(0.69, precise::laboratory::PFU, commodities::cell)}, - {"EID50", - precise_unit(0.69, precise::laboratory::PFU, commodities::embryo)}, - {"[hp'_X]", precise_unit(1.0, precise::log::neglog10)}, - {"[HP'_X]", precise_unit(1.0, precise::log::neglog10)}, - {"[hp'_C]", precise_unit(1.0, precise::log::neglog100)}, - {"[HP'_C]", precise_unit(1.0, precise::log::neglog100)}, - {"[hp'_M]", precise_unit(1.0, precise::log::neglog1000)}, - {"[HP'_M]", precise_unit(1.0, precise::log::neglog1000)}, - {"[hp'_Q]", precise_unit(1.0, precise::log::neglog50000)}, - {"[HP'_Q]", precise_unit(1.0, precise::log::neglog50000)}, - {"pH", precise::laboratory::pH}, - {"pHscale", precise::laboratory::pH}, - {"[PH]", precise::laboratory::pH}, - {"jollies",precise::generate_custom_unit(404)} - }}; + {"angstrom", precise::distance::angstrom}, + {u8"\u00C5ngstr\u00F6m", precise::distance::angstrom}, + {"\xE5ngstr\xF6m", precise::distance::angstrom}, + {u8"\u00E5ngstr\u00F6m", precise::distance::angstrom}, + {"Ao", precise::distance::angstrom}, + {"AO", precise::distance::angstrom}, + {u8"\u00C5", precise::distance::angstrom}, + {u8"A\u02DA", precise::distance::angstrom}, + {"\xC5", precise::distance::angstrom}, + {u8"\u212B", precise::distance::angstrom}, // unicode + {"bps", precise::bit / precise::s}, + {"baud", precise::bit / precise::s}, + {"Bd", precise::bit / precise::s}, + {"BD", precise::bit / precise::s}, + {"bit", precise::bit}, + {"BIT", precise::bit}, + {"nibble", precise::data::nibble}, + {"nybble", precise::data::nibble}, + {"bit_s", precise::data::bit_s}, + {"bit-s", precise::data::bit_s}, + {"BIT_S", precise::data::bit_s}, + {"bit-logarithmic", precise::data::bit_s}, + {"bitlogarithmic", precise::data::bit_s}, + {"logbit", precise::data::bit_s}, + // b is for unit barn + // B is for bel + {"Bps", precise::B / precise::s}, + {"byte", precise::B}, + {"By", precise::B}, + {"BY", precise::B}, + {"kB", precise::kB}, + {"MB", precise::MB}, + {"GB", precise::GB}, + {"floatingpointoperation", precise::computation::flop}, + {"flops", precise::computation::flops}, + {"mips", precise::computation::mips}, + {"[car_m]", precise::metric::carat}, + {"ct_m", precise::metric::carat}, + {"[CAR_M]", precise::metric::carat}, + {"carat_m", precise::metric::carat}, + {"photometriccarat", precise::metric::carat}, + {"g", precise::g}, + {"gm", precise::g}, + {"gamma", precise::micro* precise::g}, + {u8"\u1D6FE", precise::micro* precise::g}, + {"gamma{mass}", precise::micro* precise::g}, + {"gamma(mass)", precise::micro* precise::g}, + {"gamma{volume}", precise::micro* precise::L}, + {"gamma(volume)", precise::micro* precise::L}, + {"lambda{volume}", precise::micro* precise::L}, + {"lambda(volume)", precise::micro* precise::L}, + {"gamma(geo)", + precise::nano* precise::T}, // two different uses of gamma + {"gamma{geo}", + precise::nano* precise::T}, // two different uses of gamma + {"gf", precise::g* constants::g0.as_unit()}, + {"gravity", constants::g0.as_unit()}, // force of gravity + {"geopotential", constants::g0.as_unit()}, // force of gravity + {"gp", constants::g0.as_unit()}, // force of gravity + {"force", constants::g0.as_unit()}, // force of gravity + {"frc", constants::g0.as_unit()}, // force of gravity + {"kp", precise::kilo* precise::gm::pond}, + // this is probably more common than kilopoise + {"tonforce_m", precise::mass::tonne* constants::g0.as_unit()}, + {"tf", precise::mass::tonne* constants::g0.as_unit()}, + {"hyl", precise::gm::hyl}, + {"GF", precise::g* constants::g0.as_unit()}, // gram-force vs GF + {"gram", precise::g}, + {"mg", precise::mg}, + {"mcg", precise::micro* precise::g}, + {"milligram", precise::mg}, + {"carat", precise::metric::carat}, + {"karat", precise::metric::carat}, + {"ct", precise::metric::carat}, + // {"kt", precise_unit(200.0, precise::mg)}, + {"EER", precise::energy::EER}, + {"ppv", precise::one}, // parts per volume + {"ppth", precise::other::ppm* precise::kilo}, + {"PPTH", precise::other::ppm* precise::kilo}, + {"ppm", precise::other::ppm}, + {"ppmv", precise::other::ppm}, + {"PPM", precise::other::ppm}, + {"[PPM]", precise::other::ppm}, + {"partspermillion", precise::other::ppm}, + {"ppb", precise::other::ppb}, + {"ppbv", precise::other::ppb}, + {"PPB", precise::other::ppb}, + {"[PPB]", precise::other::ppb}, + {"partsperbillion", precise::other::ppb}, + {"ppt", precise::other::ppb* precise::milli}, + {"pptv", precise::other::ppb* precise::milli}, + {"pptr", precise::other::ppb* precise::milli}, + {"PPTR", precise::other::ppb* precise::milli}, + {"[PPTR]", precise::other::ppb* precise::milli}, + {"partspertrillion", precise::other::ppb* precise::milli}, + {"ppq", precise::other::ppb* precise::micro}, + {"ppqv", precise::other::ppb* precise::micro}, + {"partsperquadrillion", precise::other::ppb* precise::micro}, + {"PRU", precise::clinical::pru}, + {"peripheralvascularresistanceunit", precise::clinical::pru}, + {"peripheralresistanceunit", precise::clinical::pru}, + {"potentialvorticityunit", + precise_unit( + 1e-6, + detail::unit_data(2, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0))}, + {"PVU", + precise_unit( + 1e-6, + detail::unit_data(2, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0))}, + // unit of thermal resistance used in describing the insulating value + // of clothing; the amount of thermal resistance needed to maintain in + // comfort a resting subject in a normally ventilated room (air + // movement 10 cm/sec) at a temperature of 20 degrees C and a humidity + // less than 50% + {"clo", + precise_unit(1.55e-1, precise::K* precise::m.pow(2) / precise::W)}, + {"[MET]", precise::clinical::met}, + {"MET", precise::clinical::met}, + {"metabolicEquivalentofTask", precise::clinical::met}, + {"metabolicequivalents", precise::clinical::met}, + {"[wood'U]", precise::clinical::woodu}, + {"HRU", precise::clinical::woodu}, + {"hybridreferenceunit", precise::clinical::woodu}, + {"[WOOD'U]", precise::clinical::woodu}, + {"woodunit", precise::clinical::woodu}, + {"dpt", precise::clinical::diopter}, + {"diop", precise::clinical::diopter}, + {"[DIOP]", precise::clinical::diopter}, + {"diopter", precise::clinical::diopter}, + {"dioptre", precise::clinical::diopter}, + {"diopter(lens)", precise::clinical::diopter}, + {"[p'diop]", precise::clinical::prism_diopter}, + {"pdiop", precise::clinical::prism_diopter}, + {"[P'DIOP]", precise::clinical::prism_diopter}, + {"PD", precise::clinical::prism_diopter}, + {"prismdiopter", precise::clinical::prism_diopter}, + {"prismdiopter(magnifyingpower)", precise::clinical::prism_diopter}, + {"%slope", precise::clinical::prism_diopter}, + {"%[slope]", precise::clinical::prism_diopter}, + {"%[SLOPE]", precise::clinical::prism_diopter}, + {"%ofslope", precise::clinical::prism_diopter}, + {"drp", precise::clinical::drop}, + {"[drp]", precise::clinical::drop}, + {"[DRP]", precise::clinical::drop}, + {"drop", precise::clinical::drop}, + {"drop_[20]", precise::clinical::drop}, + {"drop_m", precise::clinical::drop}, + {"drop_m_[20]", precise::clinical::drop}, + {"Ch", precise::clinical::charriere}, + {"[CH]", precise::clinical::charriere}, + {"french(cathetergauge)", precise::clinical::charriere}, + {"frenchguage", precise::clinical::charriere}, + {"Fg", precise::clinical::charriere}, + {"mesh_i", precise::clinical::mesh}, + {"[MESH_I]", precise::clinical::mesh}, + {"mesh", precise::clinical::mesh}, + {"meshes", precise::clinical::mesh}, + {"ASD", precise::special::ASD}, + {"[m/s2/Hz^(1/2)]", precise::special::ASD}, + {"[M/s2/HZ^(1/2)]", precise::special::ASD}, + {"Hz^(1/2)", precise::special::rootHertz}, + {"HZ^(1/2)", precise::special::rootHertz}, + {"squarerootofhertz", precise::special::rootHertz}, + {"squareroothertz", precise::special::rootHertz}, + {"roothertz", precise::special::rootHertz}, + // capitalized version is needed since this is also a generated unit + {"rootHertz", precise::special::rootHertz}, + {"B", precise::data::byte}, + {"bel", precise::log::bel}, + {"dB", precise::log::dB}, + {"net", {1.0, one, commodities::packaging::net_quantity}}, + {"decibel", precise::log::dB}, + {"decibels", precise::log::dB}, + {"DB", precise::log::dB}, + {"Np", precise::log::neper}, + {"NEP", precise::log::neper}, + {"nepers", precise::log::neper}, + {"neper", precise::log::neper}, + {"octave", precise::log::logbase2}, + {"erlang", precise::generate_custom_unit(49)}, + {"Sh", precise::data::shannon}, + {"shannon", precise::data::shannon}, + {"Hart", precise::data::hartley}, + {"hartley", precise::data::hartley}, + {"SPL", precise_unit(2 * 1e-5, precise::Pa)}, + {"soundpressurelevel", precise_unit(2 * 1e-5, precise::Pa)}, + {"soundpressure", precise_unit(2 * 1e-5, precise::Pa)}, + {"sone", precise::special::sone}, + {"phon", precise::generate_custom_unit(41)}, + {"BSPL", precise::log::B_SPL}, + {"B[SPL]", precise::log::B_SPL}, + {"B_SPL", precise::log::B_SPL}, + {"b_SPL", precise::log::B_SPL}, + {"belSPL", precise::log::B_SPL}, + {"belsoundpressure", precise::log::B_SPL}, + {"dB_SPL", precise::log::dB_SPL}, + {"decibel_SPL", precise::log::dB_SPL}, + {"DB_SPL", precise::log::dB_SPL}, + {"DBSPL", precise::log::dB_SPL}, + {"B[V]", precise::log::B_V}, + {"B(V)", precise::log::B_V}, + {"BV", precise::log::B_V}, + {"Bv", precise_unit(0.775, precise::log::B_V)}, + {"Bvolt", precise::log::B_V}, + {"belvolt", precise::log::B_V}, + {"belV", precise::log::B_V}, + {"dB[V]", precise::log::dB_V}, + {"decibelV", precise::log::dB_V}, + {"dB(V)", precise::log::dB_V}, + {"DB[V]", precise::log::dB_V}, + {"B[mV]", precise::log::B_mV}, + {"B(mV)", precise::log::B_mV}, + {"belmillivolt", precise::log::B_mV}, + {"belmV", precise::log::B_mV}, + {"dB[mV]", precise::log::dB_mV}, + {"dB(mV)", precise::log::dB_mV}, + {"B[MV]", precise::log::B_mV}, + {"DB[MV]", precise::log::dB_mV}, + {"B[uV]", precise::log::B_uV}, + {"dB[uV]", precise::log::dB_uV}, + {"decibelmicrovolt", precise::log::dB_uV}, + {"B[UV]", precise::log::B_uV}, + {"B(uV)", precise::log::B_uV}, + {"BuV", precise::log::B_uV}, + {"belmicrovolt", precise::log::B_uV}, + {"DB[UV]", precise::log::dB_uV}, + {"B_tnv", precise::log::B_10nV}, + {"b_tnv", precise::log::B_10nV}, + {"bel10nanovolt", precise::log::B_10nV}, + {"dB_tnv", precise::log::dB_10nV}, + {"decibel10nanovolt", precise::log::B_10nV}, + {"B[W]", precise::log::B_W}, + {"B(W)", precise::log::B_W}, + {"belwatt", precise::log::B_W}, + {"belW", precise::log::B_W}, + {"dB[W]", precise::log::dB_W}, + {"DB[W]", precise::log::dB_W}, + {"B[kW]", precise::log::B_kW}, + {"B(kW)", precise::log::B_kW}, + {"DB[kW]", precise::log::dB_kW}, + {"B[KW]", precise::log::B_kW}, + {"belkilowatt", precise::log::B_kW}, + {"belkW", precise::log::B_kW}, + {"DB[KW]", precise::log::dB_kW}, + {"dBZ", precise::log::dBZ}, + {"BZ", precise::log::BZ}, + {"[S]", precise::laboratory::svedberg}, + {"svedbergunit", precise::laboratory::svedberg}, + {"svedberg", precise::laboratory::svedberg}, + {"HPF", precise::laboratory::HPF}, + {"hpf", precise::laboratory::HPF}, + {"highpowerfield", precise::laboratory::HPF}, + {"LPF", precise::laboratory::LPF}, + {"lpf", precise::laboratory::LPF}, + {"lowpowerfield", precise::laboratory::LPF}, + {"[arb'U]", precise::laboratory::arbU}, + {"[ARB'U]", precise::laboratory::arbU}, + {"arbitraryunit", precise::laboratory::arbU}, + {"arbunit", precise::laboratory::arbU}, + {"pdu", precise::laboratory::arbU}, + {"arbu", precise::laboratory::arbU}, + {"proceduredefinedunit", precise::laboratory::arbU}, + {"unknownunit", precise::laboratory::arbU}, + {"[IU]", precise::laboratory::IU}, + {"[iU]", precise::laboratory::IU}, + {"IU", precise::laboratory::IU}, + {"internationalunit", precise::laboratory::IU}, + {"dobson", + precise_unit( + 446.2, + precise::micro* precise::mol / precise::m.pow(2))}, + {"DU", + precise_unit( + 446.2, + precise::micro* precise::mol / precise::m.pow(2))}, + {"st", precise::volume::stere}, + {"stere", precise::volume::stere}, + {"STR", precise::volume::stere}, + {"[hnsf'U]", precise::clinical::hounsfield}, + {"[HNSF'U]", precise::clinical::hounsfield}, + {"[PFU]", precise::laboratory::PFU}, + {"PFU", precise::laboratory::PFU}, + {"pfu", precise::laboratory::PFU}, + {"plaqueformingunits", precise::laboratory::PFU}, + {"plaqueformingunit", precise::laboratory::PFU}, + {"[Lf]", precise::laboratory::Lf}, + {"[LF]", precise::laboratory::Lf}, + {"[IR]", precise::laboratory::IR}, + {"[Ir]", precise::laboratory::IR}, + {"50%tissuecultureinfectiousdose", + precise_unit(0.69, precise::laboratory::PFU)}, + {"50%cellcultureinfectiousdose", + precise_unit(0.69, precise::laboratory::PFU, commodities::cell)}, + {"50%embryoinfectiousdose", + precise_unit(0.69, precise::laboratory::PFU, commodities::embryo)}, + {"TCID50", precise_unit(0.69, precise::laboratory::PFU)}, + {"CCID50", + precise_unit(0.69, precise::laboratory::PFU, commodities::cell)}, + {"EID50", + precise_unit(0.69, precise::laboratory::PFU, commodities::embryo)}, + {"[hp'_X]", precise_unit(1.0, precise::log::neglog10)}, + {"[HP'_X]", precise_unit(1.0, precise::log::neglog10)}, + {"[hp'_C]", precise_unit(1.0, precise::log::neglog100)}, + {"[HP'_C]", precise_unit(1.0, precise::log::neglog100)}, + {"[hp'_M]", precise_unit(1.0, precise::log::neglog1000)}, + {"[HP'_M]", precise_unit(1.0, precise::log::neglog1000)}, + {"[hp'_Q]", precise_unit(1.0, precise::log::neglog50000)}, + {"[HP'_Q]", precise_unit(1.0, precise::log::neglog50000)}, + {"pH", precise::laboratory::pH}, + {"pHscale", precise::laboratory::pH}, + {"[PH]", precise::laboratory::pH}, + {"jollies", precise::generate_custom_unit(404)}}}; UNITS_CPP14_CONSTEXPR_OBJECT std::array< std::pair, @@ -2455,7 +2465,8 @@ UNITS_CPP14_CONSTEXPR_OBJECT std::array< {"ton", precise::ton}, {"ton(short)", precise::ton}, {"ton(short)_US", precise::ton}, - {"short_us",precise::one}, //in a few cases this preceeds some units in which case it is the default + {"short_us", precise::one}, // in a few cases this preceeds some units + // in which case it is the default {"longton", precise::av::longton}, {"tonlong", precise::av::longton}, {"longton_m", precise::av::longton},