<Chapter><Heading> Topological Data Analysis</Heading> <Table Align="|l|" > <Row> <Item> <Index>MatrixToTopologicalSpace</Index> <C> MatrixToTopologicalSpace(A,n)</C> <P/> Inputs an integer matrix <M>A</M> and an integer <M>n</M>. It returns a 2-dimensional topological space corresponding to the black/white image determined by the threshold <M>n</M> and the values of the pixels in <M>A</M>. </Item> </Row> <Row> <Item> <Index>ReadImageAsTopologicalSpace</Index> <C> ReadImageAsTopologicalSpace("file.png",n)</C> <C> ReadImageAsTopologicalSpace("file.png",[m,n])</C> <P/> Reads an image file ("file.png", "file.eps", "file.bmp" etc) and an integer <M>n</M> or pair <M>[m,n]</M> of integers between 0 and 765. It returns a topological space based on the black/white version of the image determined by the threshold <M>n</M> or threshold range <M>[m,n]</M>. </Item> </Row> <Row> <Item> <Index>ReadImageAsMatrix</Index> <C> ReadImageAsMatrix("file.png")</C> <P/> Reads an image file ("file.png", "file.eps", "file.bmp" etc) and returns an integer matrix whose entries are the sum of the RGB values of the pixels in the image. </Item> </Row> <Row> <Item> <Index>WriteTopologicalSpaceAsImage</Index> <C> WriteTopologicalSpaceAsImage(T,"filename","ext")</C> <P/> Inputs a 2-dimensional topological space T, and a filename followed by its extension (e.g. "myfile" followed by "png"). A black/white image is saved to the file. </Item> </Row> <Row> <Item> <Index>ViewTopologicalSpace</Index> <C> ViewTopologicalSpace(T)</C> <C> ViewTopologicalSpace(T,"mozilla")</C> <P/> Inputs a topological space T, and optionally a command such as "mozilla" for viewing image files. A black/white image is displayed. </Item> </Row> <Row> <Item> <Index>Bettinumbers</Index> <C> Bettinumbers(T,n)</C> <C> Bettinumbers(T)</C> <P/> Inputs a topological space <M>T</M> and a non-negative integer <M>n</M>. It returns the n-th betti number of <M>T</M>. If the integer <M>n</M> is not input then a list of all betti numbers is returned. </Item> </Row> <Row> <Item> <Index>PathComponent</Index> <C> PathComponent(T,n)</C> <P/> Inputs a topological space <M>T</M> and an integer <M>n</M> in the rane 0, ..., Bettinumbers(T,0) . It returns the n-th path component of <M>T</M> as a topological space. </Item> </Row> <Row> <Item> <Index>SingularChainComplex</Index> <C> SingularChainComplex(T)</C> <P/> Inputs a topological space <M>T</M> and returns a (usually very large) integral chain complex that is homotopy equivalent to the singular chain complex of <M>T</M>. </Item> </Row> <Row> <Item> <Index>ContractTopologicalSpace</Index> <C> ContractTopologicalSpace(T)</C> <P/> Inputs a topological space <M>T</M> of dimension <M>d</M> and removes <M>d</M>-dimensional cells from <M>T</M> without changing the homotopy type of <M>T</M>. When the function has been applied, no further <M>d</M>-cells can be removed from <M>T</M> without changing the homotopy type. </Item> </Row> <Row> <Item> <Index>BoundaryTopologicalSpace</Index> <C> BoundaryTopologicalSpace(T)</C> <P/> Inputs a topological space <M>T</M> and returns its boundars as a topological space. </Item> </Row> <Row> <Item> <Index>BoundarySingularities</Index> <C> BoundarySingularities(T)</C> <P/> Inputs a topological space <M>T</M> and returns the subspace of points in the boundary where the boundary is not differentiable. (The method for deciding differentiability at a point is crude/discrete and prone to errors.) The zeroth betti number of the set of points is a measure of the number of "corners" in the boundary of <M>T</M>. </Item> </Row> <Row> <Item> <Index>ThickenedTopologicalSpace</Index> <C> ThickenedTopologicalSpace(T)</C> <C> ThickenedTopologicalSpace(T,n)</C> <P/> Inputs a topological space <M>T</M> and returns a topological space <M>S</M>. If a euclidean point is in <M>T</M> then this point and all its perpendicularly neighbouring euclidean points are included in <M>S</M>. <P/> If a positive integer <M>n</M> is input as a second argument then the thickening process is repeated <M>n</M> times. </Item> </Row> <Row> <Item> <Index>ComplementTopologicalSpace</Index> <C> ComplementTopologicalSpace(T)</C> <P/> Inputs a topological space <M>T</M> and returns a topological space <M>S</M>. A euclidean point is in <M>S</M> precisely when the point is not in <M>T</M>. </Item> </Row> <Row> <Item> <Index>ConcatenatedTopologicalSpace</Index> <C> ConcatenatedTopologicalSpace(L)</C> <P/> Inputs a list <M>L</M> of topological spaces whose underlying arrays of numbers all have equal dimensions. It returns a topological space <M>T</M> got by juxtaposing the spaces <M>L[1], L[2], ..., L[Length(L)]</M>. </Item> </Row> </Table> </Chapter>