Cyclops Tensor Framework
parallel arithmetic on multidimensional arrays
symmetrization.h File Reference
#include <assert.h>
#include "../tensor/untyped_tensor.h"
#include "../summation/summation.h"
#include "../contraction/contraction.h"
Include dependency graph for symmetrization.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 CTF_int
 

Functions

void CTF_int::desymmetrize (tensor *sym_tsr, tensor *nonsym_tsr, bool is_C)
 unfolds the data of a tensor More...
 
void CTF_int::symmetrize (tensor *sym_tsr, tensor *nonsym_tsr)
 folds the data of a tensor More...
 
void CTF_int::cmp_sym_perms (int ndim, int const *sym, int *nperm, int **perm, double *sign)
 finds all permutations of a tensor according to a symmetry More...
 
void CTF_int::order_perm (tensor const *A, tensor const *B, int *idx_arr, int off_A, int off_B, int *idx_A, int *idx_B, int &add_sign, int &mod)
 orders the summation indices of one tensor that don't break summation symmetries More...
 
void CTF_int::order_perm (tensor const *A, tensor const *B, tensor const *C, int *idx_arr, int off_A, int off_B, int off_C, int *idx_A, int *idx_B, int *idx_C, int &add_sign, int &mod)
 orders the contraction indices of one tensor that don't break contraction symmetries More...
 
void CTF_int::add_sym_perm (std::vector< summation > &perms, std::vector< int > &signs, summation const &new_perm, int new_sign)
 puts a summation map into a nice ordering according to preserved symmetries, and adds it if it is distinct More...
 
void CTF_int::add_sym_perm (std::vector< contraction > &perms, std::vector< int > &signs, contraction const &new_perm, int new_sign)
 puts a contraction map into a nice ordering according to preserved symmetries, and adds it if it is distinct More...
 
void CTF_int::get_sym_perms (summation const &sum, std::vector< summation > &perms, std::vector< int > &signs)
 finds all permutations of a summation that must be done for a broken symmetry More...
 
void CTF_int::get_sym_perms (contraction const &ctr, std::vector< contraction > &perms, std::vector< int > &signs)
 finds all permutations of a contraction that must be done for a broken symmetry More...