Is a square matrix square palindromic?
is.square.palindromic.Rd
Implementation of various properties presented in a paper by Arthur T. Benjamin and K. Yasuda
Usage
is.square.palindromic(m, base=10, give.answers=FALSE)
is.centrosymmetric(m)
is.persymmetric(m)
Details
The following tests apply to a general square matrix m
of size
\(n\times n\).
A centrosymmetric square is one in which
a[i,j]=a[n+1-i,n+1-j]
; useis.centrosymmetric()
to test for this (compare an associative square). Note that this definition extends naturally to hypercubes: a hypercubea
is centrosymmetric ifall(a==arev(a))
.A persymmetric square is one in which
a[i,j]=a[n+1-j,n+1-i]
; useis.persymmetric()
to test for this.A matrix is square palindromic if it satisfies the rather complicated conditions set out by Benjamin and Yasuda (see refs).
Value
These functions return a list of Boolean variables whose value depends
on whether or not m
has the property in question.
If argument give.answers
takes the default value of
FALSE
, a Boolean value is returned that shows whether the
sufficient conditions are met.
If argument give.answers
is TRUE
, a detailed list is
given that shows the status of each individual test, both for the
necessary and sufficient conditions. The value of the second element
(named necessary
) is the status of their Theorem 1 on page 154.
Note that the necessary conditions do not depend on the base b
(technically, neither do the sufficient conditions, for being a square
palindrome requires the sums to match for every base b
.
In this implementation, “sufficient” is defined only with
respect to a particular base).
References
Arthur T. Benjamin and K. Yasuda. Magic “Squares” Indeed!, American Mathematical Monthly, vol 106(2), pp152-156, Feb 1999
Note
Every associative square is square palindromic, according to Benjamin and Yasuda.
Function is.square.palindromic()
does not yet take a
give.answers
argument as does, say, is.magic()
.