Struct linxal::generate::matgen::RandomSemiPositive [] [src]

pub struct RandomSemiPositive<T: MG> { /* fields omitted */ }

Structure for creating positive semi-definite matrices.

Methods

impl<T: MG> RandomSemiPositive<T>
[src]

Create a new matrix generator for random semi-positive definite matrices.

Set the rank of the matrix.

The rank is capped to the size of the matrix.

Remarks

The rank is ignored when the eigenvalues / singular values are given as input.

Set the matrix to be full rank.

Remarks

The rank is ignored when the eigenvalues / singular values are given as input.

Set the upper and lower band of the matrix.

If the band is larger than the matrix, it is interpreted as a full-sized matrix.

Set the matrix to be full bandwidth.

Set the matrix to be diagonal.

Set how the entries of the matrix are packed.

Remarks

Only symmetric matrices can have non-Full packing.

Set the singular values to the specified values.

When the rank of the matrix is specified as k, any values after the kth are ignored and set to zero when the matrix is generated.

The absolute value of all entries is taken.

Set the singular_values to the specified values.

Draw the singular_values from a uniform distribution.

The absolute value of all entries is taken, to ensure positive semi-definiteness.

Generate a matrix matching the specifications previously specified.

Generate a matrix matching the specifications, and singular values