CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::HungarianMethod_impl Namespace Reference

Functions

void reduce_cost (Eigen::MatrixXd &cost_matrix, double _infinity)
 
void find_zeros (const Eigen::MatrixXd &cost_matrix, Eigen::MatrixXi &zero_marks, const double _tol)
 
bool check_assignment (const Eigen::MatrixXi &zero_marks, Eigen::VectorXi &col_covered)
 
int prime_zeros (const Eigen::MatrixXd &cost_matrix, Eigen::VectorXi &row_covered, Eigen::VectorXi &col_covered, Eigen::MatrixXi &zero_marks, double &min, Eigen::VectorXi &first_prime_zero, const double _tol, const double _infinity)
 
int alternating_path (const Eigen::MatrixXd &cost_matrix, const Eigen::VectorXi &first_prime_zero, Eigen::MatrixXi &zero_marks, Eigen::VectorXi &row_covered, Eigen::VectorXi &col_covered)
 
int update_costs (const Eigen::VectorXi &row_covered, const Eigen::VectorXi &col_covered, const double min, Eigen::MatrixXd &cost_matrix)
 
void hungarian_method (const Eigen::MatrixXd &cost_matrix_arg, std::vector< Index > &optimal_assignment, const double _tol)
 

Function Documentation

◆ alternating_path()

int CASM::HungarianMethod_impl::alternating_path ( const Eigen::MatrixXd &  cost_matrix,
const Eigen::VectorXi &  first_prime_zero,
Eigen::MatrixXi &  zero_marks,
Eigen::VectorXi &  row_covered,
Eigen::VectorXi &  col_covered 
)

Definition at line 200 of file CASM_Eigen_math.cc.

◆ check_assignment()

bool CASM::HungarianMethod_impl::check_assignment ( const Eigen::MatrixXi &  zero_marks,
Eigen::VectorXi &  col_covered 
)

Definition at line 97 of file CASM_Eigen_math.cc.

◆ find_zeros()

void CASM::HungarianMethod_impl::find_zeros ( const Eigen::MatrixXd &  cost_matrix,
Eigen::MatrixXi &  zero_marks,
const double  _tol 
)

Definition at line 65 of file CASM_Eigen_math.cc.

◆ hungarian_method()

void CASM::HungarianMethod_impl::hungarian_method ( const Eigen::MatrixXd &  cost_matrix_arg,
std::vector< Index > &  optimal_assignment,
const double  _tol 
)

Definition at line 328 of file CASM_Eigen_math.cc.

◆ prime_zeros()

int CASM::HungarianMethod_impl::prime_zeros ( const Eigen::MatrixXd &  cost_matrix,
Eigen::VectorXi &  row_covered,
Eigen::VectorXi &  col_covered,
Eigen::MatrixXi &  zero_marks,
double &  min,
Eigen::VectorXi &  first_prime_zero,
const double  _tol,
const double  _infinity 
)

Definition at line 117 of file CASM_Eigen_math.cc.

◆ reduce_cost()

void CASM::HungarianMethod_impl::reduce_cost ( Eigen::MatrixXd &  cost_matrix,
double  _infinity 
)

Implement Hungarian algorithm to find optimal mapping given a cost matrix. Returns vector whose value at index l specifies the assignment of relaxed basis $value to POS basis $l.

Definition at line 49 of file CASM_Eigen_math.cc.

◆ update_costs()

int CASM::HungarianMethod_impl::update_costs ( const Eigen::VectorXi &  row_covered,
const Eigen::VectorXi &  col_covered,
const double  min,
Eigen::MatrixXd &  cost_matrix 
)

Definition at line 291 of file CASM_Eigen_math.cc.