Skip to content

num::randommat::factorize

Defined in header <linear/graph/randommat/approxchol.hpp>

template <typename Float = double, std::integral Index = num::idx, typename Rng = rng64,
          typename Queue = structures::basic_degree_queue<Index>>
cholesky_factor<Float, Index>
factorize(const adjacency_list<Float, Index> &input_G,
          std::type_identity_t<Index> samples = 1, bool exact_mode = false,
          Rng *rng = nullptr, clique_sampler sampler = clique_sampler::gks_2023,
          std::optional<Index> pinned_vertex = std::nullopt);  // (1)

template <typename Float = double, std::integral Index = num::idx, typename Rng = rng64,
          typename Queue = structures::basic_degree_queue<Index>,
          detail::gks_2023_algorithm Algorithm = gao_kyng_spielman_2023::ac_t>
cholesky_factor<Float, Index>
factorize(const adjacency_list<Float, Index> &G, Algorithm, Rng *rng = nullptr,
          std::optional<Index> pinned_vertex = std::nullopt);  // (2)

(1) Factorize a multigraph Laplacian into approximate or exact Cholesky factor \(L L^T\).

(2) Apply the Gao--Kyng--Spielman AC/AC2 clique sampler explicitly.