Caffe2 - C++ API
A deep learning, cross platform ML framework
THCUNN.h
1 #ifndef THC_GENERIC_FILE
2 #define THC_GENERIC_FILE "THCUNN/generic/THCUNN.h"
3 #else
4 
5 #include <ATen/core/Reduction.h>
6 
7 THC_API void THNN_(Abs_updateOutput)(
8  THCState *state,
9  THCTensor *input,
10  THCTensor *output);
11 
12 THC_API void THNN_(Abs_updateGradInput)(
13  THCState *state,
14  THCTensor *input,
15  THCTensor *gradOutput,
16  THCTensor *gradInput);
17 
18 THC_API void THNN_(AbsCriterion_updateOutput)(
19  THCState *state,
20  THCTensor *input,
21  THCTensor *target,
22  THCTensor *output,
23  int64_t reduction);
24 
25 THC_API void THNN_(AbsCriterion_updateGradInput)(
26  THCState *state,
27  THCTensor *input,
28  THCTensor *target,
29  THCTensor *gradOutput,
30  THCTensor *gradInput,
31  int64_t reduction);
32 
33 THC_API void THNN_(BCECriterion_updateOutput)(
34  THCState *state,
35  THCTensor *input,
36  THCTensor *target,
37  THCTensor *output,
38  int64_t reduction,
39  THCTensor *weights); // [OPTIONAL]
40 
41 THC_API void THNN_(BCECriterion_updateGradInput)(
42  THCState *state,
43  THCTensor *input,
44  THCTensor *target,
45  THCTensor *gradOutput,
46  THCTensor *gradInput,
47  int64_t reduction,
48  THCTensor *weights); // [OPTIONAL]
49 
50 THC_API void THNN_(ClassNLLCriterion_updateOutput)(
51  THCState *state,
52  THCTensor *input,
53  THCIndexTensor *target,
54  THCTensor *output,
55  int64_t reduction,
56  THCTensor *weights, // [OPTIONAL]
57  THCTensor *total_weight,
58  int64_t ignore_index);
59 
60 THC_API void THNN_(ClassNLLCriterion_updateGradInput)(
61  THCState *state,
62  THCTensor *input,
63  THCIndexTensor *target,
64  THCTensor *gradOutput,
65  THCTensor *gradInput,
66  int64_t reduction,
67  THCTensor *weights, // [OPTIONAL]
68  THCTensor *total_weight,
69  int64_t ignore_index);
70 
71 THC_API void THNN_(DistKLDivCriterion_updateOutput)(
72  THCState *state,
73  THCTensor *input,
74  THCTensor *target,
75  THCTensor *output,
76  int64_t reduction);
77 
78 THC_API void THNN_(DistKLDivCriterion_updateGradInput)(
79  THCState *state,
80  THCTensor *input,
81  THCTensor *target,
82  THCTensor *gradOutput,
83  THCTensor *gradInput,
84  int64_t reduction);
85 
86 THC_API void THNN_(ELU_updateOutput)(
87  THCState *state,
88  THCTensor *input,
89  THCTensor *output,
90  accreal alpha,
91  accreal scale,
92  accreal input_scale,
93  bool inplace);
94 
95 THC_API void THNN_(ELU_updateGradInput)(
96  THCState *state,
97  THCTensor *gradOutput,
98  THCTensor *gradInput,
99  THCTensor *output,
100  accreal alpha,
101  accreal scale,
102  accreal input_scale);
103 
104 THC_API void THNN_(FeatureLPPooling_updateOutput)(
105  THCState* state,
106  THCTensor* inputTH,
107  THCTensor* outputTH,
108  accreal power,
109  int width,
110  int stride,
111  bool batchMode);
112 
113 THC_API void THNN_(FeatureLPPooling_updateGradInput)(
114  THCState* state,
115  THCTensor* gradOutputTH,
116  THCTensor* inputTH,
117  THCTensor* outputTH,
118  THCTensor* gradInputTH,
119  accreal power,
120  int width,
121  int stride,
122  bool batchMode);
123 
124 THC_API void THNN_(HardTanh_updateOutput)(
125  THCState *state,
126  THCTensor *input,
127  THCTensor *output,
128  accreal min_val,
129  accreal max_val,
130  bool inplace);
131 
132 THC_API void THNN_(HardTanh_updateGradInput)(
133  THCState *state,
134  THCTensor *input,
135  THCTensor *gradOutput,
136  THCTensor *gradInput,
137  accreal min_val,
138  accreal max_val,
139  bool inplace);
140 
141 THC_API void THNN_(GatedLinear_updateOutput)(
142  THCState *state,
143  THCTensor *input,
144  THCTensor *output,
145  int dim);
146 
147 THC_API void THNN_(GatedLinear_updateGradInput)(
148  THCState *state,
149  THCTensor *input,
150  THCTensor *gradOutput,
151  THCTensor *gradInput,
152  int dim);
153 
154 THC_API void THNN_(Im2Col_updateOutput)(
155  THCState *state,
156  THCTensor *input,
157  THCTensor *output,
158  int64_t kH, int64_t kW,
159  int64_t dH, int64_t dW,
160  int64_t padH, int64_t padW,
161  int64_t sH, int64_t sW);
162 
163 THC_API void THNN_(Im2Col_updateGradInput)(
164  THCState *state,
165  THCTensor *gradOutput,
166  THCTensor *gradInput,
167  int64_t inputHeight, int64_t inputWidth,
168  int64_t kH, int64_t kW,
169  int64_t dH, int64_t dW,
170  int64_t padH, int64_t padW,
171  int64_t sH, int64_t sW);
172 
173 THC_API void THNN_(Col2Im_updateOutput)(
174  THCState *state,
175  THCTensor *input,
176  THCTensor *output,
177  int64_t outputHeight, int64_t outputWidth,
178  int64_t kH, int64_t kW,
179  int64_t dH, int64_t dW,
180  int64_t padH, int64_t padW,
181  int64_t sH, int64_t sW);
182 
183  THC_API void THNN_(Col2Im_updateGradInput)(
184  THCState *state,
185  THCTensor *gradOutput,
186  THCTensor *gradInput,
187  int64_t kH, int64_t kW,
188  int64_t dH, int64_t dW,
189  int64_t padH, int64_t padW,
190  int64_t sH, int64_t sW);
191 
192 THC_API void THNN_(LeakyReLU_updateOutput)(
193  THCState *state,
194  THCTensor *input,
195  THCTensor *output,
196  accreal negval,
197  bool inplace);
198 
199 THC_API void THNN_(LeakyReLU_updateGradInput)(
200  THCState *state,
201  THCTensor *input,
202  THCTensor *gradOutput,
203  THCTensor *gradInput,
204  accreal negval,
205  bool inplace);
206 
207 THC_API void THNN_(LogSigmoid_updateOutput)(
208  THCState *state,
209  THCTensor *input,
210  THCTensor *output,
211  THCTensor *buffer);
212 
213 THC_API void THNN_(LogSigmoid_updateGradInput)(
214  THCState *state,
215  THCTensor *input,
216  THCTensor *gradOutput,
217  THCTensor *gradInput,
218  THCTensor *buffer);
219 
220 THC_API void THNN_(LookupTable_accGradParameters)(
221  THCState *state,
222  THCIndexTensor *input,
223  THCTensor *gradOutput,
224  THCTensor *gradWeight,
225  THCIndexTensor *count,
226  THCIndexTensor *sorted, // [OPTIONAL]
227  THCIndexTensor *indices, // [OPTIONAL]
228  bool scaleGradByFreq,
229  int paddingValue,
230  accreal scale);
231 
232 THC_API void THNN_(LookupTable_renorm)(
233  THCState *state,
234  THCIndexTensor *idx,
235  THCTensor *weight,
236  accreal maxNorm,
237  accreal normType);
238 
239 THC_API void THNN_(LookupTableBag_updateOutput)(
240  THCState *state,
241  THCIndexTensor *input,
242  THCIndexTensor *offsets,
243  THCTensor *weight,
244  THCTensor *output,
245  THCIndexTensor *offset2bag,
246  int mode,
247  THCIndexTensor *seq_length); // [OPTIONAL]
248 
249 THC_API void THNN_(LookupTableBag_accGradParameters)(
250  THCState *state,
251  THCIndexTensor *input,
252  THCTensor *gradOutput,
253  THCTensor *gradWeight,
254  THCIndexTensor *offset2bag,
255  THCIndexTensor *count,
256  THCIndexTensor *sortedIndices,
257  THCIndexTensor *origIndices,
258  bool scaleGradByFreq,
259  int mode,
260  THCIndexTensor *seq_length, // [OPTIONAL]
261  accreal scale_);
262 
263 THC_API void THNN_(L1Cost_updateOutput)(
264  THCState *state,
265  THCTensor *input,
266  THCTensor *output);
267 
268 THC_API void THNN_(L1Cost_updateGradInput)(
269  THCState *state,
270  THCTensor *input,
271  THCTensor *gradOutput, // [OPTIONAL]
272  THCTensor *gradInput);
273 
274 THC_API void THNN_(MarginCriterion_updateOutput)(
275  THCState *state,
276  THCTensor *input,
277  THCTensor *target,
278  THCTensor *output,
279  bool sizeAverage,
280  accreal margin);
281 
282 THC_API void THNN_(MarginCriterion_updateGradInput)(
283  THCState *state,
284  THCTensor *input,
285  THCTensor *target,
286  THCTensor *gradInput,
287  bool sizeAverage,
288  accreal margin);
289 
290 THC_API void THNN_(MSECriterion_updateOutput)(
291  THCState *state,
292  THCTensor *input,
293  THCTensor *target,
294  THCTensor *output,
295  int64_t reduction);
296 
297 THC_API void THNN_(MSECriterion_updateGradInput)(
298  THCState *state,
299  THCTensor *input,
300  THCTensor *target,
301  THCTensor *gradOutput,
302  THCTensor *gradInput,
303  int64_t reduction);
304 
305 THC_API void THNN_(MultiLabelMarginCriterion_updateOutput)(
306  THCState *state,
307  THCTensor *input,
308  THCIndexTensor *target,
309  THCTensor *output,
310  THCTensor *istarget,
311  int64_t reduction);
312 
313 THC_API void THNN_(MultiLabelMarginCriterion_updateGradInput)(
314  THCState *state,
315  THCTensor *input,
316  THCIndexTensor *target,
317  THCTensor *gradOutput,
318  THCTensor *gradInput,
319  THCTensor *istarget,
320  int64_t reduction);
321 
322 THC_API void THNN_(MultiMarginCriterion_updateOutput)(
323  THCState *state,
324  THCTensor *input,
325  THCIndexTensor *target,
326  THCTensor *output,
327  int64_t reduction,
328  int p,
329  THCTensor *weights, // [OPTIONAL]
330  accreal margin);
331 
332 THC_API void THNN_(MultiMarginCriterion_updateGradInput)(
333  THCState *state,
334  THCTensor *input,
335  THCIndexTensor *target,
336  THCTensor *gradOutput,
337  THCTensor *gradInput,
338  int64_t reduction,
339  int p,
340  THCTensor *weights, // [OPTIONAL]
341  accreal margin);
342 THC_API void THNN_(SmoothL1Criterion_updateOutput)(
343  THCState *state,
344  THCTensor *input,
345  THCTensor *target,
346  THCTensor *output,
347  int64_t reduction);
348 
349 THC_API void THNN_(SmoothL1Criterion_updateGradInput)(
350  THCState *state,
351  THCTensor *input,
352  THCTensor *target,
353  THCTensor *gradOutput,
354  THCTensor *gradInput,
355  int64_t reduction);
356 
357 THC_API void THNN_(IndexLinear_updateOutput)(
358  THCState *state,
359  THCIndexTensor *keys,
360  int64_t keysOffset,
361  THCTensor *values,
362  THCIndexTensor *sizes,
363  THCIndexTensor *cumSumSizes,
364  THCTensor *output,
365  THCTensor *weight,
366  THCTensor *bias,
367  THCTensor *normalizedValues,
368  int train);
369 
370 THC_API void THNN_(IndexLinear_accGradParameters)(
371  THCState *state,
372  THCIndexTensor *keys,
373  int64_t keysOffset,
374  THCTensor *values,
375  THCIndexTensor *sizes,
376  THCIndexTensor *cumSumSizes,
377  THCTensor *gradOutput,
378  THCTensor *gradWeight,
379  THCTensor *gradBias,
380  THCTensor *weight,
381  THCTensor *bias,
382  THCTensor* valuesBuffer,
383  accreal weightDecay,
384  accreal scale);
385 
386 THC_API void THNN_(IndexLinear_accUpdateGradParameters)(
387  THCState *state,
388  THCIndexTensor *keys,
389  int64_t keysOffset,
390  THCTensor *values,
391  THCIndexTensor *sizes,
392  THCIndexTensor *cumSumSizes,
393  THCTensor *gradOutput,
394  THCTensor *weight,
395  THCTensor *bias,
396  accreal weightDecay,
397  accreal scale);
398 
399 THC_API void THNN_(IndexLinear_updateParameters)(
400  THCState *state,
401  THCTensor *gradWeight,
402  THCTensor *gradBias,
403  THCTensor *weight,
404  THCTensor *bias,
405  THCIndexTensor *runningKeys,
406  THCIndexTensor *cumSumSizes,
407  int64_t keysOffset,
408  accreal weightDecay,
409  accreal learningRate);
410 
411 THC_API void THNN_(SpatialAdaptiveMaxPooling_updateOutput)(
412  THCState *state,
413  THCTensor *input,
414  THCTensor *output,
415  THCIndexTensor *indices,
416  int osizeW,
417  int osizeH);
418 
419 THC_API void THNN_(SpatialAdaptiveMaxPooling_updateGradInput)(
420  THCState *state,
421  THCTensor *input,
422  THCTensor *gradOutput,
423  THCTensor *gradInput,
424  THCIndexTensor *indices);
425 
426 THC_API void THNN_(SpatialAveragePooling_updateOutput)(
427  THCState *state,
428  THCTensor *input,
429  THCTensor *output,
430  int kW, int kH,
431  int dW, int dH,
432  int padW, int padH,
433  bool ceil_mode,
434  bool count_include_pad);
435 
436 THC_API void THNN_(SpatialAveragePooling_updateGradInput)(
437  THCState *state,
438  THCTensor *input,
439  THCTensor *gradOutput,
440  THCTensor *gradInput,
441  int kW, int kH,
442  int dW, int dH,
443  int padW, int padH,
444  bool ceil_mode,
445  bool count_include_pad);
446 
447 THC_API void THNN_(SpatialClassNLLCriterion_updateOutput)(
448  THCState *state,
449  THCTensor *input,
450  THCIndexTensor *target,
451  THCTensor *output,
452  int64_t reduction,
453  THCTensor *weights, // [OPTIONAL]
454  THCTensor *total_weight,
455  int64_t ignore_index);
456 
457 THC_API void THNN_(SpatialClassNLLCriterion_updateGradInput)(
458  THCState *state,
459  THCTensor *input,
460  THCIndexTensor *target,
461  THCTensor *gradOutput,
462  THCTensor *gradInput,
463  int64_t reduction,
464  THCTensor *weights, // [OPTIONAL]
465  THCTensor *total_weight,
466  int64_t ignore_index);
467 
468 THC_API void THNN_(SpatialConvolutionLocal_updateOutput)(
469  THCState *state,
470  THCTensor *input,
471  THCTensor *output,
472  THCTensor *weight,
473  THCTensor *bias,
474  THCTensor *finput,
475  THCTensor *fgradInput,
476  int kW, int kH,
477  int dW, int dH,
478  int padW, int padH,
479  int64_t inputWidth, int64_t inputHeight,
480  int64_t outputWidth, int64_t outputHeight);
481 
482 THC_API void THNN_(SpatialConvolutionLocal_updateGradInput)(
483  THCState *state,
484  THCTensor *input,
485  THCTensor *gradOutput,
486  THCTensor *gradInput,
487  THCTensor *weight,
488  THCTensor *finput,
489  THCTensor *fgradInput,
490  int kW, int kH,
491  int dW, int dH,
492  int padW, int padH,
493  int64_t inputWidth, int64_t inputHeight,
494  int64_t outputWidth, int64_t outputHeight);
495 
496 THC_API void THNN_(SpatialConvolutionLocal_accGradParameters)(
497  THCState *state,
498  THCTensor *input,
499  THCTensor *gradOutput,
500  THCTensor *gradWeight,
501  THCTensor *gradBias,
502  THCTensor *finput,
503  THCTensor *fgradInput,
504  int kW, int kH,
505  int dW, int dH,
506  int padW, int padH,
507  int64_t inputWidth, int64_t inputHeight,
508  int64_t outputWidth, int64_t outputHeight,
509  accreal scale);
510 
511 THC_API void THNN_(SpatialConvolutionMM_updateOutput)(
512  THCState *state,
513  THCTensor *input,
514  THCTensor *output,
515  THCTensor *weight,
516  THCTensor *bias, // [OPTIONAL]
517  THCTensor *columns,
518  THCTensor *ones,
519  int kW, int kH,
520  int dW, int dH,
521  int padW, int padH);
522 
523 THC_API void THNN_(SpatialConvolutionMM_updateGradInput)(
524  THCState *state,
525  THCTensor *input,
526  THCTensor *gradOutput,
527  THCTensor *gradInput,
528  THCTensor *weight,
529  THCTensor *columns,
530  THCTensor *ones,
531  int kW, int kH,
532  int dW, int dH,
533  int padW, int padH);
534 
535 THC_API void THNN_(SpatialConvolutionMM_accGradParameters)(
536  THCState *state,
537  THCTensor *input,
538  THCTensor *gradOutput,
539  THCTensor *gradWeight,
540  THCTensor *gradBias, // [OPTIONAL]
541  THCTensor *columns,
542  THCTensor *ones,
543  int kW, int kH,
544  int dW, int dH,
545  int padW, int padH,
546  accreal scale);
547 
548 THC_API void THNN_(SpatialDepthwiseConvolution_updateOutput)(
549  THCState *state,
550  THCTensor *input,
551  THCTensor *output,
552  THCTensor *weight,
553  THCTensor *bias, // [OPTIONAL]
554  int kW, int kH,
555  int dW, int dH,
556  int padW, int padH,
557  int dilationW, int dilationH);
558 
559 THC_API void THNN_(SpatialDepthwiseConvolution_updateGradInput)(
560  THCState *state,
561  THCTensor *input,
562  THCTensor *gradOutput,
563  THCTensor *gradInput,
564  THCTensor *weight,
565  int kW, int kH,
566  int dW, int dH,
567  int padW, int padH,
568  int dilationW, int dilationH);
569 
570 THC_API void THNN_(SpatialDepthwiseConvolution_accGradParameters)(
571  THCState *state,
572  THCTensor *input,
573  THCTensor *gradOutput,
574  THCTensor *gradWeight,
575  int kW, int kH,
576  int dW, int dH,
577  int padW, int padH,
578  int dilationW, int dilationH);
579 
580 THC_API void THNN_(SpatialCrossMapLRN_updateOutput)(
581  THCState *state,
582  THCTensor *input,
583  THCTensor *output,
584  THCTensor *scale,
585  int size,
586  accreal alpha,
587  accreal beta,
588  accreal k);
589 
590 THC_API void THNN_(SpatialCrossMapLRN_updateGradInput)(
591  THCState *state,
592  THCTensor *input,
593  THCTensor *gradOutput,
594  THCTensor *gradInput,
595  THCTensor *scale,
596  THCTensor *output,
597  int size,
598  accreal alpha,
599  accreal beta,
600  accreal k);
601 
602 THC_API void THNN_(SpatialDilatedConvolution_updateOutput)(
603  THCState *state,
604  THCTensor *input,
605  THCTensor *output,
606  THCTensor *weight,
607  THCTensor *bias, // [OPTIONAL]
608  THCTensor *columns,
609  THCTensor *ones,
610  int kW, int kH,
611  int dW, int dH,
612  int padW, int padH,
613  int dilationW, int dilationH);
614 
615 THC_API void THNN_(SpatialDilatedConvolution_updateGradInput)(
616  THCState *state,
617  THCTensor *input,
618  THCTensor *gradOutput,
619  THCTensor *gradInput,
620  THCTensor *weight,
621  THCTensor *columns,
622  int kW, int kH,
623  int dW, int dH,
624  int padW, int padH,
625  int dilationW, int dilationH);
626 
627 THC_API void THNN_(SpatialDilatedConvolution_accGradParameters)(
628  THCState *state,
629  THCTensor *input,
630  THCTensor *gradOutput,
631  THCTensor *gradWeight,
632  THCTensor *gradBias, // [OPTIONAL]
633  THCTensor *columns,
634  THCTensor *ones,
635  int kW, int kH,
636  int dW, int dH,
637  int padW, int padH,
638  int dilationW, int dilationH,
639  accreal scale);
640 
641 THC_API void THNN_(SpatialFullDilatedConvolution_updateOutput)(
642  THCState *state,
643  THCTensor *input,
644  THCTensor *output,
645  THCTensor *weight,
646  THCTensor *bias, // [OPTIONAL]
647  THCTensor *columns,
648  THCTensor *ones,
649  int kW, int kH,
650  int dW, int dH,
651  int padW, int padH,
652  int dilationW, int dilationH,
653  int adjW, int adjH);
654 
655 THC_API void THNN_(SpatialFullDilatedConvolution_updateGradInput)(
656  THCState *state,
657  THCTensor *input,
658  THCTensor *gradOutput,
659  THCTensor *gradInput,
660  THCTensor *weight,
661  THCTensor *columns,
662  int kW, int kH,
663  int dW, int dH,
664  int padW, int padH,
665  int dilationW, int dilationH,
666  int adjW, int adjH);
667 
668 THC_API void THNN_(SpatialFullDilatedConvolution_accGradParameters)(
669  THCState *state,
670  THCTensor *input,
671  THCTensor *gradOutput,
672  THCTensor *gradWeight,
673  THCTensor *gradBias, // [OPTIONAL]
674  THCTensor *columns,
675  THCTensor *ones,
676  int kW, int kH,
677  int dW, int dH,
678  int padW, int padH,
679  int dilationW, int dilationH,
680  int adjW, int adjH,
681  accreal scale);
682 
683 THC_API void THNN_(SpatialDilatedMaxPooling_updateOutput)(
684  THCState *state,
685  THCTensor *input,
686  THCTensor *output,
687  THCIndexTensor *indices,
688  int kW, int kH,
689  int dW, int dH,
690  int padW, int padH,
691  int dilationW, int dilationH,
692  bool ceil_mode);
693 
694 THC_API void THNN_(SpatialDilatedMaxPooling_updateGradInput)(
695  THCState *state,
696  THCTensor *input,
697  THCTensor *gradOutput,
698  THCTensor *gradInput,
699  THCIndexTensor *indices,
700  int kW, int kH,
701  int dW, int dH,
702  int padW, int padH,
703  int dilationW, int dilationH,
704  bool ceil_mode);
705 
706 THC_API void THNN_(SpatialFullConvolution_updateOutput)(
707  THCState *state,
708  THCTensor *input,
709  THCTensor *output,
710  THCTensor *weight,
711  THCTensor *bias, // [OPTIONAL]
712  THCTensor *columns,
713  THCTensor *ones,
714  int kW, int kH,
715  int dW, int dH,
716  int padW, int padH,
717  int adjW, int adjH);
718 
719 THC_API void THNN_(SpatialFullConvolution_updateGradInput)(
720  THCState *state,
721  THCTensor *input,
722  THCTensor *gradOutput,
723  THCTensor *gradInput,
724  THCTensor *weight,
725  THCTensor *columns,
726  int kW, int kH,
727  int dW, int dH,
728  int padW, int padH,
729  int adjW, int adjH);
730 
731 THC_API void THNN_(SpatialFullConvolution_accGradParameters)(
732  THCState *state,
733  THCTensor *input,
734  THCTensor *gradOutput,
735  THCTensor *gradWeight,
736  THCTensor *gradBias, // [OPTIONAL]
737  THCTensor *columns,
738  THCTensor *ones,
739  int kW, int kH,
740  int dW, int dH,
741  int padW, int padH,
742  int adjW, int adjH,
743  accreal scale);
744 
745 THC_API void THNN_(SpatialMaxPooling_updateOutput)(
746  THCState *state,
747  THCTensor *input,
748  THCTensor *output,
749  THCIndexTensor *indices,
750  int kW, int kH,
751  int dW, int dH,
752  int padW, int padH,
753  bool ceil_mode);
754 
755 THC_API void THNN_(SpatialMaxPooling_updateGradInput)(
756  THCState *state,
757  THCTensor *input,
758  THCTensor *gradOutput,
759  THCTensor *gradInput,
760  THCIndexTensor *indices,
761  int kW, int kH,
762  int dW, int dH,
763  int padW, int padH,
764  bool ceil_mode);
765 
766 THC_API void THNN_(SpatialMaxUnpooling_updateOutput)(
767  THCState *state,
768  THCTensor *input,
769  THCTensor *output,
770  THCIndexTensor *indices,
771  int owidth, int oheight);
772 
773 THC_API void THNN_(SpatialMaxUnpooling_updateGradInput)(
774  THCState *state,
775  THCTensor *input,
776  THCTensor *gradOutput,
777  THCTensor *gradInput,
778  THCIndexTensor *indices,
779  int owidth, int oheight);
780 
781 THC_API void THNN_(SpatialSubSampling_updateOutput)(
782  THCState *state,
783  THCTensor *input,
784  THCTensor *output,
785  THCTensor *weight,
786  THCTensor *bias,
787  int kW, int kH,
788  int dW, int dH);
789 
790 THC_API void THNN_(SpatialSubSampling_updateGradInput)(
791  THCState *state,
792  THCTensor *input,
793  THCTensor *gradOutput,
794  THCTensor *gradInput,
795  THCTensor *weight,
796  int kW, int kH,
797  int dW, int dH);
798 
799 THC_API void THNN_(SpatialSubSampling_accGradParameters)(
800  THCState *state,
801  THCTensor *input,
802  THCTensor *gradOutput,
803  THCTensor *gradWeight,
804  THCTensor *gradBias,
805  int kW, int kH,
806  int dW, int dH,
807  accreal scale);
808 
809 THC_API void THNN_(SpatialUpSamplingBilinear_updateOutput)(
810  THCState *state,
811  THCTensor *input,
812  THCTensor *output,
813  int outputHeight,
814  int outputWidth,
815  bool align_corners);
816 
817 THC_API void THNN_(SpatialUpSamplingBilinear_updateGradInput)(
818  THCState *state,
819  THCTensor *gradOutput,
820  THCTensor *gradInput,
821  int nbatch,
822  int nchannels,
823  int inputHeight,
824  int inputWidth,
825  int outputHeight,
826  int outputWidth,
827  bool align_corners);
828 
829 THC_API void THNN_(SpatialUpSamplingBicubic_updateOutput)(
830  THCState *state,
831  THCTensor *input,
832  THCTensor *output,
833  int outputHeight,
834  int outputWidth,
835  bool align_corners);
836 
837 THC_API void THNN_(SpatialUpSamplingBicubic_updateGradInput)(
838  THCState *state,
839  THCTensor *gradOutput,
840  THCTensor *gradInput,
841  int nbatch,
842  int nchannels,
843  int inputHeight,
844  int inputWidth,
845  int outputHeight,
846  int outputWidth,
847  bool align_corners);
848 
849 THC_API void THNN_(SpatialUpSamplingNearest_updateGradInput)(
850  THCState *state,
851  THCTensor *gradOutput,
852  THCTensor *gradInput,
853  int nbatch,
854  int nchannels,
855  int inputHeight,
856  int inputWidth,
857  int outputHeight,
858  int outputWidth);
859 
860 THC_API void THNN_(SpatialUpSamplingNearest_updateOutput)(
861  THCState *state,
862  THCTensor *input,
863  THCTensor *output,
864  int outputHeight,
865  int outputWidth);
866 
867 THC_API void THNN_(RReLU_updateOutput)(
868  THCState *state,
869  THCTensor *input,
870  THCTensor *output,
871  THCTensor *noise,
872  double lower,
873  double upper,
874  bool train,
875  bool inplace,
876  void *generator);
877 
878 THC_API void THNN_(RReLU_updateGradInput)(
879  THCState *state,
880  THCTensor *input,
881  THCTensor *gradOutput,
882  THCTensor *gradInput,
883  THCTensor *noise,
884  double lower,
885  double upper,
886  bool train,
887  bool inplace);
888 
889 THC_API void THNN_(Sigmoid_updateOutput)(
890  THCState *state,
891  THCTensor *input,
892  THCTensor *output);
893 
894 THC_API void THNN_(Sigmoid_updateGradInput)(
895  THCState *state,
896  THCTensor *gradOutput,
897  THCTensor *gradInput,
898  THCTensor *output);
899 
900 THC_API void THNN_(SoftMarginCriterion_updateOutput)(
901  THCState *state,
902  THCTensor *input,
903  THCTensor *target,
904  THCTensor *output,
905  int64_t reduction);
906 
907 THC_API void THNN_(SoftMarginCriterion_updateGradInput)(
908  THCState *state,
909  THCTensor *input,
910  THCTensor *target,
911  THCTensor *gradOutput,
912  THCTensor *gradInput,
913  int64_t reduction);
914 
915 THC_API void THNN_(SoftPlus_updateOutput)(
916  THCState *state,
917  THCTensor *input,
918  THCTensor *output,
919  accreal beta,
920  accreal threshold);
921 
922 THC_API void THNN_(SoftPlus_updateGradInput)(
923  THCState *state,
924  THCTensor *input,
925  THCTensor *gradOutput,
926  THCTensor *gradInput,
927  THCTensor *output,
928  accreal beta,
929  accreal threshold);
930 
931 THC_API void THNN_(SoftShrink_updateOutput)(
932  THCState *state,
933  THCTensor *input,
934  THCTensor *output,
935  accreal lambda);
936 
937 THC_API void THNN_(SoftShrink_updateGradInput)(
938  THCState *state,
939  THCTensor *input,
940  THCTensor *gradOutput,
941  THCTensor *gradInput,
942  accreal lambda);
943 
944 THC_API void THNN_(Square_updateOutput)(
945  THCState *state,
946  THCTensor *input,
947  THCTensor *output);
948 
949 THC_API void THNN_(Square_updateGradInput)(
950  THCState *state,
951  THCTensor *input,
952  THCTensor *gradOutput,
953  THCTensor *gradInput);
954 
955 THC_API void THNN_(Sqrt_updateOutput)(
956  THCState *state,
957  THCTensor *input,
958  THCTensor *output,
959  accreal eps);
960 
961 THC_API void THNN_(Sqrt_updateGradInput)(
962  THCState *state,
963  THCTensor *input,
964  THCTensor *gradOutput,
965  THCTensor *gradInput,
966  THCTensor *output);
967 
968 THC_API void THNN_(Tanh_updateOutput)(
969  THCState *state,
970  THCTensor *input,
971  THCTensor *output);
972 
973 THC_API void THNN_(Tanh_updateGradInput)(
974  THCState *state,
975  THCTensor *gradOutput,
976  THCTensor *gradInput,
977  THCTensor *output);
978 
979 THC_API void THNN_(TemporalConvolution_updateOutput)(
980  THCState *state,
981  THCTensor *input,
982  THCTensor *output,
983  THCTensor *weight,
984  THCTensor *bias,
985  int kW, int dW,
986  int inputFrameSize,
987  int outputFrameSize);
988 
989 THC_API void THNN_(TemporalConvolution_updateGradInput)(
990  THCState* state,
991  THCTensor *input,
992  THCTensor *gradOutput,
993  THCTensor *gradInput,
994  THCTensor *weight,
995  int kW, int dW);
996 
997 THC_API void THNN_(TemporalConvolution_accGradParameters)(
998  THCState *state,
999  THCTensor *input,
1000  THCTensor *gradOutput,
1001  THCTensor *gradWeight,
1002  THCTensor *gradBias,
1003  int kW, int dW,
1004  accreal scale);
1005 
1006 THC_API void THNN_(TemporalMaxPooling_updateOutput)(
1007  THCState *state,
1008  THCTensor *input,
1009  THCTensor *output,
1010  THCIndexTensor *indices,
1011  int kW, int dW);
1012 
1013 THC_API void THNN_(TemporalMaxPooling_updateGradInput)(
1014  THCState *state,
1015  THCTensor *input,
1016  THCTensor *gradOutput,
1017  THCTensor *gradInput,
1018  THCIndexTensor *indices,
1019  int kW, int dW);
1020 
1021 THC_API void THNN_(TemporalRowConvolution_updateOutput)(
1022  THCState *state,
1023  THCTensor *input,
1024  THCTensor *output,
1025  THCTensor *weight,
1026  THCTensor *bias, // [OPTIONAL]
1027  THCTensor *finput,
1028  THCTensor *fgradInput,
1029  int kW,
1030  int dW,
1031  int padW,
1032  bool featFirst);
1033 
1034 THC_API void THNN_(TemporalRowConvolution_updateGradInput)(
1035  THCState *state,
1036  THCTensor *input,
1037  THCTensor *gradOutput,
1038  THCTensor *gradInput,
1039  THCTensor *weight,
1040  THCTensor *finput,
1041  THCTensor *fgradInput,
1042  int kW,
1043  int dW,
1044  int padW,
1045  bool featFirst);
1046 
1047 THC_API void THNN_(TemporalRowConvolution_accGradParameters)(
1048  THCState *state,
1049  THCTensor *input,
1050  THCTensor *gradOutput,
1051  THCTensor *gradWeight,
1052  THCTensor *gradBias,
1053  THCTensor *finput,
1054  THCTensor *fgradInput,
1055  int kW,
1056  int dW,
1057  int padW,
1058  bool featFirst,
1059  accreal scale);
1060 
1061 THC_API void THNN_(TemporalUpSamplingLinear_updateOutput)(
1062  THCState *state,
1063  THCTensor *input,
1064  THCTensor *output,
1065  int outputWidth,
1066  bool align_corners);
1067 
1068 THC_API void THNN_(TemporalUpSamplingLinear_updateGradInput)(
1069  THCState *state,
1070  THCTensor *gradOutput,
1071  THCTensor *gradInput,
1072  int nbatch,
1073  int nchannels,
1074  int inputWidth,
1075  int outputWidth,
1076  bool align_corners);
1077 
1078 THC_API void THNN_(TemporalUpSamplingNearest_updateGradInput)(
1079  THCState *state,
1080  THCTensor *gradOutput,
1081  THCTensor *gradInput,
1082  int nbatch,
1083  int nchannels,
1084  int inputWidth,
1085  int outputWidth);
1086 
1087 THC_API void THNN_(TemporalUpSamplingNearest_updateOutput)(
1088  THCState *state,
1089  THCTensor *input,
1090  THCTensor *output,
1091  int outputWidth);
1092 
1093 THC_API void THNN_(VolumetricAveragePooling_updateOutput)(
1094  THCState *state,
1095  THCTensor *input,
1096  THCTensor *output,
1097  int kT, int kW, int kH,
1098  int dT, int dW, int dH,
1099  int padT, int padW, int padH,
1100  bool ceil_mode,
1101  bool count_include_pad);
1102 
1103 THC_API void THNN_(VolumetricAveragePooling_updateGradInput)(
1104  THCState *state,
1105  THCTensor *input,
1106  THCTensor *gradOutput,
1107  THCTensor *gradInput,
1108  int kT, int kW, int kH,
1109  int dT, int dW, int dH,
1110  int padT, int padW, int padH,
1111  bool ceil_mode,
1112  bool count_include_pad);
1113 
1114 // VolumetricConvolution is legacy and purposefully not bound by ATen
1115 THC_API void THNN_(VolumetricConvolution_updateOutput)(
1116  THCState *state,
1117  THCTensor *input,
1118  THCTensor *output,
1119  THCTensor *weight,
1120  THCTensor *bias, // [OPTIONAL]
1121  THCTensor *finput,
1122  THCTensor *fgradInput,
1123  int dT, int dW, int dH,
1124  int padT, int padW, int padH);
1125 
1126 THC_API void THNN_(VolumetricConvolution_updateGradInput)(
1127  THCState *state,
1128  THCTensor *input,
1129  THCTensor *gradOutput,
1130  THCTensor *gradInput,
1131  THCTensor *weight,
1132  THCTensor *finput,
1133  int dT, int dW, int dH,
1134  int padT, int padW, int padH);
1135 
1136 THC_API void THNN_(VolumetricConvolution_accGradParameters)(
1137  THCState *state,
1138  THCTensor *input,
1139  THCTensor *gradOutput,
1140  THCTensor *gradWeight,
1141  THCTensor *gradBias, // [OPTIONAL]
1142  THCTensor *finput,
1143  THCTensor *fgradInput,
1144  int dT, int dW, int dH,
1145  int padT, int padW, int padH,
1146  accreal scale);
1147 
1148 THC_API void THNN_(VolumetricDilatedConvolution_updateOutput)(
1149  THCState *state,
1150  THCTensor *input,
1151  THCTensor *output,
1152  THCTensor *weight,
1153  THCTensor *bias, // [OPTIONAL]
1154  THCTensor *columns,
1155  THCTensor *ones,
1156  int kT, int kW, int kH,
1157  int dT, int dW, int dH,
1158  int padT, int padW, int padH,
1159  int dilationT, int dilationW, int dilationH);
1160 
1161 THC_API void THNN_(VolumetricDilatedConvolution_updateGradInput)(
1162  THCState *state,
1163  THCTensor *input,
1164  THCTensor *gradOutput,
1165  THCTensor *gradInput,
1166  THCTensor *weight,
1167  THCTensor *columns,
1168  int kT, int kW, int kH,
1169  int dT, int dW, int dH,
1170  int padT, int padW, int padH,
1171  int dilationT, int dilationW, int dilationH);
1172 
1173 THC_API void THNN_(VolumetricDilatedConvolution_accGradParameters)(
1174  THCState *state,
1175  THCTensor *input,
1176  THCTensor *gradOutput,
1177  THCTensor *gradWeight,
1178  THCTensor *gradBias, // [OPTIONAL]
1179  THCTensor *columns,
1180  THCTensor *ones,
1181  int kT, int kW, int kH,
1182  int dT, int dW, int dH,
1183  int padT, int padW, int padH,
1184  int dilationT, int dilationW, int dilationH,
1185  accreal scale);
1186 
1187 THC_API void THNN_(VolumetricFullDilatedConvolution_updateOutput)(
1188  THCState *state,
1189  THCTensor *input,
1190  THCTensor *output,
1191  THCTensor *weight,
1192  THCTensor *bias, // [OPTIONAL]
1193  THCTensor *finput,
1194  THCTensor *fgradInput,
1195  int kT, int kW, int kH,
1196  int dT, int dW, int dH,
1197  int padT, int padW, int padH,
1198  int dilationT, int dilationW, int dilationH,
1199  int adjT, int adjW, int adjH);
1200 
1201 THC_API void THNN_(VolumetricFullDilatedConvolution_updateGradInput)(
1202  THCState *state,
1203  THCTensor *input,
1204  THCTensor *gradOutput,
1205  THCTensor *gradInput,
1206  THCTensor *weight,
1207  THCTensor *finput,
1208  THCTensor *fgradInput,
1209  int kT, int kW, int kH,
1210  int dT, int dW, int dH,
1211  int padT, int padW, int padH,
1212  int dilationT, int dilationW, int dilationH,
1213  int adjT, int adjW, int adjH);
1214 
1215 THC_API void THNN_(VolumetricFullDilatedConvolution_accGradParameters)(
1216  THCState *state,
1217  THCTensor *input,
1218  THCTensor *gradOutput,
1219  THCTensor *gradWeight, // [OPTIONAL]
1220  THCTensor *gradBias, // [OPTIONAL]
1221  THCTensor *finput,
1222  THCTensor *fgradInput,
1223  int kT, int kW, int kH,
1224  int dT, int dW, int dH,
1225  int padT, int padW, int padH,
1226  int dilationT, int dilationW, int dilationH,
1227  int adjT, int adjW, int adjH,
1228  accreal scale);
1229 
1230 THC_API void THNN_(VolumetricDilatedMaxPooling_updateOutput)(
1231  THCState *state,
1232  THCTensor *input,
1233  THCTensor *output,
1234  THCIndexTensor *indices,
1235  int kT, int kW, int kH,
1236  int dT, int dW, int dH,
1237  int padT, int padW, int padH,
1238  int dilationT, int dilationW, int dilationH,
1239  bool ceilMode);
1240 
1241 THC_API void THNN_(VolumetricDilatedMaxPooling_updateGradInput)(
1242  THCState *state,
1243  THCTensor *input,
1244  THCTensor *gradOutput,
1245  THCTensor *gradInput,
1246  THCIndexTensor *indices,
1247  int kT, int kW, int kH,
1248  int dT, int dW, int dH,
1249  int padT, int padW, int padH,
1250  int dilationT, int dilationW, int dilationH,
1251  bool ceilMode);
1252 
1253 THC_API void THNN_(VolumetricFullConvolution_updateOutput)(
1254  THCState *state,
1255  THCTensor *input,
1256  THCTensor *output,
1257  THCTensor *weight,
1258  THCTensor *bias, // [OPTIONAL]
1259  THCTensor *finput,
1260  THCTensor *fgradInput,
1261  int kT, int kW, int kH,
1262  int dT, int dW, int dH,
1263  int padT, int padW, int padH,
1264  int adjT, int adjW, int adjH);
1265 
1266 THC_API void THNN_(VolumetricFullConvolution_updateGradInput)(
1267  THCState *state,
1268  THCTensor *input,
1269  THCTensor *gradOutput,
1270  THCTensor *gradInput,
1271  THCTensor *weight,
1272  THCTensor *finput,
1273  THCTensor *fgradInput,
1274  int kT, int kW, int kH,
1275  int dT, int dW, int dH,
1276  int padT, int padW, int padH,
1277  int adjT, int adjW, int adjH);
1278 
1279 THC_API void THNN_(VolumetricFullConvolution_accGradParameters)(
1280  THCState *state,
1281  THCTensor *input,
1282  THCTensor *gradOutput,
1283  THCTensor *gradWeight, // [OPTIONAL]
1284  THCTensor *gradBias, // [OPTIONAL]
1285  THCTensor *finput,
1286  THCTensor *fgradInput,
1287  int kT, int kW, int kH,
1288  int dT, int dW, int dH,
1289  int padT, int padW, int padH,
1290  int adjT, int adjW, int adjH,
1291  accreal scale);
1292 
1293 THC_API void THNN_(VolumetricMaxPooling_updateOutput)(
1294  THCState *state,
1295  THCTensor *input,
1296  THCTensor *output,
1297  THCIndexTensor *indices,
1298  int kT, int kW, int kH,
1299  int dT, int dW, int dH,
1300  int padT, int padW, int padH,
1301  bool ceilMode);
1302 
1303 THC_API void THNN_(VolumetricMaxPooling_updateGradInput)(
1304  THCState *state,
1305  THCTensor *input,
1306  THCTensor *gradOutput,
1307  THCTensor *gradInput,
1308  THCIndexTensor *indices,
1309  int kT, int kW, int kH,
1310  int dT, int dW, int dH,
1311  int padT, int padW, int padH,
1312  bool ceilMode);
1313 
1314 THC_API void THNN_(VolumetricMaxUnpooling_updateOutput)(
1315  THCState *state,
1316  THCTensor *input,
1317  THCTensor *output,
1318  THCIndexTensor *indices,
1319  int outputTime, int outputWidth, int outputHeight,
1320  int dT, int dW, int dH,
1321  int padT, int padW, int padH);
1322 
1323 THC_API void THNN_(VolumetricMaxUnpooling_updateGradInput)(
1324  THCState *state,
1325  THCTensor *input,
1326  THCTensor *gradOutput,
1327  THCTensor *gradInput,
1328  THCIndexTensor *indices,
1329  int outputTime, int outputWidth, int outputHeight,
1330  int dT, int dW, int dH,
1331  int padT, int padW, int padH);
1332 
1333 THC_API void THNN_(VolumetricAdaptiveMaxPooling_updateOutput)(
1334  THCState *state,
1335  THCTensor *input,
1336  THCTensor *output,
1337  THCIndexTensor *indices,
1338  int osizeT,
1339  int osizeW,
1340  int osizeH);
1341 
1342 THC_API void THNN_(VolumetricAdaptiveMaxPooling_updateGradInput)(
1343  THCState *state,
1344  THCTensor *input,
1345  THCTensor *gradOutput,
1346  THCTensor *gradInput,
1347  THCIndexTensor *indices);
1348 
1349 THC_API void THNN_(VolumetricAdaptiveAveragePooling_updateOutput)(
1350  THCState *state,
1351  THCTensor *input,
1352  THCTensor *output,
1353  int osizeT,
1354  int osizeW,
1355  int osizeH);
1356 
1357 THC_API void THNN_(VolumetricAdaptiveAveragePooling_updateGradInput)(
1358  THCState *state,
1359  THCTensor *input,
1360  THCTensor *gradOutput,
1361  THCTensor *gradInput);
1362 
1363 THC_API void THNN_(VolumetricUpSamplingNearest_updateGradInput)(
1364  THCState *state,
1365  THCTensor *gradOutput,
1366  THCTensor *gradInput,
1367  int nbatch,
1368  int nchannels,
1369  int inputDepth,
1370  int inputHeight,
1371  int inputWidth,
1372  int outputDepth,
1373  int outputHeight,
1374  int outputWidth);
1375 
1376 THC_API void THNN_(VolumetricUpSamplingNearest_updateOutput)(
1377  THCState *state,
1378  THCTensor *input,
1379  THCTensor *output,
1380  int outputDepth,
1381  int outputHeight,
1382  int outputWidth);
1383 
1384 THC_API void THNN_(VolumetricUpSamplingTrilinear_updateOutput)(
1385  THCState *state,
1386  THCTensor *input,
1387  THCTensor *output,
1388  int outputDepth,
1389  int outputHeight,
1390  int outputWidth,
1391  bool align_corners);
1392 
1393 THC_API void THNN_(VolumetricUpSamplingTrilinear_updateGradInput)(
1394  THCState *state,
1395  THCTensor *gradOutput,
1396  THCTensor *gradInput,
1397  int nbatch,
1398  int nchannels,
1399  int inputDepth,
1400  int inputHeight,
1401  int inputWidth,
1402  int outputDepth,
1403  int outputHeight,
1404  int outputWidth,
1405  bool align_corners);
1406 
1407 #endif