#include <alpaqa/config/config.hpp>
#include <alpaqa/util/demangled-typename.hpp>
#include <alpaqa/util/enumerate.hpp>
#include <alpaqa/util/iter-adapter.hpp>
#include <alpaqa/util/set-intersection.hpp>
#include <algorithm>
#include <cassert>
#include <chrono>
#include <iostream>
#include <numeric>
#include <ranges>
#include <span>
#include <Eigen/Sparse>
Go to the source code of this file.
|
| template<class SpMat , class MaskVec > |
| auto | select_rows_in_col (const SpMat &sp_mat, MaskVec &mask, auto column) |
| | Returns a range over the row indices in the given column of sp_mat that are also in mask.
|
| |
| template<class SpMat , class MaskVec > |
| auto | select_rows_in_col_iota (const SpMat &sp_mat, MaskVec &mask, auto column) |
| | Like select_rows_in_col, but returns a range of tuples containing the Eigen InnerIterator and a linear index into the mask.
|
| |
| template<class SpMat , class Mat , class MaskVec > |
| void | sparse_add_masked (const SpMat &R_full, Mat &&R, const MaskVec &mask) |
| | R += R_full(mask,mask)
|
| |
| template<class SpMat , class Mat , class MaskVec > |
| void | sparse_add_masked_rows (const SpMat &S_full, Mat &&S, const MaskVec &mask) |
| | S += S_full(mask,:)
|
| |
| template<class SpMat , class CVec , class Vec , class MaskVec > |
| void | sparse_matvec_add_masked_rows_cols (const SpMat &R, const CVec &v, Vec &&out, const MaskVec &mask_J, const MaskVec &mask_K) |
| | out += R(mask_J,mask_K) * v(mask_K);
|
| |
| template<class SpMat , class CVec , class Vec , class MaskVec > |
| void | sparse_matvec_add_transpose_masked_rows (const SpMat &S, const CVec &v, Vec &&out, const MaskVec &mask) |
| | out += S(mask,:)ᵀ * v(mask);
|
| |