| magic.product {magic} | R Documentation |
Gives a magic square that is a product of two magic squares.
magic.product(a, b, mat=NULL) magic.product.fast(a, b)
a |
First magic square; if a is an integer, use magic(a). |
b |
as above |
mat |
Matrix, of same size as a, of integers treated as
modulo 8. Default value of NULL equivalent to passing
a*0. Each number from 0-7 corresponds to one of the 8
squares which have the same Frenicle's standard form. Then
subsquares of the product square (ie tiles of the same size as
b) are rotated and transposed appropriately according to
their corresponding entry in mat. This is a lot easier to
see than to describe (see examples section). |
Function magic.product.fast() does not take a mat
argument, and is equivalent to magic.product() with mat
taking the default value of NULL. The improvement in speed is
doubtful unless order(a)>>order(b), in which
case there appears to be a substantial saving.
Robin K. S. Hankin
William H. Benson and Oswald Jacoby. New recreations with magic squares, Dover 1976 (and that paper in JRM)
magic.product(magic(3),magic(4)) magic.product(3,4) mat <- matrix(0,3,3) a <- magic.product(3,4,mat=mat) mat[1,1] <- 1 b <- magic.product(3,4,mat=mat) a==b