Skip to content

Commit 8f0cc91

Browse files
[sample] start to generalize samples against linalg backend (#338)
1 parent 1d385ea commit 8f0cc91

5 files changed

+27
-34
lines changed

sample/CMakeLists.txt

+19-22
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,6 @@ For more information, please refer to <https://unlicense.org> ]]
3838

3939
include(FetchContent)
4040

41-
FetchContent_Declare(
42-
eigen
43-
GIT_REPOSITORY "https://gitlab.com/libeigen/eigen"
44-
FIND_PACKAGE_ARGS NAMES Eigen3)
45-
FetchContent_MakeAvailable(eigen)
46-
4741
foreach(SAMPLE "kf_1x1x0_building_height.cpp" "kf_1x1x0_liquid_temperature.cpp"
4842
"kf_1x1x1_dog_position.cpp")
4943
get_filename_component(NAME ${SAMPLE} NAME_WE)
@@ -59,20 +53,23 @@ foreach(SAMPLE "kf_1x1x0_building_height.cpp" "kf_1x1x0_liquid_temperature.cpp"
5953
$<TARGET_FILE:kalman_sample_${NAME}_driver>)
6054
endforeach()
6155

62-
foreach(SAMPLE_EIGEN
63-
"ekf_4x1x0_soaring.cpp" "kf_2x1x1_rocket_altitude.cpp"
64-
"kf_6x2x0_vehicle_location.cpp" "kf_8x4x0_deep_sort_bounding_box.cpp")
65-
get_filename_component(NAME ${SAMPLE_EIGEN} NAME_WE)
66-
add_executable(kalman_sample_eigen_${NAME}_driver ${SAMPLE_EIGEN})
67-
set_target_properties(kalman_sample_eigen_${NAME}_driver
68-
PROPERTIES CXX_STANDARD 23)
69-
set_target_properties(kalman_sample_eigen_${NAME}_driver
70-
PROPERTIES CXX_EXTENSIONS OFF)
71-
target_link_libraries(kalman_sample_eigen_${NAME}_driver
72-
PRIVATE Eigen3::Eigen kalman kalman_main)
73-
add_test(kalman_sample_eigen_${NAME} kalman_sample_eigen_${NAME}_driver)
74-
add_test(
75-
NAME kalman_valgrind_eigen_${NAME}
76-
COMMAND valgrind --error-exitcode=1 --leak-check=full --track-origins=yes
77-
$<TARGET_FILE:kalman_sample_eigen_${NAME}_driver>)
56+
foreach(BACKEND IN ITEMS "eigen")
57+
foreach(SAMPLE
58+
"ekf_4x1x0_soaring.cpp" "kf_2x1x1_rocket_altitude.cpp"
59+
"kf_6x2x0_vehicle_location.cpp" "kf_8x4x0_deep_sort_bounding_box.cpp")
60+
get_filename_component(NAME ${SAMPLE} NAME_WE)
61+
add_executable(kalman_sample_${BACKEND}_${NAME}_driver ${SAMPLE})
62+
set_target_properties(kalman_sample_${BACKEND}_${NAME}_driver
63+
PROPERTIES CXX_STANDARD 23)
64+
set_target_properties(kalman_sample_${BACKEND}_${NAME}_driver
65+
PROPERTIES CXX_EXTENSIONS OFF)
66+
target_link_libraries(kalman_sample_${BACKEND}_${NAME}_driver
67+
PRIVATE kalman kalman_main kalman_linalg_${BACKEND})
68+
add_test(kalman_sample_${BACKEND}_${NAME}
69+
kalman_sample_${BACKEND}_${NAME}_driver)
70+
add_test(
71+
NAME kalman_valgrind_${BACKEND}_${NAME}
72+
COMMAND valgrind --error-exitcode=1 --leak-check=full --track-origins=yes
73+
$<TARGET_FILE:kalman_sample_${BACKEND}_${NAME}_driver>)
74+
endforeach()
7875
endforeach()

sample/ekf_4x1x0_soaring.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
#include "fcarouge/kalman.hpp"
2-
3-
#include <Eigen/Eigen>
2+
#include "fcarouge/linalg.hpp"
43

54
#include <cassert>
65
#include <cmath>
76

87
namespace fcarouge::sample {
98
namespace {
10-
template <auto Size> using vector = Eigen::Vector<float, Size>;
9+
template <auto Size> using vector = column_vector<float, Size>;
1110
using state = vector<4>;
1211
using output = float;
1312
using no_input = void;

sample/kf_2x1x1_rocket_altitude.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
#include "fcarouge/kalman.hpp"
2-
3-
#include <Eigen/Eigen>
2+
#include "fcarouge/linalg.hpp"
43

54
#include <cassert>
65
#include <chrono>
76
#include <cmath>
87

98
namespace fcarouge::sample {
109
namespace {
11-
template <auto Size> using vector = Eigen::Vector<double, Size>;
10+
template <auto Size> using vector = column_vector<double, Size>;
1211
using state = vector<2>;
1312
using output = double;
1413
using input = double;

sample/kf_6x2x0_vehicle_location.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include "fcarouge/kalman.hpp"
2-
3-
#include <Eigen/Eigen>
2+
#include "fcarouge/linalg.hpp"
43

54
#include <cassert>
65
#include <cmath>
@@ -16,7 +15,7 @@ constexpr auto fcarouge::operator/(const Numerator &lhs, const Denominator &rhs)
1615

1716
namespace fcarouge::sample {
1817
namespace {
19-
template <auto Size> using vector = Eigen::Vector<double, Size>;
18+
template <auto Size> using vector = column_vector<double, Size>;
2019
using state = vector<6>;
2120
using output = vector<2>;
2221
using no_input = void;

sample/kf_8x4x0_deep_sort_bounding_box.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include "fcarouge/kalman.hpp"
2-
3-
#include <Eigen/Eigen>
2+
#include "fcarouge/linalg.hpp"
43

54
#include <cassert>
65
#include <cmath>
@@ -16,7 +15,7 @@ constexpr auto fcarouge::operator/(const Numerator &lhs, const Denominator &rhs)
1615

1716
namespace fcarouge::sample {
1817
namespace {
19-
template <auto Size> using vector = Eigen::Vector<float, Size>;
18+
template <auto Size> using vector = column_vector<float, Size>;
2019
using state = vector<8>;
2120
using output = vector<4>;
2221
using no_input = void;

0 commit comments

Comments
 (0)