<Chapter><Heading> Arrays and Pseudo lists</Heading>

<Table Align="|l|" >

<Row>
<Item>
<Index>Array</Index>
<C>Array(A,f)</C>
<P/>
Inputs an array <M>A</M> and a function <M>f</M>. It returns the the array obtained by  applying <M>f</M> to each entry of <M>A</M> (and leaves <M>A</M> unchanged).
</Item>
</Row>

<Row>
<Item>
<Index>PermuteArray</Index>
<C>PermuteArray(A,f)</C>
<P/>
Inputs an array <M>A</M> of dimension <M>d</M> and a permutation <M>f</M> of degree at most <M>d</M>. It returns  the array <M>B</M> defined by
<M>B[i1][i2]...[id] = A[f(i1)][f(i2)]...A[f(id)]</M> (and leaves <M>A</M> unchanged).
</Item>
</Row>


<Row>
<Item>
<Index>ArrayDimension</Index>
<C>ArrayDimension(A)</C>
<P/>
Inputs an array <M>A</M> and returns its dimension.
</Item>
</Row>

<Row>
<Item>
<Index>ArrayDimensions</Index>
<C>ArrayDimensions(A)</C>
<P/>
Inputs an array <M>A</M> and returns its dimensions.
</Item>
</Row>

<Row>
<Item>
<Index>ArraySum</Index>
<C>ArraySum(A)</C>
<P/>
Inputs an array <M>A</M> and returns the sum of its  entries.
</Item>
</Row>

<Row>
<Item>
<Index>ArrayValue</Index>
<C>ArrayValue(A,x)</C>
<P/>
Inputs an array <M>A</M> and a coordinate vector <M>x</M>. It returns the value
of the entry in <M>A</M> with coordinate <M>x</M>.
</Item>
</Row>


<Row>
<Item>
<Index>ArrayValueFunctions</Index>
<C>ArrayValueFunctions(d)</C>
<P/>
Inputs a positive integer <M>d</M> and returns an efficient version of the function ArrayValue for arrays of dimension <M>d</M>.
</Item> </Row>


<Row>
<Item>
<Index>ArrayAssign</Index>
<C>ArrayAssign(A,x,n)</C>
<P/>
Inputs an array <M>A</M> and a coordinate vector <M>x</M> and an integer <M>n</M>. It sets the entry of <M>A</M> with coordinate <M>x</M> equal to <M>n</M>.
</Item>
</Row>

<Row>
<Item>
<Index>ArrayAssignFunctions</Index>
<C>ArrayAssignFunctions(d)</C>
<P/>
Inputs a positive integer <M>d</M> and returns an efficient version of the function ArrayAssign for arrays of dimension <M>d</M>.
</Item>
</Row>

<Row>
<Item>
<Index>ArrayIterate</Index>
<C>ArrayIterate(d)</C>
<P/>
Inputs a positive integer <M>d</M> and returns a function ArrayIt(Dimensions,f). This function inputs a list Dimensions of <M>d</M> positive integers  and also a function <M>f(x)</M>. It applies the function <M>f(x)</M> to each  integer 
list <M>x</M> of length <M>d</M> with entries <M>x[i]</M> in the range [1..Dimension[i]].
</Item>
</Row>

<Row>
<Item>
<Index>BinaryArrayToTextFile</Index>
<C>BinaryArrayToTextFile(file,A)</C>
<P/>
Inputs a string  containing the address of a file, and an array <M>A</M>
of 0s and 1s. The array represents a pure cubical complex. A 
representation of this complex is written to the file in a format that 
can be read by the CAPD (Computer Assisted Proofs in Dynamics) software developed by  Marian Mrozek and others.  

<P/> The second input <M>A</M> can also be a pure cubical complex.
</Item> </Row>



<Row>
<Item>
<Index>FrameArray</Index>
<C>FrameArray(A)</C>
<P/>
Inputs an array  <M>A</M> and returns the array obtained by appending a 0 to the beginning and end of each "row" of the array.  
</Item> </Row>

<Row>
<Item>
<Index>UnframeArray</Index>
<C>UnframeArray(A)</C>
<P/>
Inputs an array  <M>A</M> and returns the array obtained by removing the first and last entry in   each "row" of the array. </Item> </Row> 

<Row>
<Item>
<Index>Add</Index>
<C>Add(L,x)</C>


<P/>
Let <M>L</M> be a pseudo list of length <M>n</M>, and <M>x</M>
an object compatible with the entries in <M>L</M>.
If <M>x</M> is not in <M>L</M> then this operation converts  <M>L</M> 
into a pseudo list of length n+1 by adding  <M>x</M> as the 
final entry. If <M>x</M> is in <M>L</M> the operation has no effect on <M>L</M>.
</Item>
</Row>

<Row>
<Item>
<Index>Append</Index>
<C>Append(L,K)</C>


<P/>
Let <M>L</M> be a pseudo list  and <M>K</M> a list whose objects are compatible with those in <M>L</M>. This operation applies Add(L,x) for each x in <M>K</M>.  
</Item></Row>


<Row>
<Item>
<Index>ListToPseudoList</Index>
<C>ListToPseudoList(L)</C>


<P/>
Inputs a list <M>L</M> and returns the pseudo list representation of <M>L</M>.
</Item>
</Row>


</Table>
</Chapter>


