2#ifndef PFLIB_PACKING_DECODEAEBM_H
3#define PFLIB_PACKING_DECODEAEBM_H
5#include "pflib/packing/Mask.h"
7namespace pflib::packing {
31template <
unsigned short A,
unsigned short B>
32unsigned long decompressAEBM(
unsigned long encoded) {
33 static_assert(A + B < 12);
34 unsigned long mantissa = (encoded & mask<B>);
35 unsigned long exponent = ((encoded >> B) & mask<A>);
39 unsigned long output = (((1 << B) | mantissa) << (exponent - 1));
41 output |= (1 << (exponent - 2));