Skip to content

Releases: jeanluct/braidlab

release-3.2.5

17 Nov 20:08
Compare
Choose a tag to compare
  • Add complex constructor braid(Z), where Z is K x N and contains
    complex trajectory data.

  • Many small edits and fixes to the braidlab guide to bring it up to
    date with current syntax. (Thanks to Giuseppe Di Labbio.)

  • Bugfix: missing brackets around varargout in annbraid caused no
    return argument form to fail. (Thanks to Giuseppe Di Labbio.)

  • Bugfix: missing lower in knot2braid. So 'Trefoil' couldn't be
    capitalized as in examples. (Thanks to Giuseppe Di Labbio.)

  • Add pure option to closure.

release-3.2.4

15 Nov 09:56
Compare
Choose a tag to compare
  • ttmap displays in an easy-to-read format the train track map
    contained in the struct returned by braid.train.

  • braid.train replaces braid.tntype. It returns a struct
    containing the Thurston-Nielsen type, the entropy, and now the train
    track map and the transition matrix, all using Toby Hall's C++ train
    track code.

  • The braid.entropy option name trains is now train, for
    consistency (though trains is still supported).

  • Suppress a few warnings exposed by recent compilers.

release-3.2.3

04 Apr 14:52
Compare
Choose a tag to compare
  • Bugfix: case issue in braid.entropy flags.

  • Bugfix: to allow computation of the entropy for huge braids that
    cause intermediate overflow in the update rules, break up large
    braids into smaller chunks, each of which will not overflow, and
    store the logarithmic growth (issue #138).

  • Bugfix: for large braids maxit could overflow an int32 (partial fix
    for issue #138).

  • Move "utility" debug messages to debug level 2. Now debug level 1
    should be reserved for mathematical diagnostic information (e.g.,
    internal iterations, convergence). This provides a cleaner output
    when debugging the actual functionality of the code.

release-3.2.2

02 Jun 14:54
Compare
Choose a tag to compare

Bugfix: error message maxrhs ID changed name in Matlab R2016b caused databraidTest to fail (issue #137).

release-3.2.1

23 Oct 23:11
Compare
Choose a tag to compare
  • braid constructor issues a warning when creating a braid from data
    consisting of unclosed orbits. Use braid(closure(XY)) to suppress the
    warning (issue #130).
  • Bugfix: loopsigma_helper without GMP still tried to compile
    functions with mpz_class (issue #131).
  • Bugfix: added mutex protection around temporary loop storage (issue #132).

release-3.2

27 Aug 22:25
Compare
Choose a tag to compare
  • braid.mtimes acting on loops is now multithreaded.
  • braid.braid can generate normally-distributed random braids
  • braid.subbraid now has a C++ implementation.
  • loop.plot takes the option 'BasePointColor'.
  • Added troubleshooting appendix to braidlab guide, which describes
    global flags and issue reporting.
  • Bugfix: prevent creation of empty loop with loop([]), or equivalently a
    loop with two punctures with loop(2), or a loop with one puncture and a
    basepoint with loop(1,'BasePoint').
  • Bugfix: disallow passing of nonincreasing time vector to databraid.
  • Bugfix: disallow inf and NaN when creating braid from generator list.
  • Various other small bugfixes.

release-3.1

11 Jan 14:54
Compare
Choose a tag to compare
  • The function braidlab.prop can be used to set global properties,
    such as the way braids are plotted and the direction of rotation for
    generators.
  • braidlab.prop can set the absolute tolerance for determining
    coincidence of coordinates when constructing a braid from data
    (property BraidAbsTol). This replaces the previous relative
    comparison which had been used since 2.0. (See issue #117.)
  • braid.plot takes color and linestyle attributes.
  • braid.lk returns the Lawrence-Krammer representation of a braid.
  • The class annbraid is used to represent braids on annular domains.
  • databraids are displayed differently from braids, with crossing
    times shown.
  • The braidlab guide has been expanded with a short introduction to
    braids.
  • Setting up alternative compilers is described in the troubleshooting
    section of the guide.
  • The taffy example in the guide no longer worked, due to some bugs in
    braid creation code when coincident coordinates are involved. (See
    issues #116 and #117.) Note that it is possible that the parallel
    code returns different generator sequences when called multiple
    times on the same dataset. However, the resulting braids are still
    equal (issue #118).
  • Some bugfixes.

release-3.0.1

16 Dec 20:13
Compare
Choose a tag to compare
  • Improved installation instructions in guide, in particular for GMP.
  • Fixed anonymous GitHub links for cloning in guide.
  • Fixed some outdated output in guide.
  • Fixed a bug when calling C++ version of intersec.
  • Fixed a bug in braid.mtimes that disallowed valid action on loop
    with basepoint.
  • Remove broken braid.reducing.
  • Makefile detects Linux 32-bit architecture.

release-3.0

09 Dec 22:46
Compare
Choose a tag to compare
  • Move from BitBucket/Mercurial to GitHub/Git, to stay with the times.
  • Discourage arrays of loop objects. Instead, multiple loops live
    inside of a single loop object, but subscripting has been overloaded
    for loops. Externally, a user should see very little difference to
    the interface (and the guide required no changes), but the speedup
    for a braid acting on a large array of loops is of order 50.
  • Loop constructor can now return an array of canonical loops. This
    is useful for pre-allocating memory, among other things. To make
    this work, the loop constructor form loop(a,b) has been removed (use
    loop([a b]) instead). This shouldn't affect things much as that
    form was hardly used and was not documented in the guide.
  • Loop constructor can take an option 'BasePoint' when creating loops,
    to add an extra puncture. The basepoint is not allowed to move
    under braid operations.
  • Loop constructor: loop(n) now returns a loop with n punctures,
    rather than (n+1). Use loop(n,'BasePoint') to add the extra puncture.
  • loop.n now returns the number of non-basepoint punctures. Use
    loop.totaln to get the total number of punctures, including the
    basepoint.
  • Loop constructor has an option 'Enum' to enumerate a list of loops
    with coordinate values between specified bounds.
  • Loop constructor takes 'FullTwist' option.
  • loop.minlength is now a C++ MEX file.
  • Update braid.plot for Matlab 2014b.
  • braid.tensor and databraid.tensor can handle more than one braid at
    a time. There was also a bug in databraid.tensor: the braids have
    to be interweaved.
  • braid.entropy supports different length functions. The arguments to
    entropy have change significantly. In particular, the train-track
    algorithm is now specified using entropy(b,'Method','trains').
  • databraid.entropy and databraid.complexity are no longer
    implemented. Instead, use databraid.ftbe (Finite Time Braiding
    Exponent). This is to distinguish the entropy of data, which
    doesn't necessarily close, to that of a "true" braid.
  • databraid now allows generators with simultaneous times, as long as
    all the generators for a given time commute with each other. This
    affects in particular testing for equality of two databraids. For
    example, databraid([1 3],[1 1]) and databraid([3 1],[1 1]) are now
    equal.
  • More unit tests in the testsuite, especially for cfbraid
    (undocumented class for canonical form braids, but used behind the
    scenes) and databraid.
  • And of course, many bugfixes and small tweaks...

release-2.1

28 Nov 16:53
Compare
Choose a tag to compare
  • Simplify the linear action code: instead of braid.linact use an
    optional return argument for braid.mtimes. braid.cycle now does
    what braid.cyclemat did. The nitty-gritty pos/neg operators are
    invisible to the user (see issue #65). None of this should affect
    users, since these were not documented in the guide (but now they
    are).
  • Fix detection of some limit cycles (issue #52). Also allow
    specification of an initial loop when looking for cycles.
  • Move some utility functions to namespace +util, to make them less
    visible to user.
  • Moved installation instructions to an appendix in the guide. Added
    a troubleshooting section.
  • Renamed the guide and posted on arXiv.