Difference between revisions of "VasCalc - A Vassiliev Invariants Calculator"

These pages document our work on VasCalc. Let us start with the project description as appeared in our NSERC proposal:

Finite type (Vassiliev) invariants stand in the centre of knot theory. They are known to encompass very many of the invariants pivotal to knot theory and to low dimensional topology, and thus hundreds of papers were written about them. Finite type invariants are in principle algorithmic and computable, yet the computations are a complicated many-step procedure and there aren't yet coherent computer programs to carry them out.

After 15 years of progress regarding finite type invariants, I feel that finally our understanding of the mathematics is stable enough to justify and guide a computational effort. I propose that this work be carried out as a joint NSERC summer research internship by Zavosh Amir-Khosravi and Siddarth Sankaran, where Zavosh will be writing the java- or C++-based "inner most loop" while Siddarth will be working on all the surrounding logic. We will make sure that every piece of the work will be well documented and will have some "stand alone" value, so overall, I expect the project to have significant impact on the subject of finite type invariants.

J/Link passed the Hello World test. The java class and Mathematica notebook were commited to the repository trunk. Note the Mathematica file must be edited in order to specify the path to java and the class. In order to get it to work I had to tweak a few things:

• The JRE bin directory had to be added to the PATH. The JDK path is not enough because J/Link looks for files like jawt.dll and awt.dll that don't come with JDK.
• HelloWorld.class had to be copied into a CLASSPATH folder, because J/Link loads only classes through their full class name.
• In Mathematica, when running InstallJava[], it was necessary to specify the path name for a newer version of java.exe. By default it runs the Windows java, which didn't run what was compiled with a new JDK.

Ideally, one would like to write a Mathematica notebook without any hardcoded paths that others can use with no changes. Is this possible?