@@ -35,159 +35,6 @@ namespace {
35
35
}
36
36
}
37
37
38
- Tensor & _th_nonzero_out (const Tensor & self, Tensor & result) {
39
- // DeviceGuard omitted
40
- auto dispatch_scalar_type = infer_scalar_type (self);
41
-
42
- switch (dispatch_scalar_type) {
43
- case ScalarType::Bool: {
44
- auto result_ = checked_dense_tensor_unwrap (result, " result" , 0 , " _th_nonzero_out" , false , DeviceType::CPU, ScalarType::Long);
45
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero_out" , false , DeviceType::CPU, dispatch_scalar_type);
46
- THBoolTensor_nonzero (result_, self_);
47
- break ;
48
- }
49
- case ScalarType::Byte : {
50
- auto result_ = checked_dense_tensor_unwrap (result, " result" , 0 , " _th_nonzero_out" , false , DeviceType::CPU, ScalarType::Long);
51
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero_out" , false , DeviceType::CPU, dispatch_scalar_type);
52
- THByteTensor_nonzero (result_, self_);
53
- break ;
54
- }
55
- case ScalarType::Char: {
56
- auto result_ = checked_dense_tensor_unwrap (result, " result" , 0 , " _th_nonzero_out" , false , DeviceType::CPU, ScalarType::Long);
57
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero_out" , false , DeviceType::CPU, dispatch_scalar_type);
58
- THCharTensor_nonzero (result_, self_);
59
- break ;
60
- }
61
- case ScalarType::Double: {
62
- auto result_ = checked_dense_tensor_unwrap (result, " result" , 0 , " _th_nonzero_out" , false , DeviceType::CPU, ScalarType::Long);
63
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero_out" , false , DeviceType::CPU, dispatch_scalar_type);
64
- THDoubleTensor_nonzero (result_, self_);
65
- break ;
66
- }
67
- case ScalarType::Float: {
68
- auto result_ = checked_dense_tensor_unwrap (result, " result" , 0 , " _th_nonzero_out" , false , DeviceType::CPU, ScalarType::Long);
69
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero_out" , false , DeviceType::CPU, dispatch_scalar_type);
70
- THFloatTensor_nonzero (result_, self_);
71
- break ;
72
- }
73
- case ScalarType::Int: {
74
- auto result_ = checked_dense_tensor_unwrap (result, " result" , 0 , " _th_nonzero_out" , false , DeviceType::CPU, ScalarType::Long);
75
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero_out" , false , DeviceType::CPU, dispatch_scalar_type);
76
- THIntTensor_nonzero (result_, self_);
77
- break ;
78
- }
79
- case ScalarType::Long: {
80
- auto result_ = checked_dense_tensor_unwrap (result, " result" , 0 , " _th_nonzero_out" , false , DeviceType::CPU, ScalarType::Long);
81
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero_out" , false , DeviceType::CPU, dispatch_scalar_type);
82
- THLongTensor_nonzero (result_, self_);
83
- break ;
84
- }
85
- case ScalarType::Short: {
86
- auto result_ = checked_dense_tensor_unwrap (result, " result" , 0 , " _th_nonzero_out" , false , DeviceType::CPU, ScalarType::Long);
87
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero_out" , false , DeviceType::CPU, dispatch_scalar_type);
88
- THShortTensor_nonzero (result_, self_);
89
- break ;
90
- }
91
- case ScalarType::Half: {
92
- auto result_ = checked_dense_tensor_unwrap (result, " result" , 0 , " _th_nonzero_out" , false , DeviceType::CPU, ScalarType::Long);
93
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero_out" , false , DeviceType::CPU, dispatch_scalar_type);
94
- THHalfTensor_nonzero (result_, self_);
95
- break ;
96
- }
97
- case ScalarType::BFloat16: {
98
- auto result_ = checked_dense_tensor_unwrap (result, " result" , 0 , " _th_nonzero_out" , false , DeviceType::CPU, ScalarType::Long);
99
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero_out" , false , DeviceType::CPU, dispatch_scalar_type);
100
- THBFloat16Tensor_nonzero (result_, self_);
101
- break ;
102
- }
103
- case ScalarType::ComplexDouble: {
104
- auto result_ = checked_dense_tensor_unwrap (result, " result" , 0 , " _th_nonzero_out" , false , DeviceType::CPU, ScalarType::Long);
105
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero_out" , false , DeviceType::CPU, dispatch_scalar_type);
106
- THComplexDoubleTensor_nonzero (result_, self_);
107
- break ;
108
- }
109
- case ScalarType::ComplexFloat: {
110
- auto result_ = checked_dense_tensor_unwrap (result, " result" , 0 , " _th_nonzero_out" , false , DeviceType::CPU, ScalarType::Long);
111
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero_out" , false , DeviceType::CPU, dispatch_scalar_type);
112
- THComplexFloatTensor_nonzero (result_, self_);
113
- break ;
114
- }
115
- default :
116
- AT_ERROR (" _th_nonzero_out not supported on CPUType for " , dispatch_scalar_type);
117
- }
118
- return result;
119
- }
120
- Tensor _th_nonzero (const Tensor & self) {
121
- // DeviceGuard omitted
122
- auto dispatch_scalar_type = infer_scalar_type (self);
123
- auto result_ = c10::make_intrusive<TensorImpl, UndefinedTensorImpl>(c10::Storage (c10::Storage::use_byte_size_t (), 0 , allocator (), true ),DispatchKey::CPU, scalarTypeToTypeMeta (ScalarType::Long)).release ();
124
- auto result = Tensor (c10::intrusive_ptr<TensorImpl, UndefinedTensorImpl>::reclaim (result_));
125
- switch (dispatch_scalar_type) {
126
- case ScalarType::Bool: {
127
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero" , false , DeviceType::CPU, dispatch_scalar_type);
128
- THBoolTensor_nonzero (result_, self_);
129
- break ;
130
- }
131
- case ScalarType::Byte : {
132
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero" , false , DeviceType::CPU, dispatch_scalar_type);
133
- THByteTensor_nonzero (result_, self_);
134
- break ;
135
- }
136
- case ScalarType::Char: {
137
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero" , false , DeviceType::CPU, dispatch_scalar_type);
138
- THCharTensor_nonzero (result_, self_);
139
- break ;
140
- }
141
- case ScalarType::Double: {
142
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero" , false , DeviceType::CPU, dispatch_scalar_type);
143
- THDoubleTensor_nonzero (result_, self_);
144
- break ;
145
- }
146
- case ScalarType::Float: {
147
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero" , false , DeviceType::CPU, dispatch_scalar_type);
148
- THFloatTensor_nonzero (result_, self_);
149
- break ;
150
- }
151
- case ScalarType::Int: {
152
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero" , false , DeviceType::CPU, dispatch_scalar_type);
153
- THIntTensor_nonzero (result_, self_);
154
- break ;
155
- }
156
- case ScalarType::Long: {
157
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero" , false , DeviceType::CPU, dispatch_scalar_type);
158
- THLongTensor_nonzero (result_, self_);
159
- break ;
160
- }
161
- case ScalarType::Short: {
162
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero" , false , DeviceType::CPU, dispatch_scalar_type);
163
- THShortTensor_nonzero (result_, self_);
164
- break ;
165
- }
166
- case ScalarType::Half: {
167
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero" , false , DeviceType::CPU, dispatch_scalar_type);
168
- THHalfTensor_nonzero (result_, self_);
169
- break ;
170
- }
171
- case ScalarType::BFloat16: {
172
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero" , false , DeviceType::CPU, dispatch_scalar_type);
173
- THBFloat16Tensor_nonzero (result_, self_);
174
- break ;
175
- }
176
- case ScalarType::ComplexDouble: {
177
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero" , false , DeviceType::CPU, dispatch_scalar_type);
178
- THComplexDoubleTensor_nonzero (result_, self_);
179
- break ;
180
- }
181
- case ScalarType::ComplexFloat: {
182
- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_nonzero" , false , DeviceType::CPU, dispatch_scalar_type);
183
- THComplexFloatTensor_nonzero (result_, self_);
184
- break ;
185
- }
186
- default :
187
- AT_ERROR (" _th_nonzero not supported on CPUType for " , dispatch_scalar_type);
188
- }
189
- return result;
190
- }
191
38
Scalar _th_std_var (const Tensor& self, int64_t correction, bool take_sqrt) {
192
39
// DeviceGuard omitted
193
40
auto dispatch_scalar_type = infer_scalar_type (self);
0 commit comments