Idx File -

out->data_size_bytes = total_elements * elem_size; out->data = malloc(out->data_size_bytes); if (fread(out->data, 1, out->data_size_bytes, f) != out->data_size_bytes) free(out->dims); free(out->data); fclose(f); return -6;

out->dims = malloc(out->dim_count * sizeof(uint32_t)); for (int i = 0; i < out->dim_count; i++) uint32_t dim_net; if (fread(&dim_net, 4, 1, f) != 1) free(out->dims); fclose(f); return -4; out->dims[i] = ntohl(dim_net); idx file

int idx_read(const char *filename, idx_file_t *out) header[1] != 0) fclose(f); return -3; // Invalid magic prefix data_size_bytes = total_elements * elem_size