avg_pool2d_meta.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. #pragma once
  2. // @generated by torchgen/gen.py from NativeMetaFunction.h
  3. #include <c10/core/Scalar.h>
  4. #include <c10/core/Storage.h>
  5. #include <c10/core/TensorOptions.h>
  6. #include <c10/util/Deprecated.h>
  7. #include <c10/util/Optional.h>
  8. #include <c10/core/QScheme.h>
  9. #include <ATen/core/Reduction.h>
  10. #include <ATen/TensorIterator.h>
  11. #include <ATen/TensorMeta.h>
  12. #include <tuple>
  13. #include <vector>
  14. namespace at {
  15. namespace meta {
  16. struct TORCH_API structured_avg_pool2d : public at::impl::MetaBase {
  17. template <bool KH = false, bool KW = false, bool DH = false, bool DW = false, bool PADH = false, bool PADW = false>
  18. struct TORCH_API precompute_out {
  19. precompute_out<true, KW, DH, DW, PADH, PADW> set_kH(int64_t value) {
  20. static_assert(KH == false, "kH already set");
  21. precompute_out<true, KW, DH, DW, PADH, PADW> ret;
  22. ret.kH = value;
  23. ret.kW = this->kW;
  24. ret.dH = this->dH;
  25. ret.dW = this->dW;
  26. ret.padH = this->padH;
  27. ret.padW = this->padW;
  28. return ret;
  29. }
  30. precompute_out<KH, true, DH, DW, PADH, PADW> set_kW(int64_t value) {
  31. static_assert(KW == false, "kW already set");
  32. precompute_out<KH, true, DH, DW, PADH, PADW> ret;
  33. ret.kH = this->kH;
  34. ret.kW = value;
  35. ret.dH = this->dH;
  36. ret.dW = this->dW;
  37. ret.padH = this->padH;
  38. ret.padW = this->padW;
  39. return ret;
  40. }
  41. precompute_out<KH, KW, true, DW, PADH, PADW> set_dH(int64_t value) {
  42. static_assert(DH == false, "dH already set");
  43. precompute_out<KH, KW, true, DW, PADH, PADW> ret;
  44. ret.kH = this->kH;
  45. ret.kW = this->kW;
  46. ret.dH = value;
  47. ret.dW = this->dW;
  48. ret.padH = this->padH;
  49. ret.padW = this->padW;
  50. return ret;
  51. }
  52. precompute_out<KH, KW, DH, true, PADH, PADW> set_dW(int64_t value) {
  53. static_assert(DW == false, "dW already set");
  54. precompute_out<KH, KW, DH, true, PADH, PADW> ret;
  55. ret.kH = this->kH;
  56. ret.kW = this->kW;
  57. ret.dH = this->dH;
  58. ret.dW = value;
  59. ret.padH = this->padH;
  60. ret.padW = this->padW;
  61. return ret;
  62. }
  63. precompute_out<KH, KW, DH, DW, true, PADW> set_padH(int64_t value) {
  64. static_assert(PADH == false, "padH already set");
  65. precompute_out<KH, KW, DH, DW, true, PADW> ret;
  66. ret.kH = this->kH;
  67. ret.kW = this->kW;
  68. ret.dH = this->dH;
  69. ret.dW = this->dW;
  70. ret.padH = value;
  71. ret.padW = this->padW;
  72. return ret;
  73. }
  74. precompute_out<KH, KW, DH, DW, PADH, true> set_padW(int64_t value) {
  75. static_assert(PADW == false, "padW already set");
  76. precompute_out<KH, KW, DH, DW, PADH, true> ret;
  77. ret.kH = this->kH;
  78. ret.kW = this->kW;
  79. ret.dH = this->dH;
  80. ret.dW = this->dW;
  81. ret.padH = this->padH;
  82. ret.padW = value;
  83. return ret;
  84. }
  85. int64_t kH;
  86. int64_t kW;
  87. int64_t dH;
  88. int64_t dW;
  89. int64_t padH;
  90. int64_t padW;
  91. };
  92. using meta_return_ty = precompute_out <true, true, true, true, true, true>;
  93. meta_return_ty meta(const at::Tensor & self, at::IntArrayRef kernel_size, at::IntArrayRef stride, at::IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional<int64_t> divisor_override);
  94. };
  95. } // namespace native
  96. } // namespace at