Constructor for building rray objects. Existing vectors, matrices, and
arrays can be used to build the rray, but their dimension names are not
retained.

rray(x = numeric(0), dim = NULL, dim_names = NULL)

## Arguments

x |
A numeric vector, matrix, or array to convert to an rray. |

dim |
An integer vector describing the dimensions of the rray. If `NULL` ,
the dimensions are taken from the existing object using `rray_dim()` . |

dim_names |
A list. For no names, `NULL` , in which case a list of
empty characters will be constructed. Otherwise the list must
be the same length as the total number of dimensions
(i.e `length(c(size, shape))` ). Each element of the list much be either
a character vector the same size as the corresponding dimension, or
`character(0)` for no names for that dimension. |

## Value

An rray.

## Details

The `dim`

argument is very flexible.

This allows quick construction of a wide variety of structures. See the
example section for more.

rray objects are never reduced to vectors when subsetting using `[`

(i.e.
dimensions are never dropped).

## Examples

#> <rray<dbl>[3]>
#> [1] 1 2 3

#> <rray<dbl>[,4][3]>
#> [,1] [,2] [,3] [,4]
#> [1,] 1 1 1 1
#> [2,] 2 2 2 2
#> [3,] 3 3 3 3

#> <rray<dbl>[,2,4][3]>
#> , , 1
#>
#> [,1] [,2]
#> [1,] 1 1
#> [2,] 1 1
#> [3,] 1 1
#>
#> , , 2
#>
#> [,1] [,2]
#> [1,] 1 1
#> [2,] 1 1
#> [3,] 1 1
#>
#> , , 3
#>
#> [,1] [,2]
#> [1,] 1 1
#> [2,] 1 1
#> [3,] 1 1
#>
#> , , 4
#>
#> [,1] [,2]
#> [1,] 1 1
#> [2,] 1 1
#> [3,] 1 1
#>

#> <rray<dbl>[,2][2]>
#> [,1] [,2]
#> [1,] 1 3
#> [2,] 2 4

#> <rray<dbl>[,2,3][2]>
#> , , 1
#>
#> [,1] [,2]
#> [1,] 1 3
#> [2,] 2 4
#>
#> , , 2
#>
#> [,1] [,2]
#> [1,] 1 3
#> [2,] 2 4
#>
#> , , 3
#>
#> [,1] [,2]
#> [1,] 1 3
#> [2,] 2 4
#>

#> <rray<dbl>[,4][1]>
#> [,1] [,2] [,3] [,4]
#> [1,] 1 2 3 4

#> <rray<dbl>[,2,2][3]>
#> , , 1
#>
#> [,1] [,2]
#> [1,] 1 1
#> [2,] 1 1
#> [3,] 1 1
#>
#> , , 2
#>
#> [,1] [,2]
#> [1,] 1 1
#> [2,] 1 1
#> [3,] 1 1
#>

#> <rray<dbl>[,2][3]>
#> [,1] [,2]
#> x 1 1
#> y 2 2
#> z 3 3