# DenavitHartenbergMatrix RΒΆ

A Denavit-Hartenberg Matrix is a 4x4 Matrix of the form: `nx ox ax px` `ny oy ay py` `nz oz az pz` `0 0 0 1` (`n`, `o`, and a are the direction cosines)

#: % -> NonNegativeInteger

from Aggregate

*: (%, %) -> %

from MatrixCategory(R, Vector R, Vector R)

*: (%, Point R) -> Point R

`t*p` applies the dhmatrix `t` to point `p`

*: (%, R) -> %

from MatrixCategory(R, Vector R, Vector R)

*: (%, Vector R) -> Vector R

from MatrixCategory(R, Vector R, Vector R)

*: (Integer, %) -> %

from MatrixCategory(R, Vector R, Vector R)

*: (R, %) -> %

from MatrixCategory(R, Vector R, Vector R)

*: (Vector R, %) -> Vector R

from MatrixCategory(R, Vector R, Vector R)

+: (%, %) -> %

from MatrixCategory(R, Vector R, Vector R)

-: % -> %

from MatrixCategory(R, Vector R, Vector R)

-: (%, %) -> %

from MatrixCategory(R, Vector R, Vector R)

/: (%, R) -> %

from MatrixCategory(R, Vector R, Vector R)

=: (%, %) -> Boolean

from BasicType

^: (%, Integer) -> %

from MatrixCategory(R, Vector R, Vector R)

^: (%, NonNegativeInteger) -> %

from MatrixCategory(R, Vector R, Vector R)

~=: (%, %) -> Boolean

from BasicType

antisymmetric?: % -> Boolean

from MatrixCategory(R, Vector R, Vector R)

any?: (R -> Boolean, %) -> Boolean

from HomogeneousAggregate R

array2: List List R -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

blockConcat: List List % -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

blockSplit: (%, List NonNegativeInteger, List NonNegativeInteger) -> List List %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

blockSplit: (%, PositiveInteger, PositiveInteger) -> List List %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

coerce: % -> OutputForm
coerce: Vector R -> %

from MatrixCategory(R, Vector R, Vector R)

colSlice: % -> Segment Integer

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

column: (%, Integer) -> Vector R

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

columnSpace: % -> List Vector R

from MatrixCategory(R, Vector R, Vector R)

copy: % -> %

from Aggregate

count: (R -> Boolean, %) -> NonNegativeInteger

from HomogeneousAggregate R

count: (R, %) -> NonNegativeInteger

from HomogeneousAggregate R

determinant: % -> R

from MatrixCategory(R, Vector R, Vector R)

diagonal?: % -> Boolean

from MatrixCategory(R, Vector R, Vector R)

diagonalMatrix: List % -> %

from MatrixCategory(R, Vector R, Vector R)

diagonalMatrix: List R -> %

from MatrixCategory(R, Vector R, Vector R)

elt: (%, Integer, Integer) -> R

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

elt: (%, Integer, Integer, R) -> R

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

elt: (%, Integer, List Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

elt: (%, Integer, List Segment Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

elt: (%, List Integer, Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

elt: (%, List Integer, List Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

elt: (%, List Integer, Segment Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

elt: (%, List Segment Integer, Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

elt: (%, List Segment Integer, List Segment Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

elt: (%, List Segment Integer, Segment Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

elt: (%, Segment Integer, List Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

elt: (%, Segment Integer, List Segment Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

elt: (%, Segment Integer, Segment Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

empty?: % -> Boolean

from Aggregate

empty: () -> %

from Aggregate

eq?: (%, %) -> Boolean

from Aggregate

eval: (%, Equation R) -> % if R has Evalable R

from Evalable R

eval: (%, List Equation R) -> % if R has Evalable R

from Evalable R

eval: (%, List R, List R) -> % if R has Evalable R

from InnerEvalable(R, R)

eval: (%, R, R) -> % if R has Evalable R

from InnerEvalable(R, R)

every?: (R -> Boolean, %) -> Boolean

from HomogeneousAggregate R

exquo: (%, R) -> Union(%, failed)

from MatrixCategory(R, Vector R, Vector R)

fill!: (%, R) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

hash: % -> SingleInteger if R has Hashable

from Hashable

hashUpdate!: (HashState, %) -> HashState if R has Hashable

from Hashable

horizConcat: (%, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

horizConcat: List % -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

horizSplit: (%, List NonNegativeInteger) -> List %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

horizSplit: (%, PositiveInteger) -> List %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

identity: () -> %

`identity()` create the identity dhmatrix

inverse: % -> Union(%, failed)

from MatrixCategory(R, Vector R, Vector R)

kronecker_prod1: (%, Integer, List List NonNegativeInteger, List %, NonNegativeInteger, NonNegativeInteger, Union(R, one)) -> Void

from MatrixCategory(R, Vector R, Vector R)

kroneckerProduct: (%, %) -> %

from MatrixCategory(R, Vector R, Vector R)

kroneckerProduct: List % -> %

from MatrixCategory(R, Vector R, Vector R)

kroneckerSum: (%, %) -> %

from MatrixCategory(R, Vector R, Vector R)

kroneckerSum: List % -> %

from MatrixCategory(R, Vector R, Vector R)

latex: % -> String

from SetCategory

less?: (%, NonNegativeInteger) -> Boolean

from Aggregate

listOfLists: % -> List List R

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

map!: (R -> R, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

map: ((R, R) -> R, %, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

map: ((R, R) -> R, %, %, R) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

map: (R -> R, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

matrix: (NonNegativeInteger, NonNegativeInteger, (Integer, Integer) -> R) -> %

from MatrixCategory(R, Vector R, Vector R)

matrix: List List R -> %

from MatrixCategory(R, Vector R, Vector R)

max: % -> R if R has OrderedSet

from HomogeneousAggregate R

max: ((R, R) -> Boolean, %) -> R

from HomogeneousAggregate R

maxColIndex: % -> Integer

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

maxRowIndex: % -> Integer

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

member?: (R, %) -> Boolean

from HomogeneousAggregate R

members: % -> List R

from HomogeneousAggregate R

min: % -> R if R has OrderedSet

from HomogeneousAggregate R

minColIndex: % -> Integer

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

minordet: % -> R

from MatrixCategory(R, Vector R, Vector R)

minRowIndex: % -> Integer

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

more?: (%, NonNegativeInteger) -> Boolean

from Aggregate

ncols: % -> NonNegativeInteger

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

new: (NonNegativeInteger, NonNegativeInteger, R) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

nrows: % -> NonNegativeInteger

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

nullity: % -> NonNegativeInteger

from MatrixCategory(R, Vector R, Vector R)

nullSpace: % -> List Vector R

from MatrixCategory(R, Vector R, Vector R)

parts: % -> List R

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

Pfaffian: % -> R

from MatrixCategory(R, Vector R, Vector R)

positivePower: (%, Integer) -> %

from MatrixCategory(R, Vector R, Vector R)

qelt: (%, Integer, Integer) -> R

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

qnew: (NonNegativeInteger, NonNegativeInteger) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

qsetelt!: (%, Integer, Integer, R) -> R

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

rank: % -> NonNegativeInteger

from MatrixCategory(R, Vector R, Vector R)

rotatex: R -> %

`rotatex(r)` returns a dhmatrix for rotation about axis `X` for `r` degrees

rotatey: R -> %

`rotatey(r)` returns a dhmatrix for rotation about axis `Y` for `r` degrees

rotatez: R -> %

`rotatez(r)` returns a dhmatrix for rotation about axis `Z` for `r` degrees

row: (%, Integer) -> Vector R

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

rowEchelon: % -> %

from MatrixCategory(R, Vector R, Vector R)

rowSlice: % -> Segment Integer

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

sample: %

from Aggregate

scalarMatrix: (NonNegativeInteger, R) -> %

from MatrixCategory(R, Vector R, Vector R)

scale: (R, R, R) -> %

`scale(sx, sy, sz)` returns a dhmatrix for scaling in the `X`, `Y` and `Z` directions

setColumn!: (%, Integer, Vector R) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setelt!: (%, Integer, Integer, R) -> R

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setelt!: (%, Integer, List Integer, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setelt!: (%, Integer, List Segment Integer, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setelt!: (%, List Integer, Integer, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setelt!: (%, List Integer, List Integer, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setelt!: (%, List Integer, Segment Integer, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setelt!: (%, List Segment Integer, Integer, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setelt!: (%, List Segment Integer, List Segment Integer, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setelt!: (%, List Segment Integer, Segment Integer, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setelt!: (%, Segment Integer, List Integer, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setelt!: (%, Segment Integer, List Segment Integer, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setelt!: (%, Segment Integer, Segment Integer, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setRow!: (%, Integer, Vector R) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

setsubMatrix!: (%, Integer, Integer, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

size?: (%, NonNegativeInteger) -> Boolean

from Aggregate

smaller?: (%, %) -> Boolean if R has Comparable

from Comparable

square?: % -> Boolean

from MatrixCategory(R, Vector R, Vector R)

squareTop: % -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

subMatrix: (%, Integer, Integer, Integer, Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

swapColumns!: (%, Integer, Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

swapRows!: (%, Integer, Integer) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

symmetric?: % -> Boolean

from MatrixCategory(R, Vector R, Vector R)

translate: (R, R, R) -> %

`translate(X, Y, Z)` returns a dhmatrix for translation by `X`, `Y`, and `Z`

transpose: % -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

transpose: Vector R -> %

from MatrixCategory(R, Vector R, Vector R)

vertConcat: (%, %) -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

vertConcat: List % -> %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

vertSplit: (%, List NonNegativeInteger) -> List %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

vertSplit: (%, PositiveInteger) -> List %

from TwoDimensionalArrayCategory(R, Vector R, Vector R)

zero?: % -> Boolean

from MatrixCategory(R, Vector R, Vector R)

zero: (NonNegativeInteger, NonNegativeInteger) -> %

from MatrixCategory(R, Vector R, Vector R)

Aggregate

BasicType

Comparable if R has Comparable

Evalable R if R has Evalable R

finiteAggregate

Hashable if R has Hashable

InnerEvalable(R, R) if R has Evalable R

MatrixCategory(R, Vector R, Vector R)

SetCategory

shallowlyMutable