#pragma once
#include <stddef.h>
#include "xnnpack.h"
#include "xnnpack/common.h"
#ifdef __cplusplus
extern "C" {
#endif
void xnn_normalize_slice(
size_t num_dims,
const size_t offsets[XNN_MIN_ELEMENTS(1)],
const size_t sizes[XNN_MIN_ELEMENTS(1)],
const size_t input_shape[XNN_MIN_ELEMENTS(1)],
size_t normalized_offsets[XNN_MIN_ELEMENTS(XNN_MAX_TENSOR_DIMS)],
size_t normalized_input_shape[XNN_MIN_ELEMENTS(XNN_MAX_TENSOR_DIMS)],
size_t normalized_output_shape[XNN_MIN_ELEMENTS(XNN_MAX_TENSOR_DIMS)],
size_t* num_normalized_dims);
void xnn_normalize_transpose_permutation(
size_t num_dims,
size_t element_size,
const size_t* perm,
const size_t* shape,
const size_t* input_stride,
const size_t* output_stride,
size_t* normalized_num_dims,
size_t* normalized_element_size,
size_t* normalized_perm,
size_t* normalized_shape,
size_t* normalized_input_stride,
size_t* normalized_output_stride);
void xnn_normalize_reduction(
size_t* num_reduction_axes_ptr,
size_t* reduction_axes,
size_t* num_input_dims_ptr,
size_t* input_dims);
#ifdef __cplusplus
}
#endif