# allsums: Row, column, and two diagonal sums of arrays In magic: Create and Investigate Magic Squares

 allsums R Documentation

## Row, column, and two diagonal sums of arrays

### Description

Returns all rowsums, all columnsums, and all (broken) diagonal sums of a putative magic square.

### Usage

```allsums(m,func=NULL, ...)
```

### Arguments

 `m` The square to be tested `func` Function, with default `NULL` interpreted as`sum()`, to be applied to the square rowwise, columnwise, and diagonalwise `...` Further arguments passed to `func()`

### Value

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 `is.magic()` `minors` All n broken minor diagonals (northeast-southwest). First element is the long (unbroken) minor diagonal.

### Note

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.

### Author(s)

Robin K. S. Hankin

`is.magic`,`is.semimagic`,`is.panmagic`

### Examples

```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)

```

magic documentation built on Nov. 16, 2022, 9:06 a.m.