diff --git a/src/systems/hep/include/mp_units/systems/hep/hep.h b/src/systems/hep/include/mp_units/systems/hep/hep.h index 2bd49cc3..31a0a536 100644 --- a/src/systems/hep/include/mp_units/systems/hep/hep.h +++ b/src/systems/hep/include/mp_units/systems/hep/hep.h @@ -48,6 +48,8 @@ namespace unit_symbols { using si::unit_symbols::eV; +inline constexpr auto qeV = si::quecto; +inline constexpr auto reV = si::ronto; inline constexpr auto yeV = si::yocto; inline constexpr auto zeV = si::zepto; inline constexpr auto aeV = si::atto; @@ -68,7 +70,11 @@ inline constexpr auto PeV = si::peta; inline constexpr auto EeV = si::exa; inline constexpr auto ZeV = si::zetta; inline constexpr auto YeV = si::yotta; +inline constexpr auto ReV = si::ronna; +inline constexpr auto QeV = si::quetta; +inline constexpr auto qb = si::quecto; +inline constexpr auto rb = si::ronto; inline constexpr auto yb = si::yocto; inline constexpr auto zb = si::zepto; inline constexpr auto ab = si::atto; diff --git a/src/systems/iec80000/include/mp_units/systems/iec80000/unit_symbols.h b/src/systems/iec80000/include/mp_units/systems/iec80000/unit_symbols.h index ee5dddf3..0dedd9f4 100644 --- a/src/systems/iec80000/include/mp_units/systems/iec80000/unit_symbols.h +++ b/src/systems/iec80000/include/mp_units/systems/iec80000/unit_symbols.h @@ -37,6 +37,8 @@ inline constexpr auto Pbit = si::peta; inline constexpr auto Ebit = si::exa; inline constexpr auto Zbit = si::zetta; inline constexpr auto Ybit = si::yotta; +inline constexpr auto Rbit = si::ronna; +inline constexpr auto Qbit = si::quetta; inline constexpr auto Kibit = kibi; inline constexpr auto Mibit = mebi; @@ -56,6 +58,8 @@ inline constexpr auto Po = si::peta; inline constexpr auto Eo = si::exa; inline constexpr auto Zo = si::zetta; inline constexpr auto Yo = si::yotta; +inline constexpr auto Ro = si::ronna; +inline constexpr auto Qo = si::quetta; inline constexpr auto Kio = kibi; inline constexpr auto Mio = mebi; @@ -75,6 +79,8 @@ inline constexpr auto PB = si::peta; inline constexpr auto EB = si::exa; inline constexpr auto ZB = si::zetta; inline constexpr auto YB = si::yotta; +inline constexpr auto RB = si::ronna; +inline constexpr auto QB = si::quetta; inline constexpr auto KiB = kibi; inline constexpr auto MiB = mebi; @@ -93,6 +99,8 @@ inline constexpr auto PBd = si::peta; inline constexpr auto EBd = si::exa; inline constexpr auto ZBd = si::zetta; inline constexpr auto YBd = si::yotta; +inline constexpr auto RBd = si::ronna; +inline constexpr auto QBd = si::quetta; // erlang // TODO do we need prefixed versions of Erlang? diff --git a/src/systems/si/include/mp_units/systems/si/unit_symbols.h b/src/systems/si/include/mp_units/systems/si/unit_symbols.h index d84cb3a9..3030c644 100644 --- a/src/systems/si/include/mp_units/systems/si/unit_symbols.h +++ b/src/systems/si/include/mp_units/systems/si/unit_symbols.h @@ -27,6 +27,8 @@ namespace mp_units::si::unit_symbols { +inline constexpr auto qm = quecto; +inline constexpr auto rm = ronto; inline constexpr auto ym = yocto; inline constexpr auto zm = zepto; inline constexpr auto am = atto; @@ -48,7 +50,11 @@ inline constexpr auto Pm = peta; inline constexpr auto Em = exa; inline constexpr auto Zm = zetta; inline constexpr auto Ym = yotta; +inline constexpr auto Rm = ronna; +inline constexpr auto Qm = quetta; +inline constexpr auto qs = quecto; +inline constexpr auto rs = ronto; inline constexpr auto ys = yocto; inline constexpr auto zs = zepto; inline constexpr auto as = atto; @@ -71,7 +77,11 @@ inline constexpr auto Ps = peta; inline constexpr auto Es = exa; inline constexpr auto Zs = zetta; inline constexpr auto Ys = yotta; +inline constexpr auto Rs = ronna; +inline constexpr auto Qs = quetta; +inline constexpr auto qg = quecto; +inline constexpr auto rg = ronto; inline constexpr auto yg = yocto; inline constexpr auto zg = zepto; inline constexpr auto ag = atto; @@ -93,7 +103,11 @@ inline constexpr auto Pg = peta; inline constexpr auto Eg = exa; inline constexpr auto Zg = zetta; inline constexpr auto Yg = yotta; +inline constexpr auto Rg = ronna; +inline constexpr auto Qg = quetta; +inline constexpr auto qA = quecto; +inline constexpr auto rA = ronto; inline constexpr auto yA = yocto; inline constexpr auto zA = zepto; inline constexpr auto aA = atto; @@ -115,7 +129,11 @@ inline constexpr auto PA = peta; inline constexpr auto EA = exa; inline constexpr auto ZA = zetta; inline constexpr auto YA = yotta; +inline constexpr auto RA = ronna; +inline constexpr auto QA = quetta; +inline constexpr auto qK = quecto; +inline constexpr auto rK = ronto; inline constexpr auto yK = yocto; inline constexpr auto zK = zepto; inline constexpr auto aK = atto; @@ -137,7 +155,11 @@ inline constexpr auto PK = peta; inline constexpr auto EK = exa; inline constexpr auto ZK = zetta; inline constexpr auto YK = yotta; +inline constexpr auto RK = ronna; +inline constexpr auto QK = quetta; +inline constexpr auto qmol = quecto; +inline constexpr auto rmol = ronto; inline constexpr auto ymol = yocto; inline constexpr auto zmol = zepto; inline constexpr auto amol = atto; @@ -159,7 +181,11 @@ inline constexpr auto Pmol = peta; inline constexpr auto Emol = exa; inline constexpr auto Zmol = zetta; inline constexpr auto Ymol = yotta; +inline constexpr auto Rmol = ronna; +inline constexpr auto Qmol = quetta; +inline constexpr auto qcd = quecto; +inline constexpr auto rcd = ronto; inline constexpr auto ycd = yocto; inline constexpr auto zcd = zepto; inline constexpr auto acd = atto; @@ -181,7 +207,11 @@ inline constexpr auto Pcd = peta; inline constexpr auto Ecd = exa; inline constexpr auto Zcd = zetta; inline constexpr auto Ycd = yotta; +inline constexpr auto Rcd = ronna; +inline constexpr auto Qcd = quetta; +inline constexpr auto qrad = quecto; +inline constexpr auto rrad = ronto; inline constexpr auto yrad = yocto; inline constexpr auto zrad = zepto; inline constexpr auto arad = atto; @@ -203,7 +233,11 @@ inline constexpr auto Prad = peta; inline constexpr auto Erad = exa; inline constexpr auto Zrad = zetta; inline constexpr auto Yrad = yotta; +inline constexpr auto Rrad = ronna; +inline constexpr auto Qrad = quetta; +inline constexpr auto qsr = quecto; +inline constexpr auto rsr = ronto; inline constexpr auto ysr = yocto; inline constexpr auto zsr = zepto; inline constexpr auto asr = atto; @@ -225,7 +259,11 @@ inline constexpr auto Psr = peta; inline constexpr auto Esr = exa; inline constexpr auto Zsr = zetta; inline constexpr auto Ysr = yotta; +inline constexpr auto Rsr = ronna; +inline constexpr auto Qsr = quetta; +inline constexpr auto qHz = quecto; +inline constexpr auto rHz = ronto; inline constexpr auto yHz = yocto; inline constexpr auto zHz = zepto; inline constexpr auto aHz = atto; @@ -247,7 +285,11 @@ inline constexpr auto PHz = peta; inline constexpr auto EHz = exa; inline constexpr auto ZHz = zetta; inline constexpr auto YHz = yotta; +inline constexpr auto RHz = ronna; +inline constexpr auto QHz = quetta; +inline constexpr auto qN = quecto; +inline constexpr auto rN = ronto; inline constexpr auto yN = yocto; inline constexpr auto zN = zepto; inline constexpr auto aN = atto; @@ -269,7 +311,11 @@ inline constexpr auto PN = peta; inline constexpr auto EN = exa; inline constexpr auto ZN = zetta; inline constexpr auto YN = yotta; +inline constexpr auto RN = ronna; +inline constexpr auto QN = quetta; +inline constexpr auto qPa = quecto; +inline constexpr auto rPa = ronto; inline constexpr auto yPa = yocto; inline constexpr auto zPa = zepto; inline constexpr auto aPa = atto; @@ -291,7 +337,11 @@ inline constexpr auto PPa = peta; inline constexpr auto EPa = exa; inline constexpr auto ZPa = zetta; inline constexpr auto YPa = yotta; +inline constexpr auto RPa = ronna; +inline constexpr auto QPa = quetta; +inline constexpr auto qJ = quecto; +inline constexpr auto rJ = ronto; inline constexpr auto yJ = yocto; inline constexpr auto zJ = zepto; inline constexpr auto aJ = atto; @@ -313,7 +363,11 @@ inline constexpr auto PJ = peta; inline constexpr auto EJ = exa; inline constexpr auto ZJ = zetta; inline constexpr auto YJ = yotta; +inline constexpr auto RJ = ronna; +inline constexpr auto QJ = quetta; +inline constexpr auto qW = quecto; +inline constexpr auto rW = ronto; inline constexpr auto yW = yocto; inline constexpr auto zW = zepto; inline constexpr auto aW = atto; @@ -335,7 +389,11 @@ inline constexpr auto PW = peta; inline constexpr auto EW = exa; inline constexpr auto ZW = zetta; inline constexpr auto YW = yotta; +inline constexpr auto RW = ronna; +inline constexpr auto QW = quetta; +inline constexpr auto qC = quecto; +inline constexpr auto rC = ronto; inline constexpr auto yC = yocto; inline constexpr auto zC = zepto; inline constexpr auto aC = atto; @@ -357,7 +415,11 @@ inline constexpr auto PC = peta; inline constexpr auto EC = exa; inline constexpr auto ZC = zetta; inline constexpr auto YC = yotta; +inline constexpr auto RC = ronna; +inline constexpr auto QC = quetta; +inline constexpr auto qV = quecto; +inline constexpr auto rV = ronto; inline constexpr auto yV = yocto; inline constexpr auto zV = zepto; inline constexpr auto aV = atto; @@ -379,7 +441,11 @@ inline constexpr auto PV = peta; inline constexpr auto EV = exa; inline constexpr auto ZV = zetta; inline constexpr auto YV = yotta; +inline constexpr auto RV = ronna; +inline constexpr auto QV = quetta; +inline constexpr auto qF = quecto; +inline constexpr auto rF = ronto; inline constexpr auto yF = yocto; inline constexpr auto zF = zepto; inline constexpr auto aF = atto; @@ -401,7 +467,11 @@ inline constexpr auto PF = peta; inline constexpr auto EF = exa; inline constexpr auto ZF = zetta; inline constexpr auto YF = yotta; +inline constexpr auto RF = ronna; +inline constexpr auto QF = quetta; +inline constexpr auto qS = quecto; +inline constexpr auto rS = ronto; inline constexpr auto yS = yocto; inline constexpr auto zS = zepto; inline constexpr auto aS = atto; @@ -423,7 +493,11 @@ inline constexpr auto PS = peta; inline constexpr auto ES = exa; inline constexpr auto ZS = zetta; inline constexpr auto YS = yotta; +inline constexpr auto RS = ronna; +inline constexpr auto QS = quetta; +inline constexpr auto qWb = quecto; +inline constexpr auto rWb = ronto; inline constexpr auto yWb = yocto; inline constexpr auto zWb = zepto; inline constexpr auto aWb = atto; @@ -445,7 +519,11 @@ inline constexpr auto PWb = peta; inline constexpr auto EWb = exa; inline constexpr auto ZWb = zetta; inline constexpr auto YWb = yotta; +inline constexpr auto RWb = ronna; +inline constexpr auto QWb = quetta; +inline constexpr auto qT = quecto; +inline constexpr auto rT = ronto; inline constexpr auto yT = yocto; inline constexpr auto zT = zepto; inline constexpr auto aT = atto; @@ -467,7 +545,11 @@ inline constexpr auto PT = peta; inline constexpr auto ET = exa; inline constexpr auto ZT = zetta; inline constexpr auto YT = yotta; +inline constexpr auto RT = ronna; +inline constexpr auto QT = quetta; +inline constexpr auto qH = quecto; +inline constexpr auto rH = ronto; inline constexpr auto yH = yocto; inline constexpr auto zH = zepto; inline constexpr auto aH = atto; @@ -489,7 +571,11 @@ inline constexpr auto PH = peta; inline constexpr auto EH = exa; inline constexpr auto ZH = zetta; inline constexpr auto YH = yotta; +inline constexpr auto RH = ronna; +inline constexpr auto QH = quetta; +inline constexpr auto qlm = quecto; +inline constexpr auto rlm = ronto; inline constexpr auto ylm = yocto; inline constexpr auto zlm = zepto; inline constexpr auto alm = atto; @@ -511,7 +597,11 @@ inline constexpr auto Plm = peta; inline constexpr auto Elm = exa; inline constexpr auto Zlm = zetta; inline constexpr auto Ylm = yotta; +inline constexpr auto Rlm = ronna; +inline constexpr auto Qlm = quetta; +inline constexpr auto qlx = quecto; +inline constexpr auto rlx = ronto; inline constexpr auto ylx = yocto; inline constexpr auto zlx = zepto; inline constexpr auto alx = atto; @@ -533,7 +623,11 @@ inline constexpr auto Plx = peta; inline constexpr auto Elx = exa; inline constexpr auto Zlx = zetta; inline constexpr auto Ylx = yotta; +inline constexpr auto Rlx = ronna; +inline constexpr auto Qlx = quetta; +inline constexpr auto qBq = quecto; +inline constexpr auto rBq = ronto; inline constexpr auto yBq = yocto; inline constexpr auto zBq = zepto; inline constexpr auto aBq = atto; @@ -555,7 +649,11 @@ inline constexpr auto PBq = peta; inline constexpr auto EBq = exa; inline constexpr auto ZBq = zetta; inline constexpr auto YBq = yotta; +inline constexpr auto RBq = ronna; +inline constexpr auto QBq = quetta; +inline constexpr auto qGy = quecto; +inline constexpr auto rGy = ronto; inline constexpr auto yGy = yocto; inline constexpr auto zGy = zepto; inline constexpr auto aGy = atto; @@ -577,7 +675,11 @@ inline constexpr auto PGy = peta; inline constexpr auto EGy = exa; inline constexpr auto ZGy = zetta; inline constexpr auto YGy = yotta; +inline constexpr auto RGy = ronna; +inline constexpr auto QGy = quetta; +inline constexpr auto qSv = quecto; +inline constexpr auto rSv = ronto; inline constexpr auto ySv = yocto; inline constexpr auto zSv = zepto; inline constexpr auto aSv = atto; @@ -599,7 +701,11 @@ inline constexpr auto PSv = peta; inline constexpr auto ESv = exa; inline constexpr auto ZSv = zetta; inline constexpr auto YSv = yotta; +inline constexpr auto RSv = ronna; +inline constexpr auto QSv = quetta; +inline constexpr auto qkat = quecto; +inline constexpr auto rkat = ronto; inline constexpr auto ykat = yocto; inline constexpr auto zkat = zepto; inline constexpr auto akat = atto; @@ -621,6 +727,8 @@ inline constexpr auto Pkat = peta; inline constexpr auto Ekat = exa; inline constexpr auto Zkat = zetta; inline constexpr auto Ykat = yotta; +inline constexpr auto Rkat = ronna; +inline constexpr auto Qkat = quetta; // TODO Should the following non-SI units have prefixes symbols predefiend as well? inline constexpr auto au = astronomical_unit; diff --git a/test/unit_test/static/unit_symbol_test.cpp b/test/unit_test/static/unit_symbol_test.cpp index c681c2c6..68b406df 100644 --- a/test/unit_test/static/unit_symbol_test.cpp +++ b/test/unit_test/static/unit_symbol_test.cpp @@ -45,6 +45,10 @@ static_assert(unit_symbol(kilogram) == "kg"); static_assert(unit_symbol(hour) == "h"); // prefixed units +static_assert(unit_symbol(quecto) == "qΩ"); +static_assert(unit_symbol(quecto, {.encoding = ascii}) == "qohm"); +static_assert(unit_symbol(ronto) == "rΩ"); +static_assert(unit_symbol(ronto, {.encoding = ascii}) == "rohm"); static_assert(unit_symbol(yocto) == "yΩ"); static_assert(unit_symbol(yocto, {.encoding = ascii}) == "yohm"); static_assert(unit_symbol(zepto) == "zΩ"); @@ -85,6 +89,10 @@ static_assert(unit_symbol(zetta) == "ZΩ"); static_assert(unit_symbol(zetta, {.encoding = ascii}) == "Zohm"); static_assert(unit_symbol(yotta) == "YΩ"); static_assert(unit_symbol(yotta, {.encoding = ascii}) == "Yohm"); +static_assert(unit_symbol(ronna) == "RΩ"); +static_assert(unit_symbol(ronna, {.encoding = ascii}) == "Rohm"); +static_assert(unit_symbol(quetta) == "QΩ"); +static_assert(unit_symbol(quetta, {.encoding = ascii}) == "Qohm"); static_assert(unit_symbol(kibi) == "Kibit"); static_assert(unit_symbol(mebi) == "Mibit"); diff --git a/test/unit_test/static/unit_test.cpp b/test/unit_test/static/unit_test.cpp index b6af6a4e..34f3faed 100644 --- a/test/unit_test/static/unit_test.cpp +++ b/test/unit_test/static/unit_test.cpp @@ -225,6 +225,8 @@ static_assert(is_of_type // prefixes +static_assert(si::quecto.symbol == "qm"); +static_assert(si::ronto.symbol == "rm"); static_assert(si::yocto.symbol == "ym"); static_assert(si::zepto.symbol == "zm"); static_assert(si::atto.symbol == "am"); @@ -245,6 +247,8 @@ static_assert(si::peta.symbol == "Pm"); static_assert(si::exa.symbol == "Em"); static_assert(si::zetta.symbol == "Zm"); static_assert(si::yotta.symbol == "Ym"); +static_assert(si::ronna.symbol == "Rm"); +static_assert(si::quetta.symbol == "Qm"); // scaled_unit