magic: create and investigate magic squares

a collection of efficient, vectorized algorithms for the creation and investigation of magic squares and hypercubes, including a variety of functions for the manipulation and analysis of arbitrarily dimensioned arrays. The package includes methods for creating normal magic squares of any order greater than 2. The ultimate intention is for the package to be a computerized embodiment all magic square knowledge, including direct numerical verification of properties of magic squares (such as recent results on the determinant of odd-ordered semimagic squares). Some antimagic functionality is included. The package also serves as a rebuttal to the often-heard comment "I thought R was just for statistics".

AuthorRobin K. S. Hankin
Date of publication2013-11-20 00:55:43
Maintainer"Robin K. S. Hankin" <hankin.robin@gmail.com>
LicenseGPL-2
Version1.5-6

View on CRAN

Man pages

adiag: Binds arrays corner-to-corner

allsubhypercubes: Subhypercubes of magic hypercubes

allsums: Row, column, and two diagonal sums of arrays

apad: Pad arrays

apl: Replacements for APL functions take and drop

aplus: Generalized array addition

arev: Reverses some dimensions; a generalization of rev

arot: Rotates an array about two specified dimensions

arow: Generalized row and col

as.standard: Standard form for magic squares

cilleruelo: A class of multiplicative magic squares due to Cilleruelo and...

circulant: Circulant matrices of any order

cube2: A pantriagonal magic cube

diag.off: Extracts broken diagonals

do.index: Apply a function to array element indices

eq: Comparison of two magic squares

fnsd: First non-singleton dimension

force.integer: Integerize array elements

Frankenstein: A perfect magic cube due to Frankenstein

hadamard: Hadamard matrices

hendricks: A perfect magic cube due to Hendricks

hudson: Pandiagonal magic squares due to Hudson

is.magic: Various tests for the magicness of a square

is.magichypercube: magic hypercubes

is.ok: does a vector have the sum required to be a row or column of...

is.square.palindromic: Is a square matrix square palindromic?

latin: Random latin squares

lozenge: Conway's lozenge algorithm for magic squares

magic: Creates magic squares

magic.2np1: Magic squares of odd order

magic.4n: Magic squares of order 4n

magic.4np2: Magic squares of order 4n+2

magic.8: Regular magic squares of order 8

magic.constant: Magic constant of a magic square or hypercube

magiccube.2np1: Magic cubes of order 2n+1

magiccubes: Magic cubes of order 3

magichypercube.4n: Magic hypercubes of order 4n

magic.package: Magic squares and hypercubes; arbitrary dimensioned array...

magicplot: Joins consecutive numbers of a magic square.

magic.prime: Magic squares prime order

magic.product: Product of two magic squares

minmax: are all elements of a vector identical?

notmagic.2n: An unmagic square

nqueens: N queens problem

Ollerenshaw: A most perfect square due to Ollerenshaw

panmagic.4: Panmagic squares of order 4

panmagic.6npm1: Panmagic squares of order 4n, 6n+1 and 6n-1

panmagic.8: Panmagic squares of order 8

perfectcube5: A perfect magic cube of order 5

perfectcube6: A perfect cube of order 6

process: Force index arrays into range

recurse: Recursively apply a permutation

sam: Sparse antimagic squares

shift: Shift origin of arrays and vectors

strachey: Strachey's algorithm for magic squares

subsums: Sums of submatrices

transf: Frenicle's equivalent magic squares

Files in this package

magic
magic/inst
magic/inst/CITATION
magic/inst/doc
magic/inst/doc/magicpaper.Rnw
magic/inst/doc/magicpaper.R
magic/inst/doc/magicpaper.pdf
magic/tests
magic/tests/aaa.R
magic/NAMESPACE
magic/data
magic/data/perfectcube6.rda
magic/data/magiccubes.rda
magic/data/Ollerenshaw.rda
magic/data/hendricks.rda
magic/data/Frankenstein.rda
magic/data/perfectcube5.rda
magic/data/cube2.rda
magic/R
magic/R/magic.R
magic/vignettes
magic/vignettes/magicpaper.Rnw
magic/vignettes/magic.bib
magic/MD5
magic/build
magic/build/vignette.rds
magic/DESCRIPTION
magic/man
magic/man/recurse.Rd magic/man/latin.Rd magic/man/arot.Rd magic/man/panmagic.8.Rd magic/man/transf.Rd magic/man/hendricks.Rd magic/man/magicplot.Rd magic/man/shift.Rd magic/man/is.magic.Rd magic/man/perfectcube5.Rd magic/man/diag.off.Rd magic/man/magic.4np2.Rd magic/man/do.index.Rd magic/man/magic.2np1.Rd magic/man/cilleruelo.Rd magic/man/sam.Rd magic/man/hudson.Rd magic/man/lozenge.Rd magic/man/magic.Rd magic/man/is.magichypercube.Rd magic/man/is.ok.Rd magic/man/magic.constant.Rd magic/man/Frankenstein.Rd magic/man/allsums.Rd magic/man/perfectcube6.Rd magic/man/nqueens.Rd magic/man/notmagic.2n.Rd magic/man/panmagic.6npm1.Rd magic/man/apl.Rd magic/man/magic.product.Rd magic/man/strachey.Rd magic/man/magic.4n.Rd magic/man/cube2.Rd magic/man/hadamard.Rd magic/man/is.square.palindromic.Rd magic/man/as.standard.Rd magic/man/subsums.Rd magic/man/minmax.Rd magic/man/magichypercube.4n.Rd magic/man/magiccubes.Rd magic/man/magic.prime.Rd magic/man/apad.Rd magic/man/circulant.Rd magic/man/magiccube.2np1.Rd magic/man/force.integer.Rd magic/man/allsubhypercubes.Rd magic/man/magic.package.Rd magic/man/fnsd.Rd magic/man/process.Rd magic/man/aplus.Rd magic/man/arow.Rd magic/man/panmagic.4.Rd magic/man/eq.Rd magic/man/adiag.Rd magic/man/arev.Rd magic/man/magic.8.Rd magic/man/Ollerenshaw.Rd

Questions? Problems? Suggestions? or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.