Merge branch 'periodicity' of git.wmi.amu.edu.pl:politarczyk/knotkit into periodicity
This commit is contained in:
commit
bfe339cb0f
2
Makefile
2
Makefile
@ -11,7 +11,7 @@ CXX = g++ -std=c++11
|
||||
INCLUDES = -I. -I/opt/local/include
|
||||
|
||||
# OPTFLAGS = -g
|
||||
OPTFLAGS = -O2 -g
|
||||
OPTFLAGS = -O2 -g -pg
|
||||
# OPTFLAGS = -O2 -g -DNDEBUG
|
||||
|
||||
LDFLAGS = -L/opt/local/lib
|
||||
|
@ -548,6 +548,7 @@ multivariate_laurentpoly<T> invert_variable(const multivariate_laurentpoly<T>& p
|
||||
return result;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
template<class T>
|
||||
multivariate_laurentpoly<T>
|
||||
multivariate_laurentpoly<T>::evaluate(T val, unsigned index) const {
|
||||
@ -568,4 +569,6 @@ multivariate_laurentpoly<T>::evaluate(T val, unsigned index) const {
|
||||
return res;
|
||||
}
|
||||
|
||||
=======
|
||||
>>>>>>> 297e02dc05d79c4546d04aeb720680a9c231284e
|
||||
#endif // _KNOTKIT_ALGEBRA_MULTIVARIATE_LAURENPOLY_H
|
||||
|
70
kk.cpp
70
kk.cpp
@ -1,6 +1,10 @@
|
||||
|
||||
#include <knotkit.h>
|
||||
<<<<<<< HEAD
|
||||
#include <periodicity.h>
|
||||
#include <fstream>
|
||||
=======
|
||||
>>>>>>> 297e02dc05d79c4546d04aeb720680a9c231284e
|
||||
#include <vector>
|
||||
#include <utility>
|
||||
|
||||
@ -399,53 +403,6 @@ void check_periodicity(std::string out_file) {
|
||||
}
|
||||
|
||||
|
||||
// template<class R>
|
||||
// void check_periodicity_criterion(knot_diagram kd, int prime = 5, Test_type t){
|
||||
// using monomial = multivariate_laurent_monomial;
|
||||
// using polynomial = multivariate_laurentpoly<Z>;
|
||||
// unsigned m = kd.num_components();
|
||||
// if(m != 1) {
|
||||
// std::cerr << "Error: for now this only works for knots\n";
|
||||
// exit(EXIT_FAILURE);
|
||||
// }
|
||||
// polynomial khp, lee_p;
|
||||
// // Adding braces so that the cube can be destroyed
|
||||
// // when its not needed anymore
|
||||
// {
|
||||
// cube<R> c(kd,0);
|
||||
// ptr<const module<R>> C = c.khC;
|
||||
// mod_map<R> d = c.compute_d(1, 0, 0, 0, 0);
|
||||
// for(unsigned i = 1; i <= kd.n_crossings; i++)
|
||||
// d = d + c.H_i(i);
|
||||
// assert (d.compose(d) == 0);
|
||||
|
||||
// // computing Khovanov homology
|
||||
// if(verbose)
|
||||
// std::cout << "Computing Khovanov polynomial..." << "\n";
|
||||
// chain_complex_simplifier<R> s(C, d, maybe<int>(1), maybe<int>(0));
|
||||
// C = s.new_C;
|
||||
// d = s.new_d;
|
||||
// khp = C->free_poincare_polynomial();
|
||||
|
||||
// // computing Lee homology
|
||||
// if(verbose)
|
||||
// std::cout << "Computing Lee polynomial..." << "\n";
|
||||
// chain_complex_simplifier<R> s1(C, d, maybe<int>(1), maybe<int>(2));
|
||||
// C = s1.new_C;
|
||||
// d = s1.new_d;
|
||||
// assert(C->dim() == 2);
|
||||
// lee_p = C->free_poincare_polynomial();
|
||||
// }
|
||||
// if(verbose) {
|
||||
// std::cout << "Khovanov polynomial = "
|
||||
// << khp << "\n"
|
||||
// << "Lee polynomial = "
|
||||
// << lee_p << "\n";
|
||||
// }
|
||||
// periodicity_checker pc(khp, lee_p, prime, t);
|
||||
// pc();
|
||||
// }
|
||||
|
||||
template<class R> void
|
||||
compute_invariant ()
|
||||
{
|
||||
@ -887,6 +844,25 @@ main (int argc, char **argv)
|
||||
<< ") of " << knot << " = " << std::endl
|
||||
<< khp << std::endl;
|
||||
}
|
||||
else if(!strcmp(invariant, "periodicity_congruence")) {
|
||||
if(!strcmp(field, "Z2")) {
|
||||
// first we check whether period is a prime
|
||||
if(period == 2 || period == 3) {
|
||||
std::cerr << "The criterion does not work for period = " << period << "\n";
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
auto result = find(primes.begin(), primes.end(), period);
|
||||
if(result == primes.end()) {
|
||||
std::cerr << "For now it is possible to check periodicity for primes up to 31" << "\n";
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
check_periodicity_criterion<Z2>(kd,period);
|
||||
}
|
||||
else {
|
||||
std::cerr << "error: for now this function is only defined for Z2 coefficients..." << "\n";
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!strcmp (field, "Z2"))
|
||||
|
Loading…
Reference in New Issue
Block a user