Bayes Filters Library
Classes | Namespaces | Typedefs | Functions
utils.h File Reference
#include <Eigen/Dense>
#include <chrono>
#include <cmath>
#include <memory>
#include <string>
Include dependency graph for utils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  bfl::utils::CpuTimer< timetype >
 This template class provides methods to keep track of time. More...
 

Namespaces

 bfl
 Port of boost::any for C++11 compilers.
 
 bfl::utils
 

Typedefs

template<bool B, class T = void>
using bfl::utils::enable_if_t = typename std::enable_if< B, T >::type
 Helper type 'enable_if_t'. More...
 

Functions

template<typename T , typename ... Args>
std::unique_ptr< T > bfl::utils::make_unique (Args &&...args)
 Constructs an object of type T and wraps it in a std::unique_ptr. More...
 
template<typename Derived >
double bfl::utils::log_sum_exp (const Eigen::MatrixBase< Derived > &data)
 Return the element-wise logarithm of the sum of exponentials of the input data. More...
 
template<typename Derived , typename DerivedScalar = typename Derived::Scalar, bfl::utils::enable_if_t< std::is_floating_point< DerivedScalar >::value, bool > = true>
Eigen::Matrix< DerivedScalar, 3, Eigen::Dynamic > bfl::utils::quaternion_to_rotation_vector (const Eigen::MatrixBase< Derived > &quaternion)
 Convert a matrix of unit quaternions \( q_i \) to their rotation vector representation \( r_i \in \mathbb{R}^{3} \) in the tangent space at the identity. More...
 
template<typename Derived , typename DerivedScalar = typename Derived::Scalar, bfl::utils::enable_if_t< std::is_floating_point< DerivedScalar >::value, bool > = true>
Eigen::Matrix< DerivedScalar, 4, Eigen::Dynamic > bfl::utils::rotation_vector_to_quaternion (const Eigen::MatrixBase< Derived > &rotation_vector)
 Convert a matrix of rotation vectors \( r_i \in \mathbb{R}^{3} \) in the tangent space at the identity to their unitary quaternionic representation \( q_i \). More...
 
template<typename Derived , typename DerivedArg2 , typename DerivedScalar = typename Derived::Scalar, typename DerivedArg2Scalar = typename DerivedArg2::Scalar, bfl::utils::enable_if_t< std::is_floating_point< DerivedScalar >::value &&std::is_same< DerivedScalar, DerivedArg2Scalar >::value, bool > = true>
Eigen::Matrix< DerivedScalar, 4, Eigen::Dynamic > bfl::utils::sum_quaternion_rotation_vector (const Eigen::MatrixBase< Derived > &quaternion, const Eigen::MatrixBase< DerivedArg2 > &rotation_vector)
 Evaluate the colwise sum between a unit quaternion \( q \) and a set of rotation vectors \( r_i \in \mathbb{R}^{3} \) in the tangent space at the identity. More...
 
template<typename Derived , typename DerivedArg2 , typename DerivedScalar = typename Derived::Scalar, typename DerivedArg2Scalar = typename DerivedArg2::Scalar, bfl::utils::enable_if_t< std::is_floating_point< DerivedScalar >::value &&std::is_same< DerivedScalar, DerivedArg2Scalar >::value, bool > = true>
Eigen::Matrix< DerivedScalar, 3, Eigen::Dynamic > bfl::utils::diff_quaternion (const Eigen::MatrixBase< Derived > &quaternion_left, const Eigen::MatrixBase< DerivedArg2 > &quaternion_right)
 Evaluate the colwise difference between a set of unit quaternions \( q_i \) and a unit quaternion \( q \). More...
 
template<typename Derived , typename DerivedArg2 , typename DerivedScalar = typename Derived::Scalar, typename DerivedArg2Scalar = typename DerivedArg2::Scalar, bfl::utils::enable_if_t< std::is_floating_point< DerivedScalar >::value &&std::is_same< DerivedScalar, DerivedArg2Scalar >::value, bool > = true>
Eigen::Matrix< DerivedScalar, 4, 1 > bfl::utils::mean_quaternion (const Eigen::MatrixBase< Derived > &weight, const Eigen::MatrixBase< DerivedArg2 > &quaternion)
 Evaluate the weighted mean of a set of unit quaternions \( q_i \) given a set of weights \( w_i \). More...
 
template<typename Derived >
Eigen::VectorXd bfl::utils::multivariate_gaussian_log_density (const Eigen::MatrixBase< Derived > &input, const Eigen::Ref< const Eigen::VectorXd > &mean, const Eigen::Ref< const Eigen::MatrixXd > &covariance)
 Evaluate the logarithm of a multivariate Gaussian probability density function. More...
 
template<typename Derived >
Eigen::VectorXd bfl::utils::multivariate_gaussian_log_density_UVR (const Eigen::MatrixBase< Derived > &input, const Eigen::Ref< const Eigen::VectorXd > &mean, const Eigen::Ref< const Eigen::MatrixXd > &U, const Eigen::Ref< const Eigen::MatrixXd > &V, const Eigen::Ref< const Eigen::MatrixXd > &R)
 Evaluate the logarithm of a multivariate Gaussian probability density function using the Sherman–Morrison–Woodbury identity. More...
 
template<typename Derived >
Eigen::VectorXd bfl::utils::multivariate_gaussian_density (const Eigen::MatrixBase< Derived > &input, const Eigen::Ref< const Eigen::VectorXd > &mean, const Eigen::Ref< const Eigen::MatrixXd > &covariance)
 Evaluate a multivariate Gaussian probability density function. More...
 
template<typename Derived >
Eigen::VectorXd bfl::utils::multivariate_gaussian_density_UVR (const Eigen::MatrixBase< Derived > &input, const Eigen::Ref< const Eigen::VectorXd > &mean, const Eigen::Ref< const Eigen::MatrixXd > &U, const Eigen::Ref< const Eigen::MatrixXd > &V, const Eigen::Ref< const Eigen::MatrixXd > &R)
 Evaluate the logarithm of a multivariate Gaussian probability density function using the Sherman–Morrison–Woodbury formula. More...
 
std::string bfl::utils::throw_message (const std::string &from_where, const std::string &error_message, const std::string &data_log="")
 Utility function that returns a pre-formatted string for throwing exception reports. More...