The magic package implements functionality for manipulating high-dimensional arrays using efficient vectorised methods. The original application was high-dimensional magic hypercubes. This README shows some of the more useful functions in the package.

You can install the released version of `magic`

from CRAN with:

```
# install.packages("magic") # uncomment this to install the package
library("magic")
```

- Function
`adiag()`

binds arbitrarily-dimensioned arrays corner-to-corner - Function
`apad()`

pads arbitrarily-dimensioned arrays - Function
`apldrop()`

is a replacement for APL’s drop - Function
`aplus()`

superimposes two arrays of different dimensions and returns the sum of overlapping elements - Function
`arev()`

is a multidimensional generalization of`rev()`

- Function
`arot()`

is a generalization of matlab’s`rotdim`

- Function
`fnsd()`

returns the first nonsingleton dimension of an arbitrary dimensioned array - Function
`ashift()`

shifts the origin of arbitrary dimensioned arrays

Much of the package functionality is vectorised in array dimension.

For more detail, see the package vignette

`vignette("magic")`