#include <cmath>
#include <limits>
#include <type_traits>
#include <Eigen/Dense>
#include "FWCore/Utilities/interface/CMSUnrollLoop.h"
Go to the source code of this file.
Classes | |
struct | calo::multifit::MapMForPM< T > |
struct | calo::multifit::MapSymM< T, Stride, Order > |
Namespaces | |
calo | |
calo::multifit | |
Typedefs | |
template<int NROWS, int NCOLS> | |
using | calo::multifit::ColMajorMatrix = Eigen::Matrix< float, NROWS, NCOLS, Eigen::ColMajor > |
template<int SIZE, typename T = float> | |
using | calo::multifit::ColumnVector = Eigen::Matrix< T, SIZE, 1 > |
template<int NROWS, int NCOLS> | |
using | calo::multifit::RowMajorMatrix = Eigen::Matrix< float, NROWS, NCOLS, Eigen::RowMajor > |
template<int SIZE, typename T = float> | |
using | calo::multifit::RowVector = Eigen::Matrix< T, 1, SIZE > |
Functions | |
template<typename MatrixType1 , typename MatrixType2 , typename MatrixType3 , typename MatrixType4 > | |
EIGEN_ALWAYS_INLINE EIGEN_DEVICE_FUNC void | calo::multifit::calculateChiSq (MatrixType1 const &matrixL, MatrixType2 const &pulseMatrixView, MatrixType3 const &resultAmplitudesVector, MatrixType4 const &inputAmplitudesView, float &chi2) |
template<typename MatrixType1 , typename MatrixType2 > | |
EIGEN_ALWAYS_INLINE EIGEN_DEVICE_FUNC void | calo::multifit::compute_decomposition (MatrixType1 &L, MatrixType2 const &M, int const N) |
template<typename MatrixType1 , typename MatrixType2 , typename VectorType > | |
EIGEN_ALWAYS_INLINE EIGEN_DEVICE_FUNC void | calo::multifit::compute_decomposition_forwardsubst_with_offsets (MatrixType1 &L, MatrixType2 const &M, float b[MatrixType1::stride], VectorType const &Atb, int const N, ColumnVector< MatrixType1::stride, int > const &pulseOffsets) |
template<typename MatrixType1 , typename MatrixType2 > | |
EIGEN_ALWAYS_INLINE EIGEN_DEVICE_FUNC void | calo::multifit::compute_decomposition_unrolled (MatrixType1 &L, MatrixType2 const &M) |
template<typename MatrixType , typename VectorType > | |
EIGEN_DEVICE_FUNC void | calo::multifit::fnnls (MatrixType const &AtA, VectorType const &Atb, VectorType &solution, int &npassive, ColumnVector< VectorType::RowsAtCompileTime, int > &pulseOffsets, MapSymM< float, VectorType::RowsAtCompileTime > &matrixL, double eps, const int maxIterations, const int relaxationPeriod, const int relaxationFactor) |
template<typename MatrixType1 , typename MatrixType2 , typename MatrixType3 > | |
EIGEN_DEVICE_FUNC void | calo::multifit::solve_forward_subst_matrix (MatrixType1 &A, MatrixType2 const &pulseMatrixView, MatrixType3 const &matrixL) |
template<typename MatrixType1 , typename MatrixType2 > | |
EIGEN_DEVICE_FUNC void | calo::multifit::solve_forward_subst_vector (float reg_b[MatrixType1::RowsAtCompileTime], MatrixType1 inputAmplitudesView, MatrixType2 matrixL) |
template<typename MatrixType1 , typename MatrixType2 , typename VectorType > | |
EIGEN_ALWAYS_INLINE EIGEN_DEVICE_FUNC void | calo::multifit::update_decomposition_forwardsubst_with_offsets (MatrixType1 &L, MatrixType2 const &M, float b[MatrixType1::stride], VectorType const &Atb, int const N, ColumnVector< MatrixType1::stride, int > const &pulseOffsets) |