|
| H5_DLL hid_t | H5Screate (H5S_class_t type) |
| |
| H5_DLL hid_t | H5Screate_simple (int rank, const hsize_t dims[], const hsize_t maxdims[]) |
| |
| H5_DLL herr_t | H5Sset_extent_simple (hid_t space_id, int rank, const hsize_t dims[], const hsize_t max[]) |
| |
| H5_DLL hid_t | H5Scopy (hid_t space_id) |
| |
| H5_DLL herr_t | H5Sclose (hid_t space_id) |
| |
| H5_DLL herr_t | H5Sencode2 (hid_t obj_id, void *buf, size_t *nalloc, hid_t fapl) |
| |
| H5_DLL hid_t | H5Sdecode (const void *buf) |
| |
| H5_DLL hssize_t | H5Sget_simple_extent_npoints (hid_t space_id) |
| |
| H5_DLL int | H5Sget_simple_extent_ndims (hid_t space_id) |
| |
| H5_DLL int | H5Sget_simple_extent_dims (hid_t space_id, hsize_t dims[], hsize_t maxdims[]) |
| |
| H5_DLL htri_t | H5Sis_simple (hid_t space_id) |
| |
| H5_DLL H5S_class_t | H5Sget_simple_extent_type (hid_t space_id) |
| |
| H5_DLL herr_t | H5Sset_extent_none (hid_t space_id) |
| |
| H5_DLL herr_t | H5Sextent_copy (hid_t dst_id, hid_t src_id) |
| |
| H5_DLL htri_t | H5Sextent_equal (hid_t sid1, hid_t sid2) |
| |
| H5_DLL H5S_sel_type | H5Sget_select_type (hid_t spaceid) |
| |
| H5_DLL hssize_t | H5Sget_select_npoints (hid_t spaceid) |
| |
| H5_DLL herr_t | H5Sselect_copy (hid_t dst_id, hid_t src_id) |
| |
| H5_DLL htri_t | H5Sselect_valid (hid_t spaceid) |
| |
| H5_DLL herr_t | H5Sselect_adjust (hid_t spaceid, const hssize_t *offset) |
| |
| H5_DLL herr_t | H5Sget_select_bounds (hid_t spaceid, hsize_t start[], hsize_t end[]) |
| |
| H5_DLL htri_t | H5Sselect_shape_same (hid_t space1_id, hid_t space2_id) |
| |
| H5_DLL htri_t | H5Sselect_intersect_block (hid_t space_id, const hsize_t *start, const hsize_t *end) |
| |
| H5_DLL herr_t | H5Soffset_simple (hid_t space_id, const hssize_t *offset) |
| |
| H5_DLL herr_t | H5Sselect_all (hid_t spaceid) |
| |
| H5_DLL herr_t | H5Sselect_none (hid_t spaceid) |
| |
| H5_DLL herr_t | H5Sselect_elements (hid_t space_id, H5S_seloper_t op, size_t num_elem, const hsize_t *coord) |
| |
| H5_DLL hssize_t | H5Sget_select_elem_npoints (hid_t spaceid) |
| |
| H5_DLL herr_t | H5Sget_select_elem_pointlist (hid_t spaceid, hsize_t startpoint, hsize_t numpoints, hsize_t buf[]) |
| |
| H5_DLL herr_t | H5Sselect_hyperslab (hid_t space_id, H5S_seloper_t op, const hsize_t start[], const hsize_t _stride[], const hsize_t count[], const hsize_t _block[]) |
| |
| H5_DLL hid_t | H5Scombine_hyperslab (hid_t space_id, H5S_seloper_t op, const hsize_t start[], const hsize_t _stride[], const hsize_t count[], const hsize_t _block[]) |
| |
| H5_DLL herr_t | H5Smodify_select (hid_t space1_id, H5S_seloper_t op, hid_t space2_id) |
| |
| H5_DLL hid_t | H5Scombine_select (hid_t space1_id, H5S_seloper_t op, hid_t space2_id) |
| |
| H5_DLL htri_t | H5Sis_regular_hyperslab (hid_t spaceid) |
| |
| H5_DLL htri_t | H5Sget_regular_hyperslab (hid_t spaceid, hsize_t start[], hsize_t stride[], hsize_t count[], hsize_t block[]) |
| |
| H5_DLL hssize_t | H5Sget_select_hyper_nblocks (hid_t spaceid) |
| |
| H5_DLL herr_t | H5Sget_select_hyper_blocklist (hid_t spaceid, hsize_t startblock, hsize_t numblocks, hsize_t buf[]) |
| |
| H5_DLL hid_t | H5Sselect_project_intersection (hid_t src_space_id, hid_t dst_space_id, hid_t src_intersect_space_id) |
| |
| H5_DLL hid_t | H5Ssel_iter_create (hid_t spaceid, size_t elmt_size, unsigned flags) |
| |
| H5_DLL herr_t | H5Ssel_iter_get_seq_list (hid_t sel_iter_id, size_t maxseq, size_t maxbytes, size_t *nseq, size_t *nbytes, hsize_t *off, size_t *len) |
| |
| H5_DLL herr_t | H5Ssel_iter_close (hid_t sel_iter_id) |
| |
| H5_DLL herr_t | H5Sencode1 (hid_t obj_id, void *buf, size_t *nalloc) |
| |
Note that this is a tricky part of this function. It's possible that two dataspaces have different "offset". If the space2 has smaller offset value than that of space1 in a dimension, then the span elements of this dimension in space2 could have negative "low" and "high" values relative to the offset in space1. In other words, if the bounds of span elements in space2 are adjusted relative to the offset in space1, then every span element's bound is computed as "origin_bound+offset2-offset1". Therefore, if offset2 (the offset of space2) is smaller, then "origin_bound+offset2-offset1" could be negative which is not allowed by the bound type declaration as hsize_t! As a result, if the op is an OR selection, then the final result may contain span elements that have negative bound! So right now, the difference in the offset is totally ignored!!