Welcome to the L3 Harris Geospatial documentation center. Here you will find reference guides and help documents.
﻿

QTPOW

QTPOW

## Author

Craig B. Markwardt, NASA/GSFC Code 662, Greenbelt, MD 20770
craigm@lheamail.gsfc.nasa.gov
UPDATED VERSIONs can be found on my WEB PAGE:
http://cow.physics.wisc.edu/~craigm/idl/idl.html

## Purpose

Raise quaternion Q to the "power" POW

Geometry

## Calling Sequence

QNEW = QTPOW(Q, POW)

## Description

The function QTPOW raises a quaterion Q to the power P. The
operation
QNEW = QTPOW(Q, POW)
is equivalent to
QNEW = QTEXP( POW * QTLOG(Q))
which is the same as the definition of raising a real number to
any power (however, QTPOW is faster than using QTLOG and QTEXP).
For integer values of POW, this form of exponentiation is also
directly equivalent to the multiplication of that many Q's
together.
Geometrically, raising Q to any power between 0 and 1 realizes a
rotation that smoothly interpolates between the identity
quaternion and Q. Thus, QTPOW is useful for interpolation of
quaternions or SLERPing (spherical linear interpolation).
When raising more than one quaternion to a power at a time, the
number of quaternions and powers must be equal.
Conventions for storing quaternions vary in the literature and from
library to library. This library uses the convention that the
first three components of each quaternion are the 3-vector axis of
rotation, and the 4th component is the rotation angle. Expressed
in formulae, a single quaternion is given by:
Q(0:2) = [VX, VY, VZ]*SIN(PHI/2)
Q(3) = COS(PHI/2)
where PHI is the rotation angle, and VAXIS = [VX, VY, VZ] is the
rotation eigen axis expressed as a unit vector. This library
accepts quaternions of both signs, but by preference returns
quaternions with a positive 4th component.

## Inputs

Q - array of one or more unit quaternions. For a single
quaternion, Q should be a 4-vector. For N quaternions, Q
should be a 4xN array.
POW - array of N powers, where N is the number of quaternions.

## Returns

The resulting exponentiated unit quaternions. For a single
inputs, returns a 4-vector. For N input quaternions, returns N
quaternions as a 4xN array.

NONE

## Example

;; Form a rotation quaternion of 45 degrees about the X axis
Q = qtcompose([1,0,0], !dpi/4)
;; Make an array of 1001 values smoothly varying from 0 to 1
P = dindgen(1001)/1000d
;; Perform spherical linear interpolation
QNEW = QTERP(Q, P)

QTANG, QTAXIS, QTCOMPOSE, QTERP, QTEXP, QTFIND, QTINV, QTLOG,
QTMAT, QTMULT, QTPOW, QTVROT

## Modification History

Written, July 2001, CM
Documented, Dec 2001, CM
Usage message, error checking, 15 Mar 2002, CM
\$Id: qtpow.pro,v 1.5 2002/05/09 23:03:27 craigm Exp \$

© 2019 Harris Geospatial Solutions, Inc. |  Legal
My Account    |    Store    |    Contact Us