The 3d-quaternions Reference Manual

This is the 3d-quaternions Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Jul 15 03:10:14 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 3d-quaternions

A utility library implementing quaternion and dual-quaternion functionality.

Maintainer

Yukari Hafner <>

Author

Yukari Hafner <>

Home Page

https://Shinmera.github.io/3d-quaternions/

Source Control

(GIT https://github.com/Shinmera/3d-quaternions.git)

Bug Tracker

https://github.com/Shinmera/3d-quaternions/issues

License

zlib

Version

1.0.0

Dependencies
  • documentation-utils (system).
  • 3d-vectors (system).
  • 3d-matrices (system).
Source

3d-quaternions.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 3d-quaternions/3d-quaternions.asd

Source

3d-quaternions.asd.

Parent Component

3d-quaternions (system).

ASDF Systems

3d-quaternions.


3.1.2 3d-quaternions/package.lisp

Source

3d-quaternions.asd.

Parent Component

3d-quaternions (system).

Packages

org.shirakumo.flare.quaternion.


3.1.3 3d-quaternions/struct.lisp

Dependency

package.lisp (file).

Source

3d-quaternions.asd.

Parent Component

3d-quaternions (system).

Public Interface
Internals

3.1.4 3d-quaternions/ops.lisp

Dependency

struct.lisp (file).

Source

3d-quaternions.asd.

Parent Component

3d-quaternions (system).

Public Interface
Internals

3.1.5 3d-quaternions/documentation.lisp

Dependency

ops.lisp (file).

Source

3d-quaternions.asd.

Parent Component

3d-quaternions (system).


4 Packages

Packages are listed by definition order.


4.1 org.shirakumo.flare.quaternion

Source

package.lisp.

Use List
  • 3d-matrices.
  • 3d-vectors.
  • common-lisp.
Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Macros

Macro: dqsetf (quat real dual)

Update the fields of a dual-quaternion.

Returns the modified dual-quaternion.

See DQUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Macro: qsetf (quat x y z w)

Update the fields of a quaternion.

Returns the modified quaternion.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.


5.1.2 Compiler macros

Compiler Macro: dquat (&optional real dual)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Compiler Macro: nq* (val &rest vals)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Compiler Macro: nq+ (val &rest vals)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Compiler Macro: nq- (val &rest vals)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Compiler Macro: nq/ (val &rest vals)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Compiler Macro: q* (val &rest vals)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Compiler Macro: q+ (val &rest vals)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Compiler Macro: q- (val &rest vals)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Compiler Macro: q/ (val &rest vals)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Compiler Macro: q/= (val &rest vals)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Compiler Macro: q= (val &rest vals)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Compiler Macro: quat (&optional x y z w)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.


5.1.3 Setf expanders

Setf Expander: (setf qw) (vec)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Reader

qw (function).

Setf Expander: (setf qx) (vec)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Reader

qx (function).

Setf Expander: (setf qy) (vec)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Reader

qy (function).

Setf Expander: (setf qz) (vec)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Reader

qz (function).


5.1.4 Ordinary functions

Function: dqcopy (instance)

Returns a fresh copy of the dual-quaternion.

See DQUAT

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Function: dquat (&optional real dual)

Constructs a dual-quaternion

If no arguments are passed, an "empty" dual-quaternion is returned.

See DQUAT (type)

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Function: dquat-p (object)

Returns true if the given object is a dual-quaternion.

See DQUAT

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Function: nq* (val &rest vals)

Returns the first quaternion after being modified by multiplication of the passed quaternions.

You may also pass a real number to multiply with each component.
Note that for quaternions this is *not* element-wise multiplication.
If passed a dual-quaternion, the real side is multiplied normally,
while the dual side is multiplied with the real side to ensure the
quaternions stay true.

See QUAT
See NQ*

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: nq+ (val &rest vals)

Returns the first quaternion after being modified by element-wise addition of all passed quaternions.

You may also pass a real number to add to each component.
If passed a dual-quaternion, both the real and dual are added.

See QUAT
See Q+

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: nq+* (target vector scalar)

Returns the first quaternion after being modified by the addition of the scaled quaternion/vector.

This is useful if you have a rotation that you want to add to an
orientation with a specific delta time.

See QUAT
See NQ+

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: nq- (val &rest vals)

Returns the first quaternion after being modified by element-wise subtraction of all passed quaternions.

You may also pass a real number to subtract from each component.
If passed a dual-quaternion, both the real and dual are subtracted.

See QUAT
See Q-

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: nq/ (val &rest vals)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: nqexpt (quat exp)

Compute the exponentiation of a quaternion.

Returns the modified quaternion.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: nqunit (a)

Returns the quaternion after normalising it.

If passed a dual-quaternion, the real and dual part are normalised by the length of the real part.

Signals an error if the quaternion has a length of zero.

See QUAT
See QUNIT
See NQUNIT*

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: nqunit* (a)

Returns the quaternion after normalising it.

If passed a dual-quaternion, the real and dual part are normalised by the length of the real part.

Returns the unmodified object if the quaternion has a length of zero.

See QUAT
See QUNIT
See NQUNIT*

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: q* (val &rest vals)

Returns the multiplication of the passed quaternions.

You may also pass a real number to multiply with each component. Note that for quaternions this is *not* element-wise multiplication. If passed a dual-quaternion, the real side is multiplied normally, while the dual side is multiplied with the real side to ensure the quaternions stay true.

See QUAT
See NQ*

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: q*v (q v &optional target)

Returns the vector after multiplying it by the quaternion.

This essentially rotates the vector by the rotation expressed by the quaternion.

If passed a dual-quaternion, the vector is first rotated, then translated by the encoded transforms.

See QUAT
See 3D-VECTORS:VEC3

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: q+ (val &rest vals)

Returns the element-wise addition of the passed quaternions.

You may also pass a real number to add to each component. If passed a dual-quaternion, both the real and dual are added.

See QUAT
See NQ+

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: q- (val &rest vals)

Returns the element-wise subtraction of the passed quaternions.

You may also pass a real number to subtract from each component. If passed a dual-quaternion, both the real and dual are subtracted.

See QUAT
See NQ+

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: q. (a b)

Returns the dot product of the two quaternions.

If passed a dual-quaternion, only the real quaternion is dotted.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: q/ (val &rest vals)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: q/= (val &rest vals)

Returns true if any of the quaternions passed are not the same.

This does not test for element-wise float exact equality,
and instead compares accounting for a minimal epsilon of difference. If passed a dual-quaternion, both the real and dual are tested.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: q<- (target source)

Copies the quaternion information into the target from the source.

Returns the modified quaternion.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: q= (val &rest vals)

Returns true if the quaternions passed are the same.

This does not test for element-wise float exact equality,
and instead compares accounting for a minimal epsilon of difference. If passed a dual-quaternion, both the real and dual are tested.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qangle (quat)

Returns the angle around the rotation axis that the quaternion rotates by.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: (setf qangle) (quat)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qaxis (quat)

Returns the normalised axis around which the quaternion rotates.

This is the same as just calling VUNIT.

See QUAT
See 3D-VECTORS:VUNIT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: (setf qaxis) (quat)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qconjugate (a)

Returns the conjugate of the quaternion.

If passed a dual-quaternion, both the real and dual part are conjugated independently.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qcopy (instance)

Creates an exact copy of the quaternion.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Reader: qdual (instance)

Accesses the quaternion encompassing the translation of the dual-quaternion.

See QUAT
See DQUAT

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Target Slot

qdual.

Writer: (setf qdual) (instance)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Target Slot

qdual.

Function: qequal (a b)

Returns true if the quaternions passed describe the same direction.

This disregards the orientation of the rotation encoded, and treats them the same regardless of whether they rotate around the ’long way’ or the ’short way’.
If passed a dual-quaternion, the real is tested by qequal, and the dual is tested by q=.

See QUAT
See Q=

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qexpt (quat exp)

Compute the exponentiation of a quaternion.

Returns a fresh quaternion.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qfrom-angle (axis angle)

Construct a quaternion from an axis and a rotation.

Returns the freshly constructed quaternion.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qfrom-mat (mat)

Returns a quaternion that encompasses the same rotation described by the matrix.

Both a MAT3 and MAT4 can be used.

See QUAT
See QMAT3
See QMAT4
See 3D-MATRICES:MAT3
See 3D-MATRICES:MAT4

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qfrom-position (quat vec)

Turn a rotation quaternion and a position vector into a dual-quaternion.

See QUAT
See 3D-VECTORS:VEC3
See DQUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qi (vec)
Setf Expander: (setf qi) (vec)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Function: qinv (a &optional target)

Returns the inverses of the quaternion.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qj (vec)
Setf Expander: (setf qj) (vec)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Function: qk (vec)
Setf Expander: (setf qk) (vec)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Function: qlength (a)

Returns the length of the quaternion.

If passed a dual-quaternion, only the real quaternion is measured.

See QUAT
See QLENGTH2

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qlength2 (a)

Returns the squared length of the quaternion.

If passed a dual-quaternion, only the real quaternion is measured.

See QUAT
See QLENGTH

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qlookat (dir up)

Returns a quaternion that encompassses the rotation necessary to look in the described direction.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qmat3 (quat &optional mat)

Returns a MAT3 that encompasses the rotation described by the quaternion.

See QUAT
See QMAT4
See QFROM-MAT
See 3D-MATRICES:MAT3

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qmat4 (quat &optional mat)

Returns a MAT4 that encompasses the rotation described by the quaternion.

See QUAT
See QMAT3
See QFROM-MAT
See 3D-MATRICES:MAT4

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qmix (from to x)

Returns a new quaternion mixed with the two.

This is essentially Q = A*(1-X) + B*X

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qnlerp (from to x)

Returns the linearly interpolated quaternion between the two.

This is essentially Q = A + (B-A)*X

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qposition (dquat)

Return the position vector encoded by the dual-quaternion.

See 3D-VECTORS:VEC3
See DQUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qr (vec)
Setf Expander: (setf qr) (vec)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Reader: qreal (instance)

Accesses the quaternion encompassing the rotation of the dual-quaternion.

see QUAT
See DQUAT

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Target Slot

qreal.

Writer: (setf qreal) (instance)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Target Slot

qreal.

Function: qslerp (from to x)

Returns the spherically interpolated quaternion between the two.

This attempts to compute the interpolation by rotating along the unit sphere.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qtowards (from to)

Construct a quaternion that describes the rotation from one vector to another.

Returns the freshly constructed quaternion.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: quat (&optional x y z w)

Constructs a quaternion.

If no arguments are passed, a unit quaternion of 0 0 0 1 is returned.

See QUAT (type)

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Function: quat-p (object)

Returns true if the passed object is a quaternion.

See QUAT

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Function: qunit (a)

Returns a normalised copy of the quaternion.

If passed a dual-quaternion, the real and dual part are normalised by the length of the real part.

Returns an unmodified copy if the quaternion has a length of zero.

See QUAT
See NQUNIT
See QUNIT*

Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qunit* (a)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Function: qw (vec)

Accesses the fourth component of the quaternion.

See QUAT (type)

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Setf expander for this function

(setf qw).

Function: qx (vec)

Accesses the first component of the quaternion.

See QUAT (type)

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Setf expander for this function

(setf qx).

Function: qy (vec)

Accesses the second component of the quaternion.

See QUAT (type)

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Setf expander for this function

(setf qy).

Function: qz (vec)

Accesses the third component of the quaternion.

See QUAT (type)

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Setf expander for this function

(setf qz).


5.1.5 Standalone methods

Method: make-load-form ((q quat) &optional env)
Source

struct.lisp.

Method: make-load-form ((d dquat) &optional env)
Source

struct.lisp.

Method: print-object ((q quat) stream)
Source

struct.lisp.

Method: print-object ((d dquat) stream)
Source

struct.lisp.


5.1.6 Structures

Structure: dquat

Encompasses a dual-quaternion.

Dual-quaternions are composed of two quaternions, the ’real’ representing a rotation, and the ’dual’ representing a translation.

See DQUAT (type)
See DQCOPY
See DQUAT-P
See QREAL
See QDUAL
See Q=
See Q/=
See QEQUAL
See Q+
See NQ+
See Q-
See NQ-
See Q*
See NQ*
See Q/
See NQ/
See Q.
See QUNIT
See NQUNIT
See QCONJUGATE
See Q*V

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Direct superclasses

structure-object.

Direct methods
Direct slots
Slot: qreal
Type

org.shirakumo.flare.quaternion:quat

Initform

(org.shirakumo.flare.quaternion:quat)

Readers

qreal.

Writers

(setf qreal).

Slot: qdual
Type

org.shirakumo.flare.quaternion:quat

Initform

(org.shirakumo.flare.quaternion:quat)

Readers

qdual.

Writers

(setf qdual).

Structure: quat

Encompasses a quaternion.

A quaternion describes a rotational axis and an angle.
This is a sub-structure of a VEC3, and as such can be used with any functions from 3D-VECTORS that support VEC3s.

See 3D-VECTORS:VEC3
See QUAT (function)
See QCOPY
See QUAT-P
See QX
See QY
See QZ
See QW
See QSETF
See QFROM-ANGLE
See QTOWARDS
See QAXIS
See QANGLE
See Q=
See Q/=
See QEQUAL
See Q+
See NQ+
See Q-
See NQ-
See Q*
See NQ*
See Q/
See NQ/
See Q.
See QLENGTH2
See QLENGTH
See QUNIT
See NQUNIT
See QCONJUGATE
See QINV
See Q*V
See QMIX
See QNLERP
See QSLERP
See QEXPT
See NQEXPT
See QLOOKAT
See QMAT3
See QMAT4
See QFROM-MAT

Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Direct superclasses

vec3.

Direct methods
Direct slots
Slot: %qw
Type

single-float

Initform

(3d-vectors::ensure-float 1)

Readers

%qw.

Writers

(setf %qw).


5.2 Internals


5.2.1 Macros

Macro: %2quat-op (name a b combination qred dqred &optional 2q-override)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Macro: define-nquatop (name op &optional 2q-override)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Macro: define-quatcomp (name op &optional bundle)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Macro: define-quatop (name nname op &optional 2q-override)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Macro: qapply (quat op &optional x y z w)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.

Macro: qapplyf (quat op &optional x y z w)
Package

org.shirakumo.flare.quaternion.

Source

ops.lisp.


5.2.2 Ordinary functions

Function: %dquat (qreal qdual)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Function: %quat (%vx3 %vy3 %vz3 %qw)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Reader: %qw (instance)
Writer: (setf %qw) (instance)
Package

org.shirakumo.flare.quaternion.

Source

struct.lisp.

Target Slot

%qw.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
C   D   F   M   N   P   Q   S  
Index Entry  Section

%
%2quat-op: Private macros
%dquat: Private ordinary functions
%quat: Private ordinary functions
%qw: Private ordinary functions

(
(setf %qw): Private ordinary functions
(setf qangle): Public ordinary functions
(setf qaxis): Public ordinary functions
(setf qdual): Public ordinary functions
(setf qi): Public ordinary functions
(setf qj): Public ordinary functions
(setf qk): Public ordinary functions
(setf qr): Public ordinary functions
(setf qreal): Public ordinary functions
(setf qw): Public setf expanders
(setf qx): Public setf expanders
(setf qy): Public setf expanders
(setf qz): Public setf expanders

C
Compiler Macro, dquat: Public compiler macros
Compiler Macro, nq*: Public compiler macros
Compiler Macro, nq+: Public compiler macros
Compiler Macro, nq-: Public compiler macros
Compiler Macro, nq/: Public compiler macros
Compiler Macro, q*: Public compiler macros
Compiler Macro, q+: Public compiler macros
Compiler Macro, q-: Public compiler macros
Compiler Macro, q/: Public compiler macros
Compiler Macro, q/=: Public compiler macros
Compiler Macro, q=: Public compiler macros
Compiler Macro, quat: Public compiler macros

D
define-nquatop: Private macros
define-quatcomp: Private macros
define-quatop: Private macros
dqcopy: Public ordinary functions
dqsetf: Public macros
dquat: Public compiler macros
dquat: Public ordinary functions
dquat-p: Public ordinary functions

F
Function, %dquat: Private ordinary functions
Function, %quat: Private ordinary functions
Function, %qw: Private ordinary functions
Function, (setf %qw): Private ordinary functions
Function, (setf qangle): Public ordinary functions
Function, (setf qaxis): Public ordinary functions
Function, (setf qdual): Public ordinary functions
Function, (setf qreal): Public ordinary functions
Function, dqcopy: Public ordinary functions
Function, dquat: Public ordinary functions
Function, dquat-p: Public ordinary functions
Function, nq*: Public ordinary functions
Function, nq+: Public ordinary functions
Function, nq+*: Public ordinary functions
Function, nq-: Public ordinary functions
Function, nq/: Public ordinary functions
Function, nqexpt: Public ordinary functions
Function, nqunit: Public ordinary functions
Function, nqunit*: Public ordinary functions
Function, q*: Public ordinary functions
Function, q*v: Public ordinary functions
Function, q+: Public ordinary functions
Function, q-: Public ordinary functions
Function, q.: Public ordinary functions
Function, q/: Public ordinary functions
Function, q/=: Public ordinary functions
Function, q<-: Public ordinary functions
Function, q=: Public ordinary functions
Function, qangle: Public ordinary functions
Function, qaxis: Public ordinary functions
Function, qconjugate: Public ordinary functions
Function, qcopy: Public ordinary functions
Function, qdual: Public ordinary functions
Function, qequal: Public ordinary functions
Function, qexpt: Public ordinary functions
Function, qfrom-angle: Public ordinary functions
Function, qfrom-mat: Public ordinary functions
Function, qfrom-position: Public ordinary functions
Function, qi: Public ordinary functions
Function, qinv: Public ordinary functions
Function, qj: Public ordinary functions
Function, qk: Public ordinary functions
Function, qlength: Public ordinary functions
Function, qlength2: Public ordinary functions
Function, qlookat: Public ordinary functions
Function, qmat3: Public ordinary functions
Function, qmat4: Public ordinary functions
Function, qmix: Public ordinary functions
Function, qnlerp: Public ordinary functions
Function, qposition: Public ordinary functions
Function, qr: Public ordinary functions
Function, qreal: Public ordinary functions
Function, qslerp: Public ordinary functions
Function, qtowards: Public ordinary functions
Function, quat: Public ordinary functions
Function, quat-p: Public ordinary functions
Function, qunit: Public ordinary functions
Function, qunit*: Public ordinary functions
Function, qw: Public ordinary functions
Function, qx: Public ordinary functions
Function, qy: Public ordinary functions
Function, qz: Public ordinary functions

M
Macro, %2quat-op: Private macros
Macro, define-nquatop: Private macros
Macro, define-quatcomp: Private macros
Macro, define-quatop: Private macros
Macro, dqsetf: Public macros
Macro, qapply: Private macros
Macro, qapplyf: Private macros
Macro, qsetf: Public macros
make-load-form: Public standalone methods
make-load-form: Public standalone methods
Method, make-load-form: Public standalone methods
Method, make-load-form: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods

N
nq*: Public compiler macros
nq*: Public ordinary functions
nq+: Public compiler macros
nq+: Public ordinary functions
nq+*: Public ordinary functions
nq-: Public compiler macros
nq-: Public ordinary functions
nq/: Public compiler macros
nq/: Public ordinary functions
nqexpt: Public ordinary functions
nqunit: Public ordinary functions
nqunit*: Public ordinary functions

P
print-object: Public standalone methods
print-object: Public standalone methods

Q
q*: Public compiler macros
q*: Public ordinary functions
q*v: Public ordinary functions
q+: Public compiler macros
q+: Public ordinary functions
q-: Public compiler macros
q-: Public ordinary functions
q.: Public ordinary functions
q/: Public compiler macros
q/: Public ordinary functions
q/=: Public compiler macros
q/=: Public ordinary functions
q<-: Public ordinary functions
q=: Public compiler macros
q=: Public ordinary functions
qangle: Public ordinary functions
qapply: Private macros
qapplyf: Private macros
qaxis: Public ordinary functions
qconjugate: Public ordinary functions
qcopy: Public ordinary functions
qdual: Public ordinary functions
qequal: Public ordinary functions
qexpt: Public ordinary functions
qfrom-angle: Public ordinary functions
qfrom-mat: Public ordinary functions
qfrom-position: Public ordinary functions
qi: Public ordinary functions
qinv: Public ordinary functions
qj: Public ordinary functions
qk: Public ordinary functions
qlength: Public ordinary functions
qlength2: Public ordinary functions
qlookat: Public ordinary functions
qmat3: Public ordinary functions
qmat4: Public ordinary functions
qmix: Public ordinary functions
qnlerp: Public ordinary functions
qposition: Public ordinary functions
qr: Public ordinary functions
qreal: Public ordinary functions
qsetf: Public macros
qslerp: Public ordinary functions
qtowards: Public ordinary functions
quat: Public compiler macros
quat: Public ordinary functions
quat-p: Public ordinary functions
qunit: Public ordinary functions
qunit*: Public ordinary functions
qw: Public ordinary functions
qx: Public ordinary functions
qy: Public ordinary functions
qz: Public ordinary functions

S
Setf Expander, (setf qi): Public ordinary functions
Setf Expander, (setf qj): Public ordinary functions
Setf Expander, (setf qk): Public ordinary functions
Setf Expander, (setf qr): Public ordinary functions
Setf Expander, (setf qw): Public setf expanders
Setf Expander, (setf qx): Public setf expanders
Setf Expander, (setf qy): Public setf expanders
Setf Expander, (setf qz): Public setf expanders


A.3 Variables