diff --git a/src/systems/CMakeLists.txt b/src/systems/CMakeLists.txt index d313f744..40d50f47 100644 --- a/src/systems/CMakeLists.txt +++ b/src/systems/CMakeLists.txt @@ -25,8 +25,7 @@ cmake_minimum_required(VERSION 3.19) # systems add_subdirectory(isq) -# add_subdirectory(isq-iec80000) -# add_subdirectory(isq-natural) +add_subdirectory(natural) add_subdirectory(si) add_subdirectory(si-cgs) diff --git a/src/systems/natural/CMakeLists.txt b/src/systems/natural/CMakeLists.txt index f48268bc..4ea5fe68 100644 --- a/src/systems/natural/CMakeLists.txt +++ b/src/systems/natural/CMakeLists.txt @@ -25,15 +25,5 @@ cmake_minimum_required(VERSION 3.19) add_units_module( natural DEPENDENCIES mp-units::isq - HEADERS include/units/isq/natural/acceleration.h - include/units/isq/natural/constants.h - include/units/isq/natural/energy.h - include/units/isq/natural/force.h - include/units/isq/natural/length.h - include/units/isq/natural/mass.h - include/units/isq/natural/momentum.h - include/units/isq/natural/natural.h - include/units/isq/natural/speed.h - include/units/isq/natural/time.h - include/units/isq/natural/units.h + HEADERS include/units/natural/natural.h ) diff --git a/src/systems/natural/include/units/natural/acceleration.h b/src/systems/natural/include/units/natural/acceleration.h deleted file mode 100644 index 4b6828e1..00000000 --- a/src/systems/natural/include/units/natural/acceleration.h +++ /dev/null @@ -1,70 +0,0 @@ -// The MIT License (MIT) -// -// Copyright (c) 2018 Mateusz Pusz -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -#pragma once - -#include -#include - -// IWYU pragma: begin_exports -#include -#include -#include -#include -#include -// IWYU pragma: end_exports - -namespace units::isq::natural { - -struct dim_acceleration : isq::dim_acceleration {}; - -template U, Representation Rep = double> -using acceleration = quantity; - -#ifndef UNITS_NO_REFERENCES - -namespace acceleration_references { - -inline constexpr auto GeV = reference{}; - -} // namespace acceleration_references - -namespace references { - -using namespace acceleration_references; - -} // namespace references - -#endif // UNITS_NO_REFERENCES - -} // namespace units::isq::natural - -#ifndef UNITS_NO_ALIASES - -namespace units::aliases::isq::natural::inline acceleration { - -template -using GeV = units::isq::natural::acceleration; - -} // namespace units::aliases::isq::natural::inline acceleration - -#endif // UNITS_NO_ALIASES diff --git a/src/systems/natural/include/units/natural/constants.h b/src/systems/natural/include/units/natural/constants.h deleted file mode 100644 index c570a589..00000000 --- a/src/systems/natural/include/units/natural/constants.h +++ /dev/null @@ -1,32 +0,0 @@ -// The MIT License (MIT) -// -// Copyright (c) 2018 Mateusz Pusz -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -#pragma once - -#include - -namespace units::isq::natural { - -template -inline constexpr auto speed_of_light = speed(1); - -} // namespace units::isq::natural diff --git a/src/systems/natural/include/units/natural/energy.h b/src/systems/natural/include/units/natural/energy.h deleted file mode 100644 index 84587a0a..00000000 --- a/src/systems/natural/include/units/natural/energy.h +++ /dev/null @@ -1,70 +0,0 @@ -// The MIT License (MIT) -// -// Copyright (c) 2018 Mateusz Pusz -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -#pragma once - -#include -#include - -// IWYU pragma: begin_exports -#include -#include -#include -#include -#include -// IWYU pragma: end_exports - -namespace units::isq::natural { - -struct dim_energy : isq::dim_energy {}; - -template U, Representation Rep = double> -using energy = quantity; - -#ifndef UNITS_NO_REFERENCES - -namespace energy_references { - -inline constexpr auto GeV = reference{}; - -} // namespace energy_references - -namespace references { - -using namespace energy_references; - -} // namespace references - -#endif // UNITS_NO_REFERENCES - -} // namespace units::isq::natural - -#ifndef UNITS_NO_ALIASES - -namespace units::aliases::isq::natural::inline energy { - -template -using GeV = units::isq::natural::energy; - -} // namespace units::aliases::isq::natural::inline energy - -#endif // UNITS_NO_ALIASES diff --git a/src/systems/natural/include/units/natural/force.h b/src/systems/natural/include/units/natural/force.h deleted file mode 100644 index 26921dfc..00000000 --- a/src/systems/natural/include/units/natural/force.h +++ /dev/null @@ -1,70 +0,0 @@ -// The MIT License (MIT) -// -// Copyright (c) 2018 Mateusz Pusz -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -#pragma once - -#include -#include - -// IWYU pragma: begin_exports -#include -#include -#include -#include -#include -// IWYU pragma: end_exports - -namespace units::isq::natural { - -struct dim_force : isq::dim_force {}; - -template U, Representation Rep = double> -using force = quantity; - -#ifndef UNITS_NO_REFERENCES - -namespace force_references { - -inline constexpr auto GeV2 = reference{}; - -} // namespace force_references - -namespace references { - -using namespace force_references; - -} // namespace references - -#endif // UNITS_NO_REFERENCES - -} // namespace units::isq::natural - -#ifndef UNITS_NO_ALIASES - -namespace units::aliases::isq::natural::inline force { - -template -using GeV2 = units::isq::natural::force; - -} // namespace units::aliases::isq::natural::inline force - -#endif // UNITS_NO_ALIASES diff --git a/src/systems/natural/include/units/natural/length.h b/src/systems/natural/include/units/natural/length.h deleted file mode 100644 index 7174a525..00000000 --- a/src/systems/natural/include/units/natural/length.h +++ /dev/null @@ -1,67 +0,0 @@ -// The MIT License (MIT) -// -// Copyright (c) 2018 Mateusz Pusz -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -#pragma once - -// IWYU pragma: begin_exports -#include -#include -#include -#include -#include -// IWYU pragma: end_exports - -namespace units::isq::natural { - -struct dim_length : isq::dim_length {}; - -template U, Representation Rep = double> -using length = quantity; - -#ifndef UNITS_NO_REFERENCES - -namespace length_references { - -inline constexpr auto inv_GeV = reference{}; - -} // namespace length_references - -namespace references { - -using namespace length_references; - -} // namespace references - -#endif // UNITS_NO_REFERENCES - -} // namespace units::isq::natural - -#ifndef UNITS_NO_ALIASES - -namespace units::aliases::isq::natural::inline length { - -template -using inv_GeV = units::isq::natural::length; - -} // namespace units::aliases::isq::natural::inline length - -#endif // UNITS_NO_ALIASES diff --git a/src/systems/natural/include/units/natural/mass.h b/src/systems/natural/include/units/natural/mass.h deleted file mode 100644 index d9ff98de..00000000 --- a/src/systems/natural/include/units/natural/mass.h +++ /dev/null @@ -1,67 +0,0 @@ -// The MIT License (MIT) -// -// Copyright (c) 2018 Mateusz Pusz -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -#pragma once - -// IWYU pragma: begin_exports -#include -#include -#include -#include -#include -// IWYU pragma: end_exports - -namespace units::isq::natural { - -struct dim_mass : isq::dim_mass {}; - -template U, Representation Rep = double> -using mass = quantity; - -#ifndef UNITS_NO_REFERENCES - -namespace mass_references { - -inline constexpr auto GeV = reference{}; - -} // namespace mass_references - -namespace references { - -using namespace mass_references; - -} // namespace references - -#endif // UNITS_NO_REFERENCES - -} // namespace units::isq::natural - -#ifndef UNITS_NO_ALIASES - -namespace units::aliases::isq::natural::inline mass { - -template -using GeV = units::isq::natural::mass; - -} // namespace units::aliases::isq::natural::inline mass - -#endif // UNITS_NO_ALIASES diff --git a/src/systems/natural/include/units/natural/momentum.h b/src/systems/natural/include/units/natural/momentum.h deleted file mode 100644 index 32f633d5..00000000 --- a/src/systems/natural/include/units/natural/momentum.h +++ /dev/null @@ -1,70 +0,0 @@ -// The MIT License (MIT) -// -// Copyright (c) 2018 Mateusz Pusz -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -#pragma once - -#include -#include - -// IWYU pragma: begin_exports -#include -#include -#include -#include -#include -// IWYU pragma: end_exports - -namespace units::isq::natural { - -struct dim_momentum : isq::dim_momentum {}; - -template U, Representation Rep = double> -using momentum = quantity; - -#ifndef UNITS_NO_REFERENCES - -namespace momentum_references { - -inline constexpr auto GeV = reference{}; - -} // namespace momentum_references - -namespace references { - -using namespace momentum_references; - -} // namespace references - -#endif // UNITS_NO_REFERENCES - -} // namespace units::isq::natural - -#ifndef UNITS_NO_ALIASES - -namespace units::aliases::isq::natural::inline momentum { - -template -using GeV = units::isq::natural::momentum; - -} // namespace units::aliases::isq::natural::inline momentum - -#endif // UNITS_NO_ALIASES diff --git a/src/systems/natural/include/units/natural/natural.h b/src/systems/natural/include/units/natural/natural.h index 09dbcfbd..a9d22eb3 100644 --- a/src/systems/natural/include/units/natural/natural.h +++ b/src/systems/natural/include/units/natural/natural.h @@ -22,14 +22,39 @@ #pragma once -// IWYU pragma: begin_exports -#include -#include -#include -#include -#include -#include -#include -#include -#include -// IWYU pragma: end_exports +#include +#include +#include +#include +#include + +namespace units::natural { + +// clang-format off +// units +inline constexpr struct electronvolt : named_unit<"eV"> {} electronvolt; +inline constexpr struct gigaelectronvolt : decltype(si::giga) {} gigaelectronvolt; + +// system references +inline constexpr struct time : system_reference {} time; +inline constexpr struct length : system_reference {} length; +inline constexpr struct mass : system_reference {} mass; +inline constexpr struct velocity : system_reference {} velocity; +inline constexpr struct speed : system_reference {} speed; +inline constexpr struct acceleration : system_reference {} acceleration; +inline constexpr struct momentum : system_reference {} momentum; +inline constexpr struct force : system_reference> {} force; +inline constexpr struct energy : system_reference {} energy; +// clang-format on + +// constants +inline constexpr auto speed_of_light_in_vacuum = speed[one]; + +namespace unit_symbols { + +inline constexpr auto GeV = gigaelectronvolt; +inline constexpr auto GeV2 = square; + +} // namespace unit_symbols + +} // namespace units::natural diff --git a/src/systems/natural/include/units/natural/speed.h b/src/systems/natural/include/units/natural/speed.h deleted file mode 100644 index 29f388cc..00000000 --- a/src/systems/natural/include/units/natural/speed.h +++ /dev/null @@ -1,44 +0,0 @@ -// The MIT License (MIT) -// -// Copyright (c) 2018 Mateusz Pusz -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -#pragma once - -#include -#include - -// IWYU pragma: begin_exports -#include -#include -#include -#include -#include -#include -// IWYU pragma: end_exports - -namespace units::isq::natural { - -struct dim_speed : isq::dim_speed {}; - -template U, Representation Rep = double> -using speed = quantity; - -} // namespace units::isq::natural diff --git a/src/systems/natural/include/units/natural/time.h b/src/systems/natural/include/units/natural/time.h deleted file mode 100644 index fc82e5ea..00000000 --- a/src/systems/natural/include/units/natural/time.h +++ /dev/null @@ -1,67 +0,0 @@ -// The MIT License (MIT) -// -// Copyright (c) 2018 Mateusz Pusz -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -#pragma once - -// IWYU pragma: begin_exports -#include -#include -#include -#include -#include -// IWYU pragma: end_exports - -namespace units::isq::natural { - -struct dim_time : isq::dim_time {}; - -template U, Representation Rep = double> -using time = quantity; - -#ifndef UNITS_NO_REFERENCES - -namespace time_references { - -inline constexpr auto inv_GeV = reference{}; - -} // namespace time_references - -namespace references { - -using namespace time_references; - -} // namespace references - -#endif // UNITS_NO_REFERENCES - -} // namespace units::isq::natural - -#ifndef UNITS_NO_ALIASES - -namespace units::aliases::isq::natural::inline time { - -template -using inv_GeV = units::isq::natural::time; - -} // namespace units::aliases::isq::natural::inline time - -#endif // UNITS_NO_ALIASES diff --git a/src/systems/natural/include/units/natural/units.h b/src/systems/natural/include/units/natural/units.h deleted file mode 100644 index 82712296..00000000 --- a/src/systems/natural/include/units/natural/units.h +++ /dev/null @@ -1,44 +0,0 @@ -// The MIT License (MIT) -// -// Copyright (c) 2018 Mateusz Pusz -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -#pragma once - -// IWYU pragma: begin_exports -#include -// IWYU pragma: end_exports - -#include -#include - -namespace units::isq::natural { - -struct electronvolt : named_unit {}; -struct gigaelectronvolt : prefixed_unit {}; -struct inverted_gigaelectronvolt : named_unit {}; -struct square_gigaelectronvolt : named_unit {}; - -// NOTE: eV as a base unit with no relation to joule prevents us from going back -// from natural units to SI. Do we need such a support or should we treat -// natural units as an isolated island with ev = 1 which simplifies all -// the maths a lot? - -} // namespace units::isq::natural