<H1><B><FONT size="+0">Specification of a rotation matrix</FONT></B></H1>

The LMTO programs use rotation matrices in various contexts,
for example to rotate the lattice to a new coordinate system.

<P>

You can specify a rotation matrix through an ASCII string of
characters, which consists of a sequence of one or more rotations,
separated by commas,

<pre>
  rot1[,rot2][...]
</pre>

Each substring rot1, rot2, ...  has the syntax

<pre>
  (x,y,z)angle
</pre>

Here `x', `y', and `z' are three real numbers specifying an axis about which to
rotate; `angle' is another real number specifying the amount of
rotation.   There should be no spaces in the string.

<P>

Each successive rotation specifies a rotation about the new coordinate
system.  As a special case, the Euler angles are defined as a sequence
of three rotations, the first about the <I>z</I> axis by angle alpha,
the second a rotation about the new
<I>y</I> axis by angle beta; the third about the new <I>z</I> axis by
angle gamma.  For the case alpha=pi/4, beta=pi/3, and gamma=pi/2, the
syntax would be

<pre>
  (0,0,1)pi/4,(0,1,0)pi/3,(0,0,1)pi/2
</pre>

<P>
You can use as a the following strings as shorthands:

<pre>
  'x:' = shorthand for '(1,0,0)'
  'y:' = shorthand for '(0,1,0)'
  'z:' = shorthand for '(0,0,1)'
</pre>

Thus the rotation above could equally be specified by

<pre>
  z:pi/4,y:pi/3,z:pi/2
</pre>

