FreeCalypso > hg > gsm-codec-lib
annotate libgsmefr/c1035pf.c @ 284:8d3cfa65a6c2
gsmfr-decode: convert to libgsmfr2
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sun, 14 Apr 2024 05:59:15 +0000 | 
| parents | 12d9d3649232 | 
| children | 
| rev | line source | 
|---|---|
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
1 #include "gsm_efr.h" | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 #include "typedef.h" | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
3 #include "namespace.h" | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 #include "basic_op.h" | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
5 #include "no_count.h" | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 #include "sig_proc.h" | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
7 #include "codec.h" | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 #define L_CODE 40 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 #define NB_TRACK 5 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 #define NB_PULSE 10 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 #define STEP 5 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 /* local functions */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
16 static void cor_h_x ( | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 Word16 h[], /* (i) : impulse response of weighted synthesis filter */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 Word16 x[], /* (i) : target */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 Word16 dn[] /* (o) : correlation between target and h[] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 ); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
22 static void set_sign ( | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 Word16 dn[], /* (i/o) : correlation between target and h[] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 Word16 cn[], /* (i) : residual after long term prediction */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 Word16 sign[], /* (o) : sign of d[n] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 Word16 pos_max[], /* (o) : position of maximum of dn[] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 Word16 ipos[] /* (o) : starting position for each pulse */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 ); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
30 static void cor_h ( | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 Word16 h[], /* (i) : impulse response of weighted synthesis | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 filter */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 Word16 sign[], /* (i) : sign of d[n] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 Word16 rr[][L_CODE] /* (o) : matrix of autocorrelation */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 ); | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
36 static void search_10i40 ( | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 Word16 dn[], /* (i) : correlation between target and h[] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 Word16 rr[][L_CODE], /* (i) : matrix of autocorrelation */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 Word16 ipos[], /* (i) : starting position for each pulse */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 Word16 pos_max[], /* (i) : position of maximum of dn[] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 Word16 codvec[] /* (o) : algebraic codebook vector */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 ); | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
43 static void build_code ( | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 Word16 codvec[], /* (i) : algebraic codebook vector */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 Word16 sign[], /* (i) : sign of dn[] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 Word16 cod[], /* (o) : algebraic (fixed) codebook excitation */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 Word16 h[], /* (i) : impulse response of weighted synthesis filter*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 Word16 y[], /* (o) : filtered fixed codebook excitation */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 Word16 indx[] /* (o) : index of 10 pulses (position+sign+ampl)*10 */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 ); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
52 static void q_p ( | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 Word16 *ind, /* Pulse position */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 Word16 n /* Pulse number */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 ); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 /************************************************************************* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 * FUNCTION: code_10i40_35bits() | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 * PURPOSE: Searches a 35 bit algebraic codebook containing 10 pulses | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 * in a frame of 40 samples. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 * DESCRIPTION: | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 * The code contains 10 nonzero pulses: i0...i9. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 * All pulses can have two possible amplitudes: +1 or -1. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 * The 40 positions in a subframe are divided into 5 tracks of | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 * interleaved positions. Each track contains two pulses. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 * The pulses can have the following possible positions: | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 * i0, i5 : 0, 5, 10, 15, 20, 25, 30, 35. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 * i1, i6 : 1, 6, 11, 16, 21, 26, 31, 36. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 * i2, i7 : 2, 7, 12, 17, 22, 27, 32, 37. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 * i3, i8 : 3, 8, 13, 18, 23, 28, 33, 38. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 * i4, i9 : 4, 9, 14, 19, 24, 29, 34, 39. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 * Each pair of pulses require 1 bit for their signs and 6 bits for their | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 * positions (3 bits + 3 bits). This results in a 35 bit codebook. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 * The function determines the optimal pulse signs and positions, builds | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 * the codevector, and computes the filtered codevector. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 *************************************************************************/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 void code_10i40_35bits ( | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 Word16 x[], /* (i) : target vector */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 Word16 cn[], /* (i) : residual after long term prediction */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 Word16 h[], /* (i) : impulse response of weighted synthesis filter | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 h[-L_subfr..-1] must be set to zero */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 Word16 cod[], /* (o) : algebraic (fixed) codebook excitation */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 Word16 y[], /* (o) : filtered fixed codebook excitation */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 Word16 indx[] /* (o) : index of 10 pulses (sign + position) */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 ) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 Word16 ipos[NB_PULSE], pos_max[NB_TRACK], codvec[NB_PULSE]; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 Word16 dn[L_CODE], sign[L_CODE]; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 Word16 rr[L_CODE][L_CODE], i; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 cor_h_x (h, x, dn); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 set_sign (dn, cn, sign, pos_max, ipos); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 cor_h (h, sign, rr); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 search_10i40 (dn, rr, ipos, pos_max, codvec); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 build_code (codvec, sign, cod, h, y, indx); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 for (i = 0; i < 10; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 q_p (&indx[i], i); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 return; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 /************************************************************************* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 * FUNCTION: cor_h_x() | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 * PURPOSE: Computes correlation between target signal "x[]" and | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 * impulse response"h[]". | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 * DESCRIPTION: | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 * The correlation is given by: | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 * d[n] = sum_{i=n}^{L-1} x[i] h[i-n] n=0,...,L-1 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 * d[n] is normalized such that the sum of 5 maxima of d[n] corresponding | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 * to each position track does not saturate. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 *************************************************************************/ | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
125 static void cor_h_x ( | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 Word16 h[], /* (i) : impulse response of weighted synthesis filter */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 Word16 x[], /* (i) : target */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 Word16 dn[] /* (o) : correlation between target and h[] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 ) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 Word16 i, j, k; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 Word32 s, y32[L_CODE], max, tot; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
133 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 /* first keep the result on 32 bits and find absolute maximum */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
135 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 tot = 5; move32 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 for (k = 0; k < NB_TRACK; k++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 max = 0; move32 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
141 for (i = k; i < L_CODE; i += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 s = 0; move32 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
144 for (j = i; j < L_CODE; j++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 s = L_mac (s, x[j], h[j - i]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
146 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 y32[i] = s; move32 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
148 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 s = L_abs (s); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 test (); | 
| 
186
 
12d9d3649232
libgsmefr/c1035pf.c: perf opt
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
57 
diff
changeset
 | 
151 if (s > max) | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 max = s; move32 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 tot = L_add (tot, L_shr (max, 1)); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 j = sub (norm_l (tot), 2); /* multiply tot by 4 */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 for (i = 0; i < L_CODE; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 dn[i] = round (L_shl (y32[i], j)); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 /************************************************************************* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 * FUNCTION set_sign() | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
169 * PURPOSE: Builds sign[] vector according to "dn[]" and "cn[]", and modifies | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 * dn[] to include the sign information (dn[i]=sign[i]*dn[i]). | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 * Also finds the position of maximum of correlation in each track | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 * and the starting position for each pulse. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
173 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
174 *************************************************************************/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
176 static void set_sign ( | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 Word16 dn[], /* (i/o): correlation between target and h[] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 Word16 cn[], /* (i) : residual after long term prediction */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
179 Word16 sign[], /* (o) : sign of d[n] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 Word16 pos_max[], /* (o) : position of maximum correlation */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 Word16 ipos[] /* (o) : starting position for each pulse */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 ) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
183 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 Word16 i, j; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 Word16 val, cor, k_cn, k_dn, max, max_of_all, pos; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 Word16 en[L_CODE]; /* correlation vector */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 Word32 s; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 /* calculate energy for normalization of cn[] and dn[] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 s = 256; move32 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 for (i = 0; i < L_CODE; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 s = L_mac (s, cn[i], cn[i]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 s = Inv_sqrt (s); move32 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 k_cn = extract_h (L_shl (s, 5)); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 s = 256; move32 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 for (i = 0; i < L_CODE; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
201 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 s = L_mac (s, dn[i], dn[i]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
204 s = Inv_sqrt (s); move32 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
205 k_dn = extract_h (L_shl (s, 5)); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
206 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
207 for (i = 0; i < L_CODE; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
208 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
209 val = dn[i]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
210 cor = round (L_shl (L_mac (L_mult (k_cn, cn[i]), k_dn, val), 10)); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
211 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
212 test (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
213 if (cor >= 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
214 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
215 sign[i] = 32767; move16 (); /* sign = +1 */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
216 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
217 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
218 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
219 sign[i] = -32767; move16 (); /* sign = -1 */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
220 cor = negate (cor); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
221 val = negate (val); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
222 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
223 /* modify dn[] according to the fixed sign */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
224 dn[i] = val; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
225 en[i] = cor; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
226 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
227 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
228 max_of_all = -1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
229 for (i = 0; i < NB_TRACK; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
230 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
231 max = -1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
232 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
233 for (j = i; j < L_CODE; j += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
234 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
235 cor = en[j]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
236 val = sub (cor, max); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
237 test (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
238 if (val > 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
239 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
240 max = cor; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
241 pos = j; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
242 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
243 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
244 /* store maximum correlation position */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
245 pos_max[i] = pos; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
246 val = sub (max, max_of_all); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
247 test (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
248 if (val > 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
249 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
250 max_of_all = max; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
251 /* starting position for i0 */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
252 ipos[0] = i; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
253 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
254 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
255 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
256 /*----------------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
257 * Set starting position of each pulse. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
258 *----------------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
259 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
260 pos = ipos[0]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
261 ipos[5] = pos; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
262 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
263 for (i = 1; i < NB_TRACK; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
264 { | 
| 
186
 
12d9d3649232
libgsmefr/c1035pf.c: perf opt
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
57 
diff
changeset
 | 
265 pos++; | 
| 
 
12d9d3649232
libgsmefr/c1035pf.c: perf opt
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
57 
diff
changeset
 | 
266 if (pos >= NB_TRACK) | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
267 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
268 pos = 0; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
269 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
270 ipos[i] = pos; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
271 ipos[i + 5] = pos; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
272 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
273 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
274 | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
275 static void q_p ( | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
276 Word16 *ind, /* Pulse position */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
277 Word16 n /* Pulse number */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
278 ) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
279 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
280 static const Word16 gray[8] = {0, 1, 3, 2, 6, 4, 5, 7}; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
281 Word16 tmp; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
282 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
283 tmp = *ind; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
284 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
285 test (); | 
| 
186
 
12d9d3649232
libgsmefr/c1035pf.c: perf opt
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
57 
diff
changeset
 | 
286 if (n < 5) | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
287 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
288 tmp = (tmp & 0x8) | gray[tmp & 0x7]; logic16 (); logic16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
289 logic16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
290 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
291 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
292 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
293 tmp = gray[tmp & 0x7]; logic16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
294 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
295 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
296 *ind = tmp; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
297 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
298 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
299 /************************************************************************* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
300 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
301 * FUNCTION: cor_h() | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
302 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
303 * PURPOSE: Computes correlations of h[] needed for the codebook search; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
304 * and includes the sign information into the correlations. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
305 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
306 * DESCRIPTION: The correlations are given by | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
307 * rr[i][j] = sum_{n=i}^{L-1} h[n-i] h[n-j]; i>=j; i,j=0,...,L-1 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
308 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
309 * and the sign information is included by | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
310 * rr[i][j] = rr[i][j]*sign[i]*sign[j] | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
311 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
312 *************************************************************************/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
313 | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
314 static void cor_h ( | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
315 Word16 h[], /* (i) : impulse response of weighted synthesis | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
316 filter */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
317 Word16 sign[], /* (i) : sign of d[n] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
318 Word16 rr[][L_CODE] /* (o) : matrix of autocorrelation */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
319 ) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
320 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
321 Word16 i, j, k, dec, h2[L_CODE]; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
322 Word32 s; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
323 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
324 /* Scaling for maximum precision */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
325 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
326 s = 2; move32 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
327 for (i = 0; i < L_CODE; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
328 s = L_mac (s, h[i], h[i]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
329 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
330 j = sub (extract_h (s), 32767); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
331 test (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
332 if (j == 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
333 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
334 for (i = 0; i < L_CODE; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
335 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
336 h2[i] = shr (h[i], 1); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
337 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
338 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
339 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
340 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
341 s = L_shr (s, 1); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
342 k = extract_h (L_shl (Inv_sqrt (s), 7)); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
343 k = mult (k, 32440); /* k = 0.99*k */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
344 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
345 for (i = 0; i < L_CODE; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
346 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
347 h2[i] = round (L_shl (L_mult (h[i], k), 9)); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
348 move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
349 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
350 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
351 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
352 /* build matrix rr[] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
353 s = 0; move32 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
354 i = L_CODE - 1; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
355 for (k = 0; k < L_CODE; k++, i--) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
356 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
357 s = L_mac (s, h2[k], h2[k]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
358 rr[i][i] = round (s); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
359 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
360 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
361 for (dec = 1; dec < L_CODE; dec++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
362 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
363 s = 0; move32 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
364 j = L_CODE - 1; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
365 i = sub (j, dec); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
366 for (k = 0; k < (L_CODE - dec); k++, i--, j--) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
367 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
368 s = L_mac (s, h2[k], h2[k + dec]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
369 rr[j][i] = mult (round (s), mult (sign[i], sign[j])); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
370 move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
371 rr[i][j] = rr[j][i]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
372 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
373 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
374 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
375 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
376 /************************************************************************* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
377 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
378 * FUNCTION search_10i40() | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
379 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
380 * PURPOSE: Search the best codevector; determine positions of the 10 pulses | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
381 * in the 40-sample frame. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
382 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
383 *************************************************************************/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
384 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
385 #define _1_2 (Word16)(32768L/2) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
386 #define _1_4 (Word16)(32768L/4) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
387 #define _1_8 (Word16)(32768L/8) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
388 #define _1_16 (Word16)(32768L/16) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
389 #define _1_32 (Word16)(32768L/32) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
390 #define _1_64 (Word16)(32768L/64) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
391 #define _1_128 (Word16)(32768L/128) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
392 | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
393 static void search_10i40 ( | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
394 Word16 dn[], /* (i) : correlation between target and h[] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
395 Word16 rr[][L_CODE], /* (i) : matrix of autocorrelation */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
396 Word16 ipos[], /* (i) : starting position for each pulse */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
397 Word16 pos_max[], /* (i) : position of maximum of dn[] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
398 Word16 codvec[] /* (o) : algebraic codebook vector */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
399 ) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
400 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
401 Word16 i0, i1, i2, i3, i4, i5, i6, i7, i8, i9; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
402 Word16 i, j, k, pos, ia, ib; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
403 Word16 psk, ps, ps0, ps1, ps2, sq, sq2; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
404 Word16 alpk, alp, alp_16; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
405 Word16 rrv[L_CODE]; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
406 Word32 s, alp0, alp1, alp2; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
407 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
408 /* fix i0 on maximum of correlation position */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
409 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
410 i0 = pos_max[ipos[0]]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
411 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
412 /*------------------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
413 * i1 loop: * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
414 *------------------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
415 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
416 /* Default value */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
417 psk = -1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
418 alpk = 1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
419 for (i = 0; i < NB_PULSE; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
420 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
421 codvec[i] = i; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
422 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
423 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
424 for (i = 1; i < NB_TRACK; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
425 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
426 i1 = pos_max[ipos[1]]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
427 ps0 = add (dn[i0], dn[i1]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
428 alp0 = L_mult (rr[i0][i0], _1_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
429 alp0 = L_mac (alp0, rr[i1][i1], _1_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
430 alp0 = L_mac (alp0, rr[i0][i1], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
431 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
432 /*----------------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
433 * i2 and i3 loop: * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
434 *----------------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
435 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
436 /* initialize 4 indices for next loop. */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
437 move16 (); /* initialize "rr[i3][i3]" pointer */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
438 move16 (); /* initialize "rr[i0][i3]" pointer */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
439 move16 (); /* initialize "rr[i1][i3]" pointer */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
440 move16 (); /* initialize "rrv[i3]" pointer */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
441 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
442 for (i3 = ipos[3]; i3 < L_CODE; i3 += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
443 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
444 s = L_mult (rr[i3][i3], _1_8); /* index incr= STEP+L_CODE */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
445 s = L_mac (s, rr[i0][i3], _1_4); /* index increment = STEP */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
446 s = L_mac (s, rr[i1][i3], _1_4); /* index increment = STEP */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
447 rrv[i3] = round (s); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
448 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
449 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
450 /* Default value */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
451 sq = -1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
452 alp = 1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
453 ps = 0; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
454 ia = ipos[2]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
455 ib = ipos[3]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
456 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
457 /* initialize 4 indices for i2 loop. */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
458 move16 (); /* initialize "dn[i2]" pointer */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
459 move16 (); /* initialize "rr[i2][i2]" pointer */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
460 move16 (); /* initialize "rr[i0][i2]" pointer */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
461 move16 (); /* initialize "rr[i1][i2]" pointer */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
462 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
463 for (i2 = ipos[2]; i2 < L_CODE; i2 += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
464 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
465 /* index increment = STEP */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
466 ps1 = add (ps0, dn[i2]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
467 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
468 /* index incr= STEP+L_CODE */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
469 alp1 = L_mac (alp0, rr[i2][i2], _1_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
470 /* index increment = STEP */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
471 alp1 = L_mac (alp1, rr[i0][i2], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
472 /* index increment = STEP */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
473 alp1 = L_mac (alp1, rr[i1][i2], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
474 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
475 /* initialize 3 indices for i3 inner loop */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
476 move16 (); /* initialize "dn[i3]" pointer */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
477 move16 (); /* initialize "rrv[i3]" pointer */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
478 move16 (); /* initialize "rr[i2][i3]" pointer */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
479 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
480 for (i3 = ipos[3]; i3 < L_CODE; i3 += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
481 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
482 /* index increment = STEP */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
483 ps2 = add (ps1, dn[i3]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
484 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
485 /* index increment = STEP */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
486 alp2 = L_mac (alp1, rrv[i3], _1_2); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
487 /* index increment = STEP */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
488 alp2 = L_mac (alp2, rr[i2][i3], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
489 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
490 sq2 = mult (ps2, ps2); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
491 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
492 alp_16 = round (alp2); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
493 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
494 s = L_msu (L_mult (alp, sq2), sq, alp_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
495 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
496 test (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
497 if (s > 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
498 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
499 sq = sq2; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
500 ps = ps2; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
501 alp = alp_16; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
502 ia = i2; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
503 ib = i3; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
504 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
505 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
506 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
507 i2 = ia; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
508 i3 = ib; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
509 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
510 /*----------------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
511 * i4 and i5 loop: * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
512 *----------------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
513 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
514 ps0 = ps; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
515 alp0 = L_mult (alp, _1_2); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
516 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
517 /* initialize 6 indices for next loop (see i2-i3 loop) */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
518 move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
519 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
520 for (i5 = ipos[5]; i5 < L_CODE; i5 += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
521 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
522 s = L_mult (rr[i5][i5], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
523 s = L_mac (s, rr[i0][i5], _1_4); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
524 s = L_mac (s, rr[i1][i5], _1_4); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
525 s = L_mac (s, rr[i2][i5], _1_4); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
526 s = L_mac (s, rr[i3][i5], _1_4); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
527 rrv[i5] = round (s); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
528 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
529 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
530 /* Default value */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
531 sq = -1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
532 alp = 1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
533 ps = 0; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
534 ia = ipos[4]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
535 ib = ipos[5]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
536 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
537 /* initialize 6 indices for i4 loop (see i2-i3 loop) */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
538 move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
539 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
540 for (i4 = ipos[4]; i4 < L_CODE; i4 += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
541 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
542 ps1 = add (ps0, dn[i4]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
543 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
544 alp1 = L_mac (alp0, rr[i4][i4], _1_32); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
545 alp1 = L_mac (alp1, rr[i0][i4], _1_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
546 alp1 = L_mac (alp1, rr[i1][i4], _1_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
547 alp1 = L_mac (alp1, rr[i2][i4], _1_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
548 alp1 = L_mac (alp1, rr[i3][i4], _1_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
549 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
550 /* initialize 3 indices for i5 inner loop (see i2-i3 loop) */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
551 move16 (); move16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
552 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
553 for (i5 = ipos[5]; i5 < L_CODE; i5 += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
554 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
555 ps2 = add (ps1, dn[i5]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
556 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
557 alp2 = L_mac (alp1, rrv[i5], _1_4); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
558 alp2 = L_mac (alp2, rr[i4][i5], _1_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
559 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
560 sq2 = mult (ps2, ps2); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
561 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
562 alp_16 = round (alp2); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
563 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
564 s = L_msu (L_mult (alp, sq2), sq, alp_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
565 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
566 test (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
567 if (s > 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
568 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
569 sq = sq2; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
570 ps = ps2; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
571 alp = alp_16; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
572 ia = i4; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
573 ib = i5; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
574 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
575 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
576 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
577 i4 = ia; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
578 i5 = ib; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
579 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
580 /*----------------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
581 * i6 and i7 loop: * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
582 *----------------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
583 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
584 ps0 = ps; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
585 alp0 = L_mult (alp, _1_2); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
586 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
587 /* initialize 8 indices for next loop (see i2-i3 loop) */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
588 move16 (); move16 (); move16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
589 move16 (); move16 (); move16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
590 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
591 for (i7 = ipos[7]; i7 < L_CODE; i7 += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
592 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
593 s = L_mult (rr[i7][i7], _1_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
594 s = L_mac (s, rr[i0][i7], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
595 s = L_mac (s, rr[i1][i7], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
596 s = L_mac (s, rr[i2][i7], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
597 s = L_mac (s, rr[i3][i7], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
598 s = L_mac (s, rr[i4][i7], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
599 s = L_mac (s, rr[i5][i7], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
600 rrv[i7] = round (s); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
601 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
602 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
603 /* Default value */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
604 sq = -1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
605 alp = 1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
606 ps = 0; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
607 ia = ipos[6]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
608 ib = ipos[7]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
609 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
610 /* initialize 8 indices for i6 loop (see i2-i3 loop) */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
611 move16 (); move16 (); move16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
612 move16 (); move16 (); move16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
613 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
614 for (i6 = ipos[6]; i6 < L_CODE; i6 += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
615 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
616 ps1 = add (ps0, dn[i6]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
617 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
618 alp1 = L_mac (alp0, rr[i6][i6], _1_64); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
619 alp1 = L_mac (alp1, rr[i0][i6], _1_32); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
620 alp1 = L_mac (alp1, rr[i1][i6], _1_32); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
621 alp1 = L_mac (alp1, rr[i2][i6], _1_32); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
622 alp1 = L_mac (alp1, rr[i3][i6], _1_32); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
623 alp1 = L_mac (alp1, rr[i4][i6], _1_32); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
624 alp1 = L_mac (alp1, rr[i5][i6], _1_32); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
625 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
626 /* initialize 3 indices for i7 inner loop (see i2-i3 loop) */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
627 move16 (); move16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
628 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
629 for (i7 = ipos[7]; i7 < L_CODE; i7 += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
630 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
631 ps2 = add (ps1, dn[i7]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
632 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
633 alp2 = L_mac (alp1, rrv[i7], _1_4); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
634 alp2 = L_mac (alp2, rr[i6][i7], _1_32); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
635 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
636 sq2 = mult (ps2, ps2); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
637 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
638 alp_16 = round (alp2); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
639 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
640 s = L_msu (L_mult (alp, sq2), sq, alp_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
641 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
642 test (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
643 if (s > 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
644 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
645 sq = sq2; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
646 ps = ps2; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
647 alp = alp_16; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
648 ia = i6; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
649 ib = i7; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
650 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
651 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
652 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
653 i6 = ia; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
654 i7 = ib; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
655 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
656 /*----------------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
657 * i8 and i9 loop: * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
658 *----------------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
659 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
660 ps0 = ps; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
661 alp0 = L_mult (alp, _1_2); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
662 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
663 /* initialize 10 indices for next loop (see i2-i3 loop) */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
664 move16 (); move16 (); move16 (); move16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
665 move16 (); move16 (); move16 (); move16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
666 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
667 for (i9 = ipos[9]; i9 < L_CODE; i9 += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
668 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
669 s = L_mult (rr[i9][i9], _1_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
670 s = L_mac (s, rr[i0][i9], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
671 s = L_mac (s, rr[i1][i9], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
672 s = L_mac (s, rr[i2][i9], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
673 s = L_mac (s, rr[i3][i9], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
674 s = L_mac (s, rr[i4][i9], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
675 s = L_mac (s, rr[i5][i9], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
676 s = L_mac (s, rr[i6][i9], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
677 s = L_mac (s, rr[i7][i9], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
678 rrv[i9] = round (s); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
679 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
680 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
681 /* Default value */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
682 sq = -1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
683 alp = 1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
684 ps = 0; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
685 ia = ipos[8]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
686 ib = ipos[9]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
687 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
688 /* initialize 10 indices for i8 loop (see i2-i3 loop) */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
689 move16 (); move16 (); move16 (); move16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
690 move16 (); move16 (); move16 (); move16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
691 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
692 for (i8 = ipos[8]; i8 < L_CODE; i8 += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
693 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
694 ps1 = add (ps0, dn[i8]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
695 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
696 alp1 = L_mac (alp0, rr[i8][i8], _1_128); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
697 alp1 = L_mac (alp1, rr[i0][i8], _1_64); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
698 alp1 = L_mac (alp1, rr[i1][i8], _1_64); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
699 alp1 = L_mac (alp1, rr[i2][i8], _1_64); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
700 alp1 = L_mac (alp1, rr[i3][i8], _1_64); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
701 alp1 = L_mac (alp1, rr[i4][i8], _1_64); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
702 alp1 = L_mac (alp1, rr[i5][i8], _1_64); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
703 alp1 = L_mac (alp1, rr[i6][i8], _1_64); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
704 alp1 = L_mac (alp1, rr[i7][i8], _1_64); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
705 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
706 /* initialize 3 indices for i9 inner loop (see i2-i3 loop) */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
707 move16 (); move16 (); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
708 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
709 for (i9 = ipos[9]; i9 < L_CODE; i9 += STEP) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
710 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
711 ps2 = add (ps1, dn[i9]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
712 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
713 alp2 = L_mac (alp1, rrv[i9], _1_8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
714 alp2 = L_mac (alp2, rr[i8][i9], _1_64); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
715 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
716 sq2 = mult (ps2, ps2); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
717 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
718 alp_16 = round (alp2); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
719 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
720 s = L_msu (L_mult (alp, sq2), sq, alp_16); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
721 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
722 test (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
723 if (s > 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
724 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
725 sq = sq2; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
726 ps = ps2; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
727 alp = alp_16; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
728 ia = i8; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
729 ib = i9; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
730 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
731 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
732 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
733 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
734 /*----------------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
735 * memorise codevector if this one is better than the last one. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
736 *----------------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
737 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
738 s = L_msu (L_mult (alpk, sq), psk, alp); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
739 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
740 test (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
741 if (s > 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
742 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
743 psk = sq; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
744 alpk = alp; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
745 codvec[0] = i0; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
746 codvec[1] = i1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
747 codvec[2] = i2; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
748 codvec[3] = i3; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
749 codvec[4] = i4; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
750 codvec[5] = i5; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
751 codvec[6] = i6; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
752 codvec[7] = i7; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
753 codvec[8] = ia; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
754 codvec[9] = ib; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
755 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
756 /*----------------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
757 * Cyclic permutation of i1,i2,i3,i4,i5,i6,i7,i8 and i9. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
758 *----------------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
759 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
760 pos = ipos[1]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
761 for (j = 1, k = 2; k < NB_PULSE; j++, k++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
762 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
763 ipos[j] = ipos[k]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
764 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
765 ipos[NB_PULSE - 1] = pos; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
766 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
767 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
768 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
769 /************************************************************************* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
770 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
771 * FUNCTION: build_code() | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
772 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
773 * PURPOSE: Builds the codeword, the filtered codeword and index of the | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
774 * codevector, based on the signs and positions of 10 pulses. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
775 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
776 *************************************************************************/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
777 | 
| 
57
 
e005e7b91f3c
libgsmefr: c1035pf.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
778 static void build_code ( | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
779 Word16 codvec[], /* (i) : position of pulses */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
780 Word16 sign[], /* (i) : sign of d[n] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
781 Word16 cod[], /* (o) : innovative code vector */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
782 Word16 h[], /* (i) : impulse response of weighted synthesis filter*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
783 Word16 y[], /* (o) : filtered innovative code */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
784 Word16 indx[] /* (o) : index of 10 pulses (sign+position) */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
785 ) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
786 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
787 Word16 i, j, k, track, index, _sign[NB_PULSE]; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
788 Word16 *p0, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8, *p9; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
789 Word32 s; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
790 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
791 for (i = 0; i < L_CODE; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
792 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
793 cod[i] = 0; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
794 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
795 for (i = 0; i < NB_TRACK; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
796 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
797 indx[i] = -1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
798 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
799 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
800 for (k = 0; k < NB_PULSE; k++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
801 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
802 /* read pulse position */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
803 i = codvec[k]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
804 /* read sign */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
805 j = sign[i]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
806 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
807 index = mult (i, 6554); /* index = pos/5 */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
808 /* track = pos%5 */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
809 track = sub (i, extract_l (L_shr (L_mult (index, 5), 1))); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
810 test (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
811 if (j > 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
812 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
813 cod[i] = add (cod[i], 4096); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
814 _sign[k] = 8192; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
815 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
816 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
817 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
818 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
819 cod[i] = sub (cod[i], 4096); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
820 _sign[k] = -8192; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
821 index = add (index, 8); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
822 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
823 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
824 test (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
825 if (indx[track] < 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
826 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
827 indx[track] = index; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
828 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
829 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
830 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
831 test (); logic16 (); logic16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
832 if (((index ^ indx[track]) & 8) == 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
833 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
834 /* sign of 1st pulse == sign of 2nd pulse */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
835 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
836 test (); | 
| 
186
 
12d9d3649232
libgsmefr/c1035pf.c: perf opt
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
57 
diff
changeset
 | 
837 if (indx[track] <= index) | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
838 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
839 indx[track + 5] = index; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
840 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
841 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
842 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
843 indx[track + 5] = indx[track]; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
844 move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
845 indx[track] = index; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
846 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
847 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
848 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
849 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
850 /* sign of 1st pulse != sign of 2nd pulse */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
851 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
852 test (); logic16 (); logic16 (); | 
| 
186
 
12d9d3649232
libgsmefr/c1035pf.c: perf opt
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
57 
diff
changeset
 | 
853 if ((indx[track] & 7) <= (index & 7)) | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
854 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
855 indx[track + 5] = indx[track]; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
856 move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
857 indx[track] = index; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
858 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
859 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
860 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
861 indx[track + 5] = index; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
862 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
863 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
864 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
865 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
866 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
867 p0 = h - codvec[0]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
868 p1 = h - codvec[1]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
869 p2 = h - codvec[2]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
870 p3 = h - codvec[3]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
871 p4 = h - codvec[4]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
872 p5 = h - codvec[5]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
873 p6 = h - codvec[6]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
874 p7 = h - codvec[7]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
875 p8 = h - codvec[8]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
876 p9 = h - codvec[9]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
877 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
878 for (i = 0; i < L_CODE; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
879 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
880 s = 0; move32 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
881 s = L_mac (s, *p0++, _sign[0]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
882 s = L_mac (s, *p1++, _sign[1]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
883 s = L_mac (s, *p2++, _sign[2]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
884 s = L_mac (s, *p3++, _sign[3]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
885 s = L_mac (s, *p4++, _sign[4]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
886 s = L_mac (s, *p5++, _sign[5]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
887 s = L_mac (s, *p6++, _sign[6]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
888 s = L_mac (s, *p7++, _sign[7]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
889 s = L_mac (s, *p8++, _sign[8]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
890 s = L_mac (s, *p9++, _sign[9]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
891 y[i] = round (s); move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
892 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
893 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
894 | 
