#include <assert.h>
#include <inttypes.h>
#include <math.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include "xnnpack.h"
#include "xnnpack/allocation-type.h"
#include "xnnpack/common.h"
#include "xnnpack/config-types.h"
#include "xnnpack/config.h"
#include "xnnpack/log.h"
#include "xnnpack/math.h"
#include "xnnpack/packq.h"
#include "xnnpack/params.h"
#include "xnnpack/subgraph.h"
static void set_allocation_type(struct xnn_value* value)
{ … }
static void set_shape(struct xnn_value* value, size_t num_dims, const size_t* dims)
{ … }
static enum xnn_status check_zero_point(
enum xnn_datatype datatype,
int32_t zero_point)
{ … }
enum xnn_status xnn_define_tensor_value(
xnn_subgraph_t subgraph,
enum xnn_datatype datatype,
size_t num_dims,
const size_t* dims,
const void* data,
uint32_t external_id,
uint32_t flags,
uint32_t* id_out)
{ … }
enum xnn_status xnn_define_quantized_tensor_value(
xnn_subgraph_t subgraph,
enum xnn_datatype datatype,
int32_t zero_point,
float scale,
size_t num_dims,
const size_t* dims,
const void* data,
uint32_t external_id,
uint32_t flags,
uint32_t* id_out)
{ … }
enum xnn_status xnn_define_dynamically_quantized_tensor_value(
xnn_subgraph_t subgraph,
enum xnn_datatype datatype,
size_t num_dims,
size_t num_nonbatch_dims,
const size_t* dims,
uint32_t external_id,
uint32_t flags,
uint32_t* id_out)
{ … }
enum xnn_status xnn_define_channelwise_quantized_tensor_value(
xnn_subgraph_t subgraph,
enum xnn_datatype datatype,
const float* scale,
size_t num_dims,
size_t channel_dim,
const size_t* dims,
const void* data,
uint32_t external_id,
uint32_t flags,
uint32_t* id_out)
{ … }
enum xnn_status xnn_validate_quantized_tensor(
enum xnn_datatype datatype,
int32_t zero_point,
float scale,
size_t num_dims,
const size_t* dims)
{ … }
enum xnn_status xnn_validate_channelwise_quantized_tensor(
enum xnn_datatype datatype,
int32_t zero_point,
const float* scale,
size_t num_dims,
size_t channel_dim,
const size_t* dims)
{ … }
enum xnn_status xnn_define_channelwise_quantized_tensor_value_v2(
xnn_subgraph_t subgraph,
enum xnn_datatype datatype,
int32_t zero_point,
const float* scale,
size_t num_dims,
size_t channel_dim,
const size_t* dims,
const void* data,
uint32_t external_id,
uint32_t flags,
uint32_t* id_out)
{ … }
enum xnn_status xnn_define_blockwise_quantized_tensor_value(
xnn_subgraph_t subgraph,
enum xnn_datatype datatype,
int32_t zero_point,
const uint16_t* scale,
size_t num_dims,
size_t channel_dim,
size_t block_size,
const size_t* dims,
const void* data,
uint32_t external_id,
uint32_t flags,
uint32_t* id_out)
{ … }
size_t xnn_shape_multiply_all_dims(
const struct xnn_shape shape[restrict XNN_MIN_ELEMENTS(1)])
{ … }
size_t xnn_shape_multiply_batch_dims(
const struct xnn_shape shape[restrict XNN_MIN_ELEMENTS(1)],
size_t num_nonbatch_dims)
{ … }
size_t xnn_shape_multiply_non_channel_dims(
const struct xnn_shape shape[restrict XNN_MIN_ELEMENTS(1)])
{ … }
size_t xnn_shape_multiply_leading_dims(
const struct xnn_shape shape[restrict XNN_MIN_ELEMENTS(1)],
size_t num_leading_dims)
{ … }
size_t xnn_shape_multiply_trailing_dims(
const struct xnn_shape shape[1],
size_t start_dim)
{ … }
size_t xnn_tensor_get_size(const struct xnn_value* value)
{ … }
size_t xnn_tensor_get_dynamic_quant_param_size(const struct xnn_value* value)
{ … }
size_t xnn_tensor_get_size_by_id(xnn_subgraph_t subgraph, uint32_t value_id)
{ … }