Row, column, and two diagonal sums of arrays
Returns all rowsums, all columnsums, and all (broken) diagonal sums of a putative magic square.
allsums(m,func=NULL, ...)
m |
The square to be tested |
func |
Function, with default |
... |
Further arguments passed to |
Returns a list of four elements. In the following, “sums” means “the result of applying func()”.
rowsums |
All n row sums |
colsums |
All n column sums |
majors |
All n broken major diagonals (northwest-southeast).
First element is the long (unbroken) major diagonal, tested by
|
minors |
All n broken minor diagonals (northeast-southwest). First element is the long (unbroken) minor diagonal. |
If func()
returns a vector, then the allsums()
returns a
list whose columns are the result of applying func()
. See third
and fourth examples below.
Used by is.magic()
et seq.
The major and minor diagonals would benefit from being recoded in C.
Robin K. S. Hankin
allsums(magic(7)) allsums(magic(7),func=max) allsums(magic(7),func=range) allsums(magic(7),func=function(x){x[1:2]}) allsums(magic(7),sort) # beware! compare apply(magic(7),1,sort) and apply(magic(7),2,sort)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.