magic.product {magic}R Documentation

Product of two magic squares

Description

Gives a magic square that is a product of two magic squares.

Usage

magic.product(a, b, mat=NULL)
magic.product.fast(a, b)

Arguments

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 Fr'{e}nicle'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).

Details

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.

Author(s)

Robin K. S. Hankin

References

William H. Benson and Oswald Jacoby. New recreations with magic squares, Dover 1976 (and that paper in JRM)

Examples

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

[Package magic version 1.3-28 Index]