@@ -34,152 +34,6 @@ namespace {
3434 }
3535}
3636
37- Tensor & _th_masked_scatter_ (Tensor & self, const Tensor & mask, const Tensor & source) {
38- // DeviceGuard omitted
39- auto dispatch_scalar_type = infer_scalar_type (self);
40-
41- switch (dispatch_scalar_type) {
42- case ScalarType::Bool: {
43- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
44- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CPU, ScalarType::Byte);
45- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
46- THBoolTensor_maskedCopy (self_, mask_, source_);
47- break ;
48- }
49- case ScalarType::Byte: {
50- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
51- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CPU, ScalarType::Byte);
52- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
53- THByteTensor_maskedCopy (self_, mask_, source_);
54- break ;
55- }
56- case ScalarType::Char: {
57- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
58- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CPU, ScalarType::Byte);
59- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
60- THCharTensor_maskedCopy (self_, mask_, source_);
61- break ;
62- }
63- case ScalarType::Double: {
64- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
65- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CPU, ScalarType::Byte);
66- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
67- THDoubleTensor_maskedCopy (self_, mask_, source_);
68- break ;
69- }
70- case ScalarType::Float: {
71- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
72- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CPU, ScalarType::Byte);
73- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
74- THFloatTensor_maskedCopy (self_, mask_, source_);
75- break ;
76- }
77- case ScalarType::Int: {
78- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
79- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CPU, ScalarType::Byte);
80- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
81- THIntTensor_maskedCopy (self_, mask_, source_);
82- break ;
83- }
84- case ScalarType::Long: {
85- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
86- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CPU, ScalarType::Byte);
87- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
88- THLongTensor_maskedCopy (self_, mask_, source_);
89- break ;
90- }
91- case ScalarType::Short: {
92- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
93- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CPU, ScalarType::Byte);
94- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
95- THShortTensor_maskedCopy (self_, mask_, source_);
96- break ;
97- }
98- case ScalarType::BFloat16: {
99- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
100- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CPU, ScalarType::Byte);
101- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CPU, dispatch_scalar_type);
102- THBFloat16Tensor_maskedCopy (self_, mask_, source_);
103- break ;
104- }
105- default :
106- AT_ERROR (" _th_masked_scatter_ not supported on CPUType for " , dispatch_scalar_type);
107- }
108- return self;
109- }
110- Tensor & _th_masked_scatter_bool_ (Tensor & self, const Tensor & mask, const Tensor & source) {
111- // DeviceGuard omitted
112- auto dispatch_scalar_type = infer_scalar_type (self);
113-
114- switch (dispatch_scalar_type) {
115- case ScalarType::Bool: {
116- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
117- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, ScalarType::Bool);
118- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
119- THBoolTensor_maskedCopyBool (self_, mask_, source_);
120- break ;
121- }
122- case ScalarType::Byte: {
123- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
124- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, ScalarType::Bool);
125- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
126- THByteTensor_maskedCopyBool (self_, mask_, source_);
127- break ;
128- }
129- case ScalarType::Char: {
130- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
131- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, ScalarType::Bool);
132- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
133- THCharTensor_maskedCopyBool (self_, mask_, source_);
134- break ;
135- }
136- case ScalarType::Double: {
137- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
138- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, ScalarType::Bool);
139- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
140- THDoubleTensor_maskedCopyBool (self_, mask_, source_);
141- break ;
142- }
143- case ScalarType::Float: {
144- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
145- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, ScalarType::Bool);
146- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
147- THFloatTensor_maskedCopyBool (self_, mask_, source_);
148- break ;
149- }
150- case ScalarType::Int: {
151- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
152- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, ScalarType::Bool);
153- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
154- THIntTensor_maskedCopyBool (self_, mask_, source_);
155- break ;
156- }
157- case ScalarType::Long: {
158- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
159- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, ScalarType::Bool);
160- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
161- THLongTensor_maskedCopyBool (self_, mask_, source_);
162- break ;
163- }
164- case ScalarType::Short: {
165- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
166- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, ScalarType::Bool);
167- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
168- THShortTensor_maskedCopyBool (self_, mask_, source_);
169- break ;
170- }
171- case ScalarType::BFloat16: {
172- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
173- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, ScalarType::Bool);
174- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CPU, dispatch_scalar_type);
175- THBFloat16Tensor_maskedCopyBool (self_, mask_, source_);
176- break ;
177- }
178- default :
179- AT_ERROR (" _th_masked_scatter_bool_ not supported on CPUType for " , dispatch_scalar_type);
180- }
181- return self;
182- }
18337Tensor & _th_nonzero_out (Tensor & result, const Tensor & self) {
18438 // DeviceGuard omitted
18539 auto dispatch_scalar_type = infer_scalar_type (self);
0 commit comments