diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2001-11-02 20:31:35 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2001-11-02 20:31:35 (GMT) |
commit | 1cd9eb7e0d282aaf5161af220aae00cc7f7e31f9 (patch) | |
tree | 90c364175d9336948f7f98ec7c632494af48edb3 /src/H5Spublic.h | |
parent | e9d955be61f79ceddd6be3d279f723d8e9153b9b (diff) | |
download | hdf5-1cd9eb7e0d282aaf5161af220aae00cc7f7e31f9.zip hdf5-1cd9eb7e0d282aaf5161af220aae00cc7f7e31f9.tar.gz hdf5-1cd9eb7e0d282aaf5161af220aae00cc7f7e31f9.tar.bz2 |
[svn-r4586] Purpose:
Code speedups, etc.
Description:
Bring in new algorithms and data structures for dealing with hyperslabs.
This speeds up the hyperslab I/O for non-regular hyperslabs by a huge
amount.
Currently, the new API functions are ifdef'ed out, pending discussion
and consensus approval.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Diffstat (limited to 'src/H5Spublic.h')
-rw-r--r-- | src/H5Spublic.h | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/src/H5Spublic.h b/src/H5Spublic.h index 577998b..7c5ab31 100644 --- a/src/H5Spublic.h +++ b/src/H5Spublic.h @@ -40,7 +40,34 @@ typedef enum H5S_seloper_t { H5S_SELECT_NOOP = -1, /* error */ H5S_SELECT_SET = 0, /* Select "set" operation */ H5S_SELECT_OR, /* Binary "or" operation for hyperslabs - * (add new selection to existing selection) + * (add new selection to existing selection) + * Original region: AAAAAAAAAA + * New region: BBBBBBBBBB + * A or B: CCCCCCCCCCCCCCCC + */ + H5S_SELECT_AND, /* Binary "and" operation for hyperslabs + * (only leave overlapped regions in selection) + * Original region: AAAAAAAAAA + * New region: BBBBBBBBBB + * A and B: CCCC + */ + H5S_SELECT_XOR, /* Binary "xor" operation for hyperslabs + * (only leave non-overlapped regions in selection) + * Original region: AAAAAAAAAA + * New region: BBBBBBBBBB + * A xor B: CCCCCC CCCCCC + */ + H5S_SELECT_NOTB, /* Binary "not" operation for hyperslabs + * (only leave non-overlapped regions in original selection) + * Original region: AAAAAAAAAA + * New region: BBBBBBBBBB + * A not B: CCCCCC + */ + H5S_SELECT_NOTA, /* Binary "not" operation for hyperslabs + * (only leave non-overlapped regions in new selection) + * Original region: AAAAAAAAAA + * New region: BBBBBBBBBB + * B not A: CCCCCC */ H5S_SELECT_APPEND, /* Append elements to end of point selection */ H5S_SELECT_PREPEND, /* Prepend elements to beginning of point selection */ @@ -72,6 +99,17 @@ __DLL__ herr_t H5Sselect_hyperslab(hid_t space_id, H5S_seloper_t op, const hsize_t _stride[], const hsize_t count[], const hsize_t _block[]); +#ifdef NEW_HYPERSLAB_API +__DLL__ hid_t H5Scombine_hyperslab(hid_t space_id, H5S_seloper_t op, + const hssize_t start[], + const hsize_t _stride[], + const hsize_t count[], + const hsize_t _block[]); +__DLL__ herr_t H5Sselect_select(hid_t space1_id, H5S_seloper_t op, + hid_t space2_id); +__DLL__ hid_t H5Scombine_select(hid_t space1_id, H5S_seloper_t op, + hid_t space2_id); +#endif /* OLD_WAY */ __DLL__ herr_t H5Sselect_elements(hid_t space_id, H5S_seloper_t op, size_t num_elemn, const hssize_t **coord); |