Here's the problem: right now braid.mtimes checks braid.n agains loop.n to determine if the action is allowed. Hence, this errors:
>> b=braid([1 1],3); b.n
ans = 3
>> l=loop(b.n-1,'basepoint')
l = (( 0 -1 ))*
>> l.totaln
ans = 3
>> b*l
Error using * (line 379)
Braid has too many strings for the loop.
It seems to me it's legit, as long as the braid doesn't move the basepoint, which is already checked for. This is trivial to fix: replace b2.n by b2.total. I'm recoding this as an issue in case it later turns out to have been a bad idea.
Here's the problem: right now
braid.mtimes
checksbraid.n
againsloop.n
to determine if the action is allowed. Hence, this errors:It seems to me it's legit, as long as the braid doesn't move the basepoint, which is already checked for. This is trivial to fix: replace
b2.n
byb2.total
. I'm recoding this as an issue in case it later turns out to have been a bad idea.