ГОСТ Р 53556.12-2014
compactTablelk
+ 1/,
compactTable(k+2),
compactTable[k+
3/,
j);
return value:
I
Значения для таблиц
sineData
и
sineData_cs
вычисляются, применяя
sineDatafindex)
=
in-
terpolateFromCompactTable(index. sineDataCompact)
и
sineData_cs)index)
=
interpolateFrom-
CompaciTable(index. sineDataCompact_cs).
Значения для функции
invQuantMantissa
() вычисляются согласно
/ЛТ32
invQuantMantissa!ini iplant. int res)
(
INT32 value;
1
IN Til po\v_2_quat[4]
= /0, 1276901417, 1518500250, 1805811301/;
/*
(int)(pow(2.Q,res/4.0)*(I«SH1FT)+Q.5) */
if (quant < MAX_INV_QUANT_TABLE) {
value = invQuantCompactlquant);
if(res >
0J
(value
=
multShiftRoundlNT?>2(value. powJ2_quat)res), SHIFT): )
} else (
l = quant%
8;
к =quant
/8;
if (l == 0) (value
=
invQuantMantissa(k, re s)«
4; /* 8Л(4/3) = 16= 2Л4
*/
} else {
value = interpolateValue tol(invQuantMantissaik-
1.
re s)«
4.
invQuantMantissa(k. re s)«
4.
invQuantMantissa(k+\, re s)«
4.
invQuantMantissafк+2, res)<
<4.
1):
I
}
return value:
/
Значение для функции
thrMantissa
() вычисляется согласно
/Л’732
thrMantissafquant, res)
55