Releases: jeanluct/braidlab
Releases · jeanluct/braidlab
release-2.0
- Complete rewrite of the Makefiles to simplify them and make them
compatible with Matlab 2014a (which broke a lot of things). The
Makefiles no longer attempt to detect which compiler MEX uses, so
you'll have to set it manually if you use a nonstandard one (e.g.,
'make CXX=g++-4.7.1 CC=gcc-4.7.1'). This has been tested on 64-bit
Linux and Mac OS. - When constructing a braid object from data, the braid constructor
now uses a C++ MEX file (written by Marko Budisic) giving a big
speedup for large datasets. Support for parallelization on multiple
cores is included. The global variable BRAIDLAB_threads determines
the number of threads used. - The braid constructor can make knot representatives, e.g.,
b=braid('8_3') returns a braid representative for the third
8-crossing knot. - The private method braid.loopsigma's C++ helper functions (used by
braid*loop) can now handle int32, int64, and single, in addition to
double. This makes checking braid equality and triviality much
faster, unless overflow occurs and VPI has to be used. - The private method braid.loopsigma's C++ helper functions can also
handle VPI (Variable Precision Integers) by using GMP, the GNU
MultiPrecision library. If you don't have GMP installed, compile
with option "BRAIDLAB_USE_GMP=0". However, this will lead to a
massive slowdown when working with VPI types (Variable Precision
Integers). - New methods in the loop class: loop.components, loop.plot
'Components' option, loop.getgraph. These are not yet documented in
the guide, as they are an advanced feature, though they are
described in the help text to the functions. - braid.burau and braid.alexpoly can use the symbolic toolbox.
alexpoly no longer centers the polynomial by default, since
centering cannot always be used with a laurpoly object, and can
never be used for integral types. Use option 'centered'. - braid.mtimes acting on loops has an optional output argument that
records the signs of the pos/neg operators in the update rules
(loopsigma). This allows reconstruction of the matrix for the
effective linear action, as well as checking for limit cycles for
the action. - New methods in the braid class: braid.linact converts the optional
output from braid.mtimes (see above) to a matrix. braid.cycle looks
for a limit cycle in the braid action on loops. braid.cyclemat uses
braid.cycle to return a matrix corresponding to this limit cycle.
The largest eigenvalue of this matrix, normalized by the period,
gives the Perron root of the largest pseudo-Anosov component(s).
This is not documented in the guide yet, because it's still a bit
experimental. In particular it sometimes fails to find the limit
cycle (issue #52). - Many other small bugfixes and improvements.
Several improvements to the method braid.entropy:
- braid.entropy has a C MEX helper function and is much faster. It no
longer checks if the braid is trivial, which avoids overflow and
speeds up the function. - braid.entropy's convergence has been greatly improved (see next item
for more details). With enough iterations, machine precision can
usually be achieved. - braid.entropy's optional second return argument has changed from a
list of iterates to the final generalized eigenvector. The reason
is that the internal algorithm has changed: the Dynnikov coordinates
get renormalized at every step, much like the power iteration method
for finding the largest eigenvalue of a matrix. A consequence of
this is that it is no longer natural to store the iterates. This
shouldn't affect things very much, since this optional argument was
not used widely.
release-1.0.5
- Constructors for Rupert Venzke's psi-family of low-entropy braids.
- Fix bug involving single-trajectory dataset.
- Plot empty braids (why not...).
- braid.compact no longer checks for trivial braid, since this can
take a lot of time (more than the compact itself). - Unit test for entropy added to testsuite.
- Lighter distribution (just compiled files).
- A few more small bugfixes.
release-1.0.4
- The databraid class records crossing times of a dataset.
- Added an example section on taffy pullers to braidlab guide.
- bugfix in testsuite.
release-1.0.3
- The braidlab guide has been updated and expanded, and now has a
table of contents and a detailed index. - New methods in braid class: 'alexpoly' returns the Alexander
polynomial. 'burau' can now construct a matrix of Laurent
polynomials (wavelet toolbox required). 'tensor' is the tensor
product of braids. - Big speedup in creating braids from data, due to improved safety
checks on the particle trajectories.
release-1.0.2
- loopTest.m in testsuite.
- Clean up files. Eliminate subrepos.
- First public release.
release-1.0.1
- Check for overflow of loop coordinates.
- Several bugfixes.
- Improved support for VPI (Variable Precision Integers).
release-1.0
First release of braidlab.