aboutsummaryrefslogtreecommitdiff
path: root/src/hyper/pages/VECTOR.ht
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
committerdos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
commitab8cc85adde879fb963c94d15675783f2cf4b183 (patch)
treec202482327f474583b750b2c45dedfc4e4312b1d /src/hyper/pages/VECTOR.ht
downloadopen-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz
Initial population.
Diffstat (limited to 'src/hyper/pages/VECTOR.ht')
-rw-r--r--src/hyper/pages/VECTOR.ht117
1 files changed, 117 insertions, 0 deletions
diff --git a/src/hyper/pages/VECTOR.ht b/src/hyper/pages/VECTOR.ht
new file mode 100644
index 00000000..13be70a1
--- /dev/null
+++ b/src/hyper/pages/VECTOR.ht
@@ -0,0 +1,117 @@
+% Copyright The Numerical Algorithms Group Limited 1992-94. All rights reserved.
+% !! DO NOT MODIFY THIS FILE BY HAND !! Created by ht.awk.
+\newcommand{\VectorXmpTitle}{Vector}
+\newcommand{\VectorXmpNumber}{9.85}
+%
+% =====================================================================
+\begin{page}{VectorXmpPage}{9.85 Vector}
+% =====================================================================
+\beginscroll
+
+
+The \spadtype{Vector} domain is used for storing data in a one-dimensional
+indexed data structure.
+A vector is a homogeneous data structure in that all the components of the
+vector must belong to the same \Language{} domain.
+Each vector has a fixed length specified by the user; vectors are not
+extensible.
+This domain is similar to the \spadtype{OneDimensionalArray} domain,
+except that when the components of a \spadtype{Vector} belong to a
+\spadtype{Ring}, arithmetic operations are provided.
+For more examples of operations that are defined for both
+\spadtype{Vector} and \spadtype{OneDimensionalArray}, see
+\downlink{`OneDimensionalArray'}{OneDimensionalArrayXmpPage}\ignore{OneDimensionalArray}.
+
+As with the \spadtype{OneDimensionalArray} domain, a \spadtype{Vector} can
+be created by calling the operation \spadfunFrom{new}{Vector}, its components
+can be accessed by calling the operations \spadfunFrom{elt}{Vector} and
+\spadfunFrom{qelt}{Vector}, and its components can be reset by calling the
+operations \spadfunFrom{setelt}{Vector} and
+\spadfunFromX{qsetelt}{Vector}.
+\xtc{
+This creates a vector of integers of length
+\spad{5} all of whose components are \spad{12}.
+}{
+\spadpaste{u : VECTOR INT := new(5,12) \bound{u}}
+}
+\xtc{
+This is how you create a vector from a list of its components.
+}{
+\spadpaste{v : VECTOR INT := vector([1,2,3,4,5]) \bound{v}}
+}
+
+\xtc{
+Indexing for vectors begins at \spad{1}.
+The last element has index equal to the length of the vector,
+which is computed by \spadopFrom{\#}{Vector}.
+}{
+\spadpaste{\#(v) \free{v}}
+}
+\xtc{
+This is the standard way to use \spadfunFrom{elt}{Vector} to extract an
+element.
+Functionally, it is the same as if you had typed \spad{elt(v,2)}.
+}{
+\spadpaste{v.2 \free{v}}
+}
+\xtc{
+This is the standard way to use \spadfunFrom{setelt}{Vector} to change an
+element.
+It is the same as if you had typed \spad{setelt(v,3,99)}.
+}{
+\spadpaste{v.3 := 99 \free{v}\bound{vdelta}}
+}
+\xtc{
+Now look at \spad{v} to see the change.
+You can
+use \spadfunFrom{qelt}{Vector} and \spadfunFromX{qsetelt}{Vector} (instead
+of \spadfunFrom{elt}{Vector} and \spadfunFrom{setelt}{Vector},
+respectively) but {\it only} when you know that the index is within the valid
+range.
+}{
+\spadpaste{v \free{vdelta}}
+}
+
+\xtc{
+When the components belong to a \spadtype{Ring}, \Language{}
+provides arithmetic operations for \spadtype{Vector}.
+These include left and right scalar multiplication.
+}{
+\spadpaste{5 * v \free{vdelta}}
+}
+\xtc{
+}{
+\spadpaste{v * 7 \free{vdelta}}
+}
+\xtc{
+}{
+\spadpaste{w : VECTOR INT := vector([2,3,4,5,6]) \bound{w}}
+}
+\xtc{
+Addition and subtraction are also available.
+}{
+\spadpaste{v + w \free{vdelta w}}
+}
+\xtc{
+Of course, when adding or subtracting, the two vectors must have the same
+length or an error message is displayed.
+}{
+\spadpaste{v - w \free{vdelta w}}
+}
+
+For more information about other aggregate domains,
+see the following:
+\downlink{`List'}{ListXmpPage}\ignore{List},
+\downlink{`Matrix'}{MatrixXmpPage}\ignore{Matrix},
+\downlink{`OneDimensionalArray'}{OneDimensionalArrayXmpPage}\ignore{OneDimensionalArray},
+\downlink{`Set'}{SetXmpPage}\ignore{Set},
+\downlink{`Table'}{TableXmpPage}\ignore{Table}, and
+\downlink{`TwoDimensionalArray'}{TwoDimensionalArrayXmpPage}\ignore{TwoDimensionalArray}.
+Issue the system command \spadcmd{)show Vector}
+to display the full list of operations defined by
+\spadtype{Vector}.
+
+\endscroll
+\autobuttons
+\end{page}
+%