Mackey  V3.3
A C++ library for computing RO(G) graded homology
General.hpp File Reference

Contains general functions and vector overloads independent of everything else. More...

#include <vector>
#include "Types/Aliases.hpp"
#include <numeric>
#include <iostream>
#include "impl/General.ipp"
Include dependency graph for General.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  InterpolatingVectorGenerator< T >
 Generates all vectors interpolating between given min and max vectors. More...
 
class  InterpolatingVectorGenerator< T >::const_iterator
 Constant iterator through generated vectors. More...
 
class  Hash<>
 Hashes vectors with collisions. More...
 
class  Hash< T >
 Perfect hashes vectors between 0 and given max. More...
 
class  Hash< T, T >
 Perfect hashes vectors between given min and max. More...
 
class  IteratorNNZ< T, row_only, col_only >
 Iterator over nonzero entries of Eigen matrices. More...
 

Namespaces

 mackey
 Everything in this library is under this namespace.
 

Functions

template<typename T >
std::vector< std::vector< T > > combinations (const std::vector< std::vector< T >> &v)
 Given a vector of vectors v form all combinations of the form {v[0][?],v[1][?],...} for varying ? More...
 
template<typename T >
std::vector< T > tail (const T *const &ptr, int size, int start)
 Given vector or array returns vector starting from index start. More...
 
template<typename rank_t >
rank_t basisElement (int length, int position, int multiple=1)
 Makes the multiple of the basis vector 0,...,multiple,...,0. More...
 
template<typename T , typename S >
KeepRow (const T &A, const S &Z)
 Makes a new matrix out of A keeping only its rows indicated by Z. More...
 
template<typename T , typename S >
KeepCol (const T &A, const S &Z)
 Makes a new matrix out of A keeping only its columns indicated by Z. More...
 
template<typename Derived >
int64_t summation (const Eigen::MatrixBase< Derived > &A)
 Takes the sum of the entries of an Eigen vector at higher precision than its inputs. More...
 
template<typename rank_t >
int64_t summation (const rank_t &u, int64_t limit)
 
template<typename T >
void rotate (T &V)
 Transforms V[0],V[1],...,V[n] to V[1],V[2],...,V[n],V[0]. More...
 
template<typename Matrix_t >
Matrix_t altmatrix (int m, int n, const std::vector< scalar_t< Matrix_t >> &v)
 Creates a matrix of size m x n that alternates the given vector v. More...
 
template<typename T >
bool isZero (const std::vector< T > &a)
 Tests if vector is zero. More...
 
template<typename T >
std::vector< T > operator+ (const std::vector< T > &a, const std::vector< T > &b)
 Coordinate-wise sum of vectors (up to the minimum of their lengths) More...
 
template<typename T >
std::vector< T > operator- (const std::vector< T > &a, const std::vector< T > &b)
 Coordinate-wise difference of vectors (up to the minimum of their lengths) More...
 
template<typename T >
std::vector< T > operator- (const std::vector< T > &a)
 Coordinate-wise opposite of vector. More...
 
template<typename T >
std::vector< T > operator* (T a, const std::vector< T > &b)
 Product of element and vector. More...
 
template<typename T >
std::ostream & operator<< (std::ostream &out, const std::vector< T > &a)
 Printing a vector. More...
 
template<typename T >
int lcm (const T &v)
 Least common multiple of vector of elements. More...
 
template<typename T , typename S >
int64_t perfect_hash (const T &deg, const S &min, const S &max)
 Perfect hash vectors given minimum and maximum values of entries. More...
 
template<typename T >
std::vector< triplet_t< T > > make_triplets (const T &a)
 Turn sparse matrix into a vector of Eigen triplets. More...
 
template<typename T , typename S >
std::vector< triplet_t< T > > keep_row_triplets (const T &a, const S &keep)
 Turn sparse matrix into a vector of Eigen triplets. More...
 

Detailed Description

Contains general functions and vector overloads independent of everything else.