8#ifndef IGL_ATA_CACHED_H
9#define IGL_ATA_CACHED_H
11#define EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET
13#include <Eigen/Sparse>
24 std::vector<int> I_row;
26 std::vector<int> I_col;
33 std::vector<int> I_outer;
57 template <
typename Scalar>
59 const Eigen::SparseMatrix<Scalar>& A,
61 Eigen::SparseMatrix<Scalar>& AtA
69 template <
typename Scalar>
71 const Eigen::SparseMatrix<Scalar>& A,
73 Eigen::SparseMatrix<Scalar>& AtA
78#ifndef IGL_STATIC_LIBRARY
79# include "AtA_cached.cpp"
#define IGL_INLINE
Definition igl_inline.h:15
void AtA_cached_precompute(const Eigen::SparseMatrix< Scalar > &A, AtA_cached_data &data, Eigen::SparseMatrix< Scalar > &AtA)
Computes At * W * A, where A is sparse and W is diagonal.
void AtA_cached(const Eigen::SparseMatrix< Scalar > &A, const AtA_cached_data &data, Eigen::SparseMatrix< Scalar > &AtA)
Computes At * W * A, where A is sparse and W is diagonal precomputed into data.
Hold precomputed data for AtA_cached.
Definition AtA_cached.h:18
Eigen::VectorXd W
Weights (diagonal of W)
Definition AtA_cached.h:20