annotate libtwamr/lsp_az.c @ 585:3c6bf0d26ee7 default tip

TW-TS-005 reader: fix maximum line length bug TW-TS-005 section 4.1 states: The maximum allowed length of each line is 80 characters, not including the OS-specific newline encoding. The implementation of this line length limit in the TW-TS-005 hex file reader function in the present suite was wrong, such that lines of the full maximum length could not be read. Fix it. Note that this bug affects comment lines too, not just actual RTP payloads. Neither Annex A nor Annex B features an RTP payload format that goes to the maximum of 40 bytes, but if a comment line goes to the maximum allowed length of 80 characters not including the terminating newline, the bug will be triggered, necessitating the present fix.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 25 Feb 2025 07:49:28 +0000
parents 2ed325c9a507
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
380
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 ********************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 * R99 Version 3.3.0
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 * REL-4 Version 4.1.0
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 ********************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 * File : lsp_az.c
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 * Purpose : Converts from the line spectral pairs (LSP) to
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 * : LP coefficients, for a 10th order filter.
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 * Description :
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 * - Find the coefficients of F1(z) and F2(z) (see Get_lsp_pol)
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 * - Multiply F1(z) by 1+z^{-1} and F2(z) by 1-z^{-1}
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 * - A(z) = ( F1(z) + F2(z) ) / 2
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 ********************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 /*
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 ********************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 * MODULE INCLUDE FILE AND VERSION ID
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 ********************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 #include "namespace.h"
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 #include "lsp_az.h"
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 /*
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 ********************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 * INCLUDE FILES
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 ********************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 #include "typedef.h"
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 #include "basic_op.h"
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 #include "oper_32b.h"
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 #include "no_count.h"
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 /*
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 ********************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 * LOCAL VARIABLES AND TABLES
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 ********************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 /*
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 ********************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 * LOCAL PROGRAM CODE
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 ********************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 /*************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 * FUNCTION: Get_lsp_pol
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 * PURPOSE: Find the polynomial F1(z) or F2(z) from the LSPs.
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 * If the LSP vector is passed at address 0 F1(z) is computed
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 * and if it is passed at address 1 F2(z) is computed.
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 * DESCRIPTION:
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 * This is performed by expanding the product polynomials:
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 * F1(z) = product ( 1 - 2 lsp[i] z^-1 + z^-2 )
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 * i=0,2,4,6,8
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 * F2(z) = product ( 1 - 2 lsp[i] z^-1 + z^-2 )
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 * i=1,3,5,7,9
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 * where lsp[] is the LSP vector in the cosine domain.
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 * The expansion is performed using the following recursion:
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 * f[0] = 1
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 * b = -2.0 * lsp[0]
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 * f[1] = b
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 * for i=2 to 5 do
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 * b = -2.0 * lsp[2*i-2];
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 * f[i] = b*f[i-1] + 2.0*f[i-2];
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 * for j=i-1 down to 2 do
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 * f[j] = f[j] + b*f[j-1] + f[j-2];
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 * f[1] = f[1] + b;
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 *************************************************************************/
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 static void Get_lsp_pol (Word16 *lsp, Word32 *f)
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 {
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 Word16 i, j, hi, lo;
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 Word32 t0;
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 /* f[0] = 1.0; */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 *f = L_mult (4096, 2048); move32 ();
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 f++; move32 ();
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 *f = L_msu ((Word32) 0, *lsp, 512); /* f[1] = -2.0 * lsp[0]; */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 f++; move32 ();
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 lsp += 2; /* Advance lsp pointer */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 for (i = 2; i <= 5; i++)
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 {
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 *f = f[-2]; move32 ();
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 for (j = 1; j < i; j++, f--)
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 {
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 L_Extract (f[-1], &hi, &lo);
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 t0 = Mpy_32_16 (hi, lo, *lsp); /* t0 = f[-1] * lsp */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 t0 = L_shl (t0, 1);
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 *f = L_add (*f, f[-2]); move32 (); /* *f += f[-2] */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 *f = L_sub (*f, t0);move32 (); /* *f -= t0 */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 }
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 *f = L_msu (*f, *lsp, 512); move32 (); /* *f -= lsp<<9 */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 f += i; /* Advance f pointer */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 lsp += 2; /* Advance lsp pointer */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 }
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 return;
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 }
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 /*
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 ********************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 * PUBLIC PROGRAM CODE
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 ********************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 /*************************************************************************
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 * FUNCTION: Lsp_Az
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 * PURPOSE: Converts from the line spectral pairs (LSP) to
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 * LP coefficients, for a 10th order filter.
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 * DESCRIPTION:
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 * - Find the coefficients of F1(z) and F2(z) (see Get_lsp_pol)
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 * - Multiply F1(z) by 1+z^{-1} and F2(z) by 1-z^{-1}
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 * - A(z) = ( F1(z) + F2(z) ) / 2
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 *
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 *************************************************************************/
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 void Lsp_Az (
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 Word16 lsp[], /* (i) : line spectral frequencies */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 Word16 a[] /* (o) : predictor coefficients (order = 10) */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 )
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 {
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 Word16 i, j;
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 Word32 f1[6], f2[6];
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 Word32 t0;
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 Get_lsp_pol (&lsp[0], f1);
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 Get_lsp_pol (&lsp[1], f2);
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 for (i = 5; i > 0; i--)
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 {
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 f1[i] = L_add (f1[i], f1[i - 1]); move32 (); /* f1[i] += f1[i-1]; */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 f2[i] = L_sub (f2[i], f2[i - 1]); move32 (); /* f2[i] -= f2[i-1]; */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 }
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 a[0] = 4096; move16 ();
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 for (i = 1, j = 10; i <= 5; i++, j--)
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 {
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 t0 = L_add (f1[i], f2[i]); /* f1[i] + f2[i] */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 a[i] = extract_l (L_shr_r (t0, 13)); move16 ();
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 t0 = L_sub (f1[i], f2[i]); /* f1[i] - f2[i] */
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 a[j] = extract_l (L_shr_r (t0, 13)); move16 ();
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 }
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 return;
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 }
2ed325c9a507 libtwamr: integrate lsp_az.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159