LADEL main
Sparse LDL factorization package with rank 1 and rowadd/rowdel updates
Functions
ladel_matmat.h File Reference

Detailed Description

Routines to compute matrix matrix products. For now only \(MM^T\) and \(M\Sigma M^T\), with \(\Sigma\) a diagonal matrix, are supported.

Author
Ben Hermans

Definition in file ladel_matmat.h.

#include "ladel_types.h"
+ Include dependency graph for ladel_matmat.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

ladel_sparse_matrixladel_mat_mat_transpose (const ladel_sparse_matrix *M, const ladel_sparse_matrix *M_transpose, ladel_work *work)
 Computes \(MM^T\). More...
 
ladel_sparse_matrixladel_mat_mat_transpose_pattern (const ladel_sparse_matrix *M, const ladel_sparse_matrix *M_transpose, ladel_work *work)
 Computes the pattern of \(MM^T\). More...
 
ladel_sparse_matrixladel_mat_diag_mat_transpose (const ladel_sparse_matrix *M, const ladel_sparse_matrix *M_transpose, const ladel_double *diag, ladel_work *work)
 Computes \(M\Sigma M^T\). More...
 
ladel_sparse_matrixladel_mat_mat_transpose_advanced (const ladel_sparse_matrix *M, const ladel_sparse_matrix *M_transpose, const ladel_double *diag, ladel_int values, ladel_work *work)
 Core mat_mat_transpose function with all options (diag and value/pattern). More...
 

Function Documentation

◆ ladel_mat_diag_mat_transpose()

ladel_sparse_matrix * ladel_mat_diag_mat_transpose ( const ladel_sparse_matrix M,
const ladel_sparse_matrix M_transpose,
const ladel_double diag,
ladel_work work 
)

Computes \(M\Sigma M^T\).

Parameters
MMatrix
M_transposeThe transpose of M
diagArray containing the diagonal of \(\Sigma\)
workLADEL workspace

Definition at line 17 of file ladel_matmat.c.

+ Here is the call graph for this function:

◆ ladel_mat_mat_transpose()

ladel_sparse_matrix * ladel_mat_mat_transpose ( const ladel_sparse_matrix M,
const ladel_sparse_matrix M_transpose,
ladel_work work 
)

Computes \(MM^T\).

Parameters
MMatrix
M_transposeThe transpose of M
workLADEL workspace
Returns
\(MM^T\)

Definition at line 7 of file ladel_matmat.c.

+ Here is the call graph for this function:

◆ ladel_mat_mat_transpose_advanced()

ladel_sparse_matrix * ladel_mat_mat_transpose_advanced ( const ladel_sparse_matrix M,
const ladel_sparse_matrix M_transpose,
const ladel_double diag,
ladel_int  values,
ladel_work work 
)

Core mat_mat_transpose function with all options (diag and value/pattern).

Note
If values==FALSE, only the pattern of \(MM^T\). Setting diag=NULL, then \(\Sigma = I\) is assumed.
Parameters
MMatrix
M_transposeTranspose of M
diagArray containing the diagonal of \(\Sigma\). If NULL, \(\Sigma = I\).
valuesValues or pattern computation
workLADEL workspace

Definition at line 22 of file ladel_matmat.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ladel_mat_mat_transpose_pattern()

ladel_sparse_matrix * ladel_mat_mat_transpose_pattern ( const ladel_sparse_matrix M,
const ladel_sparse_matrix M_transpose,
ladel_work work 
)

Computes the pattern of \(MM^T\).

Parameters
MMatrix
M_transposeThe transpose of M
workLADEL workspace
Returns
The patter of \(MM^T\)

Definition at line 12 of file ladel_matmat.c.

+ Here is the call graph for this function: