Skip to content

Releases: jeanluct/braidlab

release-2.0

28 Nov 16:54
Compare
Choose a tag to compare
  • 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

28 Nov 16:54
Compare
Choose a tag to compare
  • 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

28 Nov 16:55
Compare
Choose a tag to compare
  • 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

28 Nov 16:55
Compare
Choose a tag to compare
  • 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

28 Nov 16:55
Compare
Choose a tag to compare
  • loopTest.m in testsuite.
  • Clean up files. Eliminate subrepos.
  • First public release.

release-1.0.1

28 Nov 16:56
Compare
Choose a tag to compare
  • Check for overflow of loop coordinates.
  • Several bugfixes.
  • Improved support for VPI (Variable Precision Integers).

release-1.0

28 Nov 16:56
Compare
Choose a tag to compare

First release of braidlab.