annotate libgsmefr/memops.h @ 107:41f1ae68d253

amr2efr & efr2amr cosmetic: cleaner approach to bit reshuffling
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 27 Nov 2022 21:02:07 +0000
parents d285877fc4cc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
58
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * The original code from ETSI uses its own Copy() and Set_zero()
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * functions, operating on Word16 elements. Here we implement them
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * as static inline functions wrapping around memcpy and memset.
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 */
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include <string.h>
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 static inline void Copy (
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 const Word16 x[], /* (i) : input vector */
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 Word16 y[], /* (o) : output vector */
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 Word16 L /* (i) : vector length */
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 )
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 {
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 memcpy(y, x, L * 2);
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 }
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 static inline void Set_zero (
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 Word16 x[], /* (o) : vector to clear */
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 Word16 L /* (i) : length of vector */
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 )
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 {
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 memset(x, 0, L * 2);
d285877fc4cc libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 }