Coverage Report

Created: 2022-07-27 23:53

/home/liu/buildslave/linux-x64-runtests/build/lib/nnc/ccv_nnc_easy.h
Line
Count
Source (jump to first uncovered line)
1
/**********************************************************
2
 * C-based/Cached/Core Computer Vision Library
3
 * Liu Liu, 2010-02-01
4
 **********************************************************/
5
6
/**********************************************************
7
 * CCV - Neural Network Collection
8
 **********************************************************/
9
10
#ifndef GUARD_ccv_nnc_easy_h
11
#define GUARD_ccv_nnc_easy_h
12
13
#include "ccv.h"
14
#include "ccv_internal.h"
15
#include "nnc/ccv_nnc.h"
16
17
/**
18
 * Convenience API
19
 *
20
 * This header provides convenience APIs for nnc usage. Being convenience API,
21
 * it is optimized for shorthand coding, and may collide the naming space with
22
 * others.
23
 *
24
 */
25
// c99 only, make sure your compiler supports that.
26
27
1
#define NOOP_GRAPH_WHILE_EXPR (ccv_nnc_graph_while_f)(1)
28
#define NOOP_GRAPH_CASE_OF_EXPR (ccv_nnc_graph_case_of_f)(1)
29
30
// This is a better LIST_COUNT macro, it generates a list of 1+1+0+0+0 where it is 1 if the parameter presents, and 0 otherwise.
31
// This works better for cases such as LIST_COUNT(1, 2, 3,) where previous macro will get 4 and this one will have correctly
32
// computed result.
33
5.33M
#define LIST_COUNT_01(_0,_1,_2,...) _2
34
5.33M
#define LIST_COUNT_E(...) LIST_COUNT_01(_0,##__VA_ARGS__,1,0)
35
83.2k
#define LIST_COUNT_N(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58,_59,_60,_61,_62,_63,...) (LIST_COUNT_E(_0)+LIST_COUNT_E(_1)+LIST_COUNT_E(_2)+LIST_COUNT_E(_3)+LIST_COUNT_E(_4)+LIST_COUNT_E(_5)+LIST_COUNT_E(_6)+LIST_COUNT_E(_7)+LIST_COUNT_E(_8)+LIST_COUNT_E(_9)+LIST_COUNT_E(_10)+LIST_COUNT_E(_11)+LIST_COUNT_E(_12)+LIST_COUNT_E(_13)+LIST_COUNT_E(_14)+LIST_COUNT_E(_15)+LIST_COUNT_E(_16)+LIST_COUNT_E(_17)+LIST_COUNT_E(_18)+LIST_COUNT_E(_19)+LIST_COUNT_E(_20)+LIST_COUNT_E(_21)+LIST_COUNT_E(_22)+LIST_COUNT_E(_23)+LIST_COUNT_E(_24)+LIST_COUNT_E(_25)+LIST_COUNT_E(_26)+LIST_COUNT_E(_27)+LIST_COUNT_E(_28)+LIST_COUNT_E(_29)+LIST_COUNT_E(_30)+LIST_COUNT_E(_31)+LIST_COUNT_E(_32)+LIST_COUNT_E(_33)+LIST_COUNT_E(_34)+LIST_COUNT_E(_35)+LIST_COUNT_E(_36)+LIST_COUNT_E(_37)+LIST_COUNT_E(_38)+LIST_COUNT_E(_39)+LIST_COUNT_E(_40)+LIST_COUNT_E(_41)+LIST_COUNT_E(_42)+LIST_COUNT_E(_43)+LIST_COUNT_E(_44)+LIST_COUNT_E(_45)+LIST_COUNT_E(_46)+LIST_COUNT_E(_47)+LIST_COUNT_E(_48)+LIST_COUNT_E(_49)+LIST_COUNT_E(_50)+LIST_COUNT_E(_51)+LIST_COUNT_E(_52)+LIST_COUNT_E(_53)+LIST_COUNT_E(_54)+LIST_COUNT_E(_55)+LIST_COUNT_E(_56)+LIST_COUNT_E(_57)+LIST_COUNT_E(_58)+LIST_COUNT_E(_59)+LIST_COUNT_E(_60)+LIST_COUNT_E(_61)+LIST_COUNT_E(_62)+LIST_COUNT_E(_63)-1)
36
83.2k
#define LIST_COUNT(...) LIST_COUNT_N(_0,##__VA_ARGS__,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
37
38
81.5k
#define LIST_X(_type, ...) (_type []){
__VA_ARGS__10
}
39
40
#define KV_X_2(_x, _y, ...) {(_x), (_y)}
41
#define KV_X_1(_x, ...) {(_x)}
42
#define KV_X_SEL(_1, _2, _FX, ...) _FX
43
#define KV(...) KV_X_SEL(__VA_ARGS__, KV_X_2, KV_X_1)(__VA_ARGS__)
44
45
146
#define LIST_SIZEOF_COUNT(_type, ...) (sizeof(LIST_X(_type, __VA_ARGS__)) / sizeof(_type))
46
47
/**
48
 * @defgroup convenience_api Convenience API
49
 * @{
50
 */
51
/**
52
 * Pass a list of tensors to NNC functions that accepts (tensor array, tensor array size).
53
 * This method effectively gives two parameters as one.
54
 */
55
32.1k
#define TENSOR_LIST(...) LIST_X(ccv_nnc_tensor_t*, __VA_ARGS__), LIST_COUNT(__VA_ARGS__)
56
/**
57
 * Pass a list of tensor parameters to NNC functions that accepts (parameter array, parameter array size).
58
 * This method effectively gives two parameters as one.
59
 */
60
38
#define TENSOR_PARAM_LIST(...) LIST_X(const ccv_nnc_tensor_param_t, __VA_ARGS__), LIST_COUNT(__VA_ARGS__)
61
/**
62
 * This represents a tensor symbol that is empty (tensor = nil)
63
 */
64
#define NO_TENSOR_SYMBOL (const ccv_nnc_tensor_symbol_t){.d = CCV_NNC_NO_TENSOR_SYMBOL}
65
/**
66
 * This represents a graph exec symbol that is empty (exec = nil)
67
 */
68
#define NO_GRAPH_EXEC_SYMBOL (const ccv_nnc_graph_exec_symbol_t){.d = CCV_NNC_NO_GRAPH_EXEC_SYMBOL}
69
/**
70
 * Pass a list of tensor symbols to NNC functions that accepts (tensor symbol array, tensor symbol array size).
71
 * This method effectively gives two parameters as one.
72
 */
73
1.10k
#define TENSOR_SYMBOL_LIST(...) LIST_X(const ccv_nnc_tensor_symbol_t, __VA_ARGS__), LIST_COUNT(__VA_ARGS__)
74
/**
75
 * Pass a list of tensor variables to NNC functions that accepts (tensor variable array, tensor variable array size).
76
 * This method effectively gives two parameters as one.
77
 */
78
46.4k
#define TENSOR_VARIABLE_LIST(...) LIST_X(ccv_nnc_tensor_variable_t, __VA_ARGS__), LIST_COUNT(__VA_ARGS__)
79
/**
80
 * Pass a list of tensor bindings to NNC functions that accepts (tensor binding array, tensor binding array size).
81
 * This method effectively gives two parameters as one. Since tensor binding requires two: symbol and a tensor,
82
 * you should use this like: TENSOR_BIND_MAP(KV(symbol1, tensor1), KV(symbol2, tensor2)).
83
 */
84
30
#define TENSOR_BIND_MAP(...) LIST_X(const ccv_nnc_tensor_bind_t, __VA_ARGS__), LIST_SIZEOF_COUNT(ccv_nnc_tensor_bind_t, __VA_ARGS__)
85
/**
86
 * Pass a list of tensor symbol pairs to NNC functions that accepts (tensor symbol pair array, tensor symbol pair array size).
87
 * This method effectively gives two parameters as one. Since tensor symbol pair requires two: source symbol and destination symbol,
88
 * you should use this like: TENSOR_SYMBOL_MAP(KV(symbol1, symbol2), KV(symbol3, symbol4)).
89
 */
90
54
#define TENSOR_SYMBOL_MAP(...) LIST_X(const ccv_nnc_tensor_symbol_map_t, __VA_ARGS__), LIST_SIZEOF_COUNT(ccv_nnc_tensor_symbol_map_t, __VA_ARGS__)
91
/**
92
 * Pass a list of execution nodes to NNC functions that accepts (execution node array, execution node array size).
93
 * This method effectively gives two parameters as one.
94
 */
95
67
#define GRAPH_EXEC_LIST(...) LIST_X(const ccv_nnc_graph_exec_t, __VA_ARGS__), LIST_COUNT(__VA_ARGS__)
96
/**
97
 * Pass a list of execution node symbols to NNC functions that accepts (execution node symbol array, execution node symbol array size).
98
 * This method effectively gives two parameters as one.
99
 */
100
114
#define GRAPH_EXEC_SYMBOL_LIST(...) LIST_X(const ccv_nnc_graph_exec_symbol_t, __VA_ARGS__), LIST_COUNT(__VA_ARGS__)
101
/**
102
 * Pass both default sources and default sources size to function that accepts (sources, source size).
103
 * @param x A given symbolic graph.
104
 */
105
175
#define SYMBOLIC_GRAPH_SOURCES(x) ccv_nnc_symbolic_graph_sources(x), ccv_nnc_symbolic_graph_source_size(x)
106
/**
107
 * Pass both default destinations and default destinations size to function that accepts (destinations, destination size).
108
 * @param x A given symbolic graph.
109
 */
110
169
#define SYMBOLIC_GRAPH_DESTINATIONS(x) ccv_nnc_symbolic_graph_destinations(x), ccv_nnc_symbolic_graph_destination_size(x)
111
/**
112
 * Pass a list of simplification passes to NNC functions that accepts (pass array, pass array size).
113
 * This method effectively gives two parameters as one.
114
 */
115
8
#define SYMBOLIC_GRAPH_PASSES(...) LIST_X(const int, __VA_ARGS__), LIST_COUNT(__VA_ARGS__)
116
/**
117
 * Pass a list of CNNP models to NNC functions that accepts (model array, model array size).
118
 * This method effectively gives two parameters as one.
119
 */
120
95
#define MODEL_LIST(...) LIST_X(ccv_cnnp_model_t*, __VA_ARGS__), LIST_COUNT(__VA_ARGS__)
121
/**
122
 * Pass a list of CNNP model IOs to NNC functions that accepts (model IO array, model IO array size).
123
 * This method effectively gives two parameters as one.
124
 */
125
996
#define MODEL_IO_LIST(...) LIST_X(const ccv_cnnp_model_io_t, __VA_ARGS__), LIST_COUNT(__VA_ARGS__)
126
/**
127
 * Pass a list of CNNP tensor params to ccv_cnnp_cmd_exec which accepts (tensor params array, tensor params array size).
128
 * This method effectively gives two parameters as one.
129
 */
130
62
#define MODEL_CMD_EXEC_IO_MAP(...) LIST_X(const ccv_cnnp_cmd_exec_io_t, __VA_ARGS__), LIST_SIZEOF_COUNT(ccv_cnnp_cmd_exec_io_t, __VA_ARGS__)
131
/**
132
 * Pass a list of CNNP tensor type to ccv_cnnp_cmd_exec which accepts (tensor type array, tensor type array size).
133
 * This method effectively gives two parameters as one.
134
 */
135
62
#define MODEL_CMD_EXEC_IO_LIST(...) LIST_X(const int, __VA_ARGS__), LIST_COUNT(__VA_ARGS__)
136
/**
137
 * Pass a list of dataframe column ids to iteration function that accepts (column id array, column id array size).
138
 * This method effectively gives two parameters as one.
139
 */
140
79
#define COLUMN_ID_LIST(...) LIST_X(const int, __VA_ARGS__), LIST_COUNT(__VA_ARGS__)
141
142
3.15k
#define TRAVERSE_FULL 0,0,0,0
143
144
82
#define ALL_PARAMETERS -1
145
146
// We will support NUMA allocation on CPU in the future. Currently, this is not very meaningful (except enforce no memory reuse between tensors).
147
13.6k
#define CPU_NUMA_TENSOR_NHWC(device_id, dt, ...) ((ccv_nnc_tensor_param_t){.type=(CCV_COMPUTE_DEVICE_##device_id) | CCV_TENSOR_CPU_MEMORY,.format=CCV_TENSOR_FORMAT_NHWC,.datatype=CCV_##dt,.dim={
__VA_ARGS__72
}})
148
304
#define CPU_NUMA_TENSOR_NCHW(device_id, dt, ...) ((ccv_nnc_tensor_param_t){.type=(CCV_COMPUTE_DEVICE_##device_id) | CCV_TENSOR_CPU_MEMORY,.format=CCV_TENSOR_FORMAT_NCHW,.datatype=CCV_##dt,.dim={__VA_ARGS__}})
149
#define CPU_NUMA_TENSOR_CHWN(device_id, dt, ...) ((ccv_nnc_tensor_param_t){.type=(CCV_COMPUTE_DEVICE_##device_id) | CCV_TENSOR_CPU_MEMORY,.format=CCV_TENSOR_FORMAT_CHWN,.datatype=CCV_##dt,.dim={__VA_ARGS__}})
150
13.6k
#define CPU_TENSOR_NHWC(dt, ...) CPU_NUMA_TENSOR_NHWC(ANY, dt, __VA_ARGS__)
151
304
#define CPU_TENSOR_NCHW(dt, ...) CPU_NUMA_TENSOR_NCHW(ANY, dt, __VA_ARGS__)
152
#define CPU_TENSOR_CHWN(dt, ...) CPU_NUMA_TENSOR_CHWN(ANY, dt, __VA_ARGS__)
153
// This way, we can do error check on the device type :)
154
905
#define GPU_TENSOR_NHWC(device_id, dt, ...) ((ccv_nnc_tensor_param_t){.type=(CCV_COMPUTE_DEVICE_##device_id) | CCV_TENSOR_GPU_MEMORY,.format=CCV_TENSOR_FORMAT_NHWC,.datatype=CCV_##dt,.dim={__VA_ARGS__}})
155
334
#define GPU_TENSOR_NCHW(device_id, dt, ...) ((ccv_nnc_tensor_param_t){.type=(CCV_COMPUTE_DEVICE_##device_id) | CCV_TENSOR_GPU_MEMORY,.format=CCV_TENSOR_FORMAT_NCHW,.datatype=CCV_##dt,.dim={__VA_ARGS__}})
156
#define GPU_TENSOR_CHWN(device_id, dt, ...) ((ccv_nnc_tensor_param_t){.type=(CCV_COMPUTE_DEVICE_##device_id) | CCV_TENSOR_GPU_MEMORY,.format=CCV_TENSOR_FORMAT_CHWN,.datatype=CCV_##dt,.dim={__VA_ARGS__}})
157
/** @} */
158
159
2.49k
#define DIM_ALLOC(...) (int [CCV_NNC_MAX_DIM_ALLOC]){__VA_ARGS__}
160
161
379
#define ESCAPE_X(...) __VA_ARGS__
162
13
#define HINT_X_1(_stride_) ((ccv_nnc_hint_t){.stride={.dim={ESCAPE_X _stride_}}, .border={.begin={0},.end={0}}})
163
122
#define HINT_X_2(_stride_, _border_) ((ccv_nnc_hint_t){.stride={.dim={ESCAPE_X _stride_}}, .border={.begin={ESCAPE_X _border_},.end={ESCAPE_X _border_}}})
164
#define HINT_X_3(_stride_, _begin_, _end_) ((ccv_nnc_hint_t){.stride={.dim={ESCAPE_X _stride_}}, .border={.begin={ESCAPE_X _begin_},.end={ESCAPE_X _end_}}})
165
135
#define HINT_X_SEL(_1, _2, _3, _FX, ...) _FX
166
/**
167
 * @ingroup convenience_api
168
 * Simpler method to create hint.
169
 * HINT(stride), HINT(stride, border), HINT(stride, border begin, border end)
170
 */
171
135
#define HINT(...) HINT_X_SEL(__VA_ARGS__, HINT_X_3, 
HINT_X_2122
,
HINT_X_113
)(__VA_ARGS__)
172
173
static inline size_t ccv_nnc_dimension_count(const int dim[CCV_NNC_MAX_DIM_ALLOC])
174
11
{
175
11
  if (dim[0] == 0)
176
0
    return 0;
177
11
  int i;
178
11
  size_t count = 1;
179
33
  for (i = 0; i < CCV_NNC_MAX_DIM_ALLOC && dim[i] > 0; 
i++22
)
180
22
    count *= dim[i];
181
11
  return count;
182
11
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: upsample.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: concat.tests.c:ccv_nnc_dimension_count
tensor.bind.tests.c:ccv_nnc_dimension_count
Line
Count
Source
174
2
{
175
2
  if (dim[0] == 0)
176
0
    return 0;
177
2
  int i;
178
2
  size_t count = 1;
179
5
  for (i = 0; i < CCV_NNC_MAX_DIM_ALLOC && dim[i] > 0; 
i++3
)
180
3
    count *= dim[i];
181
2
  return count;
182
2
}
Unexecuted instantiation: backward.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: graph.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: dropout.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: custom.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: reduce.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: case_of.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: micro.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: compression.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: transform.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: gemm.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: swish.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: index.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: minimize.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: autograd.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: tensor.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: rand.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: while.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: nms.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: cblas.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: simplify.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: numa.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: loss.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: tape.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: parallel.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: winograd.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: compare.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: forward.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: cublas.tests.c:ccv_nnc_dimension_count
symbolic.graph.vgg.d.tests.c:ccv_nnc_dimension_count
Line
Count
Source
174
5
{
175
5
  if (dim[0] == 0)
176
0
    return 0;
177
5
  int i;
178
5
  size_t count = 1;
179
16
  for (i = 0; i < CCV_NNC_MAX_DIM_ALLOC && dim[i] > 0; 
i++11
)
180
11
    count *= dim[i];
181
5
  return count;
182
5
}
Unexecuted instantiation: imdb.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: lstm.tests.c:ccv_nnc_dimension_count
graph.vgg.d.tests.c:ccv_nnc_dimension_count
Line
Count
Source
174
4
{
175
4
  if (dim[0] == 0)
176
0
    return 0;
177
4
  int i;
178
4
  size_t count = 1;
179
12
  for (i = 0; i < CCV_NNC_MAX_DIM_ALLOC && dim[i] > 0; 
i++8
)
180
8
    count *= dim[i];
181
4
  return count;
182
4
}
Unexecuted instantiation: random.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: cifar.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: sgd.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: nccl.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: schedule.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: adam.tests.c:ccv_nnc_dimension_count
Unexecuted instantiation: lamb.tests.c:ccv_nnc_dimension_count
183
184
static inline size_t ccv_nnc_tensor_count(const ccv_nnc_tensor_param_t params)
185
11
{
186
11
  return ccv_nnc_dimension_count(params.dim);
187
11
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: upsample.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: concat.tests.c:ccv_nnc_tensor_count
tensor.bind.tests.c:ccv_nnc_tensor_count
Line
Count
Source
185
2
{
186
2
  return ccv_nnc_dimension_count(params.dim);
187
2
}
Unexecuted instantiation: backward.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: graph.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: dropout.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: custom.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: reduce.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: case_of.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: micro.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: compression.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: transform.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: gemm.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: swish.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: index.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: minimize.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: autograd.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: tensor.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: rand.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: while.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: nms.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: cblas.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: simplify.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: numa.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: loss.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: tape.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: parallel.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: winograd.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: compare.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: forward.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: cublas.tests.c:ccv_nnc_tensor_count
symbolic.graph.vgg.d.tests.c:ccv_nnc_tensor_count
Line
Count
Source
185
5
{
186
5
  return ccv_nnc_dimension_count(params.dim);
187
5
}
Unexecuted instantiation: imdb.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: lstm.tests.c:ccv_nnc_tensor_count
graph.vgg.d.tests.c:ccv_nnc_tensor_count
Line
Count
Source
185
4
{
186
4
  return ccv_nnc_dimension_count(params.dim);
187
4
}
Unexecuted instantiation: random.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: cifar.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: sgd.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: nccl.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: schedule.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: adam.tests.c:ccv_nnc_tensor_count
Unexecuted instantiation: lamb.tests.c:ccv_nnc_tensor_count
188
189
static inline size_t ccv_nnc_tensor_data_size(const ccv_nnc_tensor_param_t params)
190
2
{
191
2
  return ((CCV_GET_DATA_TYPE_SIZE(params.datatype) * (ssize_t)ccv_nnc_tensor_count(params) + 15) & -16);
192
2
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: upsample.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: concat.tests.c:ccv_nnc_tensor_data_size
tensor.bind.tests.c:ccv_nnc_tensor_data_size
Line
Count
Source
190
2
{
191
2
  return ((CCV_GET_DATA_TYPE_SIZE(params.datatype) * (ssize_t)ccv_nnc_tensor_count(params) + 15) & -16);
192
2
}
Unexecuted instantiation: backward.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: graph.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: dropout.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: custom.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: reduce.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: case_of.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: micro.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: compression.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: transform.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: gemm.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: swish.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: index.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: minimize.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: autograd.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: tensor.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: rand.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: while.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: nms.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: cblas.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: simplify.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: numa.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: loss.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: tape.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: parallel.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: winograd.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: compare.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: forward.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: cublas.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: imdb.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: lstm.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: random.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: cifar.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: sgd.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: nccl.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: schedule.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: adam.tests.c:ccv_nnc_tensor_data_size
Unexecuted instantiation: lamb.tests.c:ccv_nnc_tensor_data_size
193
194
static inline void ccv_nnc_tensor_view_get_dim(const ccv_nnc_tensor_view_t* const tv, int dim[CCV_NNC_MAX_DIM_ALLOC])
195
0
{
196
0
  int x;
197
0
  const int nd = ccv_nnc_tensor_nd(tv->info.dim);
198
0
  const int offset = CCV_NNC_MAX_DIM + 2 - nd;
199
0
  for (x = 0; x < offset; x++)
200
0
    dim[x] = 1;
201
0
  for (x = offset; x < CCV_NNC_MAX_DIM + 2; x++)
202
0
    dim[x] = tv->info.dim[x - offset];
203
0
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: upsample.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: concat.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: tensor.bind.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: backward.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: graph.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: dropout.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: custom.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: reduce.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: case_of.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: micro.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: compression.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: transform.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: gemm.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: swish.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: index.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: minimize.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: autograd.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: tensor.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: rand.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: while.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: nms.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: cblas.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: simplify.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: numa.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: loss.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: tape.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: parallel.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: winograd.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: compare.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: forward.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: cublas.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: imdb.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: lstm.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: random.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: cifar.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: sgd.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: nccl.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: schedule.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: adam.tests.c:ccv_nnc_tensor_view_get_dim
Unexecuted instantiation: lamb.tests.c:ccv_nnc_tensor_view_get_dim
204
205
static inline CCV_WARN_UNUSED(int) ccv_nnc_tensor_view_check_dim(const ccv_nnc_tensor_view_t* const tv, const int dim[CCV_NNC_MAX_DIM_ALLOC])
206
0
{
207
0
  int x;
208
0
  const int nd = ccv_nnc_tensor_nd(tv->info.dim);
209
0
  const int offset = CCV_NNC_MAX_DIM + 2 - nd;
210
0
  for (x = 0; x < offset; x++)
211
0
    if (dim[x] != 1)
212
0
      return 0;
213
0
  for (x = offset; x < CCV_NNC_MAX_DIM + 2; x++)
214
0
    if (dim[x] != tv->info.dim[x - offset])
215
0
      return 0;
216
0
  return 1;
217
0
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: upsample.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: concat.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: tensor.bind.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: backward.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: graph.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: dropout.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: custom.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: reduce.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: case_of.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: micro.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: compression.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: transform.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: gemm.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: swish.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: index.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: minimize.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: autograd.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: tensor.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: rand.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: while.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: nms.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: cblas.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: simplify.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: numa.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: loss.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: tape.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: parallel.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: winograd.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: compare.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: forward.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: cublas.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: imdb.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: lstm.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: random.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: cifar.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: sgd.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: nccl.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: schedule.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: adam.tests.c:ccv_nnc_tensor_view_check_dim
Unexecuted instantiation: lamb.tests.c:ccv_nnc_tensor_view_check_dim
218
219
static inline void ccv_nnc_tensor_view_get_broadcast_dim(const ccv_nnc_tensor_view_t* const tv, int dim[CCV_NNC_MAX_DIM_ALLOC])
220
0
{
221
0
  int x;
222
0
  const int nd = ccv_nnc_tensor_nd(tv->info.dim);
223
0
  const int offset = CCV_NNC_MAX_DIM + 2 - nd;
224
0
  for (x = 0; x < offset; x++)
225
0
    dim[x] = ccv_max(1, dim[x]);
226
0
  for (x = offset; x < CCV_NNC_MAX_DIM + 2; x++)
227
0
    dim[x] = ccv_max(dim[x], tv->info.dim[x - offset]);
228
0
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: upsample.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: concat.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: tensor.bind.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: backward.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: graph.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: dropout.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: custom.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: reduce.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: case_of.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: micro.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: compression.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: transform.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: gemm.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: swish.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: index.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: minimize.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: autograd.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: tensor.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: rand.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: while.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: nms.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: cblas.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: simplify.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: numa.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: loss.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: tape.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: parallel.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: winograd.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: compare.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: forward.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: cublas.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: imdb.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: lstm.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: random.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: cifar.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: sgd.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: nccl.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: schedule.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: adam.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
Unexecuted instantiation: lamb.tests.c:ccv_nnc_tensor_view_get_broadcast_dim
229
230
static inline CCV_WARN_UNUSED(int) ccv_nnc_tensor_view_check_broadcast_dim(const ccv_nnc_tensor_view_t* const tv, int dim[CCV_NNC_MAX_DIM_ALLOC])
231
0
{
232
0
  int x;
233
0
  const int nd = ccv_nnc_tensor_nd(tv->info.dim);
234
0
  const int offset = CCV_NNC_MAX_DIM + 2 - nd;
235
0
  for (x = offset; x < CCV_NNC_MAX_DIM + 2; x++)
236
0
    if (dim[x] != tv->info.dim[x - offset] && tv->info.dim[x - offset] != 1)
237
0
      return 0;
238
0
  return 1;
239
0
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: upsample.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: concat.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: tensor.bind.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: backward.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: graph.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: dropout.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: custom.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: reduce.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: case_of.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: micro.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: compression.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: transform.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: gemm.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: swish.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: index.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: minimize.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: autograd.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: tensor.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: rand.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: while.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: nms.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: cblas.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: simplify.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: numa.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: loss.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: tape.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: parallel.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: winograd.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: compare.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: forward.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: cublas.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: imdb.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: lstm.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: random.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: cifar.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: sgd.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: nccl.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: schedule.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: adam.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
Unexecuted instantiation: lamb.tests.c:ccv_nnc_tensor_view_check_broadcast_dim
240
241
static inline void ccv_nnc_tensor_view_get_inc(const ccv_nnc_tensor_view_t* const tv, int inc[CCV_NNC_MAX_DIM_ALLOC])
242
0
{
243
0
  int x;
244
0
  const int nd = ccv_nnc_tensor_nd(tv->info.dim);
245
0
  const int offset = CCV_NNC_MAX_DIM + 2 - nd;
246
0
  for (x = 0; x < offset; x++)
247
0
    inc[x] = 1;
248
0
  for (x = offset; x < CCV_NNC_MAX_DIM + 2; x++)
249
0
    inc[x] = CCV_IS_TENSOR_VIEW(tv) ? tv->inc[x - offset] : tv->info.dim[x - offset];
250
0
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: upsample.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: concat.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: tensor.bind.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: backward.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: graph.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: dropout.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: custom.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: reduce.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: case_of.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: micro.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: compression.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: transform.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: gemm.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: swish.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: index.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: minimize.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: autograd.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: tensor.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: rand.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: while.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: nms.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: cblas.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: simplify.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: numa.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: loss.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: tape.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: parallel.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: winograd.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: compare.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: forward.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: cublas.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: imdb.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: lstm.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: random.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: cifar.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: sgd.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: nccl.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: schedule.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: adam.tests.c:ccv_nnc_tensor_view_get_inc
Unexecuted instantiation: lamb.tests.c:ccv_nnc_tensor_view_get_inc
251
252
static inline int ccv_nnc_tensor_get_n(const ccv_nnc_tensor_param_t params)
253
0
{
254
0
  switch (params.format)
255
0
  {
256
0
    case CCV_TENSOR_FORMAT_NHWC:
257
0
    case CCV_TENSOR_FORMAT_NCHW:
258
0
      if (ccv_nnc_tensor_nd(params.dim) == CCV_NNC_MAX_DIM + 1)
259
0
        return 1;
260
0
      else
261
0
        return params.dim[0];
262
0
    case CCV_TENSOR_FORMAT_CHWN:
263
0
      return params.dim[CCV_NNC_MAX_DIM + 1];
264
0
  }
265
0
  return 0;
266
0
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: upsample.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: concat.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: tensor.bind.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: backward.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: graph.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: dropout.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: custom.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: reduce.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: case_of.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: micro.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: compression.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: transform.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: gemm.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: swish.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: index.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: minimize.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: autograd.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: tensor.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: rand.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: while.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: nms.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: cblas.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: simplify.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: numa.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: loss.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: tape.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: parallel.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: winograd.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: compare.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: forward.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: cublas.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: imdb.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: lstm.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: random.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: cifar.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: sgd.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: nccl.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: schedule.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: adam.tests.c:ccv_nnc_tensor_get_n
Unexecuted instantiation: lamb.tests.c:ccv_nnc_tensor_get_n
267
268
static inline int ccv_nnc_tensor_get_c(const ccv_nnc_tensor_param_t params)
269
0
{
270
0
  switch (params.format)
271
0
  {
272
0
    case CCV_TENSOR_FORMAT_NHWC:
273
0
      return params.dim[ccv_nnc_tensor_nd(params.dim) - 1];
274
0
    case CCV_TENSOR_FORMAT_NCHW:
275
0
      if (ccv_nnc_tensor_nd(params.dim) == CCV_NNC_MAX_DIM + 1)
276
0
        return params.dim[0];
277
0
      else
278
0
        return params.dim[1];
279
0
    case CCV_TENSOR_FORMAT_CHWN:
280
0
      return params.dim[0];
281
0
  }
282
0
  return 0;
283
0
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: upsample.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: concat.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: tensor.bind.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: backward.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: graph.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: dropout.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: custom.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: reduce.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: case_of.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: micro.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: compression.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: transform.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: gemm.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: swish.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: index.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: minimize.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: autograd.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: tensor.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: rand.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: while.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: nms.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: cblas.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: simplify.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: numa.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: loss.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: tape.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: parallel.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: winograd.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: compare.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: forward.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: cublas.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: imdb.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: lstm.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: random.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: cifar.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: sgd.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: nccl.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: schedule.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: adam.tests.c:ccv_nnc_tensor_get_c
Unexecuted instantiation: lamb.tests.c:ccv_nnc_tensor_get_c
284
285
static inline void ccv_nnc_tensor_set_n(ccv_nnc_tensor_param_t* const params, const int n)
286
0
{
287
0
  switch (params->format)
288
0
  {
289
0
    case CCV_TENSOR_FORMAT_NHWC:
290
0
    case CCV_TENSOR_FORMAT_NCHW:
291
0
      params->dim[0] = n;
292
0
      break;
293
0
    case CCV_TENSOR_FORMAT_CHWN:
294
0
      params->dim[CCV_NNC_MAX_DIM + 1] = n;
295
0
      break;
296
0
  }
297
0
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: upsample.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: concat.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: tensor.bind.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: backward.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: graph.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: dropout.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: custom.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: reduce.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: case_of.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: micro.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: compression.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: transform.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: gemm.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: swish.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: index.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: minimize.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: autograd.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: tensor.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: rand.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: while.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: nms.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: cblas.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: simplify.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: numa.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: loss.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: tape.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: parallel.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: winograd.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: compare.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: forward.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: cublas.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: imdb.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: lstm.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: random.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: cifar.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: sgd.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: nccl.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: schedule.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: adam.tests.c:ccv_nnc_tensor_set_n
Unexecuted instantiation: lamb.tests.c:ccv_nnc_tensor_set_n
298
299
static inline void ccv_nnc_tensor_set_c(ccv_nnc_tensor_param_t* const params, const int nd, const int c)
300
0
{
301
0
  switch (params->format)
302
0
  {
303
0
    case CCV_TENSOR_FORMAT_NHWC:
304
0
      params->dim[nd - 1] = c;
305
0
      break;
306
0
    case CCV_TENSOR_FORMAT_NCHW:
307
0
      if (nd == CCV_NNC_MAX_DIM + 1)
308
0
        params->dim[0] = c;
309
0
      else
310
0
        params->dim[1] = c;
311
0
      break;
312
0
    case CCV_TENSOR_FORMAT_CHWN:
313
0
      params->dim[0] = c;
314
0
      break;
315
0
  }
316
0
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: upsample.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: concat.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: tensor.bind.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: backward.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: graph.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: dropout.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: custom.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: reduce.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: case_of.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: micro.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: compression.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: transform.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: gemm.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: swish.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: index.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: minimize.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: autograd.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: tensor.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: rand.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: while.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: nms.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: cblas.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: simplify.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: numa.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: loss.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: tape.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: parallel.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: winograd.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: compare.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: forward.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: cublas.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: imdb.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: lstm.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: random.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: cifar.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: sgd.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: nccl.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: schedule.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: adam.tests.c:ccv_nnc_tensor_set_c
Unexecuted instantiation: lamb.tests.c:ccv_nnc_tensor_set_c
317
318
static inline int ccv_nnc_is_matrix_transpose(const ccv_nnc_tensor_param_t params, const int transpose[2])
319
0
{
320
0
  const int nd = ccv_nnc_tensor_nd(params.dim);
321
0
  assert(nd >= 1 && nd <= 3);
322
0
  if (transpose[0] != transpose[1])
323
0
  {
324
0
    assert(nd > 1);
325
0
    assert(((transpose[0] == ((nd == 2) ? 0 : 1)) && (transpose[1] == ((nd == 2) ? 1 : 2))) ||
326
0
      ((transpose[1] == ((nd == 2) ? 0 : 1)) && (transpose[0] == ((nd == 2) ? 1 : 2))));
327
0
    return 1;
328
0
  }
329
0
  return 0;
330
0
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: upsample.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: concat.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: tensor.bind.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: backward.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: graph.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: dropout.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: custom.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: reduce.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: case_of.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: micro.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: compression.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: transform.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: gemm.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: swish.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: index.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: minimize.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: autograd.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: tensor.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: rand.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: while.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: nms.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: cblas.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: simplify.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: numa.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: loss.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: tape.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: parallel.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: winograd.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: compare.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: forward.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: cublas.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: imdb.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: lstm.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: random.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: cifar.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: sgd.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: nccl.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: schedule.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: adam.tests.c:ccv_nnc_is_matrix_transpose
Unexecuted instantiation: lamb.tests.c:ccv_nnc_is_matrix_transpose
331
332
// Assuming this is batched matrix. Getting relevant parameters.
333
static inline void ccv_nnc_tensor_get_matrix_params(const ccv_nnc_tensor_param_t params, const int* const inc, const int transpose[2], int* const batch_size_ref, int* const rows_ref, int* const cols_ref, int* const batch_inc_ref, int* const rows_inc_ref, int* const cols_inc_ref)
334
0
{
335
0
  const int nd = ccv_nnc_tensor_nd(params.dim);
336
0
  assert(nd >= 1 && nd <= 3);
337
0
  *batch_size_ref = nd < 3 ? 1 : params.dim[0];
338
0
  *batch_inc_ref = nd < 3 ? 0 : inc[1] * inc[2];
339
0
  int rows = nd == 1 ? 1 : (nd == 2 ? params.dim[0] : params.dim[1]);
340
0
  int rows_inc = inc[nd - 1];
341
0
  int cols = nd == 1 ? params.dim[0] :(nd == 2 ? params.dim[1] : params.dim[2]);
342
0
  int cols_inc = 1;
343
0
  if (transpose[0] != transpose[1])
344
0
  {
345
0
    assert(nd > 1);
346
0
    assert(((transpose[0] == ((nd == 2) ? 0 : 1)) && (transpose[1] == ((nd == 2) ? 1 : 2))) ||
347
0
      ((transpose[1] == ((nd == 2) ? 0 : 1)) && (transpose[0] == ((nd == 2) ? 1 : 2))));
348
0
    int t;
349
0
    CCV_SWAP(rows, cols, t);
350
0
    CCV_SWAP(rows_inc, cols_inc, t);
351
0
  }
352
0
  *rows_ref = rows;
353
0
  *cols_ref = cols;
354
0
  *rows_inc_ref = rows_inc;
355
0
  *cols_inc_ref = cols_inc;
356
0
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: upsample.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: concat.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: tensor.bind.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: backward.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: graph.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: dropout.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: custom.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: reduce.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: case_of.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: micro.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: compression.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: transform.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: gemm.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: swish.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: index.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: minimize.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: autograd.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: tensor.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: rand.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: while.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: nms.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: cblas.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: simplify.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: numa.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: loss.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: tape.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: parallel.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: winograd.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: compare.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: forward.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: cublas.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: imdb.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: lstm.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: random.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: cifar.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: sgd.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: nccl.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: schedule.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: adam.tests.c:ccv_nnc_tensor_get_matrix_params
Unexecuted instantiation: lamb.tests.c:ccv_nnc_tensor_get_matrix_params
357
358
static inline CCV_WARN_UNUSED(ccv_nnc_tensor_view_t) ccv_nnc_get_tensor_view(const ccv_nnc_tensor_t* const tensor)
359
0
{
360
0
  if (CCV_IS_TENSOR_VIEW(tensor))
361
0
    return (ccv_nnc_tensor_view_t)*(ccv_nnc_tensor_view_t*)tensor;
362
0
  ccv_nnc_tensor_view_t tv;
363
0
  memcpy(&tv, tensor, sizeof(ccv_nnc_tensor_t));
364
0
  return tv;
365
0
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: upsample.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: concat.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: tensor.bind.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: backward.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: graph.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: dropout.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: custom.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: reduce.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: case_of.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: micro.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: compression.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: transform.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: gemm.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: swish.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: index.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: minimize.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: autograd.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: tensor.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: rand.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: while.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: nms.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: cblas.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: simplify.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: numa.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: loss.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: tape.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: parallel.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: winograd.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: compare.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: forward.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: cublas.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: imdb.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: lstm.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: random.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: cifar.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: sgd.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: nccl.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: schedule.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: adam.tests.c:ccv_nnc_get_tensor_view
Unexecuted instantiation: lamb.tests.c:ccv_nnc_get_tensor_view
366
367
static inline void ccv_nnc_tensor_view_alignment(ccv_nnc_tensor_view_t** const tvs, const int tv_size)
368
0
{
369
0
  int i, j;
370
0
  int max_nd = 0;
371
0
  for (i = 0; i < tv_size; i++)
372
0
    max_nd = ccv_max(ccv_nnc_tensor_nd(tvs[i]->info.dim), max_nd);
373
0
  for (i = 0; i < tv_size; i++)
374
0
  {
375
0
    const int nd = ccv_nnc_tensor_nd(tvs[i]->info.dim);
376
0
    for (j = max_nd - 1; j >= max_nd - nd; j--)
377
0
      tvs[i]->info.dim[j] = tvs[i]->info.dim[j - max_nd + nd];
378
0
    for (j = 0; j < max_nd - nd; j++)
379
0
      tvs[i]->info.dim[j] = 1;
380
0
    if (!CCV_IS_TENSOR_VIEW(tvs[i]))
381
0
      continue;
382
0
    for (j = max_nd - 1; j >= max_nd - nd; j--)
383
0
      tvs[i]->inc[j] = tvs[i]->inc[j - max_nd + nd];
384
0
    for (j = 0; j < max_nd - nd; j++)
385
0
      tvs[i]->inc[j] = 1;
386
0
  }
387
0
}
Unexecuted instantiation: gradient.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: upsample.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: concat.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: tensor.bind.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: backward.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: graph.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: case_of.backward.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: while.backward.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: autograd.vector.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: dropout.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: custom.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: reduce.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: batch.norm.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: crossentropy.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: cnnp.core.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: symbolic.graph.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: case_of.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: micro.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: compression.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: transform.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: dataframe.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: gemm.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: roi_align.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: swish.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: index.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: minimize.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: symbolic.graph.compile.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: autograd.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: tensor.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: rand.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: while.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: nms.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: graph.io.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: cblas.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: simplify.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: numa.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: loss.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: tape.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: dynamic.graph.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: layer.norm.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: parallel.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: winograd.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: dataframe.addons.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: broadcast.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: compare.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: smooth_l1.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: forward.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: cublas.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: symbolic.graph.vgg.d.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: imdb.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: lstm.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: graph.vgg.d.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: random.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: cudnn.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: dense.net.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: cifar.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: rmsprop.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: sgd.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: nccl.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: schedule.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: adam.tests.c:ccv_nnc_tensor_view_alignment
Unexecuted instantiation: lamb.tests.c:ccv_nnc_tensor_view_alignment
388
389
390
26
#define TRANSPOSE(_X, _Y) ((int[]){(_X),(_Y)})
391
20
#define NO_TRANSPOSE TRANSPOSE(0, 0)
392
2.14k
#define CMD_GEMM_X(_0, _TA, _TB, ...) ((ccv_nnc_cmd_param_t){.size={.dim={1,1,1}},.blas={.a={1,1},.transpose_a={_TA[0],_TA[1]},.transpose_b={_TB[0],_TB[1]},}}) // We default to alpha = 1 and beta = 1
393
2.14k
#define CMD_GEMM(...) CMD_GEMM_X(_0, ##__VA_ARGS__, NO_TRANSPOSE, NO_TRANSPOSE)
394
#define CMD_GENERIC_X_0() ((ccv_nnc_cmd_param_t){.size={.dim={1,1,1}}})
395
#define CMD_GENERIC_X_F(...) ("This should not be used, you should have either 0 parameter or 3 parameters for CMD_GENERIC")
396
#define CMD_GENERIC_X_3(...) ((ccv_nnc_cmd_param_t){.size={.dim={__VA_ARGS__}}})
397
#define CMD_GENERIC_X_SEL(_0, _1, _2, _3, _FX, ...) _FX
398
// Using ## so that if it is empty, we omit one comma.
399
#define CMD_GENERIC(...) CMD_GENERIC_X_SEL(CMD_GENERIC_X_F, ##__VA_ARGS__, CMD_GENERIC_X_3, CMD_GENERIC_X_F, CMD_GENERIC_X_F, CMD_GENERIC_X_0)(__VA_ARGS__)
400
2.03k
#define CMD_REDUCE(...) ((ccv_nnc_cmd_param_t){.size={.dim={1,1,1}},.reduce={.count=LIST_COUNT(__VA_ARGS__),.axis={__VA_ARGS__}}})
401
/**
402
 * @defgroup available_commands Available Commands
403
 * @{
404
 */
405
79
#define CMD_NOOP() ccv_nnc_cmd(CCV_NNC_NOOP, 0, ccv_nnc_cmd_auto, 0)
406
1
#define CMD_CUSTOM_FORWARD(f) ccv_nnc_cmd(CCV_NNC_CUSTOM_FORWARD, f, ccv_nnc_cmd_auto, 0)
407
/** @} */
408
409
int ccv_nnc_is_no_hint(const ccv_nnc_hint_t hint);
410
int ccv_nnc_is_cmd_auto(const ccv_nnc_cmd_param_t params);
411
int ccv_nnc_is_tensor_auto(const ccv_nnc_tensor_param_t params);
412
413
/**
414
 * @addtogroup convenience_api
415
 * @{
416
 */
417
/**
418
 * Offsets all zero.
419
 */
420
extern const int ccv_nnc_no_ofs[CCV_NNC_MAX_DIM_ALLOC];
421
/**
422
 * No hint available.
423
 */
424
extern const ccv_nnc_hint_t ccv_nnc_no_hint;
425
/**
426
 * The default symbolic graph compile parameters.
427
 */
428
extern const ccv_nnc_symbolic_graph_compile_param_t ccv_nnc_default_compile_params;
429
/**
430
 * Derive the command parameters automatically if possible.
431
 */
432
extern const ccv_nnc_cmd_param_t ccv_nnc_cmd_auto;
433
/**
434
 * Derive the tensor parameters automatically if possible.
435
 */
436
extern const ccv_nnc_tensor_param_t ccv_nnc_tensor_auto;
437
/** @} */
438
439
// Generated command flags for easy creation of ccv_nnc_cmd_t objects.
440
#include "cmd/ccv_nnc_cmd_easy.h"
441
442
#endif