Skip to contents

mlx_array() is a low-level constructor that skips as_mlx()'s type inference and dimension guessing. Supply the raw payload vector plus an explicit shape and it pipes the data straight into MLX.

Usage

mlx_array(data, dim, dtype = NULL, device = mlx_default_device())

Arguments

data

Numeric, logical, or complex vector. data is recycled to match dimensions according to R rules (but with an error if it doesn't tile into the dimensions exactly).

dim

Integer vector of array dimensions. Set dim = integer(0) for a scalar, in which case data must be length 1.

dtype

Data type string. Supported types include:

  • Floating point: "float32", "float64"

  • Integer: "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64"

  • Other: "bool", "complex64"

Not all functions support all types. See individual function documentation.

device

Execution target: supply "gpu", "cpu", or an mlx_stream created via mlx_new_stream(). Defaults to the current mlx_default_device() unless noted otherwise (helpers that act on an existing array typically reuse that array's device or stream).

Value

An mlx array with the requested shape.

Examples

payload <- runif(6)
mlx_array(payload, dim = c(2, 3))
#> mlx array [2 x 3]
#>   dtype: float32
#>   device: gpu
#>   values:
#>           [,1]      [,2]      [,3]
#> [1,] 0.5185567 0.7182697 0.5470434
#> [2,] 0.8461201 0.2413140 0.8348018