Skip to content

Commit

Permalink
feat: add module mp_units
Browse files Browse the repository at this point in the history
  • Loading branch information
JohelEGP committed Sep 1, 2023
1 parent fa38e4f commit 6d7d829
Show file tree
Hide file tree
Showing 73 changed files with 503 additions and 101 deletions.
4 changes: 4 additions & 0 deletions example/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ target_include_directories(example_utils INTERFACE include)
function(add_example target)
add_executable(${target} ${target}.cpp)
target_link_libraries(${target} PRIVATE ${ARGN})
if(TARGET mp-units::modules)
target_link_libraries(${target} PRIVATE mp-units::modules)
target_compile_definitions(${target} PRIVATE MP_UNITS_MODULES)
endif()
endfunction()

add_example(avg_speed mp-units::core-io mp-units::si mp-units::cgs mp-units::usc)
Expand Down
8 changes: 6 additions & 2 deletions example/avg_speed.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,17 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.

#include <exception>
#include <iostream>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/ostream.h>
#include <mp-units/systems/cgs/cgs.h>
#include <mp-units/systems/international/international.h>
#include <mp-units/systems/isq/space_and_time.h>
#include <mp-units/systems/si/unit_symbols.h>
#include <exception>
#include <iostream>
#endif

namespace {

Expand Down
6 changes: 5 additions & 1 deletion example/capacitor_time_curve.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,15 @@
physical_quantities
*/

#include <iostream>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/math.h> // IWYU pragma: keep
#include <mp-units/ostream.h>
#include <mp-units/systems/isq/electromagnetism.h>
#include <mp-units/systems/si/si.h>
#include <iostream>
#endif

int main()
{
Expand Down
7 changes: 6 additions & 1 deletion example/clcpp_response.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@
along with this program. If not, see http://www.gnu.org/licenses./
*/

#include <mp-units/bits/fmt_hacks.h>
#include <iostream>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/format.h>
#include <mp-units/ostream.h>
#include <mp-units/systems/iau/iau.h>
Expand All @@ -24,7 +29,7 @@
#include <mp-units/systems/si/si.h>
#include <mp-units/systems/typographic/typographic.h>
#include <mp-units/systems/usc/usc.h>
#include <iostream>
#endif

namespace {

Expand Down
9 changes: 7 additions & 2 deletions example/conversion_factor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,17 @@
along with this program. If not, see http://www.gnu.org/licenses./
*/

#include <mp-units/bits/fmt_hacks.h>
#include <iostream>
#include <type_traits>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/format.h>
#include <mp-units/systems/isq/space_and_time.h>
#include <mp-units/systems/si/unit_symbols.h>
#include <mp-units/systems/si/units.h>
#include <iostream>
#include <type_traits>
#endif

/*
get conversion factor from one dimensionally equivalent
Expand Down
9 changes: 7 additions & 2 deletions example/currency.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,16 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.

#include <mp-units/quantity_spec_macro.h>
#include <iostream>
#include <map>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/ostream.h>
#include <mp-units/quantity.h>
#include <mp-units/quantity_point.h>
#include <iostream>
#include <map>
#endif

using namespace mp_units;

Expand Down
9 changes: 7 additions & 2 deletions example/foot_pound_second.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,19 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.

#include <mp-units/bits/fmt_hacks.h>
#include <iostream>
#include <string_view>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/format.h>
#include <mp-units/systems/imperial/imperial.h>
#include <mp-units/systems/international/international.h>
#include <mp-units/systems/isq/mechanics.h>
#include <mp-units/systems/isq/space_and_time.h>
#include <mp-units/systems/si/unit_symbols.h>
#include <iostream>
#include <string_view>
#endif

using namespace mp_units;
using namespace mp_units::international::unit_symbols;
Expand Down
4 changes: 4 additions & 0 deletions example/glide_computer_lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,7 @@ cmake_minimum_required(VERSION 3.2)
add_library(glide_computer_lib STATIC glide_computer_lib.cpp include/glide_computer_lib.h)
target_link_libraries(glide_computer_lib PRIVATE mp-units::core-fmt PUBLIC mp-units::si mp-units::utility example_utils)
target_include_directories(glide_computer_lib PUBLIC include)
if(TARGET mp-units::modules)
target_link_libraries(glide_computer_lib PRIVATE mp-units::modules)
target_compile_definitions(glide_computer_lib PRIVATE MP_UNITS_MODULES)
endif()
6 changes: 5 additions & 1 deletion example/glide_computer_lib/glide_computer_lib.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,14 @@
// SOFTWARE.

#include "glide_computer_lib.h"
#include <mp-units/format.h>
#include <iostream>
#include <numeric>
#include <string_view>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/format.h>
#endif

namespace glide_computer {

Expand Down
14 changes: 10 additions & 4 deletions example/glide_computer_lib/include/glide_computer_lib.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,9 @@

#pragma once

#include <mp-units/quantity_spec_macro.h>
//
#include "geographic.h"
#include <mp-units/chrono.h>
#include <mp-units/math.h> // IWYU pragma: keep
#include <mp-units/quantity_point.h>
#include <mp-units/systems/isq/space_and_time.h>
#include <algorithm>
#include <array>
#include <initializer_list>
Expand All @@ -35,6 +33,14 @@
#include <ranges>
#include <string> // IWYU pragma: keep
#include <vector>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/chrono.h>
#include <mp-units/math.h> // IWYU pragma: keep
#include <mp-units/quantity_point.h>
#include <mp-units/systems/isq/space_and_time.h>
#endif

// An example of a really simplified tactical glide computer
// Simplifications:
Expand Down
7 changes: 6 additions & 1 deletion example/hello_units.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,17 @@
// !!! renders correctly in the documentation "Examples" section. !!!
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

#include <mp-units/bits/fmt_hacks.h>
#include <iostream>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/format.h>
#include <mp-units/ostream.h>
#include <mp-units/systems/international/international.h>
#include <mp-units/systems/isq/isq.h>
#include <mp-units/systems/si/si.h>
#include <iostream>
#endif

using namespace mp_units;

Expand Down
12 changes: 8 additions & 4 deletions example/include/geographic.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,20 @@

#include "ranged_representation.h"
#include <mp-units/bits/fmt_hacks.h>
#include <compare>
#include <limits>
#include <numbers>
#include <ostream>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/format.h>
#include <mp-units/math.h>
#include <mp-units/quantity.h>
#include <mp-units/quantity_point.h>
#include <mp-units/systems/isq/space_and_time.h>
#include <mp-units/systems/si/units.h>
#include <compare>
#include <limits>
#include <numbers>
#include <ostream>
#endif

namespace geographic {

Expand Down
6 changes: 5 additions & 1 deletion example/include/ranged_representation.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,14 @@

#include "validated_type.h"
#include <mp-units/bits/external/hacks.h>
#include <mp-units/customization_points.h>
#include <algorithm>
#include <concepts>
#include <type_traits>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/customization_points.h>
#endif

template<std::movable T, MP_UNITS_CONSTRAINED_NTTP_WORKAROUND(std::convertible_to<T>) auto Min,
MP_UNITS_CONSTRAINED_NTTP_WORKAROUND(std::convertible_to<T>) auto Max>
Expand Down
4 changes: 4 additions & 0 deletions example/kalman_filter/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ cmake_minimum_required(VERSION 3.2)
function(add_example target)
add_executable(${target} ${target}.cpp)
target_link_libraries(${target} PRIVATE ${ARGN})
if(TARGET mp-units::modules)
target_link_libraries(${target} PRIVATE mp-units::modules)
target_compile_definitions(${target} PRIVATE MP_UNITS_MODULES)
endif()
endfunction()

add_example(kalman_filter-example_1 mp-units::core-fmt mp-units::si mp-units::utility)
Expand Down
6 changes: 5 additions & 1 deletion example/kalman_filter/kalman.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,16 @@
#pragma once

#include <mp-units/bits/fmt_hacks.h>
#include <tuple>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/format.h>
#include <mp-units/math.h>
#include <mp-units/quantity.h>
#include <mp-units/quantity_point.h>
#include <mp-units/systems/isq/space_and_time.h>
#include <tuple>
#endif

namespace kalman {

Expand Down
8 changes: 6 additions & 2 deletions example/kalman_filter/kalman_filter-example_1.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,15 @@
// SOFTWARE.

#include "kalman.h"
#include <array>
#include <iostream>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/format.h>
#include <mp-units/systems/isq/space_and_time.h>
#include <mp-units/systems/si/unit_symbols.h>
#include <array>
#include <iostream>
#endif

// Based on: https://www.kalmanfilter.net/alphabeta.html#ex1

Expand Down
8 changes: 6 additions & 2 deletions example/kalman_filter/kalman_filter-example_2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,15 @@
// SOFTWARE.

#include "kalman.h"
#include <array>
#include <iostream>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/format.h>
#include <mp-units/systems/isq/space_and_time.h>
#include <mp-units/systems/si/unit_symbols.h>
#include <array>
#include <iostream>
#endif

// Based on: https://www.kalmanfilter.net/alphabeta.html#ex2

Expand Down
8 changes: 6 additions & 2 deletions example/kalman_filter/kalman_filter-example_3.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,15 @@
// SOFTWARE.

#include "kalman.h"
#include <array>
#include <iostream>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/format.h>
#include <mp-units/systems/isq/space_and_time.h>
#include <mp-units/systems/si/unit_symbols.h>
#include <array>
#include <iostream>
#endif

// Based on: https://www.kalmanfilter.net/alphabeta.html#ex3

Expand Down
8 changes: 6 additions & 2 deletions example/kalman_filter/kalman_filter-example_4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,15 @@
// SOFTWARE.

#include "kalman.h"
#include <array>
#include <iostream>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/format.h>
#include <mp-units/systems/isq/space_and_time.h>
#include <mp-units/systems/si/unit_symbols.h>
#include <array>
#include <iostream>
#endif

// Based on: https://www.kalmanfilter.net/alphabeta.html#ex4

Expand Down
8 changes: 6 additions & 2 deletions example/kalman_filter/kalman_filter-example_5.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,16 @@
// SOFTWARE.

#include "kalman.h"
#include <array>
#include <iostream>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/format.h>
#include <mp-units/math.h>
#include <mp-units/systems/isq/space_and_time.h>
#include <mp-units/systems/si/unit_symbols.h>
#include <array>
#include <iostream>
#endif

// Based on: https://www.kalmanfilter.net/kalman1d.html#ex5

Expand Down
8 changes: 6 additions & 2 deletions example/kalman_filter/kalman_filter-example_6.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,17 @@
// SOFTWARE.

#include "kalman.h"
#include <array>
#include <iostream>
#ifdef MP_UNITS_MODULES
import mp_units;
#else
#include <mp-units/format.h>
#include <mp-units/math.h>
#include <mp-units/quantity_point.h>
#include <mp-units/systems/isq/thermodynamics.h>
#include <mp-units/systems/si/si.h>
#include <array>
#include <iostream>
#endif

// Based on: https://www.kalmanfilter.net/kalman1d.html#ex6

Expand Down
Loading

0 comments on commit 6d7d829

Please sign in to comment.