/**************************************** * * * Seifert * * * * A C++ program for computing * * a Seifert matrix of a knot * * * * by Morwen Thistlethwaite * * * ****************************************/ #include "link_diagram.h" #include #include #include FILE *fp, *gp; int knotid; // (making this global is a cheap hack) main( int argc, char **argv ) { int i, j, t, crossing_number, num_components; fp = fopen( argv[1], "r" ); gp = fopen( argv[2], "w" ); /* * Little insert to test whether input file exists; * comment out if it doesn't work on your system */ std::string shell_query; shell_query = "test -f "; shell_query += argv[1]; if ( system( shell_query.c_str() ) != 0 ) { printf( "input file doesn't exist\n" ); exit(0); } /* * end of insert */ while ( fscanf( fp, "%d%d", &crossing_number, &knotid ) != EOF ) { std::vector dt0; for ( i=0; i<=2*crossing_number; ++i ) dt0.push_back( 0 ); dt0[0] = crossing_number; dt0[1] = num_components = 1; dt0[2] = 2*crossing_number; for ( i=3; imake_geometry(); link->make_seifert_matrix(); link->write_script(); delete link; } } /* void Link::write_script() // this one for Maple { int i, j; fprintf( gp, "%2d %7d ", crossing_number, knotid ); for ( i=1; i<=2*crossing_number-1; i+=2 ) fprintf( gp, "%4d", dowker[i]*alt_sign[i] ); fprintf( gp, "\n\n" ); fprintf( gp, "[" ); for ( i=0; i 0 ) fprintf( gp, " " ); fprintf( gp, "[" ); for ( j=0; j