Go to the source code of this file.
Functions/Subroutines | |
subroutine | dqrm_rowcount (graph, parent, porder, rc) |
This subroutine computes the rowcount of the R factor. More... | |
integer function | setfind (setpath, p_leaf) |
subroutine | setunion (setpath, j, pj) |
integer function | flip (p) |
integer function | unflip (p) |
subroutine dqrm_rowcount | ( | type(dqrm_spmat_type) | graph, |
integer, dimension(:) | parent, | ||
integer, dimension(:) | porder, | ||
integer, dimension(:) | rc | ||
) |
This subroutine computes the rowcount of the R factor.
The mothod implemented here is described in:
The algorithm on Fig. 3.2 in [1] was (easily) extended with supernodes detection as described in [2].
Also, on output, the tree is modified in order to reflect the supernodal structure.
[in] | graph | the graph associated to A (or a pruned version if singleton detection was done) |
[out] | rc | the row count. rc(i)=k means that in the k-th row of R there are k nonzeroes; k=0 for all the subordinate variables. This also gives us the size of the rows of front i. |
[in,out] | porder | on input an integer array containing a postorder of the tree. On output it contains an equivalent postorder where principal variables come always before the correspondig subordinates. Other routines rely on this postorder and thus it should never be changed. |
[in,out] | parent | an integer array containing the elimination tree in input and the assembly tree on output. The meaning of parent on output is:
|
Example output:
+---+ |7 | | 6 | | 5| parent=(/ -1, 7, -4, 7, -7, -7, 0 /) +---+ / \ / \ +--+ +--+ |2 | |4 | | 1| | 3| +--+ +--+
Definition at line 104 of file dqrm_rowcount.F90.
References i, qrm_error_mod::qrm_err_act_restore(), qrm_error_mod::qrm_err_act_save(), qrm_error_mod::qrm_err_check(), setfind(), and setunion().
Referenced by dqrm_analyse().
integer function dqrm_rowcount::flip | ( | integer | p | ) |
Definition at line 371 of file dqrm_rowcount.F90.
References flip().
integer function dqrm_rowcount::setfind | ( | integer, dimension(:) | setpath, |
integer | p_leaf | ||
) |
Definition at line 338 of file dqrm_rowcount.F90.
Referenced by _qrm_rowcount(), dqrm_rowcount(), and setfind().
subroutine dqrm_rowcount::setunion | ( | integer, dimension(:) | setpath, |
integer | j, | ||
integer | pj | ||
) |
Definition at line 363 of file dqrm_rowcount.F90.
Referenced by _qrm_rowcount(), and dqrm_rowcount().
integer function dqrm_rowcount::unflip | ( | integer | p | ) |
Definition at line 380 of file dqrm_rowcount.F90.
References unflip().