Crate mc64

Source
Expand description

This package generates various scalings (and matchings) of real sparse matrices.

Given a symmetric matrix A, it finds a diagonal matrix D such that the scaled matrix

 = DAD

has specific numerical properties.

Given an unsymmetric or rectangular matrix A, it finds diagonal matrices Dr and Dc such that the scaled matrix

 = D_r A D_c

has specific numerical properties.

The specific numerical properties delivered depends on the algorithm used:

Matching-based algorithms scale A such that the maximum (absolute) value in each row and column of  is exactly 1.0, where the entries of maximum value form a maximum cardinality matching. The Hungarian algorithm delivers an optimal matching slowly, whereas the auction algorithm delivers an approximate matching quickly.

Norm-equilibration algorithms scale A such that the infinity norm of each row and column of  is 1.0 ± τ (for some user specified tolerance τ).

Structs§

AuctionInform
AuctionOptions
EquilibInform
Used to return information about the execution of the algorithm.
EquilibOptions
Used to specify options to the routines equilib_scale_sym and equilib_scale_unsym.
HungarianInform
HungarianOptions

Constants§

ERROR_ALLOCATION
ERROR_SINGULAR
WARNING_SINGULAR

Functions§

auction_scale_sym
Auction algorithm for symmetric matrix scaling
auction_scale_unsym
Auction-based scaling for unsymmetric matrices.
equilib_scale_sym
Find a matching-based symmetric scaling using the norm-equilibration algorithm.
equilib_scale_unsym
Find a matching-based unsymmetric scaling using the norm-equilibration algorithm.
hungarian_scale_sym
Find a matching-based symmetric scaling using the Hungarian algorithm.
hungarian_scale_unsym
Scales an unsymmetric matrix using the Hungarian algorithm.