/usr/local/lib64/python3.6/site-packages/torch/include/torch/csrc/utils
NameSizeModeActions
auto_gil.h10340644editdlrm
byte_order.h24840644editdlrm
crash_handler.h11460644editdlrm
cuda_enabled.h1540644editdlrm
cuda_lazy_init.h9740644editdlrm
disable_torch_function.h8630644editdlrm
disallow_copy.h1030644editdlrm
init.h3240644editdlrm
invalid_arguments.h3020644editdlrm
memory.h11730644editdlrm
numpy_stub.h3990644editdlrm
object_ptr.h13290644editdlrm
out_types.h2940644editdlrm
pybind.h79660644editdlrm
pycfunction_helpers.h2090644editdlrm
python_arg_parser.h307530644editdlrm
python_compat.h29040644editdlrm
python_dispatch.h1740644editdlrm
python_numbers.h50640644editdlrm
python_scalars.h29280644editdlrm
python_strings.h45920644editdlrm
python_stub.h560644editdlrm
python_tuples.h6840644editdlrm
six.h14250644editdlrm
structseq.h1530644editdlrm
tensor_apply.h4310644editdlrm
tensor_dtypes.h2440644editdlrm
tensor_flatten.h27800644editdlrm
tensor_layouts.h1070644editdlrm
tensor_list.h1960644editdlrm
tensor_memoryformats.h1130644editdlrm
tensor_new.h18070644editdlrm
tensor_numpy.h5420644editdlrm
tensor_qschemes.h1860644editdlrm
tensor_types.h4910644editdlrm
throughput_benchmark-inl.h52100644editdlrm
throughput_benchmark.h68680644editdlrm
variadic.h43940644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/torch/include/torch/csrc/utils/python_scalars.h (2928B)
#pragma once #include #include #include #include namespace torch { namespace utils { inline void store_scalar(void* data, at::ScalarType scalarType, PyObject* obj) { switch (scalarType) { case at::kByte: *(uint8_t*)data = (uint8_t)THPUtils_unpackLong(obj); break; case at::kChar: *(int8_t*)data = (int8_t)THPUtils_unpackLong(obj); break; case at::kShort: *(int16_t*)data = (int16_t)THPUtils_unpackLong(obj); break; case at::kInt: *(int32_t*)data = (int32_t)THPUtils_unpackLong(obj); break; case at::kLong: *(int64_t*)data = THPUtils_unpackLong(obj); break; case at::kHalf: *(at::Half*)data = at::convert(THPUtils_unpackDouble(obj)); break; case at::kFloat: *(float*)data = (float)THPUtils_unpackDouble(obj); break; case at::kDouble: *(double*)data = THPUtils_unpackDouble(obj); break; case at::kComplexHalf: *(c10::complex*)data = (c10::complex)THPUtils_unpackComplexDouble(obj); break; case at::kComplexFloat: *(c10::complex*)data = (c10::complex)THPUtils_unpackComplexDouble(obj); break; case at::kComplexDouble: *(c10::complex*)data = THPUtils_unpackComplexDouble(obj); break; case at::kBool: *(bool*)data = THPUtils_unpackNumberAsBool(obj); break; case at::kBFloat16: *(at::BFloat16*)data = at::convert(THPUtils_unpackDouble(obj)); break; default: throw std::runtime_error("invalid type"); } } inline PyObject* load_scalar(void* data, at::ScalarType scalarType) { switch (scalarType) { case at::kByte: return THPUtils_packInt64(*(uint8_t*)data); case at::kChar: return THPUtils_packInt64(*(int8_t*)data); case at::kShort: return THPUtils_packInt64(*(int16_t*)data); case at::kInt: return THPUtils_packInt64(*(int32_t*)data); case at::kLong: return THPUtils_packInt64(*(int64_t*)data); case at::kHalf: return PyFloat_FromDouble(at::convert(*(at::Half*)data)); case at::kFloat: return PyFloat_FromDouble(*(float*)data); case at::kDouble: return PyFloat_FromDouble(*(double*)data); case at::kComplexHalf: { auto data_ = reinterpret_cast*>(data); return PyComplex_FromDoubles(data_->real(), data_->imag()); } case at::kComplexFloat: { auto data_ = reinterpret_cast*>(data); return PyComplex_FromDoubles(data_->real(), data_->imag()); } case at::kComplexDouble: return PyComplex_FromCComplex(*reinterpret_cast((c10::complex*)data)); case at::kBool: return PyBool_FromLong(*(bool*)data); case at::kBFloat16: return PyFloat_FromDouble(at::convert(*(at::BFloat16*)data)); default: throw std::runtime_error("invalid type"); } } }} // namespace torch::utils