#ifndef __BRAID_H
#define __BRAID_H


#include "array.h"
#include "hshoe.h"

class braid {
public:
	intarray Word;
	void Tighten() {Word.Tighten();}
	uint Strings;
	uint Size() {return Strings;}
	uint Length() {return Word.TopIndex();}
	long& operator[] (uint i) {return Word[i];}
	void Set(uint n, intarray W); //Sets n-braid from word W
	void Set(horseshoe& H); //Sets braid from horseshoe orbit collection
	friend ostream& operator << (ostream& Out, braid B);
	friend istream& operator >> (istream& In, braid& B);
}; 





#endif

