/**
* @license Apache-2.0
*
* Copyright (c) {{YEAR}} {{COPYRIGHT}}.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*    http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/*
* The following is auto-generated. Do not manually edit. See scripts/loops.js.
*/

#ifndef STDLIB_NDARRAY_BASE_ASSIGN_{{INCLUDE_GUARD}}_H
#define STDLIB_NDARRAY_BASE_ASSIGN_{{INCLUDE_GUARD}}_H

#include "stdlib/ndarray/ctor.h"
#include <stdint.h>

/*
* If C++, prevent name mangling so that the compiler emits a binary file having undecorated names, thus mirroring the behavior of a C compiler.
*/
#ifdef __cplusplus
extern "C" {
#endif

/**
* Assigns elements in an input ndarray to elements in an output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}( struct ndarray *arrays[] );

/**
* Assigns elements in a zero-dimensional input ndarray to elements in a zero-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_0d( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a one-dimensional input ndarray to elements in a one-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_1d( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a two-dimensional input ndarray to elements in a two-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_2d( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a two-dimensional input ndarray to elements in a two-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_2d_blocked( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a three-dimensional input ndarray to elements in a three-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_3d( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a three-dimensional input ndarray to elements in a three-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_3d_blocked( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a four-dimensional input ndarray to elements in a four-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_4d( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a four-dimensional input ndarray to elements in a four-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_4d_blocked( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a five-dimensional input ndarray to elements in a five-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_5d( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a five-dimensional input ndarray to elements in a five-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_5d_blocked( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a six-dimensional input ndarray to elements in a six-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_6d( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a six-dimensional input ndarray to elements in a six-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_6d_blocked( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a seven-dimensional input ndarray to elements in a seven-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_7d( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a seven-dimensional input ndarray to elements in a seven-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_7d_blocked( struct ndarray *arrays[], void *data );

/**
* Assigns elements in an eight-dimensional input ndarray to elements in an eight-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_8d( struct ndarray *arrays[], void *data );

/**
* Assigns elements in an eight-dimensional input ndarray to elements in an eight-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_8d_blocked( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a nine-dimensional input ndarray to elements in a nine-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_9d( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a nine-dimensional input ndarray to elements in a nine-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_9d_blocked( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a ten-dimensional input ndarray to elements in a ten-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_10d( struct ndarray *arrays[], void *data );

/**
* Assigns elements in a ten-dimensional input ndarray to elements in a ten-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_10d_blocked( struct ndarray *arrays[], void *data );

/**
* Assigns elements in an n-dimensional input ndarray to elements in an n-dimensional output ndarray.
*/
int8_t stdlib_ndarray_assign_{{SIGNATURE}}_nd( struct ndarray *arrays[], void *data );

#ifdef __cplusplus
}
#endif

#endif // !STDLIB_NDARRAY_BASE_ASSIGN_{{INCLUDE_GUARD}}_H
