From a998c9a989c9a219ff301608f58ac49411a989e4 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Wed, 8 May 2024 21:43:56 -0400 Subject: [PATCH] xo-unit: minor reorg --- docs/basis-unit-constants.rst | 2 - include/xo/unit/basis_unit.hpp | 44 +++++++++--------- include/xo/unit/bu_store.hpp | 84 +++++++++++++++++----------------- 3 files changed, 63 insertions(+), 67 deletions(-) diff --git a/docs/basis-unit-constants.rst b/docs/basis-unit-constants.rst index 279be732..78066abf 100644 --- a/docs/basis-unit-constants.rst +++ b/docs/basis-unit-constants.rst @@ -19,8 +19,6 @@ Those units are implemented on top of the basis units described here. Mass Units ---------- -.. doxygenfunction:: xo::qty::abbrev::mass_unit2_abbrev - .. doxygengroup:: basis-unit-mass-units Distance Units diff --git a/include/xo/unit/basis_unit.hpp b/include/xo/unit/basis_unit.hpp index fdbfb34a..6b39e7a8 100644 --- a/include/xo/unit/basis_unit.hpp +++ b/include/xo/unit/basis_unit.hpp @@ -71,7 +71,7 @@ namespace xo { return basis_unit(dimension::mass, scalefactor_ratio_type(num, den)); } - /** @defgroup basis-unit-mass-units **/ + /** @defgroup basis-unit-mass-units basis_unit mass units **/ ///@{ constexpr basis_unit picogram = mass_unit( 1, 1000000000000); constexpr basis_unit nanogram = mass_unit( 1, 1000000000); @@ -91,30 +91,30 @@ namespace xo { return basis_unit(dimension::distance, scalefactor_ratio_type(num, den)); } - /** @defgroup basis-unit-distance-units **/ + /** @defgroup basis-unit-distance-units basis_unit distance units **/ ///@{ - /* International spelling */ - constexpr basis_unit picometre = distance_unit( 1, 1000000000000); - constexpr basis_unit nanometre = distance_unit( 1, 1000000000); - constexpr basis_unit micrometre = distance_unit( 1, 1000000); - constexpr basis_unit millimetre = distance_unit( 1, 1000); - constexpr basis_unit metre = distance_unit( 1, 1); - constexpr basis_unit kilometre = distance_unit( 1000, 1); - constexpr basis_unit megametre = distance_unit( 1000000, 1); - constexpr basis_unit gigametre = distance_unit( 1000000000, 1); + /* US spelling */ + constexpr basis_unit picometer = distance_unit( 1, 1000000000000); + constexpr basis_unit nanometer = distance_unit( 1, 1000000000); + constexpr basis_unit micrometer = distance_unit( 1, 1000000); + constexpr basis_unit millimeter = distance_unit( 1, 1000); + constexpr basis_unit meter = distance_unit( 1, 1); + constexpr basis_unit kilometer = distance_unit( 1000, 1); + constexpr basis_unit megameter = distance_unit( 1000000, 1); + constexpr basis_unit gigameter = distance_unit( 1000000000, 1); constexpr basis_unit lightsecond = distance_unit( 299792458, 1); constexpr basis_unit astronomicalunit = distance_unit( 149597870700, 1); - /* US spelling */ - constexpr basis_unit picometer = picometre; - constexpr basis_unit nanometer = nanometre; - constexpr basis_unit micrometer = micrometre; - constexpr basis_unit millimeter = millimetre; - constexpr basis_unit meter = metre; - constexpr basis_unit kilometer = kilometre; - constexpr basis_unit megameter = megametre; - constexpr basis_unit gigameter = gigametre; + /* Int'l spelling */ + constexpr basis_unit picometre = picometer; + constexpr basis_unit nanometre = nanometer; + constexpr basis_unit micrometre = micrometer; + constexpr basis_unit millimetre = millimeter; + constexpr basis_unit metre = meter; + constexpr basis_unit kilometre = kilometer; + constexpr basis_unit megametre = megameter; + constexpr basis_unit gigametre = gigameter; /** @brief basis-unit representing 1 inch; defined as exactly 1/12 feet **/ constexpr basis_unit inch = distance_unit( 3048, 120000); @@ -132,7 +132,7 @@ namespace xo { return basis_unit(dimension::time, scalefactor_ratio_type(num, den)); } - /** @defgroup basis-unit-time-units **/ + /** @defgroup basis-unit-time-units basis_unit time units **/ ///@{ constexpr basis_unit picosecond = time_unit( 1, 1000000000000); constexpr basis_unit nanosecond = time_unit( 1, 1000000000); @@ -158,7 +158,7 @@ namespace xo { // ----- currency ----- - /** @defgroup basis-unit-misc-units **/ + /** @defgroup basis-unit-misc-units basis_unit miscellaneous units**/ ///@{ constexpr basis_unit currency_unit(std::int64_t num, std::int64_t den) { diff --git a/include/xo/unit/bu_store.hpp b/include/xo/unit/bu_store.hpp index 7fe6b01f..6906a4ed 100644 --- a/include/xo/unit/bu_store.hpp +++ b/include/xo/unit/bu_store.hpp @@ -111,66 +111,64 @@ namespace xo { std::array bu_abbrev_v_; }; - /** @class basis_unit2_store - * @brief Store known basis units for runtime + /** @class bu_store + * @brief associate basis units with abbreviations **/ - //template struct bu_store { constexpr bu_store() { // ----- mass ----- - this->bu_establish_abbrev(detail::bu::picogram, bu_abbrev_type::from_chars("pg")); - this->bu_establish_abbrev(detail::bu::nanogram, bu_abbrev_type::from_chars("ng")); - this->bu_establish_abbrev(detail::bu::microgram, bu_abbrev_type::from_chars("ug")); - this->bu_establish_abbrev(detail::bu::milligram, bu_abbrev_type::from_chars("mg")); - this->bu_establish_abbrev(detail::bu::gram, bu_abbrev_type::from_chars("g")); - this->bu_establish_abbrev(detail::bu::kilogram, bu_abbrev_type::from_chars("kg")); - this->bu_establish_abbrev(detail::bu::tonne, bu_abbrev_type::from_chars("t")); - this->bu_establish_abbrev(detail::bu::kilotonne, bu_abbrev_type::from_chars("kt")); - this->bu_establish_abbrev(detail::bu::megatonne, bu_abbrev_type::from_chars("Mt")); - this->bu_establish_abbrev(detail::bu::gigatonne, bu_abbrev_type::from_chars("Gt")); + this->bu_establish_abbrev(detail::bu::picogram, bu_abbrev_type::from_chars("pg")); + this->bu_establish_abbrev(detail::bu::nanogram, bu_abbrev_type::from_chars("ng")); + this->bu_establish_abbrev(detail::bu::microgram, bu_abbrev_type::from_chars("ug")); + this->bu_establish_abbrev(detail::bu::milligram, bu_abbrev_type::from_chars("mg")); + this->bu_establish_abbrev(detail::bu::gram, bu_abbrev_type::from_chars("g")); + this->bu_establish_abbrev(detail::bu::kilogram, bu_abbrev_type::from_chars("kg")); + this->bu_establish_abbrev(detail::bu::tonne, bu_abbrev_type::from_chars("t")); + this->bu_establish_abbrev(detail::bu::kilotonne, bu_abbrev_type::from_chars("kt")); + this->bu_establish_abbrev(detail::bu::megatonne, bu_abbrev_type::from_chars("Mt")); + this->bu_establish_abbrev(detail::bu::gigatonne, bu_abbrev_type::from_chars("Gt")); // ----- distance ----- - this->bu_establish_abbrev(detail::bu::picometer, bu_abbrev_type::from_chars("pm")); - this->bu_establish_abbrev(detail::bu::nanometer, bu_abbrev_type::from_chars("nm")); - this->bu_establish_abbrev(detail::bu::micrometer, bu_abbrev_type::from_chars("um")); - this->bu_establish_abbrev(detail::bu::millimeter, bu_abbrev_type::from_chars("mm")); - this->bu_establish_abbrev(detail::bu::meter, bu_abbrev_type::from_chars("m")); - this->bu_establish_abbrev(detail::bu::kilometer, bu_abbrev_type::from_chars("km")); - this->bu_establish_abbrev(detail::bu::megameter, bu_abbrev_type::from_chars("Mm")); - this->bu_establish_abbrev(detail::bu::gigameter, bu_abbrev_type::from_chars("Gm")); + this->bu_establish_abbrev(detail::bu::picometer, bu_abbrev_type::from_chars("pm")); + this->bu_establish_abbrev(detail::bu::nanometer, bu_abbrev_type::from_chars("nm")); + this->bu_establish_abbrev(detail::bu::micrometer, bu_abbrev_type::from_chars("um")); + this->bu_establish_abbrev(detail::bu::millimeter, bu_abbrev_type::from_chars("mm")); + this->bu_establish_abbrev(detail::bu::meter, bu_abbrev_type::from_chars("m")); + this->bu_establish_abbrev(detail::bu::kilometer, bu_abbrev_type::from_chars("km")); + this->bu_establish_abbrev(detail::bu::megameter, bu_abbrev_type::from_chars("Mm")); + this->bu_establish_abbrev(detail::bu::gigameter, bu_abbrev_type::from_chars("Gm")); - this->bu_establish_abbrev(detail::bu::lightsecond, bu_abbrev_type::from_chars("lsec")); + this->bu_establish_abbrev(detail::bu::lightsecond, bu_abbrev_type::from_chars("lsec")); this->bu_establish_abbrev(detail::bu::astronomicalunit, bu_abbrev_type::from_chars("AU")); - this->bu_establish_abbrev(detail::bu::inch, bu_abbrev_type::from_chars("in")); - this->bu_establish_abbrev(detail::bu::foot, bu_abbrev_type::from_chars("ft")); - this->bu_establish_abbrev(detail::bu::yard, bu_abbrev_type::from_chars("yd")); - this->bu_establish_abbrev(detail::bu::mile, bu_abbrev_type::from_chars("mi")); + this->bu_establish_abbrev(detail::bu::inch, bu_abbrev_type::from_chars("in")); + this->bu_establish_abbrev(detail::bu::foot, bu_abbrev_type::from_chars("ft")); + this->bu_establish_abbrev(detail::bu::yard, bu_abbrev_type::from_chars("yd")); + this->bu_establish_abbrev(detail::bu::mile, bu_abbrev_type::from_chars("mi")); // ----- time ----- - this->bu_establish_abbrev(detail::bu::picosecond, bu_abbrev_type::from_chars("ps")); - this->bu_establish_abbrev(detail::bu::nanosecond, bu_abbrev_type::from_chars("ns")); - this->bu_establish_abbrev(detail::bu::microsecond, bu_abbrev_type::from_chars("us")); - this->bu_establish_abbrev(detail::bu::millisecond, bu_abbrev_type::from_chars("ms")); - this->bu_establish_abbrev(detail::bu::second, bu_abbrev_type::from_chars("s")); - this->bu_establish_abbrev(detail::bu::minute, bu_abbrev_type::from_chars("min")); - this->bu_establish_abbrev(detail::bu::hour, bu_abbrev_type::from_chars("hr")); - this->bu_establish_abbrev(detail::bu::day, bu_abbrev_type::from_chars("dy")); - this->bu_establish_abbrev(detail::bu::week, bu_abbrev_type::from_chars("wk")); - this->bu_establish_abbrev(detail::bu::month, bu_abbrev_type::from_chars("mo")); - this->bu_establish_abbrev(detail::bu::year250, bu_abbrev_type::from_chars("yr250")); - this->bu_establish_abbrev(detail::bu::year, bu_abbrev_type::from_chars("yr")); - this->bu_establish_abbrev(detail::bu::year360, bu_abbrev_type::from_chars("yr360")); - this->bu_establish_abbrev(detail::bu::year365, bu_abbrev_type::from_chars("yr365")); + this->bu_establish_abbrev(detail::bu::picosecond, bu_abbrev_type::from_chars("ps")); + this->bu_establish_abbrev(detail::bu::nanosecond, bu_abbrev_type::from_chars("ns")); + this->bu_establish_abbrev(detail::bu::microsecond, bu_abbrev_type::from_chars("us")); + this->bu_establish_abbrev(detail::bu::millisecond, bu_abbrev_type::from_chars("ms")); + this->bu_establish_abbrev(detail::bu::second, bu_abbrev_type::from_chars("s")); + this->bu_establish_abbrev(detail::bu::minute, bu_abbrev_type::from_chars("min")); + this->bu_establish_abbrev(detail::bu::hour, bu_abbrev_type::from_chars("hr")); + this->bu_establish_abbrev(detail::bu::day, bu_abbrev_type::from_chars("dy")); + this->bu_establish_abbrev(detail::bu::week, bu_abbrev_type::from_chars("wk")); + this->bu_establish_abbrev(detail::bu::month, bu_abbrev_type::from_chars("mo")); + this->bu_establish_abbrev(detail::bu::year250, bu_abbrev_type::from_chars("yr250")); + this->bu_establish_abbrev(detail::bu::year, bu_abbrev_type::from_chars("yr")); + this->bu_establish_abbrev(detail::bu::year360, bu_abbrev_type::from_chars("yr360")); + this->bu_establish_abbrev(detail::bu::year365, bu_abbrev_type::from_chars("yr365")); // ----- misc (currency, price) ----- - this->bu_establish_abbrev(detail::bu::currency, bu_abbrev_type::from_chars("ccy")); - this->bu_establish_abbrev(detail::bu::price, bu_abbrev_type::from_chars("px")); - //this->bu_establish_abbrev_for(); + this->bu_establish_abbrev(detail::bu::currency, bu_abbrev_type::from_chars("ccy")); + this->bu_establish_abbrev(detail::bu::price, bu_abbrev_type::from_chars("px")); } static constexpr bu_abbrev_type