unary_op_out Class — pytorch Architecture
Architecture documentation for the unary_op_out class in SparseCsrTensorMath.cpp from the pytorch codebase.
Entity Profile
Source Code
aten/src/ATen/native/sparse/SparseCsrTensorMath.cpp lines 167–188
template <typename F>
Tensor& unary_op_out(F op_out, const Tensor& self, Tensor& result) {
TORCH_INTERNAL_ASSERT(self.is_sparse_csr());
TORCH_INTERNAL_ASSERT(result.is_sparse_csr());
if (!result.is_same(self)) {
// For the case of (0x0) result tensor, manually resize `result` tensor
// to the size of `self` tensor
if (result.numel() == 0) {
at::native::resize_as_sparse_compressed_(result, self);
}
// copy_sparse_compressed_ internally checks the sizes of result and self tensors
// Hence no external size check required
at::native::copy_sparse_compressed_(result, self);
}
auto self_values = self.values();
auto result_values = result.values();
op_out(self_values, result_values);
return result;
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free