//
// This confidential and proprietary software may be used only as
// authorised by a licensing agreement from ARM Limited
// (C) COPYRIGHT 2020-2024 ARM Limited
// ALL RIGHTS RESERVED
// The entire notice above must be reproduced on all authorised
// copies and copies may only be made to the extent permitted
// by a licensing agreement from ARM Limited.

=== Data Layout

==== CONCAT
Concatenate a list of tensors along a given axis.
No data conversion happens during a concat operation.

include::{generated}/operators/CONCAT.adoc[]

[source,c]
----
include::{pseudocode}/operators/CONCAT.tosac[lines=10..-1]
----

==== PAD

Pads a tensor along the borders of each dimension with a supplied value.
Returns a new tensor with the padding included.
The pad_const value includes the zero point if the tensor uses a zero point.

include::{generated}/operators/PAD.adoc[]

[source,c++]
----
include::{pseudocode}/operators/PAD.tosac[lines=10..-1]
----

==== RESHAPE

Returns a tensor with the same type/values as the input, with a new shape specified by the shape argument. Reshape may operate on tensors of any rank. No data conversion happens during a reshape operation.

include::{generated}/operators/RESHAPE.adoc[]

[source,c++]
----
include::{pseudocode}/operators/RESHAPE.tosac[lines=10..-1]
----

==== REVERSE

Returns a tensor with the same type/values as the input, with the data reversed along the given axis. No data conversion happens during a reverse operation.

include::{generated}/operators/REVERSE.adoc[]

[source,c++]
----
include::{pseudocode}/operators/REVERSE.tosac[lines=10..-1]
----

==== SLICE

Extracts a slice of input1, beginning at the start coordinates, and extending for size elements in each direction.
No data conversion happens during a slice operation.

include::{generated}/operators/SLICE.adoc[]

[source,c++]
----
include::{pseudocode}/operators/SLICE.tosac[lines=10..-1]
----

==== TILE

Replicates input1 multiples times along each dimension.

include::{generated}/operators/TILE.adoc[]

[source,c++]
----
include::{pseudocode}/operators/TILE.tosac[lines=10..-1]
----

==== TRANSPOSE

Permutes the dimensions of the input tensor input1 based on the perms argument.
Each value in the perms list must be a valid dimension of the input tensor and may not be repeated.

include::{generated}/operators/TRANSPOSE.adoc[]

[source,c++]
----
include::{pseudocode}/operators/TRANSPOSE.tosac[lines=10..-1]
----
