Mercurial > octave
comparison libinterp/corefcn/ls-hdf5.cc @ 21211:2cf8bc5c7017
use "#if defined (HAVE_FOO)" instead of "#if HAVE_FOO" for feature tests
* configure.ac (HAVE_HDF5_INT2FLOAT_CONVERSIONS): AC_DEFINE here.
* ls-hdf5.cc (HAVE_HDF5_INT2FLOAT_CONVERSION): Delete definition.
* ls-hdf5.cc, ls-hdf5.h, ccolamd.cc, dmperm.cc, ov-base-int.cc,
ov-bool-mat.cc, ov-bool-sparse.cc, ov-bool.cc, ov-cell.cc,
ov-class.cc, ov-complex.cc, ov-cx-mat.cc, ov-cx-sparse.cc,
ov-fcn-handle.cc, ov-fcn-inline.cc, ov-float.cc, ov-flt-complex.cc,
ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-java.cc, ov-range.cc,
ov-re-mat.cc, ov-re-sparse.cc, ov-scalar.cc, ov-str-mat.cc,
ov-struct.cc, pt-eval.cc:
Use #if defined (HAVE_FOO) instead of #if HAVE_FOO.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sat, 06 Feb 2016 08:48:47 -0500 |
parents | fcac5dbbf9ed |
children | 40de9f8f23a6 |
comparison
equal
deleted
inserted
replaced
21210:4f7d3989c462 | 21211:2cf8bc5c7017 |
---|---|
143 } | 143 } |
144 | 144 |
145 return retval; | 145 return retval; |
146 } | 146 } |
147 | 147 |
148 // Define this to 1 if/when HDF5 supports automatic conversion between | |
149 // integer and floating-point binary data: | |
150 #define HAVE_HDF5_INT2FLOAT_CONVERSIONS 0 | |
151 | |
152 // Given two compound types t1 and t2, determine whether they | 148 // Given two compound types t1 and t2, determine whether they |
153 // are compatible for reading/writing. This function only | 149 // are compatible for reading/writing. This function only |
154 // works for non-nested types composed of simple elements (ints, floats...), | 150 // works for non-nested types composed of simple elements (ints, floats...), |
155 // which is all we need it for | 151 // which is all we need it for |
156 | 152 |
192 void *err_func_data; | 188 void *err_func_data; |
193 | 189 |
194 // turn off error reporting temporarily, but save the error | 190 // turn off error reporting temporarily, but save the error |
195 // reporting function: | 191 // reporting function: |
196 | 192 |
197 #if HAVE_HDF5_18 | 193 #if defined (HAVE_HDF5_18) |
198 H5Eget_auto (octave_H5E_DEFAULT, &err_func, &err_func_data); | 194 H5Eget_auto (octave_H5E_DEFAULT, &err_func, &err_func_data); |
199 H5Eset_auto (octave_H5E_DEFAULT, 0, 0); | 195 H5Eset_auto (octave_H5E_DEFAULT, 0, 0); |
200 #else | 196 #else |
201 H5Eget_auto (&err_func, &err_func_data); | 197 H5Eget_auto (&err_func, &err_func_data); |
202 H5Eset_auto (0, 0); | 198 H5Eset_auto (0, 0); |
210 retval = true; | 206 retval = true; |
211 H5Aclose (attr_id); | 207 H5Aclose (attr_id); |
212 } | 208 } |
213 | 209 |
214 // restore error reporting: | 210 // restore error reporting: |
215 #if HAVE_HDF5_18 | 211 #if defined (HAVE_HDF5_18) |
216 H5Eset_auto (octave_H5E_DEFAULT, err_func, err_func_data); | 212 H5Eset_auto (octave_H5E_DEFAULT, err_func, err_func_data); |
217 #else | 213 #else |
218 H5Eset_auto (err_func, err_func_data); | 214 H5Eset_auto (err_func, err_func_data); |
219 #endif | 215 #endif |
220 return retval; | 216 return retval; |
234 void *err_func_data; | 230 void *err_func_data; |
235 | 231 |
236 // turn off error reporting temporarily, but save the error | 232 // turn off error reporting temporarily, but save the error |
237 // reporting function: | 233 // reporting function: |
238 | 234 |
239 #if HAVE_HDF5_18 | 235 #if defined (HAVE_HDF5_18) |
240 H5Eget_auto (octave_H5E_DEFAULT, &err_func, &err_func_data); | 236 H5Eget_auto (octave_H5E_DEFAULT, &err_func, &err_func_data); |
241 H5Eset_auto (octave_H5E_DEFAULT, 0, 0); | 237 H5Eset_auto (octave_H5E_DEFAULT, 0, 0); |
242 #else | 238 #else |
243 H5Eget_auto (&err_func, &err_func_data); | 239 H5Eget_auto (&err_func, &err_func_data); |
244 H5Eset_auto (0, 0); | 240 H5Eset_auto (0, 0); |
256 retval = H5Aread (attr_id, type_id, buf) >= 0; | 252 retval = H5Aread (attr_id, type_id, buf) >= 0; |
257 H5Aclose (attr_id); | 253 H5Aclose (attr_id); |
258 } | 254 } |
259 | 255 |
260 // restore error reporting: | 256 // restore error reporting: |
261 #if HAVE_HDF5_18 | 257 #if defined (HAVE_HDF5_18) |
262 H5Eset_auto (octave_H5E_DEFAULT, err_func, err_func_data); | 258 H5Eset_auto (octave_H5E_DEFAULT, err_func, err_func_data); |
263 #else | 259 #else |
264 H5Eset_auto (err_func, err_func_data); | 260 H5Eset_auto (err_func, err_func_data); |
265 #endif | 261 #endif |
266 return retval; | 262 return retval; |
326 | 322 |
327 H5Gget_objinfo (group_id, name, 1, &info); | 323 H5Gget_objinfo (group_id, name, 1, &info); |
328 | 324 |
329 if (info.type == H5G_GROUP && ident_valid) | 325 if (info.type == H5G_GROUP && ident_valid) |
330 { | 326 { |
331 #if HAVE_HDF5_18 | 327 #if defined (HAVE_HDF5_18) |
332 subgroup_id = H5Gopen (group_id, name, octave_H5P_DEFAULT); | 328 subgroup_id = H5Gopen (group_id, name, octave_H5P_DEFAULT); |
333 #else | 329 #else |
334 subgroup_id = H5Gopen (group_id, name); | 330 subgroup_id = H5Gopen (group_id, name); |
335 #endif | 331 #endif |
336 | 332 |
340 goto done; | 336 goto done; |
341 } | 337 } |
342 | 338 |
343 if (hdf5_check_attr (subgroup_id, "OCTAVE_NEW_FORMAT")) | 339 if (hdf5_check_attr (subgroup_id, "OCTAVE_NEW_FORMAT")) |
344 { | 340 { |
345 #if HAVE_HDF5_18 | 341 #if defined (HAVE_HDF5_18) |
346 data_id = H5Dopen (subgroup_id, "type", octave_H5P_DEFAULT); | 342 data_id = H5Dopen (subgroup_id, "type", octave_H5P_DEFAULT); |
347 #else | 343 #else |
348 data_id = H5Dopen (subgroup_id, "type"); | 344 data_id = H5Dopen (subgroup_id, "type"); |
349 #endif | 345 #endif |
350 | 346 |
414 | 410 |
415 } | 411 } |
416 else if (info.type == H5G_DATASET && ident_valid) | 412 else if (info.type == H5G_DATASET && ident_valid) |
417 { | 413 { |
418 // For backwards compatibility. | 414 // For backwards compatibility. |
419 #if HAVE_HDF5_18 | 415 #if defined (HAVE_HDF5_18) |
420 data_id = H5Dopen (group_id, name, octave_H5P_DEFAULT); | 416 data_id = H5Dopen (group_id, name, octave_H5P_DEFAULT); |
421 #else | 417 #else |
422 data_id = H5Dopen (group_id, name); | 418 data_id = H5Dopen (group_id, name); |
423 #endif | 419 #endif |
424 | 420 |
649 hdf5_callback_data d; | 645 hdf5_callback_data d; |
650 | 646 |
651 herr_t H5Giterate_retval = -1; | 647 herr_t H5Giterate_retval = -1; |
652 | 648 |
653 hsize_t num_obj = 0; | 649 hsize_t num_obj = 0; |
654 #if HAVE_HDF5_18 | 650 #if defined (HAVE_HDF5_18) |
655 hid_t group_id = H5Gopen (hs.file_id, "/", octave_H5P_DEFAULT); | 651 hid_t group_id = H5Gopen (hs.file_id, "/", octave_H5P_DEFAULT); |
656 #else | 652 #else |
657 hid_t group_id = H5Gopen (hs.file_id, "/"); | 653 hid_t group_id = H5Gopen (hs.file_id, "/"); |
658 #endif | 654 #endif |
659 H5Gget_num_objs (group_id, &num_obj); | 655 H5Gget_num_objs (group_id, &num_obj); |
721 | 717 |
722 hid_t as_id = H5Screate (H5S_SCALAR); | 718 hid_t as_id = H5Screate (H5S_SCALAR); |
723 | 719 |
724 if (as_id >= 0) | 720 if (as_id >= 0) |
725 { | 721 { |
726 #if HAVE_HDF5_18 | 722 #if defined (HAVE_HDF5_18) |
727 hid_t a_id = H5Acreate (loc_id, attr_name, H5T_NATIVE_UCHAR, | 723 hid_t a_id = H5Acreate (loc_id, attr_name, H5T_NATIVE_UCHAR, |
728 as_id, octave_H5P_DEFAULT, octave_H5P_DEFAULT); | 724 as_id, octave_H5P_DEFAULT, octave_H5P_DEFAULT); |
729 #else | 725 #else |
730 hid_t a_id = H5Acreate (loc_id, attr_name, | 726 hid_t a_id = H5Acreate (loc_id, attr_name, |
731 H5T_NATIVE_UCHAR, as_id, octave_H5P_DEFAULT); | 727 H5T_NATIVE_UCHAR, as_id, octave_H5P_DEFAULT); |
757 | 753 |
758 hid_t as_id = H5Screate (H5S_SCALAR); | 754 hid_t as_id = H5Screate (H5S_SCALAR); |
759 | 755 |
760 if (as_id >= 0) | 756 if (as_id >= 0) |
761 { | 757 { |
762 #if HAVE_HDF5_18 | 758 #if defined (HAVE_HDF5_18) |
763 hid_t a_id = H5Acreate (loc_id, attr_name, type_id, | 759 hid_t a_id = H5Acreate (loc_id, attr_name, type_id, |
764 as_id, octave_H5P_DEFAULT, octave_H5P_DEFAULT); | 760 as_id, octave_H5P_DEFAULT, octave_H5P_DEFAULT); |
765 #else | 761 #else |
766 hid_t a_id = H5Acreate (loc_id, attr_name, | 762 hid_t a_id = H5Acreate (loc_id, attr_name, |
767 type_id, as_id, octave_H5P_DEFAULT); | 763 type_id, as_id, octave_H5P_DEFAULT); |
806 if (! empty) | 802 if (! empty) |
807 return 0; | 803 return 0; |
808 | 804 |
809 space_hid = H5Screate_simple (1, &sz, 0); | 805 space_hid = H5Screate_simple (1, &sz, 0); |
810 if (space_hid < 0) return space_hid; | 806 if (space_hid < 0) return space_hid; |
811 #if HAVE_HDF5_18 | 807 #if defined (HAVE_HDF5_18) |
812 data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_IDX, space_hid, | 808 data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_IDX, space_hid, |
813 octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT); | 809 octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT); |
814 #else | 810 #else |
815 data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_IDX, space_hid, | 811 data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_IDX, space_hid, |
816 octave_H5P_DEFAULT); | 812 octave_H5P_DEFAULT); |
842 { | 838 { |
843 if (! hdf5_check_attr (loc_id, "OCTAVE_EMPTY_MATRIX")) | 839 if (! hdf5_check_attr (loc_id, "OCTAVE_EMPTY_MATRIX")) |
844 return 0; | 840 return 0; |
845 | 841 |
846 hsize_t hdims, maxdims; | 842 hsize_t hdims, maxdims; |
847 #if HAVE_HDF5_18 | 843 #if defined (HAVE_HDF5_18) |
848 hid_t data_hid = H5Dopen (loc_id, name, octave_H5P_DEFAULT); | 844 hid_t data_hid = H5Dopen (loc_id, name, octave_H5P_DEFAULT); |
849 #else | 845 #else |
850 hid_t data_hid = H5Dopen (loc_id, name); | 846 hid_t data_hid = H5Dopen (loc_id, name); |
851 #endif | 847 #endif |
852 hid_t space_id = H5Dget_space (data_hid); | 848 hid_t space_id = H5Dget_space (data_hid); |
871 } | 867 } |
872 | 868 |
873 // save_type_to_hdf5 is not currently used, since hdf5 doesn't yet support | 869 // save_type_to_hdf5 is not currently used, since hdf5 doesn't yet support |
874 // automatic float<->integer conversions: | 870 // automatic float<->integer conversions: |
875 | 871 |
876 #if HAVE_HDF5_INT2FLOAT_CONVERSIONS | 872 #if defined (HAVE_HDF5_INT2FLOAT_CONVERSIONS) |
877 | 873 |
878 // return the HDF5 type id corresponding to the Octave save_type | 874 // return the HDF5 type id corresponding to the Octave save_type |
879 | 875 |
880 octave_hdf5_id | 876 octave_hdf5_id |
881 save_type_to_hdf5 (save_type st) | 877 save_type_to_hdf5 (save_type st) |
932 if (val.is_diag_matrix () || val.is_perm_matrix () | 928 if (val.is_diag_matrix () || val.is_perm_matrix () |
933 || val.type_id () == octave_lazy_index::static_type_id ()) | 929 || val.type_id () == octave_lazy_index::static_type_id ()) |
934 val = val.full_value (); | 930 val = val.full_value (); |
935 | 931 |
936 std::string t = val.type_name (); | 932 std::string t = val.type_name (); |
937 #if HAVE_HDF5_18 | 933 #if defined (HAVE_HDF5_18) |
938 data_id = H5Gcreate (loc_id, name.c_str (), octave_H5P_DEFAULT, octave_H5P_DEFAULT, | 934 data_id = H5Gcreate (loc_id, name.c_str (), octave_H5P_DEFAULT, octave_H5P_DEFAULT, |
939 octave_H5P_DEFAULT); | 935 octave_H5P_DEFAULT); |
940 #else | 936 #else |
941 data_id = H5Gcreate (loc_id, name.c_str (), 0); | 937 data_id = H5Gcreate (loc_id, name.c_str (), 0); |
942 #endif | 938 #endif |
950 | 946 |
951 dims[0] = 0; | 947 dims[0] = 0; |
952 space_id = H5Screate_simple (0 , dims, 0); | 948 space_id = H5Screate_simple (0 , dims, 0); |
953 if (space_id < 0) | 949 if (space_id < 0) |
954 goto error_cleanup; | 950 goto error_cleanup; |
955 #if HAVE_HDF5_18 | 951 #if defined (HAVE_HDF5_18) |
956 data_type_id = H5Dcreate (data_id, "type", type_id, space_id, | 952 data_type_id = H5Dcreate (data_id, "type", type_id, space_id, |
957 octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT); | 953 octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT); |
958 #else | 954 #else |
959 data_type_id = H5Dcreate (data_id, "type", type_id, space_id, octave_H5P_DEFAULT); | 955 data_type_id = H5Dcreate (data_id, "type", type_id, space_id, octave_H5P_DEFAULT); |
960 #endif | 956 #endif |