H2Lib  3.0
Data Structures | Typedefs | Functions
dclusteroperator

Representation of directional cluster operators used to describe transformations of directional cluster bases. More...

Data Structures

struct  _dclusteroperator
 Representation of a directional cluster operator. More...
 

Typedefs

typedef struct _dclusteroperator dclusteroperator
 Representation of a directional cluster operator.
 
typedef dclusteroperatorpdclusteroperator
 Pointer to dclusteroperator object.
 
typedef const dclusteroperatorpcdclusteroperator
 Pointer to constant dclusteroperator object.
 

Functions

pdclusteroperator init_dclusteroperator (pdclusteroperator co, pcdcluster t)
 Initialize a dclusteroperator object. More...
 
pdclusteroperator init_leaf_dclusteroperator (pdclusteroperator co, pcdcluster t)
 Initialize a dclusteroperator object for a leaf. More...
 
void uninit_dclusteroperator (pdclusteroperator co)
 Uninitializes a dclusteroperator object. More...
 
pdclusteroperator new_dclusteroperator (pcdcluster t)
 Create a new dclusteroperator object. More...
 
void ref_dclusteroperator (pdclusteroperator*ptr, pdclusteroperator co)
 Set a pointer to a dclusterbasis object, increase its reference counter, and decrease reference counter of original pointer target. More...
 
void unref_dclusteroperator (pdclusteroperator co)
 Reduce the reference counter of a dclusteroperator object. More...
 
pdclusteroperator new_leaf_dclusteroperator (pcdcluster t)
 Creates a new dclusteroperator object for a leaf. More...
 
void del_dclusteroperator (pdclusteroperator co)
 Delete a dclusteroperator object. More...
 
uint getactives_dclusteroperator ()
 Get the number of active dclusteroperator objects. More...
 
void resize_dclusteroperator (pdclusteroperator co, uint krow, uint kcol, uint i)
 Change the number of rows and columns of a directional cluster operator and resize cb->C[i] accordingly. More...
 
pdclusteroperator build_from_dcluster_dclusteroperator (pcdcluster t)
 Builds a dclusteroperator object matching a dcluster tree. More...
 
pdclusteroperator build_from_dclusterbasis_dclusteroperator (pcdclusterbasis cb)
 Builds a dclusteroperator object matching a dclusterbasis object. More...
 
void merge_dclusteropertator (pcdclusteroperator co, pdclusteroperator co2)
 Multiplies the matrices from one directional cluster operator with the corresponding matrices from another one. More...
 
void print_tree_dclusteroperator (pcdclusteroperator co)
 Print the tree sturcture of a given dclusteroperator object. More...
 
pdclusteroperatorenumerate_dclusteroperator (pcdcluster t, pdclusteroperator co)
 Enumerates all directional cluster operators according to a directional cluster tree. More...
 

Detailed Description

Representation of directional cluster operators used to describe transformations of directional cluster bases.

Function Documentation

pdclusteroperator build_from_dcluster_dclusteroperator ( pcdcluster  t)

Builds a dclusteroperator object matching a dcluster tree.

Constructs a directional cluster operator for a directional cluster and its descendants.

Row and column numbers will be set to zero.

Parameters
tRoot of the dcluster.
Returns
dclusteroperator for t and its descendants.
pdclusteroperator build_from_dclusterbasis_dclusteroperator ( pcdclusterbasis  cb)

Builds a dclusteroperator object matching a dclusterbasis object.

Constructs a directional cluster operator for a directional cluster basis and its descendants.

Row numbers will be set to zero, column numbers will be set to the ranks of the corresponding directional cluster basis.

Parameters
cbRoot of the dclusterbasis.
Returns
dclusteroperator for cb and its descendants.
void del_dclusteroperator ( pdclusteroperator  co)

Delete a dclusteroperator object.

Releases the storage corresponding to the object.

Parameters
codclusteroperator object to be deleted.
pdclusteroperator* enumerate_dclusteroperator ( pcdcluster  t,
pdclusteroperator  co 
)

Enumerates all directional cluster operators according to a directional cluster tree.

Parameters
tDirectional cluster tree.
coDirectional cluster operator belongs to t .
Returns
Directional cluster operator containing numeration.
uint getactives_dclusteroperator ( )

Get the number of active dclusteroperator objects.

Returns
Number of active dclusteroperator objects.
pdclusteroperator init_dclusteroperator ( pdclusteroperator  co,
pcdcluster  t 
)

Initialize a dclusteroperator object.

Sets up the components of the object. If t is not a leaf, the array son is allocated, otherwise it is set to null.

Remarks
Should always be matched by a call to uninit_dclusteroperator.
Parameters
codclusteroperator object to be initialized.
tCorresponding directional cluster.
Returns
Initialized dclusteroperator object.
pdclusteroperator init_leaf_dclusteroperator ( pdclusteroperator  co,
pcdcluster  t 
)

Initialize a dclusteroperator object for a leaf.

Sets up the components of the object. Sets son to null. If t->sons>0 , this yields a partial directional cluster operator.

Remarks
Should always be matched by a call to uninit_dclusteroperator.
Parameters
codclusteroperator object to be initialized.
tCorresponding directional cluster.
Returns
Initialized dclusteroperator object.
void merge_dclusteropertator ( pcdclusteroperator  co,
pdclusteroperator  co2 
)

Multiplies the matrices from one directional cluster operator with the corresponding matrices from another one.

For every cluster t and direction $ \iota $ the matrix $ C_{t\iota} $ from the dclusteroperator co2 will be multiplied by the corresponding matrix from the dclusteroperator co and stored in co2 .

Obviously both dclusteroperator objects have to belong to the same directional cluster basis and the matrix sizes have to match.

Parameters
coDirectional cluster operator, only used for the multiplication.
co2Directional cluster operator, will be multiplied by the matrix from co and overwritten by the product.
pdclusteroperator new_dclusteroperator ( pcdcluster  t)

Create a new dclusteroperator object.

Allocates storage for the object and sets up its components.

Remarks
Should always be matched by a call to del_dclusteroperator.
Parameters
tcorresponding directional cluster.
Returns
Returns the new dclusteroperator object.
pdclusteroperator new_leaf_dclusteroperator ( pcdcluster  t)

Creates a new dclusteroperator object for a leaf.

Allocates storage for the object and sets up its components.

Remarks
Should always be matched by a call to del_dclusteroperator.
Parameters
tCorresponding directional cluster.
Returns
Returns the new dclusteroperator object.
void print_tree_dclusteroperator ( pcdclusteroperator  co)

Print the tree sturcture of a given dclusteroperator object.

Parameters
coRoot of the dclusteroperator.
void ref_dclusteroperator ( pdclusteroperator ptr,
pdclusteroperator  co 
)

Set a pointer to a dclusterbasis object, increase its reference counter, and decrease reference counter of original pointer target.

Parameters
ptrPointer to the pdclusteroperator variable that will be changed.
codclusteroperator that will be referenced.
void resize_dclusteroperator ( pdclusteroperator  co,
uint  krow,
uint  kcol,
uint  i 
)

Change the number of rows and columns of a directional cluster operator and resize cb->C[i] accordingly.

Parameters
coDirectional cluster operator that will be changed.
krowNew number of rows.
kcolNew number of columns.
iDirection, which should be changed.
void uninit_dclusteroperator ( pdclusteroperator  co)

Uninitializes a dclusteroperator object.

Invalidates pointers, freeing corresponding storage if appropriate, and prepares the object for deletion.

Parameters
codclusteroperator object to be uninitialized.
void unref_dclusteroperator ( pdclusteroperator  co)

Reduce the reference counter of a dclusteroperator object.

If the reference counter reaches zero, the object is deleted.

Remarks
Use ref_dclusteroperator with cb=NULL instead, since this guarantees that the pointer is properly invalidated.
Parameters
codclusteroperator that will be unreferenced.