56 #if defined (HAVE_CONFIG_H)
98 qt = (qt + 1) % (
N + 1);
103 inline static CMK_Node
107 qh = (qh + 1) % (
N + 1);
112 #define Q_empty(Q, N, qh, qt) ((qh) == (qt))
117 #define LEFT(i) (((i) << 1) + 1)
119 #define RIGHT(i) (((i) << 1) + 2)
121 #define PARENT(i) (((i) - 1) >> 1)
136 if (l < size &&
A[l].deg <
A[j].deg)
141 if (
r < size &&
A[
r].deg <
A[smallest].deg)
146 std::swap (
A[j],
A[smallest]);
168 if (H[i].deg < H[p].deg)
170 std::swap (H[i], H[p]);
183 inline static CMK_Node
189 H_heapify_min (H, 0, h);
194 #define H_empty(H, h) ((h) == 0)
229 CMK_Node v = Q_deq (
Q,
N, qh);
231 if (v.dist >
x.dist || (v.id !=
x.id && v.deg >
x.deg))
239 while (j1 < cidx[i+1] || j2 < cidx2[i+1])
257 else if (j2 == cidx2[i+1])
313 if (max_dist <
x.dist)
391 DEFUN (symrcm, args, ,
418 if (args.length () != 1)
429 if (nr == 0 && nc == 0)
460 transpose (
N, ridx, cidx, ridx2, cidx2);
523 for (i = 0; i <
N; i++)
528 v.id = find_starting_node (
N, ridx, cidx, ridx2, cidx2, D, i);
550 v = Q_deq (
Q,
N, qh);
568 while (j1 < cidx[i+1] || j2 < cidx2[i+1])
583 else if (j2 == cidx2[i+1])
632 v = H_remove_min (S, s, 1);
710 OCTAVE_END_NAMESPACE(
octave)
charNDArray max(char d, const charNDArray &m)
T & elem(octave_idx_type n)
Size of the specified dimension.
T * fortran_vec()
Size of the specified dimension.
octave_idx_type * xcidx()
octave_idx_type * xridx()
Vector representing the dimensions (size) of an Array.
SparseMatrix sparse_matrix_value(bool frc_str_conv=false) const
octave_idx_type rows() const
octave_idx_type columns() const
SparseComplexMatrix sparse_complex_matrix_value(bool frc_str_conv=false) const
ColumnVector real(const ComplexColumnVector &a)
ColumnVector imag(const ComplexColumnVector &a)
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
#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 F77_CMPLX * A
F77_RET_T const F77_INT & N
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.
#define Q_empty(Q, N, qh, qt)