1 //////////////////////////////////////////////////////////////////////// 2 // 3 // Copyright (C) 2004-2021 The Octave Project Developers 4 // 5 // See the file COPYRIGHT.md in the top-level directory of this 6 // distribution or <https://octave.org/copyright/>. 7 // 8 // This file is part of Octave. 9 // 10 // Octave is free software: you can redistribute it and/or modify it 11 // under the terms of the GNU General Public License as published by 12 // the Free Software Foundation, either version 3 of the License, or 13 // (at your option) any later version. 14 // 15 // Octave is distributed in the hope that it will be useful, but 16 // WITHOUT ANY WARRANTY; without even the implied warranty of 17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 // GNU General Public License for more details. 19 // 20 // You should have received a copy of the GNU General Public License 21 // along with Octave; see the file COPYING. If not, see 22 // <https://www.gnu.org/licenses/>. 23 // 24 //////////////////////////////////////////////////////////////////////// 25 26 #if defined (HAVE_CONFIG_H) 27 # include "config.h" 28 #endif 29 30 #include "lo-ieee.h" 31 #include "lo-utils.h" 32 #include "mx-base.h" 33 #include "quit.h" 34 35 #include "errwarn.h" 36 #include "oct-lvalue.h" 37 #include "oct-hdf5.h" 38 #include "ops.h" 39 #include "ov-base.h" 40 41 #if defined (HAVE_HDF5) 42 # define HDF5_SAVE_TYPE H5T_NATIVE_INT64 43 #else 44 // This value will not be used. 45 # define HDF5_SAVE_TYPE 0 46 #endif 47 48 #include "ov-base-int.h" 49 #include "ov-base-int.cc" 50 #include "ov-int64.h" 51 #include "pr-output.h" 52 #include "variables.h" 53 54 #include "byte-swap.h" 55 #include "ls-oct-text.h" 56 #include "ls-utils.h" 57 #include "ls-hdf5.h" 58 59 octave_hdf5_id octave_int64_matrix::hdf5_save_type = HDF5_SAVE_TYPE; 60 octave_hdf5_id octave_int64_scalar::hdf5_save_type = HDF5_SAVE_TYPE; 61 62 // Prevent implicit instantiations on some systems (Windows, others?) 63 // that can lead to duplicate definitions of static data members. 64 65 extern template class OCTINTERP_API octave_base_scalar<double>; 66 67 template class octave_base_matrix<int64NDArray>; 68 69 template class octave_base_int_matrix<int64NDArray>; 70 71 DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (octave_int64_matrix, 72 "int64 matrix", "int64"); 73 74 template class octave_base_scalar<octave_int64>; 75 76 template class octave_base_int_scalar<octave_int64>; 77 78 DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (octave_int64_scalar, 79 "int64 scalar", "int64"); 80