diff --git a/include/libpressio_ext/cpp/dtype.h b/include/libpressio_ext/cpp/dtype.h index 1ff02978..a9924ed9 100644 --- a/include/libpressio_ext/cpp/dtype.h +++ b/include/libpressio_ext/cpp/dtype.h @@ -40,7 +40,7 @@ constexpr pressio_dtype pressio_size_type() { */ template constexpr pressio_dtype pressio_dtype_from_type() { - static_assert(impl::is_one_of::value, + static_assert(impl::is_one_of::value, "unexpected type"); return (std::is_same::value ? pressio_double_dtype : std::is_same::value ? pressio_float_dtype : @@ -48,6 +48,7 @@ constexpr pressio_dtype pressio_dtype_from_type() { std::is_same::value ? pressio_int32_dtype : std::is_same::value ? pressio_int16_dtype : std::is_same::value ? pressio_int8_dtype : + std::is_same::value ? pressio_size_type() : std::is_same::value ? pressio_size_type() : std::is_same::value ? pressio_uint64_dtype : std::is_same::value ? pressio_uint32_dtype : diff --git a/src/plugins/compressors/external.cc b/src/plugins/compressors/external.cc index 12224552..383dbd71 100644 --- a/src/plugins/compressors/external.cc +++ b/src/plugins/compressors/external.cc @@ -1,6 +1,7 @@ #include #include #include +#include #include "std_compat/memory.h" #include "libpressio_ext/cpp/compressor.h" #include "libpressio_ext/cpp/data.h" diff --git a/src/plugins/compressors/mgard-1.3_plugin.cc b/src/plugins/compressors/mgard-1.3_plugin.cc index 0c8138c1..2ff9fa16 100644 --- a/src/plugins/compressors/mgard-1.3_plugin.cc +++ b/src/plugins/compressors/mgard-1.3_plugin.cc @@ -271,7 +271,8 @@ Reference [6] covers the design and implementation on GPU heterogeneous systems. size_t compressed_size; bool pre_allocated = output->has_data(); auto const& dims = input->normalized_dims(); - mgard_x::compress(dims.size(), to_mgard_type(input->dtype()), dims, tolerance, s, + std::vector dims_(dims.begin(), dims.end()); + mgard_x::compress(dims.size(), to_mgard_type(input->dtype()), dims_, tolerance, s, bound_type, input->data(), output_data, compressed_size, config, pre_allocated); diff --git a/src/plugins/compressors/sz3.cc b/src/plugins/compressors/sz3.cc index 6e25c641..4233d4b4 100644 --- a/src/plugins/compressors/sz3.cc +++ b/src/plugins/compressors/sz3.cc @@ -226,9 +226,11 @@ class sz3_compressor_plugin : public libpressio_compressor_plugin { { cleanup restore_threads; if(config.openmp) { +#if LIBPRESSIO_HAS_OPENMP int32_t old_threads = omp_get_num_threads(); omp_set_num_threads(static_cast(nthreads)); restore_threads = [old_threads]{ omp_set_num_threads(old_threads);}; +#endif } auto reg_dims = input->normalized_dims(); @@ -246,9 +248,11 @@ class sz3_compressor_plugin : public libpressio_compressor_plugin { { cleanup restore_threads; if(config.openmp) { +#if LIBPRESSIO_HAS_OPENMP int32_t old_threads = omp_get_num_threads(); omp_set_num_threads(static_cast(nthreads)); restore_threads = [old_threads]{ omp_set_num_threads(old_threads);}; +#endif } std::vector output_dims = output->normalized_dims(); diff --git a/src/plugins/compressors/sz_common.cc b/src/plugins/compressors/sz_common.cc index 900b898f..07db3ea8 100644 --- a/src/plugins/compressors/sz_common.cc +++ b/src/plugins/compressors/sz_common.cc @@ -4,7 +4,7 @@ #include #include -#include +#include #include "libpressio_ext/cpp/data.h" #include "libpressio_ext/cpp/compressor.h" diff --git a/src/plugins/compressors/sz_common.h b/src/plugins/compressors/sz_common.h index b5a41742..07f8996f 100644 --- a/src/plugins/compressors/sz_common.h +++ b/src/plugins/compressors/sz_common.h @@ -8,7 +8,7 @@ #include #include #include -#include +#include #define PRESSIO_SZ_VERSION_GREATEREQ(major, minor, build, revision) \ (SZ_VER_MAJOR > major || \ diff --git a/src/plugins/compressors/sz_plugin.cc b/src/plugins/compressors/sz_plugin.cc index ad9203b1..66a7e03c 100644 --- a/src/plugins/compressors/sz_plugin.cc +++ b/src/plugins/compressors/sz_plugin.cc @@ -4,7 +4,7 @@ #include #include -#include +#include #if HAVE_WRITESTATS #include #endif diff --git a/src/plugins/compressors/sz_threadsafe_plugin.cc b/src/plugins/compressors/sz_threadsafe_plugin.cc index 277df8ec..33a364d7 100644 --- a/src/plugins/compressors/sz_threadsafe_plugin.cc +++ b/src/plugins/compressors/sz_threadsafe_plugin.cc @@ -4,7 +4,7 @@ #include #include -#include +#include #include "libpressio_ext/cpp/data.h" #include "libpressio_ext/cpp/compressor.h" diff --git a/tools/swig/pypressio.h b/tools/swig/pypressio.h index 3748c97f..a88b8214 100644 --- a/tools/swig/pypressio.h +++ b/tools/swig/pypressio.h @@ -118,23 +118,28 @@ struct pressio_option* option_new_strings(std::vector const& string } struct pressio_data* data_new_empty(const pressio_dtype dtype, std::vector dimensions) { - return new pressio_data(pressio_data::empty(dtype, dimensions)); + std::vector dimensions_(dimensions.cbegin(), dimensions.cend()); + return new pressio_data(pressio_data::empty(dtype, dimensions_)); } struct pressio_data* data_new_nonowning(const pressio_dtype dtype, void* data, std::vector dimensions) { - return new pressio_data(pressio_data::nonowning(dtype, data, dimensions)); + std::vector dimensions_(dimensions.cbegin(), dimensions.cend()); + return new pressio_data(pressio_data::nonowning(dtype, data, dimensions_)); } struct pressio_data* data_new_copy(const enum pressio_dtype dtype, void* src, std::vector dimensions) { - return new pressio_data(pressio_data::copy(dtype, src, dimensions)); + std::vector dimensions_(dimensions.cbegin(), dimensions.cend()); + return new pressio_data(pressio_data::copy(dtype, src, dimensions_)); } struct pressio_data* data_new_owning(const pressio_dtype dtype, std::vector dimensions) { - return new pressio_data(pressio_data::owning(dtype, dimensions)); + std::vector dimensions_(dimensions.cbegin(), dimensions.cend()); + return new pressio_data(pressio_data::owning(dtype, dimensions_)); } struct pressio_data* data_new_move(const pressio_dtype dtype, void* data, std::vector dimensions, pressio_data_delete_fn deleter, void* metadata) { - return new pressio_data(pressio_data::move(dtype, data, dimensions, deleter, metadata)); + std::vector dimensions_(dimensions.cbegin(), dimensions.cend()); + return new pressio_data(pressio_data::move(dtype, data, dimensions_, deleter, metadata)); } pressio_metrics* new_metrics(struct pressio* library, std::vector metrics) {