---
title: "init(mutableSpan:shape:strides:)"
framework: coreai
role: symbol
role_heading: Initializer
path: "coreai/ndarray/mutableview/init(mutablespan:shape:strides:)"
---

# init(mutableSpan:shape:strides:)

Initialize a view from a MutableSpan.

## Declaration

```swift
init(mutableSpan: consuming MutableSpan<Element>, shape: [Int], strides: [Int] = [])
```

## Discussion

Discussion The lifetime of the resulting view copies the lifetime of the provided span. Also note that the shape/strides must not be able to produce offsets that go outside of the range of mutableSpan. As such, negative strides are not supported by this initializer. Performance note: Making an ndArray view from a normal VM pointer to be used as an input or backing of an InferenceFunction could be a performance anti-pattern if you intend to pass the same underlying memory in repeatedly to many inferences. This can be a function of which compute units the model was specialized for. For example if the inference function runs compute on the GPU or Neural Engine, you may incur a copy of the view into the required memory primitive if it cannot be toll-free converted. span: The span to be referenced by the resulting view. shape: The shape of the resulting view. strides: The strides of the resulting view. If left empty, they will be computed as contiguous row-major.
