140 likes | 270 Views
Integration of SnapPea, K2K and bTd using JAVA interface by M. Ochiai. Topology and Computer Akita University September 5~7, 2007. Integration of SnapPea, K2K, and bTd. Data exchanges of SnapPea and K2K. Input a knot by mouse-tracking. K2K. Configuration data of SnapPea. p-data. SnapPea.
E N D
Integration of SnapPea, K2K and bTd using JAVA interfaceby M. Ochiai Topology and Computer Akita University September 5~7, 2007
Integration of SnapPea, K2K, and bTd Data exchanges of SnapPea and K2K Input a knot by mouse-tracking K2K Configuration data of SnapPea p-data SnapPea complete p-data KLPProjection : klp A main function in SnapPea triangulate_link_complement(klp) manifold a pointer variableinSnapPea’s kernel to compute invariants such as volume manifold
A main interface function of SnapPea and K2K static { System.loadLibrary("snappea.dll"); } public native String send(String data , int number , double m , double l, int n); In snappea.dll : void MakeKLPCrossing(int n, int n2, int com, int nump[], PDATA pdata[], struct KLPProjection *kp)
A main interface of JAVA and SnapPea, K2K (I) void knotinput(){ try { Process process = Runtime.getRuntime().exec("KnotInput.exe"); Reader in = new InputStreamReader(process.getInputStream()); int c = -1; while ((c = in.read()) != -1) { System.out.print((char) c); } in.close(); } catch (Exception ex) { ex.printStackTrace(); } str = "pdata.prd"; FileCopy(str, str_last); play(); }
A main interface of JAVA and K2K (II) void jonespolynomial(){ try { Process process = Runtime.getRuntime().exec("jonespol "+str); Reader in = new InputStreamReader(process.getInputStream()); int c = -1; while ((c = in.read()) != -1) { System.out.print((char) c); } in.close(); } catch (Exception ex) { ex.printStackTrace(); } ... In jonespol.exe void main(int argc, char *argv[])
Programming environment of SnapPea and K2K (I) • Windows XP, Vista : NetBeans + Microsoft Visual C++ 2005 + OpenGL • Mac OSX , Linux : Xcode2.0 + OpenGL + ?
Programming environment of SnapPea and K2K (II) • SnapPea on C language program (GUI : QuickDraw) • K2K on C language and Mathematica program with MathLink In this research, JAVA is the main programming back ground. How to implement SnapPea and K2K using JAVA interface. • Library callー>dynamic like library (or shared library) easy data exchanges • Exe callー>executable load module poor data exchanges (such as, main(argc,argv))
How to find mutant knots ? • “Two different mutant knots have the same volume” (The Knot Book, C.Adams) • Input a target knot K • to compute volumes V and P(K;x,y) of K • Input a knot K’ from a file with many p-data (from KNOT table, K2K includes all knots with up to 15 crossings, F. Kako is making a alternating knot table up to 18 ー> 23) • to compute volumes V’ of K’ • If V’=V, then to compute P(K’;x,y) • If P(K’;x,y)=P(K;x,y), then output K’ as a “mutant” knot of K
How to recognize the triviality of knots ? • Knots are determined by their complements, C.Gordon and J.Luecke, J.Amer.Math.Soc. 2, 371-415 • Property P conjecture (1) Input a knot K from a file with many p-data (2) Let M be a 3-manifold obtained by (1,1) surgry (3) To compute the fundamental group G of M (4) If G is trivial, then K is the trivial knot. Otherwise, K is non-trivial. “Find a non-trivial knot with the trivial Jones polynomial.” How to make such a effective p-data as in (1)
A trivial knot without waves with 67 crossing points 134 1 134 -88 -21 -108 -41 -126 -59 -114 -47 26 93 -68 -1 16 83 62 129 54 121 -76 -9 -72 -5 -94 -27 134 67 38 105 34 101 -78 -11 130 132 -89 -22 -109 -42 -127 -60 -115 -48 25 92 -69 -2 15 82 61 128 53 120 -77 -10 -73 -6 -95 -28 133 66 37 104 33 100 -79 -12 64
A trivial knot without waves with 45 crossing points 90 1 90 -30 -13 45 18 -20 61 -48 78 31 -43 -40 -59 -75 -66 -3 64 -37 79 -63 6 -17 -15 -39 85 74 24 69 -88 -23 -21 -47 12 56 89 -25 52 -83 -27 35 10 49 -73 77 28 -57