Mackey  V3.3
A C++ library for computing RO(G) graded homology
EquivariantAMT< rank_t, diff_t > Class Template Reference

Performs algebraic Morse theory reduction preserving equivariance. More...

#include <Morse.hpp>

Inheritance diagram for EquivariantAMT< rank_t, diff_t >:
[legend]
Collaboration diagram for EquivariantAMT< rank_t, diff_t >:
[legend]

Public Member Functions

 EquivariantAMT (Chains< rank_t, diff_t > &C, bool compute_original_to_reduced, bool compute_reduced_to_original)
 Constructor that performs the computation. More...
 
- Public Member Functions inherited from AMT< diff_t >
const auto & original_to_reduced () const
 Returns vector of "change of basis" matrices from the original to the reduced basis. More...
 
const auto & reduced_to_original () const
 Returns vector of "change of basis" matrices from the reduced to the original basis. More...
 
double reduction_ratio () const
 Returns the average compression ratio as a double in [0,1]. Ideally as close to 0 as possible. More...
 
 AMT (std::vector< diff_t > &A, bool compute_original_to_reduced, bool compute_reduced_to_original)
 Constructor that reduces. More...
 

Additional Inherited Members

- Protected Types inherited from AMT< diff_t >
typedef diff_t::StorageIndex ind
 The storage type of the differential matrices (eg size_t) More...
 
typedef diff_t::Scalar scalar_t
 The scalar type of the differential matrices (eg int or Z2) More...
 
typedef Eigen::SparseMatrix< scalar_t, 1, indrow_major_t
 The type of row major of the differential matrices (eg size_t) More...
 
- Protected Member Functions inherited from AMT< diff_t >
 AMT (std::vector< diff_t > &A, bool compute_original_to_reduced, bool compute_reduced_to_original, bool onlyresize)
 Constructor that allows only to resize. More...
 
void reduce ()
 Performs the reduction and sets the "change of basis" f,g. More...
 
void find_Morse_matching (int k, bool normalize)
 Sets the morse matchiing and normalizes diff if normalize=1 (this speeds up the AMT algorithm) More...
 
void normalize (int k)
 Normalize diff if not done in find_Morse_matching. More...
 
void erase_matchings (int k, const std::vector< std::pair< ind, ind >> &toremove)
 Erase the given morse matchings (eg if they are not equivariant). More...
 
- Protected Attributes inherited from AMT< diff_t >
std::vector< diff_t > & diff
 The reduced differential. More...
 
std::vector< std::map< ind, ind > > morse
 The morse matching. More...
 
std::vector< std::vector< ind > > critical
 The critical basis elements. More...
 

Detailed Description

template<typename rank_t, typename diff_t>
class mackey::EquivariantAMT< rank_t, diff_t >

Performs algebraic Morse theory reduction preserving equivariance.

Reduces given equivariant chain complex to a homotopy equivalent one but ideally smaller, using equivariant variant of algebraic Morse theory

Warning
The constructor performs the computation and modifies the chain complex in place to avoid copies. If you need the original chain complex please store it before passing it here.

Constructor & Destructor Documentation

◆ EquivariantAMT()

EquivariantAMT ( Chains< rank_t, diff_t > &  C,
bool  compute_original_to_reduced,
bool  compute_reduced_to_original 
)

Constructor that performs the computation.


The documentation for this class was generated from the following file: