// Copyright (C) 2011 Laboratoire de Recherche et Developpement de // l'Epita (LRDE). // // This file is part of Spot, a model checking library. // // Spot is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // Spot is distributed in the hope that it will be useful, but WITHOUT // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public // License for more details. // // You should have received a copy of the GNU General Public License // along with Spot; see the file COPYING. If not, write to the Free // Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA // 02111-1307, USA. #ifndef SPOT_MISC_INTVCOMP_HH # define SPOT_MISC_INTVCOMP_HH #include namespace spot { /// \addtogroup misc_tools /// @{ /// Compress an int array if size \a n into a vector of unsigned int. const std::vector* int_array_vector_compress(const int* array, size_t n); /// \brief Uncompress a vector of unsigned int into an int array if /// size \a size. /// /// \a size must be the exact expected size of uncompressed array. void int_vector_array_decompress(const std::vector* array, int* res, size_t size); /// \brief Compress an int array of size \a n into a int array. /// /// The destination array should be at least \a dest_size large An /// assert will be triggered if \a dest_size is too small. On /// return, \a dest_size will be set to the actually number of int /// filled in \a dest void int_array_array_compress(const int* array, size_t n, int* dest, size_t& dest_size); /// \brief Uncompress an int array of size \a array_size into a int /// array of size \a size. /// /// \a size must be the exact expected size of uncompressed array. void int_array_array_decompress(const int* array, size_t array_size, int* res, size_t size); /// @} } #endif // SPOT_MISC_INTVCOMP_HH