File crhmc_utils.h

Typedefs

using PM = Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, int>

Functions

template<typename Mat, typename Func>
void visit_lambda(const Mat &m, const Func &f)
template<typename SparseMatrixType>
void sparse_stack_v(const SparseMatrixType &top, const SparseMatrixType &bottom, SparseMatrixType &stacked)
template<typename SparseMatrixType>
void sparse_stack_h(const SparseMatrixType &left, const SparseMatrixType &right, SparseMatrixType &stacked)
template<typename SparseMatrixType>
void sparse_stack_h_inplace(SparseMatrixType &left, const SparseMatrixType &right)
template<typename SparseMatrixType, typename VectorType, typename Type>
void remove_zero_rows(SparseMatrixType &A, VectorType &b)
template<typename SparseMatrixType, typename Type>
void remove_rows(SparseMatrixType &A, std::vector<bool> &notRemoved)
template<typename SparseMatrixType, typename VectorType, typename Type>
std::pair<VectorType, VectorType> colwiseMinMax(SparseMatrixType const &A)
template<typename VectorType>
void nextpow2(VectorType &a)
template<typename SparseMatrixType, typename VectorType, typename Type>
std::pair<VectorType, VectorType> gmscale(SparseMatrixType &Asp, const Type scltol)
template<typename Type>
int doubleVectorEqualityComparison(const Type a, const Type b, const Type tol = std::numeric_limits<Type>::epsilon())
template<typename SparseMatrixType>
std::pair<std::vector<int>, std::vector<int>> nnzPerColumn(SparseMatrixType const &A, const int threashold)
template<typename SparseMatrixType>
PM permuteMatAMD(SparseMatrixType const &A)
template<typename SparseMatrixType>
PM postOrderPerm(SparseMatrixType const &A)
template<typename SparseMatrixType, typename VectorType>
void fillin_reduce(SparseMatrixType &X, VectorType &b)
template<typename SparseMatrixType, typename Type, typename IndexType>
PackedCSparse::SparseMatrix<Type, IndexType> transform_format(SparseMatrixType const &mat)
template<typename MatrixType, typename IndexType>
void copy_indicies(MatrixType &a, MatrixType &b, std::vector<IndexType> const &a_idx, std::vector<IndexType> const &b_idx)
template<typename MatrixType, typename IndexType>
void copy_indicies(MatrixType &a, MatrixType b, std::vector<IndexType> const &b_idx)
template<typename MatrixType, typename IndexType, typename Type>
void set(MatrixType &a, std::vector<IndexType> const &idx, const Type c)
template<typename MatrixType, typename IndexType>
void volesti_saxpy(MatrixType &a, MatrixType const &b, MatrixType const &c, std::vector<IndexType> const &a_idx, std::vector<IndexType> const &b_idx)
template<typename SpMat, typename VT>
void load_problem(SpMat &A, VT &b, VT &lb, VT &ub, int &dimension, std::string problem_name)
template<typename Func>
struct lambda_as_visitor_wrapper : public Func

Public Functions

inline lambda_as_visitor_wrapper(const Func &f)
template<typename S, typename I>
inline void init(const S &v, I i, I j)