Apollo  6.0
Open source self driving car software
Namespaces | Functions
matrix_operations.h File Reference

Defines some useful matrix operations. More...

#include <cmath>
#include <utility>
#include <vector>
#include "Eigen/Dense"
#include "Eigen/SVD"
#include "cyber/common/log.h"
Include dependency graph for matrix_operations.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 apollo::common::math
 apollo::common::math
 
 apollo
 PlanningContext is the runtime context in planning. It is persistent across multiple frames.
 
 apollo::common
 apollo::common
 

Functions

template<typename T , unsigned int N>
Eigen::Matrix< T, N, N > apollo::common::math::PseudoInverse (const Eigen::Matrix< T, N, N > &m, const double epsilon=1.0e-6)
 Computes the Moore-Penrose pseudo-inverse of a given square matrix, rounding all eigenvalues with absolute value bounded by epsilon to zero. More...
 
template<typename T , unsigned int M, unsigned int N>
Eigen::Matrix< T, N, M > apollo::common::math::PseudoInverse (const Eigen::Matrix< T, M, N > &m, const double epsilon=1.0e-6)
 Computes the Moore-Penrose pseudo-inverse of a given matrix, rounding all eigenvalues with absolute value bounded by epsilon to zero. More...
 
template<typename T , unsigned int L, unsigned int N, unsigned int O>
bool apollo::common::math::ContinuousToDiscrete (const Eigen::Matrix< T, L, L > &m_a, const Eigen::Matrix< T, L, N > &m_b, const Eigen::Matrix< T, O, L > &m_c, const Eigen::Matrix< T, O, N > &m_d, const double ts, Eigen::Matrix< T, L, L > *ptr_a_d, Eigen::Matrix< T, L, N > *ptr_b_d, Eigen::Matrix< T, O, L > *ptr_c_d, Eigen::Matrix< T, O, N > *ptr_d_d)
 Computes bilinear transformation of the continuous to discrete form for state space representation This assumes equation format of. More...
 
bool apollo::common::math::ContinuousToDiscrete (const Eigen::MatrixXd &m_a, const Eigen::MatrixXd &m_b, const Eigen::MatrixXd &m_c, const Eigen::MatrixXd &m_d, const double ts, Eigen::MatrixXd *ptr_a_d, Eigen::MatrixXd *ptr_b_d, Eigen::MatrixXd *ptr_c_d, Eigen::MatrixXd *ptr_d_d)
 
template<typename T , int M, int N, typename D >
void apollo::common::math::DenseToCSCMatrix (const Eigen::Matrix< T, M, N > &dense_matrix, std::vector< T > *data, std::vector< D > *indices, std::vector< D > *indptr)
 

Detailed Description

Defines some useful matrix operations.