jeanluct / braidlab

Matlab package for analyzing data using braids
GNU General Public License v3.0
23 stars 9 forks source link

hard crash with loop.plot #128

Closed jeanluct closed 9 years ago

jeanluct commented 9 years ago
>> l = loop(2)

ans =

>> plot(l)

crashes Matlab. Oops.

But this might be arising from a deeper problem: shouldn't loop(2) return a loop with 3 punctures, according to the help page, since the default is to add a basepoint? Check the guide.

jeanluct commented 9 years ago

Maybe the help on loop.plot is out of date? It seems that loop(2,'basepoint') would be needed to add the basepoint.

jeanluct commented 9 years ago

We already disallow empty coordinates:

>> l=loop([])
Error using braidlab.loop
Loop coordinate array cannot be empty.

Hence it seems sensible to just disallow loop(2) and loop(1,'BasePoint)`. These have been split to return two error messages:

>> loop(2)
Error using braidlab.loop (line 206)
Need at least three punctures.
>> loop(1,'bp')
Error using braidlab.loop (line 210)
Need at least two punctures in addition to basepoint.
jeanluct commented 9 years ago

Also note that I fixed the help message. The relevant part of help loop.loop now returns

    L = loop(N) where N is an integer (N>2) creates a loop object L with
    N punctures.  The loop L is a (nonoriented) generating set for the
    fundamental group of the sphere with N-1 punctures, with the Nth
    puncture serving as the basepoint.  This sort of object is
    convenient when looking for growth of loops under braid action.

For the basepoint case, N>1 is required.