1 // Copyright (c) Facebook, Inc. and its affiliates.
2 // All rights reserved.
3 //
4 // Copyright 2019 Google LLC
5 //
6 // This source code is licensed under the BSD-style license found in the
7 // LICENSE file in the root directory of this source tree.
8 
9 #pragma once
10 
11 #include <stddef.h>
12 #include <stdint.h>
13 #include <stdbool.h>
14 
15 #include <xnnpack.h>
16 #include <xnnpack/common.h>
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 XNN_INTERNAL void xnn_indirection_init_conv2d(
23   xnn_operator_t op,
24   size_t output_tile_size,
25   uint32_t log2_element_size);
26 
27 XNN_INTERNAL void xnn_indirection_init_dwconv2d(
28   xnn_operator_t op,
29   size_t step_height,
30   size_t step_width,
31   uint32_t log2_element_size);
32 
33 XNN_INTERNAL void xnn_indirection_init_deconv2d(
34   xnn_operator_t op,
35   size_t output_tile_size,
36   uint32_t log2_element_size);
37 
38 XNN_INTERNAL void xnn_indirection_init_subconv2d(
39   xnn_operator_t op,
40   size_t output_tile_size,
41   uint32_t log2_element_size);
42 
43 XNN_INTERNAL void xnn_indirection_init_maxpool2d(
44   xnn_operator_t op,
45   size_t step_height,
46   size_t step_width,
47   uint32_t log2_element_size);
48 
49 XNN_INTERNAL void xnn_indirection_init_resize_bilinear2d_hwc_f32(
50   size_t input_pixel_stride,
51   size_t input_height,
52   size_t input_width,
53   size_t output_height,
54   size_t output_width,
55   const void* input,
56   const void** indirection_buffer,
57   float* packed_weights,
58   bool align_corners,
59   bool tensorflow_legacy);
60 
61 XNN_INTERNAL void xnn_indirection_init_resize_bilinear2d_chw_f32(
62   size_t input_pixel_stride,
63   size_t input_height,
64   size_t input_width,
65   size_t output_height,
66   size_t output_width,
67   const void* input,
68   const void** indirection_buffer,
69   float* packed_weights,
70   bool align_corners,
71   bool tensorflow_legacy);
72 
73 XNN_INTERNAL void xnn_indirection_init_unpool2d(
74   xnn_operator_t op,
75   size_t batch_start,
76   uint32_t log2_element_size);
77 
78 #ifdef __cplusplus
79 }  // extern "C"
80 #endif
81