Program Listing for File Tans.h

↰ Return to documentation for file (ADS/compression/Tans.h)

/*--------------------------------------------------------------------------*/
/*------------------------------ File Tans.h -------------------------------*/
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/*----------------------------- DEFINITIONS --------------------------------*/
/*--------------------------------------------------------------------------*/

#ifndef __ADS_Tans
 #define __ADS_Tans
                      /* self-identification: #endif constant */

/*--------------------------------------------------------------------------*/
/*------------------------------ INCLUDES ----------------------------------*/
/*--------------------------------------------------------------------------*/

#include "ADS/Contract.h"
#include "ADS/compression/Rans.h"

#include <array>
#include <bit>
#include <cstddef>
#include <cstdint>
#include <span>
#include <vector>

#ifdef __BMI2__
 #include <immintrin.h>
#endif

/*--------------------------------------------------------------------------*/
/*--------------------------- NAMESPACE ------------------------------------*/
/*--------------------------------------------------------------------------*/

namespace ADS {

[[nodiscard]] inline std::vector< std::uint8_t > tansCompress(
                                          std::span< const std::uint8_t > in );

[[nodiscard]] inline std::vector< std::uint8_t > tansDecompress(
                                          std::span< const std::uint8_t > in );

/*--------------------------------------------------------------------------*/

}  // end( namespace ADS )

/*--------------------------------------------------------------------------*/
/*-------------------------- IMPLEMENTATION --------------------------------*/
/*--------------------------------------------------------------------------*/

#include "ADS/compression/impl/Tans.tpp"

/*--------------------------------------------------------------------------*/

#endif  /* Tans.h included */

/*--------------------------------------------------------------------------*/
/*---------------------------- End File Tans.h -----------------------------*/
/*--------------------------------------------------------------------------*/