<xsd:simpleType name="matrixType" id="st.matrixType">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">Allowed matrix types.</h:div>
<h:div class="description">
<h:p>Many are square matrices. By default all elements must be included. For symmetric, antisymmetric and diagonal matrices some compression is possible by not reporting the identical or forced zero elements. These have their own subtypes, usually with UT or LT appended. Use these with caution as there is chance of confusion and you cannot rely on standard software to read these.</h:p>
<h:p>The matrix type fixes the order and semantics of the elements in the XML element but does not mandate any local syntax. Thus an application may insert newline characters after each row or use a <row> element.</h:p>
</h:div>
<h:div class="example" href="matrix1.xml"/>
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="rectangular">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Rectangular with no semantic constraints and ordered rowwise (i.e. the column index runs fastest).
<h:pre>1 2 3 4 0 3 5 6</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="square">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square with no semantic constraints.
<h:pre>1 2 78 3 4 -1 -34 2 7</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="squareSymmetric">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square symmetric with all elements explicit.
<h:pre>1 2 3 2 7 1 3 1 9</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="squareSymmetricLT">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square symmetric with the diagonal and lower triangle explicit and the upper triangle omitted. Rows are of length 1, 2, 3...
<h:pre>1 2 7 3 1 9</h:pre>is equivalent to
<h:pre>1 2 3 2 7 1 3 1 9</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="squareSymmetricUT">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square symmetric with the diagonal and upper triangle explicit. Rows are of length n, n-1, ... 2, 1
<h:pre>1 7 9 2 -1 34</h:pre>is equivalent to
<h:pre>1 7 9 7 2 -1 9 -1 34</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="squareAntisymmetric">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square antisymmetric with all elements explicit. The diagonal is necessarily zero.
<h:pre>0 -2 3 2 0 1 -3 -1 0</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="squareAntisymmetricLT">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square symmetric with the lower triangle explicit and diagonal and upper triangle omitted. Rows are of length 1, 2,... n-1.
<h:pre>-7 -9 1</h:pre>is equivalent to
<h:pre>0 7 9 -7 0 -1 -9 1 0</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="squareAntisymmetricUT">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square symmetric with the upper triangle explicit and diagonal and lower triangle omitted. Rows are of length n-1, n-2,... 2,1.
<h:pre>7 9 -1</h:pre>is equivalent to
<h:pre>0 7 9 -7 0 -1 -9 1 0</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="diagonal">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Symmetric. Elements are zero except on the diagonal. No compressed representation available (use
<h:tt>array</h:tt>element).</h:div>
<h:pre>1 0 0 0 3 0 0 0 4</h:pre>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="upperTriangular">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square. Elements are zero below the diagonal
<h:pre>1 2 3 4 0 3 5 6 0 0 4 8 0 0 0 2</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="upperTriangularUT">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square. Elements below the diagonal are zero and omitted, and rows are of length n, n-1, ... , 2, 1.
<h:pre>1 2 3 4 3 5 6 4 8 2</h:pre>is equivalent to
<h:pre>1 2 3 4 0 3 5 6 0 0 4 8 0 0 0 2</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="lowerTriangular">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square. Elements are zero above the diagonal
<h:pre>1 0 0 7 3 0 9 2 4</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="lowerTriangularLT">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square. Elements above the diagonal are zero and omitted, and rows are of length 1, 2, ...n.
<h:pre>1 3 7 9 2 3</h:pre>is equivalent to
<h:pre>1 0 0 3 7 0 9 2 3</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="unit">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square. Diagonal elements are 1 and off-diagonal are zero.
<h:pre>1 0 0 0 1 0 0 0 1</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="unitary">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square. When multiplied by its transpose gives the unit matrix.
<h:pre>0 -1 0 1 0 0 0 0 1</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="rowEigenvectors">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">Square. Each row corresponds to an eigenvector of a square matrix. Elements are real. The length of the eigenvectors is undefined, i.e. they are not required to be normalised to 1.
<h:pre>0 -1 0 1 0 0 0 0 1</h:pre>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="rotation22">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">The rotation is defined by the matrix premultiplyin a column vector (x, y) .
<h:pre>0 -1 1 0</h:pre>produces (-y, x), i.e. a rotation of -90 degrees.</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="rotationTranslation32">
<xsd:annotation>
<xsd:documentation>
<h:div class="description">A third column defining the translation is added to a rotation22.
<h:pre>0 -1 22 1 0 33</h:pre>produces (-y + 22, x + 33), i.e. a rotation of -90 degrees followed by a translation of (22, 33).</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="homogeneous33"/>
<xsd:enumeration value="rotation33"/>
<xsd:enumeration value="rotationTranslation43"/>
<xsd:enumeration value="homogeneous44"/>
<xsd:enumeration value="other">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">A value not in the controlled vocabulary - use dictRef to add further information.</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType> |