pytorch/torch/csrc/generic/utils.h
anjali411 1f09f7ea44 Python API for Complex Storage and storage copy logic (#35771)
Summary:
Following up on this: https://github.com/pytorch/pytorch/pull/35851 cross dtype storage copy is not being used internally, so I have not included cross dtype copy for complex.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/35771

Differential Revision: D21319650

Pulled By: anjali411

fbshipit-source-id: 07c72996ee598eba0cf401ad61534494d6f5b5b3
2020-05-01 11:47:22 -07:00

37 lines
961 B
C++

#ifndef TH_GENERIC_FILE
#define TH_GENERIC_FILE "torch/csrc/generic/utils.h"
#else
#if defined(TH_REAL_IS_HALF)
#define GENERATE_SPARSE 0
#else
#define GENERATE_SPARSE 1
#endif
struct THPStorage;
struct THSPTensor;
typedef class THPPointer<THWStorage> THWStoragePtr;
typedef class THPPointer<THWTensor> THWTensorPtr;
typedef class THPPointer<THPStorage> THPStoragePtr;
#if (!defined(THC_GENERIC_FILE)) && \
(!defined(THQUANTIZED))
template<>
struct THPUtils_typeTraits<scalar_t> {
#if defined(TH_REAL_IS_FLOAT) || defined(TH_REAL_IS_DOUBLE) || \
defined(THC_REAL_IS_FLOAT) || defined(THC_REAL_IS_DOUBLE) || \
defined(THC_REAL_IS_HALF)
static constexpr const char *python_type_str = "float";
#elif defined(TH_REAL_IS_COMPLEX) || defined(THC_REAL_IS_COMPLEX)
static constexpr const char *python_type_str = "complex";
#else
static constexpr const char *python_type_str = "int";
#endif
};
#endif
#undef GENERATE_SPARSE
#endif