Commit 20123f2f authored by Max Lyon's avatar Max Lyon
Browse files

small improvements to ExactConstraintSatisfaction

parent b06f0747
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
#include <CoMISo/Utils/CoMISoError.hh> #include <CoMISo/Utils/CoMISoError.hh>
#include <vector> #include <vector>
namespace COMISO {
ExactConstraintSatisfaction::ExactConstraintSatisfaction() ExactConstraintSatisfaction::ExactConstraintSatisfaction()
{ {
...@@ -164,7 +166,7 @@ double ExactConstraintSatisfaction::get_delta() ...@@ -164,7 +166,7 @@ double ExactConstraintSatisfaction::get_delta()
} }
// ----------------------Matrix transformation----------------------------------- // ----------------------Matrix transformation-----------------------------------
void ExactConstraintSatisfaction::IREF_Gaussian(SP_Matrix_R& A, Eigen::VectorXi& b, const Eigen::VectorXd x){ void ExactConstraintSatisfaction::IREF_Gaussian(SP_Matrix_R& A, Eigen::VectorXi& b, const Eigen::VectorXd& x){
number_pivots_ = 0; number_pivots_ = 0;
int rows = A.rows(); //number of rows int rows = A.rows(); //number of rows
...@@ -253,7 +255,7 @@ void ExactConstraintSatisfaction::IRREF_Jordan(SP_Matrix_R& A, Eigen::VectorXi& ...@@ -253,7 +255,7 @@ void ExactConstraintSatisfaction::IRREF_Jordan(SP_Matrix_R& A, Eigen::VectorXi&
//-------------------------------------Evaluation-------------------------------------------------------------------- //-------------------------------------Evaluation--------------------------------------------------------------------
void ExactConstraintSatisfaction::evaluation(SP_Matrix_R& _A, Eigen::VectorXi& b, Eigen::VectorXd& x, const Eigen::VectorXd& values) void ExactConstraintSatisfaction::evaluation(SP_Matrix_R& _A, Eigen::VectorXi& b, Eigen::VectorXd& x)
{ {
//debug //debug
double time_G = 0.0; double time_G = 0.0;
...@@ -290,7 +292,7 @@ void ExactConstraintSatisfaction::evaluation(SP_Matrix_R& _A, Eigen::VectorXi& b ...@@ -290,7 +292,7 @@ void ExactConstraintSatisfaction::evaluation(SP_Matrix_R& _A, Eigen::VectorXi& b
//debug //debug
std::cout << "largest Expo" << std::endl; std::cout << "largest Expo" << std::endl;
largest_exponent(values); largest_exponent(x);
evaluate(_A, b, x); evaluate(_A, b, x);
...@@ -573,3 +575,5 @@ std::vector<std::pair<int, double> > ExactConstraintSatisfaction::get_dot_produc ...@@ -573,3 +575,5 @@ std::vector<std::pair<int, double> > ExactConstraintSatisfaction::get_dot_produc
return S; return S;
} }
}
...@@ -6,9 +6,10 @@ ...@@ -6,9 +6,10 @@
#include <CoMISo/NSolver/NProblemInterface.hh> #include <CoMISo/NSolver/NProblemInterface.hh>
#include <vector> #include <vector>
#include <list>
#include <time.h> #include <time.h>
namespace COMISO {
class COMISODLLEXPORT ExactConstraintSatisfaction class COMISODLLEXPORT ExactConstraintSatisfaction
{ {
public: public:
...@@ -39,12 +40,12 @@ public: ...@@ -39,12 +40,12 @@ public:
//--------------------matrix transformation------------------------------- //--------------------matrix transformation-------------------------------
void IREF_Gaussian(SP_Matrix_R& A, Eigen::VectorXi& b, const Eigen::VectorXd x); void IREF_Gaussian(SP_Matrix_R& A, Eigen::VectorXi& b, const Eigen::VectorXd& x);
void IRREF_Jordan(SP_Matrix_R& A, Eigen::VectorXi& b); void IRREF_Jordan(SP_Matrix_R& A, Eigen::VectorXi& b);
//-------------------Evaluation-------------------------------------------- //-------------------Evaluation--------------------------------------------
void evaluation(SP_Matrix_R& _A, Eigen::VectorXi& b, Eigen::VectorXd& x, const Eigen::VectorXd& values); void evaluation(SP_Matrix_R& _A, Eigen::VectorXi& b, Eigen::VectorXd& x);
double makeDiv(const std::vector<int>& D, double x); double makeDiv(const std::vector<int>& D, double x);
double safeDot(const std::vector<std::pair<int, double> >& S); double safeDot(const std::vector<std::pair<int, double> >& S);
void evaluate(const SP_Matrix_R& _A, const Eigen::VectorXi& b, Eigen::VectorXd& x); void evaluate(const SP_Matrix_R& _A, const Eigen::VectorXi& b, Eigen::VectorXd& x);
...@@ -73,4 +74,6 @@ private: ...@@ -73,4 +74,6 @@ private:
double delta_ = 0; double delta_ = 0;
}; };
}
#endif // EXACTCONSTRAINTSATISFACTION_HH #endif // EXACTCONSTRAINTSATISFACTION_HH
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment