| 181 | |
| 182 | template <typename T> |
| 183 | auto scalar2storage(T val, CompNode cn, DType dtype) { |
| 184 | using max_ctype_t = DTypeScalar::max_ctype; |
| 185 | DTypeScalar scalar(dtype); |
| 186 | scalar.set_retain_dtype(val); |
| 187 | HostTensorStorage storage(cn); |
| 188 | auto* raw_ptr = reinterpret_cast<dt_byte*>(new max_ctype_t()); |
| 189 | std::shared_ptr<dt_byte> raw_storage = { |
| 190 | raw_ptr, [](dt_byte* ptr) { delete reinterpret_cast<max_ctype_t*>(ptr); }}; |
| 191 | storage.only_reset_raw_storage(cn, dtype.size(), raw_storage, 0); |
| 192 | std::memcpy(storage.ptr(), scalar.storage(), dtype.size()); |
| 193 | return HostStorage::make(std::move(storage)); |
| 194 | } |
| 195 | |
| 196 | template <typename ctype> |
| 197 | auto vec2storage(Span<DTypeScalar> vec, CompNode cn, DType dtype) { |
no test coverage detected