Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions .github/workflows/build-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ concurrency:

jobs:
build:
name: ${{ matrix.name }} ${{ matrix.build_type }}
name: ${{ matrix.name }} ${{ matrix.build_type }} ${{ (matrix.is_shared == 'ON') && 'Shared' || 'Static' }}
runs-on: ${{ matrix.os }}

env:
Expand All @@ -27,7 +27,7 @@ jobs:
BOOST_EXE: boost_1_72_0-msvc-14.2

strategy:
fail-fast: true
fail-fast: false
matrix:
# Github Actions requires a single row to be added to the build matrix.
# See https://help.github.com/en/articles/workflow-syntax-for-github-actions.
Expand All @@ -40,6 +40,11 @@ jobs:
Release
]

is_shared: [
ON,
OFF
]

build_unstable: [ON]
include:
- name: windows-2022-cl
Expand Down Expand Up @@ -102,6 +107,7 @@ jobs:
cmake -E remove_directory build
if [ "${{ matrix.build_type }}" = "Release" ]; then
cmake -B build \
-DBUILD_SHARED_LIBS=${{ matrix.is_shared }} \
-DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF \
-DGTSAM_ALLOW_DEPRECATED_SINCE_V43=OFF \
-DGTSAM_USE_BOOST_FEATURES=ON \
Expand All @@ -111,6 +117,7 @@ jobs:
-DBOOST_LIBRARYDIR="${BOOST_ROOT_UNIX}/lib"
else
cmake -B build \
-DBUILD_SHARED_LIBS=${{ matrix.is_shared }} \
-DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF \
-DGTSAM_ALLOW_DEPRECATED_SINCE_V43=OFF \
-DGTSAM_USE_BOOST_FEATURES=OFF \
Expand Down
9 changes: 7 additions & 2 deletions gtsam/3rdparty/cephes/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ project(
VERSION 1.0.0
LANGUAGES C)

configure_file("dllexport.h.in" "dllexport.h")

set(CEPHES_HEADER_FILES
cephes.h
cephes/dd_idefs.h
Expand All @@ -17,7 +19,8 @@ set(CEPHES_HEADER_FILES
cephes/mconf.h
cephes/polevl.h
cephes/sf_error.h
dllexport.h)
${CMAKE_CURRENT_BINARY_DIR}/dllexport.h
)

# Add header files
install(FILES ${CEPHES_HEADER_FILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/3rdparty/cephes)
Expand Down Expand Up @@ -94,7 +97,9 @@ add_library(cephes-gtsam ${GTSAM_LIBRARY_TYPE} ${CEPHES_SOURCES})
# Add include directory (aka headers)
target_include_directories(
cephes-gtsam BEFORE PUBLIC $<INSTALL_INTERFACE:include/gtsam/3rdparty/cephes/>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
)

set_target_properties(
cephes-gtsam
Expand Down
26 changes: 13 additions & 13 deletions gtsam/3rdparty/cephes/cephes.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ CEPHES_EXTERN_EXPORT double lbeta(double a, double b);

CEPHES_EXTERN_EXPORT double btdtr(double a, double b, double x);

CEPHES_EXTERN_EXPORT double cbrt(double x);
// CEPHES_EXTERN_EXPORT double cbrt(double x);
CEPHES_EXTERN_EXPORT double chbevl(double x, double array[], int n);
CEPHES_EXTERN_EXPORT double chdtrc(double df, double x);
CEPHES_EXTERN_EXPORT double chdtr(double df, double x);
Expand All @@ -36,7 +36,7 @@ CEPHES_EXTERN_EXPORT int ellpj(double u, double m, double *sn, double *cn,
double *dn, double *ph);
CEPHES_EXTERN_EXPORT double ellpk(double x);
CEPHES_EXTERN_EXPORT double exp10(double x);
CEPHES_EXTERN_EXPORT double exp2(double x);
// CEPHES_EXTERN_EXPORT double exp2(double x);

CEPHES_EXTERN_EXPORT double expn(int n, double x);

Expand Down Expand Up @@ -73,12 +73,12 @@ CEPHES_EXTERN_EXPORT double incbet(double aa, double bb, double xx);
CEPHES_EXTERN_EXPORT double incbi(double aa, double bb, double yy0);

CEPHES_EXTERN_EXPORT double iv(double v, double x);
CEPHES_EXTERN_EXPORT double j0(double x);
CEPHES_EXTERN_EXPORT double y0(double x);
CEPHES_EXTERN_EXPORT double j1(double x);
CEPHES_EXTERN_EXPORT double y1(double x);
// CEPHES_EXTERN_EXPORT double j0(double x);
// CEPHES_EXTERN_EXPORT double y0(double x);
// CEPHES_EXTERN_EXPORT double j1(double x);
// CEPHES_EXTERN_EXPORT double y1(double x);

CEPHES_EXTERN_EXPORT double jn(int n, double x);
// CEPHES_EXTERN_EXPORT double jn(int n, double x);
CEPHES_EXTERN_EXPORT double jv(double n, double x);
CEPHES_EXTERN_EXPORT double k0(double x);
CEPHES_EXTERN_EXPORT double k0e(double x);
Expand All @@ -92,8 +92,8 @@ CEPHES_EXTERN_EXPORT double nbdtri(int k, int n, double p);

CEPHES_EXTERN_EXPORT double ndtr(double a);
CEPHES_EXTERN_EXPORT double log_ndtr(double a);
CEPHES_EXTERN_EXPORT double erfc(double a);
CEPHES_EXTERN_EXPORT double erf(double x);
// CEPHES_EXTERN_EXPORT double erfc(double a);
// CEPHES_EXTERN_EXPORT double erf(double x);
CEPHES_EXTERN_EXPORT double erfinv(double y);
CEPHES_EXTERN_EXPORT double erfcinv(double y);
CEPHES_EXTERN_EXPORT double ndtri(double y0);
Expand All @@ -107,7 +107,7 @@ CEPHES_EXTERN_EXPORT double poch(double x, double m);
CEPHES_EXTERN_EXPORT double psi(double x);

CEPHES_EXTERN_EXPORT double rgamma(double x);
CEPHES_EXTERN_EXPORT double round(double x);
// CEPHES_EXTERN_EXPORT double round(double x);

CEPHES_EXTERN_EXPORT int shichi(double x, double *si, double *ci);
CEPHES_EXTERN_EXPORT int sici(double x, double *si, double *ci);
Expand Down Expand Up @@ -137,13 +137,13 @@ CEPHES_EXTERN_EXPORT double yv(double v, double x);
CEPHES_EXTERN_EXPORT double tandg(double x);
CEPHES_EXTERN_EXPORT double cotdg(double x);

CEPHES_EXTERN_EXPORT double log1p(double x);
// CEPHES_EXTERN_EXPORT double log1p(double x);
CEPHES_EXTERN_EXPORT double log1pmx(double x);
CEPHES_EXTERN_EXPORT double expm1(double x);
// CEPHES_EXTERN_EXPORT double expm1(double x);
CEPHES_EXTERN_EXPORT double cosm1(double x);
CEPHES_EXTERN_EXPORT double lgam1p(double x);

CEPHES_EXTERN_EXPORT double yn(int n, double x);
// CEPHES_EXTERN_EXPORT double yn(int n, double x);
CEPHES_EXTERN_EXPORT double zeta(double x, double q);
CEPHES_EXTERN_EXPORT double zetac(double x);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,16 @@

#pragma once

#cmakedefine01 GTSAM_SHARED_LIB

#ifdef _WIN32
# define CEPHES_EXPORT __declspec(dllimport)
# define CEPHES_EXTERN_EXPORT __declspec(dllimport)
# if !GTSAM_SHARED_LIB
# define CEPHES_EXPORT
# define CEPHES_EXTERN_EXPORT extern
# else
# define CEPHES_EXPORT __declspec(dllimport)
# define CEPHES_EXTERN_EXPORT __declspec(dllimport)
# endif
#else
#ifdef __APPLE__
# define CEPHES_EXPORT __attribute__((visibility("default")))
Expand All @@ -23,3 +30,5 @@
# define CEPHES_EXTERN_EXPORT extern
#endif
#endif

#undef GTSAM_SHARED_LIB
15 changes: 0 additions & 15 deletions gtsam/geometry/SO3.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -386,21 +386,6 @@ Vector3 SO3::ChartAtOrigin::Local(const SO3& R, ChartJacobian H) {
}

//******************************************************************************
template <>
GTSAM_EXPORT
Vector9 SO3::vec(OptionalJacobian<9, 3> H) const {
const Matrix3& R = matrix_;
if (H) {
H->setZero();
H->block<3, 1>(0, 1) = -R.col(2);
H->block<3, 1>(0, 2) = R.col(1);
H->block<3, 1>(3, 0) = R.col(2);
H->block<3, 1>(3, 2) = -R.col(0);
H->block<3, 1>(6, 0) = -R.col(1);
H->block<3, 1>(6, 1) = R.col(0);
}
return Eigen::Map<const Vector9>(R.data());
}
//******************************************************************************

} // end namespace gtsam
16 changes: 16 additions & 0 deletions gtsam/geometry/SO3.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,22 @@ template <>
GTSAM_EXPORT
Vector9 SO3::vec(OptionalJacobian<9, 3> H) const;

template <>
GTSAM_EXPORT
inline Vector9 SO3::vec(OptionalJacobian<9, 3> H) const {
const Matrix3& R = matrix_;
if (H) {
H->setZero();
H->block<3, 1>(0, 1) = -R.col(2);
H->block<3, 1>(0, 2) = R.col(1);
H->block<3, 1>(3, 0) = R.col(2);
H->block<3, 1>(3, 2) = -R.col(0);
H->block<3, 1>(6, 0) = -R.col(1);
H->block<3, 1>(6, 1) = R.col(0);
}
return Eigen::Map<const Vector9>(R.data());
}

#if GTSAM_ENABLE_BOOST_SERIALIZATION
template <class Archive>
/** Serialization function */
Expand Down
21 changes: 0 additions & 21 deletions gtsam/geometry/SO4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -135,27 +135,6 @@ SO4 SO4::Expmap(const Vector6& xi, ChartJacobian H) {
}

//******************************************************************************
template <>
GTSAM_EXPORT
SO4::VectorN2 SO4::vec(OptionalJacobian<16, 6> H) const {
const Matrix& Q = matrix_;
if (H) {
H->setZero();
H->block<4, 1>(0, 2) = -Q.col(3);
H->block<4, 1>(0, 4) = -Q.col(2);
H->block<4, 1>(0, 5) = Q.col(1);
H->block<4, 1>(4, 1) = Q.col(3);
H->block<4, 1>(4, 3) = Q.col(2);
H->block<4, 1>(4, 5) = -Q.col(0);
H->block<4, 1>(8, 0) = -Q.col(3);
H->block<4, 1>(8, 3) = -Q.col(1);
H->block<4, 1>(8, 4) = Q.col(0);
H->block<4, 1>(12, 0) = Q.col(2);
H->block<4, 1>(12, 1) = -Q.col(1);
H->block<4, 1>(12, 2) = Q.col(0);
}
return Eigen::Map<const SO4::VectorN2>(Q.data());
}

///******************************************************************************
template <>
Expand Down
22 changes: 22 additions & 0 deletions gtsam/geometry/SO4.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,28 @@ GTSAM_EXPORT Matrix3 topLeft(const SO4 &Q, OptionalJacobian<9, 6> H = {});
*/
GTSAM_EXPORT Matrix43 stiefel(const SO4 &Q, OptionalJacobian<12, 6> H = {});

template <>
GTSAM_EXPORT
inline SO4::VectorN2 SO4::vec(OptionalJacobian<16, 6> H) const {
const Matrix& Q = matrix_;
if (H) {
H->setZero();
H->block<4, 1>(0, 2) = -Q.col(3);
H->block<4, 1>(0, 4) = -Q.col(2);
H->block<4, 1>(0, 5) = Q.col(1);
H->block<4, 1>(4, 1) = Q.col(3);
H->block<4, 1>(4, 3) = Q.col(2);
H->block<4, 1>(4, 5) = -Q.col(0);
H->block<4, 1>(8, 0) = -Q.col(3);
H->block<4, 1>(8, 3) = -Q.col(1);
H->block<4, 1>(8, 4) = Q.col(0);
H->block<4, 1>(12, 0) = Q.col(2);
H->block<4, 1>(12, 1) = -Q.col(1);
H->block<4, 1>(12, 2) = Q.col(0);
}
return Eigen::Map<const SO4::VectorN2>(Q.data());
}

#if GTSAM_ENABLE_BOOST_SERIALIZATION
template <class Archive>
/** Serialization function */
Expand Down
Loading