#pragma once #include #include #include #include namespace at { namespace detail { template inline T load(const void* data, ScalarType src_type) { return AT_DISPATCH_ALL_TYPES_AND2(at::ScalarType::Half, at::ScalarType::Bool, src_type, "load", [&]() { return at::convert(*(scalar_t*)data); }); } template inline void store(T value, void* dst, ScalarType dst_type) { AT_DISPATCH_ALL_TYPES_AND2(at::ScalarType::Half, at::ScalarType::Bool, dst_type, "store", [&]() { *(scalar_t*)dst = at::convert(value); }); } }} // namespace at::detail