| 431 | ", got " + std::to_string(count)); |
| 432 | } |
| 433 | ggml_backend_tensor_set(tensor.tensor, values, 0, count * sizeof(float)); |
| 434 | } |
| 435 | |
| 436 | void write_tensor_f32_slice(const TensorValue & tensor, size_t element_offset, const float * values, size_t count) { |
| 437 | if (tensor.type != GGML_TYPE_F32) { |
| 438 | throw std::runtime_error("write_tensor_f32_slice requires GGML_TYPE_F32 tensor"); |
| 439 | } |
| 440 | const size_t total = static_cast<size_t>(tensor.shape.num_elements()); |
| 441 | if (element_offset > total || count > total - element_offset) { |
| 442 | throw std::runtime_error("write_tensor_f32_slice range exceeds tensor shape"); |
| 443 | } |
| 444 | ggml_backend_tensor_set( |
| 445 | tensor.tensor, |
| 446 | values, |
| 447 | element_offset * sizeof(float), |
| 448 | count * sizeof(float)); |
| 449 | } |
no test coverage detected