Releases: jeanluct/braidlab
release-3.2.5
-
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
inannbraid
caused no
return argument form to fail. (Thanks to Giuseppe Di Labbio.) -
Bugfix: missing
lower
inknot2braid
. So'Trefoil'
couldn't be
capitalized as in examples. (Thanks to Giuseppe Di Labbio.) -
Add
pure
option toclosure
.
release-3.2.4
-
ttmap
displays in an easy-to-read format the train track map
contained in the struct returned bybraid.train
. -
braid.train
replacesbraid.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 nametrains
is nowtrain
, for
consistency (thoughtrains
is still supported). -
Suppress a few warnings exposed by recent compilers.
release-3.2.3
-
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
Bugfix: error message maxrhs ID changed name in Matlab R2016b caused databraidTest to fail (issue #137).
release-3.2.1
- 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
- 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
- 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
- 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
- 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
- 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.