# Magic hypercube

In mathematics, a magic hypercube is the k-dimensional generalization of magic squares and magic cubes, that is, an n × n × n × ... × n array of integers such that the sums of the numbers on each pillar (along any axis) as well as on the main space diagonals are all the same. The common sum is called the magic constant of the hypercube, and is sometimes denoted M$_k$(n). If a magic hypercube consists of the numbers 1, 2, ..., n$^k$, then it has magic number
    $M_{k}(n)={\frac {n(n^{k}+1)}{2}}$.
For k = 4, a magic hypercube may be called a magic tesseract, with sequence of magic numbers given by OEIS: A021003.
The side-length n of the magic hypercube is called its order. Four-, five-, six-, seven- and eight-dimensional magic hypercubes of order three have been constructed by J. R. Hendricks.
Marian Trenkler proved the following theorem: A p-dimensional magic hypercube of order n exists if and only if p > 1 and n is different from 2 or p = 1. A construction of a magic hypercube follows from the proof.
The R programming language includes a module, library(magic), that will create magic hypercubes of any dimension with n a multiple of 4.

## Perfect magic hypercubes

If, in addition, the numbers on every cross section diagonal also sum up to the hypercube's magic number, the hypercube is called a perfect magic hypercube; otherwise, it is called a semiperfect magic hypercube. The number n is called the order of the magic hypercube.
This definition of "perfect" assumes that one of the older definitions for perfect magic cubes is used. The Universal Classification System for Hypercubes (John R. Hendricks) requires that for any dimension hypercube, all possible lines sum correctly for the hypercube to be considered perfect magic. Because of the confusion with the term perfect, nasik is now the preferred term for any magic hypercube where all possible lines sum to S. Nasik was defined in this manner by C. Planck in 1905. A nasik magic hypercube has ⁠1/2⁠(3$^n$ − 1) lines of m numbers passing through each of the m$^n$ cells.

## Nasik magic hypercubes

A Nasik magic hypercube is a magic hypercube with the added restriction that all possible lines through each cell sum correctly to S = ⁠m(m$^n$+1/2⁠ where S is the magic constant, m the order and n the dimension of the hypercube.
Or, to put it more concisely, all pan-r-agonals sum correctly for r = 1...n. This definition is the same as the Hendricks definition of perfect, but different from the Boyer/Trump definition.
The term nasik would apply to all dimensions of magic hypercubes in which the number of correctly summing paths (lines) through any cell of the hypercube is P = ⁠3$^n$ − 1/2⁠.
A pandiagonal magic square then would be a nasik square because 4 magic line pass through each of the m$^2$ cells. This was A.H. Frost’s original definition of nasik. A nasik magic cube would have 13 magic lines passing through each of its m$^3$ cells. (This cube also contains 9m pandiagonal magic squares of order m.) A nasik magic tesseract would have 40 lines passing through each of its m$^4$ cells, and so on.

### History

In 1866 and 1878, Rev. A. H. Frost coined the term Nasik for the type of magic square we commonly call pandiagonal and often call perfect. He then demonstrated the concept with an order-7 cube we now class as pandiagonal, and an order-8 cube we class as pantriagonal. In another 1878 paper he showed another pandiagonal magic cube and a cube where all 13m lines sum correctly i.e. Hendricks perfect. He referred to all of these cubes as nasik as a respect to the great Indian Mathematician D R Kaprekar who hails from Deolali in Nasik District in Maharashtra, India. In 1905 Dr. Planck expanded on the nasik idea in his Theory of Paths Nasik. In the introductory to his paper, he wrote;
   Analogy suggest that in the higher dimensions we ought to employ the term nasik as implying the existence of magic summations parallel to any diagonal, and not restrict it to diagonals in sections parallel to the plane faces. The term is used in this wider sense throughout the present paper.
In 1917, Dr. Planck wrote again on this subject.
   It is not difficult to perceive that if we push the Nasik analogy to higher dimensions the number of magic directions through any cell of a k-fold must be ½(3$^k$-1).
In 1939, B. Rosser and R. J. Walker published a series of papers on diabolic (perfect) magic squares and cubes. They specifically mentioned that these cubes contained 13m$^2$ correctly summing lines. They also had 3m pandiagonal magic squares parallel to the faces of the cube, and 6m pandiagonal magic squares parallel to the space-diagonal planes.

## Notations

in order to keep things in hand a special notation was developed:
* $\left[_{k}i;\ k\in \{0,\cdots ,n-1\};\ i\in \{0,\cdots ,m-1\}\right]$: positions within the hypercube
* $\left\langle_{k}i;\ k\in \{0,\cdots ,n-1\};\ i\in \{0,\cdots ,m-1\}\right\rangle$: vector through the hypercube
Note: The notation for position can also be used for the value on that position. Then, where it is appropriate, dimension and order can be added to it, thus forming: $^n$[$_k$i]$_m$
As is indicated k runs through the dimensions, while the coordinate i runs through all possible values, when values i are outside the range it is simply moved back into the range by adding or subtracting appropriate multiples of m, as the magic hypercube resides in n-dimensional modular space.
There can be multiple k between brackets, these cannot have the same value, though in undetermined order, which explains the equality of:
$\left[_{1}i,_{k}j\right]=\left[_{k}j,_{1}i\right]$
Of course given k also one value i is referred to.
When a specific coordinate value is mentioned the other values can be taken as 0, which is especially the case when the amount of 'k's are limited using pe. #k = 1 as in:
$\left[_{k}1;\ \#k=1\right]=\left[_{k}1\ \_{j}0\ ;\ \#k=1;\ \#j=n-1\right]$ ("axial"-neighbor of $\left[_{k}0\right]$ )
(#j=n-1 can be left unspecified) j now runs through all the values in [0..k-1,k+1..n-1].
Further: without restrictions specified 'k' as well as 'i' run through all possible values, in combinations same letters assume same values. Thus makes it possible to specify a particular line within the hypercube (see r-agonal in pathfinder section)
Note: as far as I know this notation is not in general use yet(?), Hypercubes are not generally analyzed in this particular manner.
Further: "perm(0..n-1)" specifies a permutation of the n numbers 0..n-1.

## Construction

Besides more specific constructions two more general construction method are noticeable:

### KnightJump construction

This construction generalizes the movement of the chessboard horses (vectors $\langle 1,2\rangle ,\langle 1,-2\rangle ,\langle -1,2\rangle ,\langle -1,-2\rangle$) to more general movements (vectors $\langle_{k}i\rangle$). The method starts at the position P$_0$ and further numbers are sequentially placed at positions $V_{0}$ further until (after m steps) a position is reached that is already occupied, a further vector is needed to find the next free position. Thus the method is specified by the n by n+1 matrix:
    $[P_{0},V_{0}\dots V_{n-1}]$
This positions the number 'k' at position:
    $P_{k}=P_{0}+\sum _{l=0}^{n-1}((k\backslash m^{l})\ \%\ m)V_{l};\quad k=0\dots m^{n}-1.$
C. Planck gives in his 1905 article "The theory of Path Nasiks" conditions to create with this method "Path Nasik" (or modern {perfect}) hypercubes.

### Latin prescription construction

(modular equations). This method is also specified by an n by n+1 matrix. However this time it multiplies the n+1 vector [x$_0$,..,x$_{n-1}$,1], After this multiplication the result is taken modulus m to achieve the n (Latin) hypercubes:
of radix m numbers (also called "digits"). On these LP$_k$'s "digit changing" (?i.e. Basic manipulation) are generally applied before these LP$_k$'s are combined into the hypercube:
J.R.Hendricks often uses modular equation, conditions to make hypercubes of various quality can be found on http://www.magichypercubes.com/Encyclopedia at several places (especially p-section)
Both methods fill the hypercube with numbers, the knight-jump guarantees (given appropriate vectors) that every number is present. The Latin prescription only if the components are orthogonal (no two digits occupying the same position)

### Multiplication

Amongst the various ways of compounding, the multiplication can be considered as the most basic of these methods. The basic multiplication is given by:
Most compounding methods can be viewed as variations of the above, As most qualifiers are invariant under multiplication one can for example place any aspectual variant of $^n$H$_{m2}$ in the above equation, besides that on the result one can apply a manipulation to improve quality. Thus one can specify pe the J. R. Hendricks / M. Trenklar doubling. These things go beyond the scope of this article.

## Aspects

A hypercube knows n! 2$^n$ Aspectial variants, which are obtained by coordinate reflection ([$_k$i] --> [$_k$(-i)]) and coordinate permutations ([$_k$i] --> [$_{perm[k]}$i]) effectively giving the Aspectial variant:
Where reflect(k) true iff coordinate k is being reflected, only then 2$^k$ is added to R. As is easy to see, only n coordinates can be reflected explaining 2$^n$, the n! permutation of n coordinates explains the other factor to the total amount of "Aspectial variants"!
Aspectial variants are generally seen as being equal. Thus any hypercube can be represented shown in "normal position" by:
(explicitly stated here: [$_k$0] the minimum of all corner points. The axial neighbour sequentially based on axial number)

## Basic manipulations

Besides more specific manipulations, the following are of more general nature
* #[perm(0..n-1)] : component permutation
* ^[perm(0..n-1)] : coordinate permutation (n == 2: transpose)
* _2$^{axis}$[perm(0..m-1)] : monagonal permutation (axis ε [0..n-1])
* =[perm(0..m-1)] : digit change
Note: '#', '^', '_' and '=' are essential part of the notation and used as manipulation selectors.

### Component permutation

Defined as the exchange of components, thus varying the factor m$^k$ in m$^{perm(k)}$, because there are n component hypercubes the permutation is over these n components

### Coordinate permutation

The exchange of coordinate [$_k$i] into [$_{perm(k)}$i], because of n coordinates a permutation over these n directions is required. The term transpose (usually denoted by $^t$) is used with two dimensional matrices, in general though perhaps "coordinate permutation" might be preferable.

### Monagonal permutation

Defined as the change of [$_k$i] into [$_k$perm(i)] alongside the given "axial"-direction. Equal permutation along various axes can be combined by adding the factors 2$^{axis}$. Thus defining all kinds of r-agonal permutations for any r. Easy to see that all possibilities are given by the corresponding permutation of m numbers.
Noted be that reflection is the special case:
Further when all the axes undergo the same permutation (R = 2$^n$-1) an n-agonal permutation is achieved, In this special case the 'R' is usually omitted so:

### Digitchanging

Usually being applied at component level and can be seen as given by [$_k$i] in perm([$_k$i]) since a component is filled with radix m digits, a permutation over m numbers is an appropriate manner to denote these.

## Pathfinders

J. R. Hendricks called the directions within a hypercubes "pathfinders", these directions are simplest denoted in a ternary number system as:
This gives 3$^n$ directions. since every direction is traversed both ways one can limit to the upper half [(3$^n$-1)/2,..,3$^n$-1)] of the full range.
With these pathfinders any line to be summed over (or r-agonal) can be specified:
which specifies all (broken) r-agonals, p and q ranges could be omitted from this description. The main (unbroken) r-agonals are thus given by the slight modification of the above:

## Qualifications

A hypercube $^n$H$_m$ with numbers in the analytical numberrange [0..m$^n$-1] has the magic sum:
Besides more specific qualifications the following are the most important, "summing" of course stands for "summing correctly to the magic sum"
* {r-agonal} : all main (unbroken) r-agonals are summing.
* {pan r-agonal} : all (unbroken and broken) r-agonals are summing.
* {magic} : {1-agonal n-agonal}
* {perfect} : {pan r-agonal; r = 1..n}
Note: This series doesn't start with 0 since a nill-agonal doesn't exist, the numbers correspond with the usual name-calling: 1-agonal = monagonal, 2-agonal = diagonal, 3-agonal = triagonal etc.. Aside from this the number correspond to the amount of "-1" and "1" in the corresponding pathfinder.
In case the hypercube also sum when all the numbers are raised to the power p one gets p-multimagic hypercubes. The above qualifiers are simply prepended onto the p-multimagic qualifier. This defines qualifications as {r-agonal 2-magic}. Here also "2-" is usually replaced by "bi", "3-" by "tri" etc. ("1-magic" would be "monomagic" but "mono" is usually omitted). The sum for p-Multimagic hypercubes can be found by using Faulhaber's formula and divide it by m$^{n-1}$.
Also "magic" (i.e. {1-agonal n-agonal}) is usually assumed, the Trump/Boyer {diagonal} cube is technically seen {1-agonal 2-agonal 3-agonal}.
Nasik magic hypercube gives arguments for using {nasik} as synonymous to {perfect}. The strange generalization of square 'perfect' to using it synonymous to {diagonal} in cubes is however also resolve by putting curly brackets around qualifiers, so {perfect} means {pan r-agonal; r = 1..n} (as mentioned above).
some minor qualifications are:
* {$^n$compact} : {all order 2 subhyper cubes sum to 2$^n$ $^n$S$_m$ / m}
* {$^n$complete} : {all pairs halve an n-agonal apart sum equal (to (m$^n$ - 1)}
{$^n$compact} might be put in notation as : $_{(k)}$Σ [$_j$i + $_k$1] = 2$^n$ $^n$S$_m$ / m. {$^n$complete} can simply be written as: [$_j$i] + [$_j$i + $_k$(m/2) ; #k=n ] = m$^n$ - 1 where:
    $_{(k)}$Σ is symbolic for summing all possible k's, there are 2$^n$ possibilities for $_k$1.
    [$_j$i + $_k$1] expresses [$_j$i] and all its r-agonal neighbors.
for {complete} the complement of [$_j$i] is at position [$_j$i + $_k$(m/2) ; #k=n ].
for squares: {$^2$compact $^2$complete} is the "modern/alternative qualification" of what Dame Kathleen Ollerenshaw called most-perfect magic square, {$^n$compact $^n$complete} is the qualifier for the feature in more than 2 dimensions.
Caution: some people seems to equate {compact} with {$^2$compact} instead of {$^n$compact}. Since this introductory article is not the place to discuss these kind of issues I put in the dimensional pre-superscript $^n$ to both these qualifiers (which are defined as shown) consequences of {$^n$compact} is that several figures also sum since they can be formed by adding/subtracting order 2 sub-hyper cubes. Issues like these go beyond this articles scope.

## Magic hyperbeam

A magic hyperbeam (n-dimensional magic rectangle) is a variation on a magic hypercube where the orders along each direction may be different. As such a magic hyperbeam generalises the two dimensional magic rectangle and the three dimensional magic beam, a series that mimics the series magic square, magic cube and magic hypercube. This article will mimic the magic hypercubes article in close detail, and just as that article serves merely as an introduction to the topic.

### Conventions

It is customary to denote the dimension with the letter 'n' and the orders of a hyperbeam with the letter 'm' (appended with the subscripted number of the direction it applies to).
* (n) Dimension : the amount of directions within a hyperbeam.
* (m$_k$) Order : the amount of numbers along kth monagonal k = 0, ..., n − 1.
Further: In this article the analytical number range [0..$_{k=0}$Π$^{n-1}$m$_k$-1] is being used.

### Notations

in order to keep things in hand a special notation was developed:
* [ $_k$i; k=[0..n-1]; i=[0..m$_k$-1] ]: positions within the hyperbeam
* ⟨⟩: vectors through the hyperbeam
Note: The notation for position can also be used for the value on that position. There where it is appropriate dimension and orders can be added to it thus forming: $^n$[$_k$i]$_{m0,..,mn-1}$

### Construction
#### Basic

Description of more general methods might be put here, I don't often create hyperbeams, so I don't know whether Knightjump or Latin Prescription work here. Other more adhoc methods suffice on occasion I need a hyperbeam.

#### Multiplication

Amongst the various ways of compounding, the multiplication can be considered as the most basic of these methods. The basic multiplication is given by:
    $^n$B$_{(m..)1}$ * $^n$B$_{(m..)2}$ : $^n$[$_k$i]$_{(m..)1(m..)2}$ = $^n$[ [[$_k$i \ m$_{k2}$]]$_{(m..)1k=0}$Π$^{n-1}$m$_{k1}$]$_{(m..)2}$ + [$_k$i % m$_{k2}$]$_{(m..)2}$]$_{(m..)1(m..)2}$
(m..) abbreviates: m$_0$,..,m$_{n-1}$. (m..)$_1$(m..)$_2$ abbreviates: m$_{01}$m$_{02}$,..,m$_{n-11}$m$_{n-12}$.

### Curiosities
#### all orders are either even or odd

A fact that can be easily seen since the magic sums are:
    S$_k$ = m$_k$ ($_{j=0}$Π$^{n-1}$m$_j$ - 1) / 2
When any of the orders m$_k$ is even, the product is even and thus the only way S$_k$ turns out integer is when all m$_k$ are even. Thus suffices: all m$_k$ are either even or odd.
This is with the exception of m$_k$=1 of course, which allows for general identities like:
* N$_m$$^t$ = N$_{m,1}$ * N$_{1,m}$
* N$_m$ = N$_{1,m}$ * N$_{m,1}$
Which goes beyond the scope of this introductory article

#### Only one direction with order = 2

since any number has but one complement only one of the directions can have m$_k$ = 2.

### Aspects

A hyperbeam knows 2$^n$ Aspectial variants, which are obtained by coördinate reflection ([$_k$i] → [$_k$(-i)]) effectively giving the Aspectial variant:
Where reflect(k) true if and only if coordinate k is being reflected, only then 2$^k$ is added to R.
In case one views different orientations of the beam as equal one could view the number of aspects n! 2$^n$ just as with the magic hypercubes, directions with equal orders contribute factors depending on the hyperbeam's orders. This goes beyond the scope of this article.

### Basic manipulations

Besides more specific manipulations, the following are of more general nature
* ^[perm(0..n-1)] : coördinate permutation (n == 2: transpose)
* _2$^{axis}$[perm(0..m-1)] : monagonal permutation (axis ε [0..n-1])
Note: '^' and '_' are essential part of the notation and used as manipulation selectors.

#### Coördinate permutation

The exchange of coördinaat [$_k$i] into [$_{perm(k)}$i], because of n coördinates a permutation over these n directions is required. The term transpose (usually denoted by $^t$) is used with two dimensional matrices, in general though perhaps "coördinaatpermutation" might be preferable.

#### Monagonal permutation

Defined as the change of [$_k$i] into [$_k$perm(i)] alongside the given "axial"-direction. Equal permutation along various axes with equal orders can be combined by adding the factors 2$^{axis}$. Thus defining all kinds of r-agonal permutations for any r. Easy to see that all possibilities are given by the corresponding permutation of m numbers.

#### normal position

In case no restrictions are considered on the n-agonals a magic hyperbeam can be represented shown in "normal position" by:
    [$_k$i] < [$_k$(i+1)] ; i = 0..m$_k$-2 (by monagonal permutation)

### Qualification

Qualifying the hyperbeam is less developed then it is on the magic hypercubes in fact only the k'th monagonal direction need to sum to:
    S$_k$ = m$_k$ ($_{j=0}$Π$^{n-1}$m$_j$ - 1) / 2
for all k = 0..n-1 for the hyperbeam to be qualified {magic}
When the orders are not relatively prime the n-agonal sum can be restricted to:
    S = lcm(m$_i$ ; i = 0..n-1) ($_{j=0}$Π$^{n-1}$m$_j$ - 1) / 2
with all orders relatively prime this reaches its maximum:
    S$_{max}$ = $_{j=0}$Π$^{n-1}$m$_j$ ($_{j=0}$Π$^{n-1}$m$_j$ - 1) / 2

### Special hyperbeams

The following hyperbeams serve special purposes:

#### The "normal hyperbeam"

    $^n$N$_{m0,..,mn-1}$ : [$_k$i] = $_{k=0}$Σ$^{n-1}$ $_k$i m$_k$$^k$
This hyperbeam can be seen as the source of all numbers. A procedure called "Dynamic numbering" makes use of the isomorphism of every hyperbeam with this normal, changing the source, changes the hyperbeam. Basic multiplications of normal hyperbeams play a special role with the "Dynamic numbering" of magic hypercubes of order $_{k=0}$Π$^{n-1}$ m$^k$.

#### The "constant 1"

    $^n$1$_{m0,..,mn-1}$ : [$_k$i] = 1
The hyperbeam that is usually added to change the here used "analytic" number range into the "regular" number range. Other constant hyperbeams are of course multiples of this one.