CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
CASM_math.cc File Reference

Go to the source code of this file.

Namespaces

 CASM
 Main CASM namespace.
 
 CASM::HungarianMethod_impl
 

Functions

int CASM::round (double val)
 
double CASM::ran0 (int &idum)
 
int CASM::dl_string_dist (const std::string &a, const std::string &b)
 Computes the Damerescau-Levenshtein distance – the number of edits (deletions, insertions, transpositions) to go from string 'a' to string 'b'. More...
 
int CASM::gcf (int i1, int i2)
 Find greatest common factor. More...
 
int CASM::lcm (int i1, int i2)
 Find least common multiple. More...
 
Eigen::VectorXd CASM::eigen_vector_from_string (const std::string &tstr, const int &size)
 
double CASM::gaussian (double a, double x, double b, double c)
 
double CASM::gaussian_moment (int expon, double sigma)
 
double CASM::gaussian_moment (int expon, double sigma, double x0)
 
void CASM::nearest_rational_number (double val, long &numerator, long &denominator, double tol=TOL)
 
std::string CASM::irrational_to_tex_string (double val, int lim, int max_pow=2)
 
int CASM::mod (int a, int b)
 
double CASM::cuberoot (double number)
 
void CASM::poly_fit (Eigen::VectorXcd &xvec, Eigen::VectorXcd &yvec, Eigen::VectorXcd &coeffs, int degree)
 
Index CASM::which_unique_combination (const Array< Index > &input, const Array< Array< Index > > &unique, const Array< Array< Index > > &ind_equiv)
 
Index CASM::which_unique_combination (const Array< Index > &input, const Array< Array< Index > > &unique)
 
int CASM::lcm (const Array< int > &series)
 Find least common multiple. More...
 
ReturnArray< Array< int > > CASM::get_prime_factors (int target)
 
double CASM::hungarian_method (const Eigen::MatrixXd &cost_matrix, std::vector< Index > &optimal_assignments, const double _tol)
 
void CASM::HungarianMethod_impl::reduce_cost (Eigen::MatrixXd &cost_matrix, double _infinity)
 
void CASM::HungarianMethod_impl::find_zeros (const Eigen::MatrixXd &cost_matrix, Eigen::MatrixXi &zero_marks, const double _tol)
 
bool CASM::HungarianMethod_impl::check_assignment (const Eigen::MatrixXi &zero_marks, Eigen::VectorXi &col_covered)
 
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)
 
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)
 
int CASM::HungarianMethod_impl::update_costs (const Eigen::VectorXi &row_covered, const Eigen::VectorXi &col_covered, const double min, Eigen::MatrixXd &cost_matrix)
 
void CASM::HungarianMethod_impl::hungarian_method (const Eigen::MatrixXd &cost_matrix_arg, std::vector< Index > &optimal_assignments, const double _tol)