CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM_Eigen_math.cc File Reference
#include "casm/misc/CASM_Eigen_math.hh"
#include <iostream>
#include "casm/container/Counter.hh"

Go to the source code of this file.

Namespaces

 CASM
 Main CASM namespace.
 
 CASM::HungarianMethod_impl
 

Functions

Eigen::VectorXd CASM::eigen_vector_from_string (const std::string &tstr, const int &size)
 
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_assignment, const double _tol)
 
double CASM::hungarian_method (const Eigen::MatrixXd &cost_matrix, std::vector< Index > &optimal_assignments, const double _tol)
 
void CASM::get_Hermitian (Eigen::MatrixXcd &original_mat, Eigen::MatrixXcd &hermitian_mat, Eigen::MatrixXcd &antihermitian_mat)
 
bool CASM::is_Hermitian (Eigen::MatrixXcd &mat)
 
std::pair< Eigen::MatrixXi, Eigen::MatrixXi > CASM::hermite_normal_form (const Eigen::MatrixXi &M)
 Return the hermite normal form, M == H*V. More...
 
double CASM::angle (const Eigen::Ref< const Eigen::Vector3d > &a, const Eigen::Ref< const Eigen::Vector3d > &b)
 Get angle, in radians, between two vectors on range [0,pi]. More...
 
double CASM::signed_angle (const Eigen::Ref< const Eigen::Vector3d > &a, const Eigen::Ref< const Eigen::Vector3d > &b, const Eigen::Ref< const Eigen::Vector3d > &pos_ref)
 signed angle, in radians, between -pi and pi that describe separation in direction of two vectors More...
 
Eigen::MatrixXd CASM::pretty (const Eigen::MatrixXd &M, double tol)
 Round entries that are within tol of being integer to that integer value. More...
 
Eigen::Matrix3d CASM::polar_decomposition (Eigen::Matrix3d const &mat)
 
std::vector< Eigen::Matrix3i > CASM::_unimodular_matrices (bool positive, bool negative, int range=1)
 
const std::vector< Eigen::Matrix3i > & CASM::positive_unimodular_matrices ()
 
const std::vector< Eigen::Matrix3i > & CASM::negative_unimodular_matrices ()