ГОСТ Р 53556.12-2014
IN732 shiftRouiullNTS
2
withErrorFeedback(lN732 у. INTH* errorFeedback, ini shift) {
*
v +=
errorFeedback;
result
=
shiftRoundlNT$2(y.shift);
*errorFeedback = (result «shift) •y;
return (result):
I
void rotateINTHfint index
,
INTH xin. IN732 yin. INTH *xout. INT32* уout) (
xin
+=
nwltShiftINT32(-sineData_cs{index), yin. SHIFT):
yin
+=
nitdtShiftINT32(sineData[index). xin. SHIFT):
xin
+=
multShift/N132(-sineData_cs[index), yin. SHIFT):
*xout =xin;
*yout =yin:
}
void niuhHalfSqrt2(INT32*x) (
*x
=
multShiftlNT32(sineData[SINE_DATA_SIZE/2J, *x. SHIFT):
I
void rotatePIusMinuslNT32(IN732 xin. 1NT32 yin, IN732* xout. IN732* уout) (
xtrnp
=
xin:
ytmp
=
yin:
*xout =xtmp
+
ytmp;
*yout =xtmp
-
ytmp;
/
void rotatePlusXfinusNormlN732(INT32 xin. INTH yin. IN732* xout. IN732* yout) {
rotatePlus\finuslN732(xin, yin. xout. yout):
multHalfSqrt2(xout);
multHalfSqrt2(yout):
I
void addINT32(lN732* xin. IN732* xout. ini N) f
for
(7=0:
i<N: i++)
xoutliJ
+=
xinfij;
J
42