manual
quickstart
instguide
update
basis

** Next:** 8.8 Special variables
** Up:** 8 VARIABLES
** Previous:** 8.6 Indexed Variables (Vectors)
** Contents**
** Index**

##

8.7 Vector operations

The following simple vector operations are possible:

- Copying or appending a vector to another vector. For instance
`S=R` copies a vector
`R` to a vector `S`. `S(3)=R` copies `R` to `S(3), S(4), ...`.
`S(#S+1)=R` appends vector `R` to vector `S`. It is also possible to access
a range of subsequent elements in a vector: `S=R(2:4)` copies elements 2 to 4 of `R` to
`S(1), S(2), S(3)`. Note that `R(2:)` denotes elements `R(2)` to `R(#R)`, but `R(2)` denotes
a single element of `R`.

- Vector-scalar operations:
`R=R*2` multiplies each element of `R` by 2. Instead of the number
2, also scalar (one dimensional) variables or expressions can be used, e.g., `R=R*ANG` converts all elements
of `R` from Ångstrøm to bohr, or `Z=R*COS(THETA)` creates a vector `Z` with elements
`Z(i) = R(i)*COS(THETA)`. All other algebraic operators can be used instead of ``*''.
Note that the scalar must come last since the first variable in the expression determines the vector length.

- Vector-vector operations: If
`A` and `B` are vectors of the same length, then
`A B` is also a vector of this length. Here stands for any algebraic
operator, and the operation is done for each pair of corresponding elements. For instance,
`A + B` adds the vectors `A` and `B`, and `A * B` multiplies their elements.
Note that the latter case is not a scalar product. If an attempt
is made to connect two vectors of different lengths by
an algebraic operator, an error occurs.

- Intrinsic functions: Assume
`THETA=[100,110,120,-130]` to be a vector of angles (in degrees). In this case
`X=2*COS(THETA)` is also a vector containing the cosines of each element of `THETA` multiplied by two,
i.e., `X(i) = 2*COS(THETA(i))`. `MAX(THETA)` or `MIN(THETA)` return the maximum and minimum values,
respectively, in array `THETA`. Vector operations can also be nested, e.g., `MAX(ABS(THETA))` returns the
maximum value in array `ABS(THETA)`.

At present, vector operations are not supported with `string` variables.

** Next:** 8.8 Special variables
** Up:** 8 VARIABLES
** Previous:** 8.6 Indexed Variables (Vectors)
** Contents**
** Index**

manual
quickstart
instguide
update
basis

molpro@molpro.net 2018-02-24