11 #ifndef CLUSTEROPERATOR_H 12 #define CLUSTEROPERATOR_H 66 #define CLUSTEROPERATOR_TYPE_COMPLETE 356 #if defined(CLUSTEROPERATOR_TYPE_COMPLETE) && !defined(CLUSTEROPERATOR_COMPLETE) 357 #define CLUSTEROPERATOR_COMPLETE size_t getsize_clusteroperator(pcclusteroperator co)
Get the size of a given clusteroperator object.
pclusteroperator new_clusteroperator(pccluster t)
Create a new clusteroperator object.
Representation of a cluster operator.
Definition: clusteroperator.h:44
pclusteroperator init_leaf_clusteroperator(pclusteroperator co, pccluster t)
Initialize a clusteroperator object for a leaf.
const clusteroperator* pcclusteroperator
Pointer to constant clusterbasis object.
Definition: clusteroperator.h:37
void print_tree_clusteroperator(pcclusteroperator co)
Print the tree structure of a clusteroperator.
Representation of a cluster basis.
Definition: clusterbasis.h:40
uint refs
References to this cluster operator.
Definition: clusteroperator.h:63
uint sons
Number of sons, either t->sons or zero.
Definition: clusteroperator.h:58
unsigned uint
Unsigned integer type.
Definition: settings.h:70
pclusteroperator build_from_cluster_clusteroperator(pccluster t)
Construct a clusteroperator matching a cluster tree.
void resize_clusteroperator(pclusteroperator co, uint krow, uint kcol)
Change the number of rows and columns of a cluster operator and resize cb->C accordingly.
void norm2diff_clusteroperator(pcclusteroperator co1, pcclusteroperator co2)
Compute and print the norms and norm differences of the coefficient matrices of two cluster operators...
uint getactives_clusteroperator()
Get number of active clusteroperator objects.
#define INLINE_PREFIX
Prefix for inline functions.
Definition: settings.h:36
void del_clusteroperator(pclusteroperator co)
Delete a clusteroperator object.
pclusteroperator init_clusteroperator(pclusteroperator co, pccluster t)
Initialize a clusteroperator object.
pclusteroperator identify_son_clusterweight_clusteroperator(pcclusteroperator cwf, pccluster t)
Find son clusteroperator matching a given cluster.
real compareweights_clusteroperator(pcclusteroperator co1, pcclusteroperator co2)
Compare two cluster weights.
clusteroperator* pclusteroperator
Pointer to clusteroperator object.
Definition: clusteroperator.h:34
void basisproduct_clusteroperator(pcclusterbasis cb1, pcclusterbasis cb2, pclusteroperator pr)
Compute the cluster basis product .
void uninit_clusteroperator(pclusteroperator co)
Uninitializes a clusteroperator object.
amatrix C
Coefficient matrix.
Definition: clusteroperator.h:55
uint kcol
Number of columns, usually equal to rank of corresponding cluster basis.
Definition: clusteroperator.h:52
#define HEADER_PREFIX
Prefix for function declarations.
Definition: settings.h:43
void removesons_clusteroperator(pclusteroperator co)
Turn this clusteroperator into a leaf.
double real
real floating point type.
Definition: settings.h:97
pclusteroperator* enumerate_clusteroperator(pccluster t, pclusteroperator co)
Enumerate clusteroperator according to cluster tree.
pclusteroperator new_leaf_clusteroperator(pccluster t)
Creates a new clusteroperator object for a leaf.
uint krow
Number of rows.
Definition: clusteroperator.h:50
void update_clusteroperator(pclusteroperator co)
Updates bookkeeping information.
void unref_clusteroperator(pclusteroperator co)
Reduce the reference counter of a clusteroperator object.
Representation of cluster trees.
Definition: cluster.h:40
void ref_clusteroperator(pclusteroperator*ptr, pclusteroperator co)
Set a pointer to a clusterbasis object, increase its reference counter, and decrease reference counte...
pccluster t
Corresponding cluster.
Definition: clusteroperator.h:47
pclusteroperator* son
Pointers to sons.
Definition: clusteroperator.h:60
Representation of a matrix as an array in column-major order.
Definition: amatrix.h:43
pclusteroperator build_from_clusterbasis_clusteroperator(pcclusterbasis cb)
Construct a clusteroperator matching a clusterbasis.