56 #if defined (HAVE_CONFIG_H)
96 qt = (qt + 1) % (
N + 1);
105 qh = (qh + 1) % (
N + 1);
110 #define Q_empty(Q, N, qh, qt) ((qh) == (qt))
115 #define LEFT(i) (((i) << 1) + 1)
117 #define RIGHT(i) (((i) << 1) + 2)
119 #define PARENT(i) (((i) - 1) >> 1)
134 if (l < size &&
A[l].deg <
A[j].deg)
139 if (
r < size &&
A[
r].deg <
A[smallest].deg)
144 std::swap (
A[j],
A[smallest]);
166 if (H[i].deg < H[p].deg)
168 std::swap (H[i], H[p]);
192 #define H_empty(H, h) ((h) == 0)
237 while (j1 < cidx[i+1] || j2 < cidx2[i+1])
257 else if (j2 == cidx2[i+1])
313 if (max_dist <
x.dist)
369 else if (ridx[l] > j)
423 DEFUN (symrcm, args, ,
450 if (args.length () != 1)
482 if (nr == 0 && nc == 0)
543 for (i = 0; i <
N; i++)
590 while (j1 < cidx[i+1] || j2 < cidx2[i+1])
607 else if (j2 == cidx2[i+1])
T & elem(octave_idx_type n)
Size of the specified dimension.
const T * fortran_vec(void) const
Size of the specified dimension.
octave_idx_type * xridx(void)
octave_idx_type * xcidx(void)
Vector representing the dimensions (size) of an Array.
SparseMatrix sparse_matrix_value(bool frc_str_conv=false) const
octave_idx_type rows(void) const
octave_idx_type columns(void) const
SparseComplexMatrix sparse_complex_matrix_value(bool frc_str_conv=false) const
OCTINTERP_API void print_usage(void)
#define DEFUN(name, args_name, nargout_name, doc)
Macro to define a builtin function.
void err_square_matrix_required(const char *fcn, const char *name)
F77_RET_T const F77_INT F77_CMPLX const F77_INT F77_CMPLX * B
F77_RET_T const F77_INT const F77_INT const F77_INT F77_DBLE const F77_INT F77_DBLE const F77_INT F77_DBLE * Q
F77_RET_T const F77_INT & N
F77_RET_T const F77_INT F77_CMPLX * A
F77_RET_T const F77_DBLE * x
std::complex< double > w(std::complex< double > z, double relerr=0)
#define OCTAVE_LOCAL_BUFFER(T, buf, size)
octave_value_list ovl(const OV_Args &... args)
Construct an octave_value_list with less typing.
static void Q_enq(CMK_Node *Q, octave_idx_type N, octave_idx_type &qt, const CMK_Node &o)
static CMK_Node Q_deq(CMK_Node *Q, octave_idx_type N, octave_idx_type &qh)
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)
#define Q_empty(Q, N, qh, qt)
static CMK_Node H_remove_min(CMK_Node *H, octave_idx_type &h, int reorg)
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 void transpose(octave_idx_type N, const octave_idx_type *ridx, const octave_idx_type *cidx, octave_idx_type *ridx2, octave_idx_type *cidx2)
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)