#include <algorithm>
#include "CSparse.h"
#include "boolNDArray.h"
#include "dNDArray.h"
#include "dSparse.h"
#include "oct-locbuf.h"
#include "oct-sparse.h"
#include "quit.h"
#include "defun.h"
#include "errwarn.h"
#include "ov.h"
#include "ovl.h"
Go to the source code of this file.
|
#define | H_empty(H, h) ((h) == 0) |
|
#define | LEFT(i) (((i) << 1) + 1) |
|
#define | PARENT(i) (((i) - 1) >> 1) |
|
#define | Q_empty(Q, N, qh, qt) ((qh) == (qt)) |
|
#define | RIGHT(i) (((i) << 1) + 2) |
|
|
static octave_idx_type | calc_degrees (octave_idx_type N, const octave_idx_type *ridx, const octave_idx_type *cidx, octave_idx_type *D) |
|
static octave_idx_type | find_starting_node (octave_idx_type N, const octave_idx_type *ridx, const octave_idx_type *cidx, const octave_idx_type *ridx2, const octave_idx_type *cidx2, octave_idx_type *D, octave_idx_type start) |
|
OCTAVE_EXPORT octave_value_list | Fsymrcm (const octave_value_list &args, int) |
|
static void | H_heapify_min (CMK_Node *A, octave_idx_type i, octave_idx_type size) |
|
static void | H_insert (CMK_Node *H, octave_idx_type &h, const CMK_Node &o) |
|
static CMK_Node | H_remove_min (CMK_Node *H, octave_idx_type &h, int reorg) |
|
static CMK_Node | Q_deq (CMK_Node *Q, octave_idx_type N, octave_idx_type &qh) |
|
static void | Q_enq (CMK_Node *Q, octave_idx_type N, octave_idx_type &qt, const CMK_Node &o) |
|
static void | transpose (octave_idx_type N, const octave_idx_type *ridx, const octave_idx_type *cidx, octave_idx_type *ridx2, octave_idx_type *cidx2) |
|
◆ H_empty
#define H_empty |
( |
|
H, |
|
|
|
h |
|
) |
| ((h) == 0) |
◆ LEFT
#define LEFT |
( |
|
i | ) |
(((i) << 1) + 1) |
◆ PARENT
#define PARENT |
( |
|
i | ) |
(((i) - 1) >> 1) |
◆ Q_empty
#define Q_empty |
( |
|
Q, |
|
|
|
N, |
|
|
|
qh, |
|
|
|
qt |
|
) |
| ((qh) == (qt)) |
◆ RIGHT
#define RIGHT |
( |
|
i | ) |
(((i) << 1) + 2) |
◆ calc_degrees()
◆ find_starting_node()
Definition at line 200 of file symrcm.cc.
References CMK_Node::deg, CMK_Node::dist, Array< T, Alloc >::fortran_vec(), CMK_Node::id, N, OCTAVE_LOCAL_BUFFER, Q, Q_deq(), Q_empty, Q_enq(), Faddeeva::w(), and x.
Referenced by Fsymrcm().
◆ Fsymrcm()
Definition at line 450 of file symrcm.cc.
References B, calc_degrees(), octave_value::columns(), CMK_Node::deg, CMK_Node::dist, Array< T, Alloc >::elem(), err_square_matrix_required(), find_starting_node(), Array< T, Alloc >::fortran_vec(), H_empty, H_insert(), H_remove_min(), CMK_Node::id, octave_value::isreal(), N, OCTAVE_LOCAL_BUFFER, ovl(), print_usage(), Q, Q_deq(), Q_empty, Q_enq(), octave_value::rows(), octave_value::sparse_complex_matrix_value(), octave_value::sparse_matrix_value(), transpose(), Faddeeva::w(), Sparse< T, Alloc >::xcidx(), and Sparse< T, Alloc >::xridx().
◆ H_heapify_min()
◆ H_insert()
◆ H_remove_min()
◆ Q_deq()
◆ Q_enq()
◆ transpose()
Definition at line 391 of file symrcm.cc.
References N, OCTAVE_LOCAL_BUFFER, and Faddeeva::w().
Referenced by Sparse< T, Alloc >::assign(), Sparse< T, Alloc >::delete_elements(), Fqz(), Fsymbfact(), Fsymrcm(), SparseMatrix::hermitian(), Sparse< T, Alloc >::index(), install_b_b_ops(), install_bm_bm_ops(), install_cdm_cdm_ops(), install_cell_ops(), install_chm_ops(), install_cm_cm_ops(), install_cs_cs_ops(), install_dm_dm_ops(), install_fcdm_fcdm_ops(), install_fcm_fcm_ops(), install_fcs_fcs_ops(), install_fdm_fdm_ops(), install_fm_fm_ops(), install_fs_fs_ops(), install_m_m_ops(), install_pm_pm_ops(), install_s_s_ops(), install_sbm_sbm_ops(), install_scm_scm_ops(), install_sm_sm_ops(), install_str_str_ops(), install_struct_ops(), and Sparse< T, Alloc >::permute().