igraph_arpack_options_t

Struct igraph_arpack_options_t 

Source
#[repr(C)]
pub struct igraph_arpack_options_t {
Show 24 fields pub bmat: [c_char; 1], pub n: c_int, pub which: [c_char; 2], pub nev: c_int, pub tol: igraph_real_t, pub ncv: c_int, pub ldv: c_int, pub ishift: c_int, pub mxiter: c_int, pub nb: c_int, pub mode: c_int, pub start: c_int, pub lworkl: c_int, pub sigma: igraph_real_t, pub sigmai: igraph_real_t, pub info: c_int, pub ierr: c_int, pub noiter: c_int, pub nconv: c_int, pub numop: c_int, pub numopb: c_int, pub numreo: c_int, pub iparam: [c_int; 11], pub ipntr: [c_int; 14],
}
Expand description

\struct igraph_arpack_options_t \brief Options for ARPACK.

This data structure contains the options of the ARPACK eigenvalue solver routines. It must be initialized by calling \ref igraph_arpack_options_init() on it. Then it can be used for multiple ARPACK calls, as the ARPACK solvers do not modify it.

Input options:

\member bmat Character. Whether to solve a standard (‘I’) ot a generalized problem (‘B’). \member n Dimension of the eigenproblem. \member which Specifies which eigenvalues/vectors to compute. Possible values for symmetric matrices: \clist \cli LA Compute \c nev largest (algebraic) eigenvalues. \cli SA Compute \c nev smallest (algebraic) eigenvalues. \cli LM Compute \c nev largest (in magnitude) eigenvalues. \cli SM Compute \c nev smallest (in magnitude) eigenvalues. \cli BE Compute \c nev eigenvalues, half from each end of the spectrum. When \c nev is odd, compute one more from the high en than from the low end. \endclist Possible values for non-symmetric matrices: \clist \cli LM Compute \c nev largest (in magnitude) eigenvalues. \cli SM Compute \c nev smallest (in magnitude) eigenvalues. \cli LR Compute \c nev eigenvalues of largest real part. \cli SR Compute \c nev eigenvalues of smallest real part. \cli LI Compute \c nev eigenvalues of largest imaginary part. \cli SI Compute \c nev eigenvalues of smallest imaginary part. \endclist \member nev The number of eigenvalues to be computed. \member tol Stopping criterion: the relative accuracy of the Ritz value is considered acceptable if its error is less than \c tol times its estimated value. If this is set to zero then machine precision is used. \member ncv Number of Lanczos vectors to be generated. Setting this to zero means that \ref igraph_arpack_rssolve and \ref igraph_arpack_rnsolve will determine a suitable value for \c ncv automatically. \member ldv Numberic scalar. It should be set to zero in the current igraph implementation. \member ishift Either zero or one. If zero then the shifts are provided by the user via reverse communication. If one then exact shifts with respect to the reduced tridiagonal matrix \c T. Please always set this to one. \member mxiter Maximum number of Arnoldi update iterations allowed. \member nb Blocksize to be used in the recurrence. Please always leave this on the default value, one. \member mode The type of the eigenproblem to be solved. Possible values if the input matrix is symmetric: \olist \oli Ax=lambdax, A is symmetric. \oli Ax=lambdaMx, A is symmetric, M is symmetric positive definite. \oli Kx=lambdaMx, K is symmetric, M is symmetric positive semi-definite. \oli Kx=lambdaKGx, K is symmetric positive semi-definite, KG is symmetric indefinite. \oli Ax=lambdaMx, A is symmetric, M is symmetric positive semi-definite. (Cayley transformed mode.) \endolist Please note that only \c mode ==1 was tested and other values might not work properly. Possible values if the input matrix is not symmetric: \olist \oli Ax=lambdax. \oli Ax=lambdaMx, M is symmetric positive definite. \oli Ax=lambdaMx, M is symmetric semi-definite. \oli Ax=lambdaM*x, M is symmetric semi-definite. \endolist Please note that only \c mode == 1 was tested and other values might not work properly. \member start Whether to use the supplied starting vector (1), or use a random starting vector (0). The starting vector must be supplied in the first column of the \c vectors argument of the \ref igraph_arpack_rssolve() of \ref igraph_arpack_rnsolve() call.

Output options:

\member info Error flag of ARPACK. Possible values: \clist \cli 0 Normal exit. \cli 1 Maximum number of iterations taken. \cli 3 No shifts could be applied during a cycle of the Implicitly restarted Arnoldi iteration. One possibility is to increase the size of \c ncv relative to \c nev. \endclist ARPACK can return other error flags as well, but these are converted to igraph errors, see \ref igraph_error_type_t. \member ierr Error flag of the second ARPACK call (one eigenvalue computation usually involves two calls to ARPACK). This is always zero, as other error codes are converted to igraph errors. \member noiter Number of Arnoldi iterations taken. \member nconv Number of converged Ritz values. This represents the number of Ritz values that satisfy the convergence critetion. \member numop Total number of matrix-vector multiplications. \member numopb Not used currently. \member numreo Total number of steps of re-orthogonalization.

Internal options: \member lworkl Do not modify this option. \member sigma The shift for the shift-invert mode. \member sigmai The imaginary part of the shift, for the non-symmetric or complex shift-invert mode. \member iparam Do not modify this option. \member ipntr Do not modify this option.

Fields§

§bmat: [c_char; 1]§n: c_int§which: [c_char; 2]§nev: c_int§tol: igraph_real_t§ncv: c_int§ldv: c_int§ishift: c_int§mxiter: c_int§nb: c_int§mode: c_int§start: c_int§lworkl: c_int§sigma: igraph_real_t§sigmai: igraph_real_t§info: c_int§ierr: c_int§noiter: c_int§nconv: c_int§numop: c_int§numopb: c_int§numreo: c_int§iparam: [c_int; 11]§ipntr: [c_int; 14]

Trait Implementations§

Source§

impl Clone for igraph_arpack_options_t

Source§

fn clone(&self) -> igraph_arpack_options_t

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for igraph_arpack_options_t

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Copy for igraph_arpack_options_t

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.