SyTen
syten::Delinearise Namespace Reference

Delinearisation decomposition. More...

Functions

template<typename Scalar >
std::vector< std::pair< Index, int > > calculate_scores (std::vector< DenseTensor< 1, Scalar > > const &columns, std::vector< DenseTensor< 1, Scalar > > const &thresh)
 Calculates the zeroness score of all columns comparing against all others. More...
 
template<typename Scalar >
void cols (DenseTensor< 2, Scalar > const &a, DenseTensor< 2, Scalar > &p, DenseTensor< 2, Scalar > &t, DenseTensor< 2, typename ScalarBase< Scalar >::type > const &thresholds_in=DenseTensor< 2, typename ScalarBase< Scalar >::type >(), bool const relax_if_necessary=false)
 Calculates \( p \), \( t \) s.t. \( p·t = a \) and \( p \) has as few columns as possible. More...
 
template<Rank rank>
Index cols (Tensor< rank > const &in, Index const uncombinedLeg, Tensor< rank > &p, Tensor< 2 > &t, std::vector< Index > leading_dimensions=std::vector< Index >(), bool relax_if_necessary=false)
 Column-based Delinearisation. More...
 
template<typename Scalar >
DenseTensor< 2, typename ScalarBase< Scalar >::type > cols_only (DenseTensor< 2, Scalar > const &a, DenseTensor< 2, Scalar > &p, DenseTensor< 2, Scalar > &t, DenseTensor< 2, typename ScalarBase< Scalar >::type > const &thresholds)
 De-linearises the columns of a matrix based on the provided thresholds. More...
 
template<typename Scalar >
bool compare_residual (DenseTensor< 1, Scalar > const &original, DenseTensor< 1, Scalar > const &calculated, DenseTensor< 1, Scalar > const &threshold, SRDef factor)
 Returns true if original[i] ~ calculated[i] to within threshold[i] * factor. More...
 
template<typename Scalar >
std::vector< Indexcount_all_zeros (std::vector< DenseTensor< 1, Scalar > > const &vec)
 Counts the number of exactly-zero entries of each element of vec. More...
 
template<typename Scalar >
std::vector< Indexcount_bottom_zeros (std::vector< DenseTensor< 1, Scalar > > const &vec)
 Counts the number of zeros from the bottom in each entry of vec. More...
 
template<typename Scalar >
DenseTensor< 2, Scalar > permute (std::vector< DenseTensor< 1, Scalar > > &columns, std::vector< DenseTensor< 1, Scalar > > &thresh)
 Permutes columns in columns and thresh such that the columns with maximal zeroness score are in the front. More...
 
template<typename Scalar >
void postprocess_coefficient (Scalar &c, Index num_entries)
 Shifts coefficients to 0, 1 and -1. More...
 
template<typename Scalar >
void rows (DenseTensor< 2, Scalar > const &a, DenseTensor< 2, Scalar > &t, DenseTensor< 2, Scalar > &p, DenseTensor< 2, typename ScalarBase< Scalar >::type > const &thresholds=DenseTensor< 2, typename ScalarBase< Scalar >::type >(), bool const relax_if_necessary=false)
 Calculates \( p \), \( t \) s.t. \( t·p = a \) and \( p \) has as few rows as possible. More...
 
template<Rank rank>
Index rows (Tensor< rank > const &in, Index const uncombinedLeg, Tensor< 2 > &t, Tensor< rank > &p, std::vector< Index > leading_dimensions=std::vector< Index >(), bool relax_if_necessary=false)
 Row-based Delinearisation. More...
 

Detailed Description

Delinearisation decomposition.