These are just a subset of the signature for which defined methods.
Currently, there are (too) many explicit methods defined in order to
ensure efficient methods for diagonal matrices.

- coerce
`signature(from = "matrix", to = "diagonalMatrix")`

: ...

- coerce
`signature(from = "Matrix", to = "diagonalMatrix")`

: ...

- coerce
`signature(from = "diagonalMatrix", to = "generalMatrix")`

: ...

- coerce
`signature(from = "diagonalMatrix", to = "triangularMatrix")`

: ...

- coerce
`signature(from = "diagonalMatrix", to = "nMatrix")`

: ...

- coerce
`signature(from = "diagonalMatrix", to = "matrix")`

: ...

- coerce
`signature(from = "diagonalMatrix", to = "sparseVector")`

: ...

- t
`signature(x = "diagonalMatrix")`

: ...

and many more methods- solve
`signature(a = "diagonalMatrix", b, ...)`

: is
trivially implemented, of course; see also `solve-methods`

.

- which
`signature(x = "nMatrix")`

, semantically
equivalent to base function `which(x, arr.ind)`

.

- "Math"
`signature(x = "diagonalMatrix")`

: all these
group methods return a `"diagonalMatrix"`

, apart from
`cumsum()`

etc which return a *vector* also for
base `matrix`

.

- *
`signature(e1 = "ddiMatrix", e2="denseMatrix")`

:
arithmetic and other operators from the `Ops`

group have a few dozen explicit method definitions, in order to
keep the results *diagonal* in many cases, including the following:

- /
`signature(e1 = "ddiMatrix", e2="denseMatrix")`

:
the result is from class `'>ddiMatrix`

which is
typically very desirable. Note that when `e2`

contains
off-diagonal zeros or `NA`

s, we implicitly use \(0 / x = 0\), hence
differing from traditional R arithmetic (where \(0 / 0
\mapsto \mbox{NaN}\)), in order to preserve sparsity.

- summary
`(object = "diagonalMatrix")`

: Returns
an object of S3 class `"diagSummary"`

which is the summary of
the vector `object@x`

plus a simple heading, and an
appropriate `print`

method.