19 constexpr
unsigned int max_short_flt = 0x7f7f7fff;
20 union {
unsigned int u;
float f;}
m;
21 vc.reserve(vf.size());
22 for (
const auto&
value : vf){
24 if ( (
m.u & 0
x7fffffff) > max_short_flt) vc.push_back (
m.u>>16);
25 else vc.push_back((
m.u+0x8000)>>16);
30 union {
unsigned int u;
float f;}
m;
31 vf.reserve(vc.size());
32 for (
const auto&
value : vc){
33 unsigned int ui(
value << 16);
42 vi.reserve(vf.size()*m_bits/16+17);
45 unsigned int vfs=vf.size();
56 unsigned int vmax= 0x7f7<<20;
58 unsigned int rems=0xffffffff;
64 union {
unsigned int u;
float f;}
m;
70 if (m_sign)
L=m_bits-1;
else L=m_bits;
71 unsigned int CUR=0;
int IN=0;
72 for (
const auto&
value : vf){
103 for (
const auto&
value : vf){
117 std::vector<unsigned int>::const_iterator
i=vi.begin();
125 unsigned int vecs=(
format>>6)&0xfffffff;
127 int bshift=32-m_bits;
129 vf.reserve(vi.size()*m_bits/16+17);
132 if (m_sign)
L=m_bits-1;
else L=m_bits;
133 int CP=0;
int FP=0;
int REM=0;
134 unsigned int V=0xffffffff>>(32-
L);
unsigned int R=0;
137 union {
unsigned int u;
float f;}
m;
142 R = ( ui >> (32-FP) ) & V;
156 R = ( ui & (0xffffffff >>
CP) ) << REM;
159 R |= ui >> (32-REM) ;
161 if (m_sign)
R &= 0x7fffffff;