27 unsigned int nbits,
unsigned int endstate);
32 SATNOGS_API void set_viterbi27_polynomial_av(
int polys[2]);
33 SATNOGS_API int init_viterbi27_av(
void *p,
int starting_state);
34 SATNOGS_API int chainback_viterbi27_av(
void *p,
unsigned char *data,
35 unsigned int nbits,
unsigned int endstate);
37 SATNOGS_API int update_viterbi27_blk_av(
void *p,
unsigned char *syms,
43 SATNOGS_API void set_viterbi27_polynomial_mmx(
int polys[2]);
44 SATNOGS_API int init_viterbi27_mmx(
void *p,
int starting_state);
45 SATNOGS_API int chainback_viterbi27_mmx(
void *p,
unsigned char *data,
46 unsigned int nbits,
unsigned int endstate);
48 SATNOGS_API int update_viterbi27_blk_mmx(
void *p,
unsigned char *syms,
52 SATNOGS_API void set_viterbi27_polynomial_sse(
int polys[2]);
53 SATNOGS_API int init_viterbi27_sse(
void *p,
int starting_state);
54 SATNOGS_API int chainback_viterbi27_sse(
void *p,
unsigned char *data,
55 unsigned int nbits,
unsigned int endstate);
57 SATNOGS_API int update_viterbi27_blk_sse(
void *p,
unsigned char *syms,
61 SATNOGS_API void set_viterbi27_polynomial_sse2(
int polys[2]);
62 SATNOGS_API int init_viterbi27_sse2(
void *p,
int starting_state);
63 SATNOGS_API int chainback_viterbi27_sse2(
void *p,
unsigned char *data,
64 unsigned int nbits,
unsigned int endstate);
66 SATNOGS_API int update_viterbi27_blk_sse2(
void *p,
unsigned char *syms,
74 unsigned int nbits,
unsigned int endstate);
80 #define V29POLYA 0x1af 81 #define V29POLYB 0x11d 88 unsigned int nbits,
unsigned int endstate);
93 SATNOGS_API void set_viterbi29_polynomial_av(
int polys[2]);
94 SATNOGS_API int init_viterbi29_av(
void *p,
int starting_state);
95 SATNOGS_API int chainback_viterbi29_av(
void *p,
unsigned char *data,
96 unsigned int nbits,
unsigned int endstate);
98 SATNOGS_API int update_viterbi29_blk_av(
void *p,
unsigned char *syms,
104 SATNOGS_API void set_viterbi29_polynomial_mmx(
int polys[2]);
105 SATNOGS_API int chainback_viterbi29_mmx(
void *p,
unsigned char *data,
106 unsigned int nbits,
unsigned int endstate);
108 SATNOGS_API int update_viterbi29_blk_mmx(
void *p,
unsigned char *syms,
112 SATNOGS_API void set_viterbi29_polynomial_sse(
int polys[2]);
113 SATNOGS_API int init_viterbi29_sse(
void *p,
int starting_state);
114 SATNOGS_API int chainback_viterbi29_sse(
void *p,
unsigned char *data,
115 unsigned int nbits,
unsigned int endstate);
117 SATNOGS_API int update_viterbi29_blk_sse(
void *p,
unsigned char *syms,
121 SATNOGS_API void set_viterbi29_polynomial_sse2(
int polys[2]);
122 SATNOGS_API int init_viterbi29_sse2(
void *p,
int starting_state);
123 SATNOGS_API int chainback_viterbi29_sse2(
void *p,
unsigned char *data,
124 unsigned int nbits,
unsigned int endstate);
126 SATNOGS_API int update_viterbi29_blk_sse2(
void *p,
unsigned char *syms,
134 unsigned int nbits,
unsigned int endstate);
140 #define V39POLYA 0x1ed 141 #define V39POLYB 0x19b 142 #define V39POLYC 0x127 149 unsigned int nbits,
unsigned int endstate);
154 SATNOGS_API void set_viterbi39_polynomial_av(
int polys[3]);
155 SATNOGS_API int init_viterbi39_av(
void *p,
int starting_state);
156 SATNOGS_API int chainback_viterbi39_av(
void *p,
unsigned char *data,
157 unsigned int nbits,
unsigned int endstate);
159 SATNOGS_API int update_viterbi39_blk_av(
void *p,
unsigned char *syms,
165 SATNOGS_API void set_viterbi39_polynomial_mmx(
int polys[3]);
166 SATNOGS_API int init_viterbi39_mmx(
void *p,
int starting_state);
167 SATNOGS_API int chainback_viterbi39_mmx(
void *p,
unsigned char *data,
168 unsigned int nbits,
unsigned int endstate);
170 SATNOGS_API int update_viterbi39_blk_mmx(
void *p,
unsigned char *syms,
174 SATNOGS_API void set_viterbi39_polynomial_sse(
int polys[3]);
175 SATNOGS_API int init_viterbi39_sse(
void *p,
int starting_state);
176 SATNOGS_API int chainback_viterbi39_sse(
void *p,
unsigned char *data,
177 unsigned int nbits,
unsigned int endstate);
179 SATNOGS_API int update_viterbi39_blk_sse(
void *p,
unsigned char *syms,
183 SATNOGS_API void set_viterbi39_polynomial_sse2(
int polys[3]);
184 SATNOGS_API int init_viterbi39_sse2(
void *p,
int starting_state);
185 SATNOGS_API int chainback_viterbi39_sse2(
void *p,
unsigned char *data,
186 unsigned int nbits,
unsigned int endstate);
188 SATNOGS_API int update_viterbi39_blk_sse2(
void *p,
unsigned char *syms,
196 unsigned int nbits,
unsigned int endstate);
211 #define V615POLYA 042631 212 #define V615POLYB 047245 213 #define V615POLYC 056507 214 #define V615POLYD 073363 215 #define V615POLYE 077267 216 #define V615POLYF 064537 223 unsigned int nbits,
unsigned int endstate);
228 SATNOGS_API void set_viterbi615_polynomial_av(
int polys[6]);
229 SATNOGS_API int init_viterbi615_av(
void *p,
int starting_state);
230 SATNOGS_API int chainback_viterbi615_av(
void *p,
unsigned char *data,
231 unsigned int nbits,
unsigned int endstate);
233 SATNOGS_API int update_viterbi615_blk_av(
void *p,
unsigned char *syms,
239 SATNOGS_API void set_viterbi615_polynomial_mmx(
int polys[6]);
240 SATNOGS_API int init_viterbi615_mmx(
void *p,
int starting_state);
241 SATNOGS_API int chainback_viterbi615_mmx(
void *p,
unsigned char *data,
242 unsigned int nbits,
unsigned int endstate);
244 SATNOGS_API int update_viterbi615_blk_mmx(
void *p,
unsigned char *syms,
248 SATNOGS_API void set_viterbi615_polynomial_sse(
int polys[6]);
249 SATNOGS_API int init_viterbi615_sse(
void *p,
int starting_state);
250 SATNOGS_API int chainback_viterbi615_sse(
void *p,
unsigned char *data,
251 unsigned int nbits,
unsigned int endstate);
253 SATNOGS_API int update_viterbi615_blk_sse(
void *p,
unsigned char *syms,
257 SATNOGS_API void set_viterbi615_polynomial_sse2(
int polys[6]);
258 SATNOGS_API int init_viterbi615_sse2(
void *p,
int starting_state);
259 SATNOGS_API int chainback_viterbi615_sse2(
void *p,
unsigned char *data,
260 unsigned int nbits,
unsigned int endstate);
262 SATNOGS_API int update_viterbi615_blk_sse2(
void *p,
unsigned char *syms,
270 unsigned int nbits,
unsigned int endstate);
319 #if defined(__i386__) || defined(__x86_64__) 320 static inline int parityb(
unsigned char x)
322 __asm__ __volatile__(
"test %1,%1;setpo %0" :
"=q"(x) :
"q"(x));
330 extern unsigned char Partab[256];
351 double offset,
int clip);
365 SATNOGS_API void *initdp_mmx(
signed short coeffs[],
int len);
367 SATNOGS_API long dotprod_mmx(
void *dp,
signed short a[]);
369 SATNOGS_API void *initdp_sse(
signed short coeffs[],
int len);
371 SATNOGS_API long dotprod_sse(
void *dp,
signed short a[]);
373 SATNOGS_API void *initdp_sse2(
signed short coeffs[],
int len);
375 SATNOGS_API long dotprod_sse2(
void *dp,
signed short a[]);
379 SATNOGS_API void *initdp_sse2(
signed short coeffs[],
int len);
381 SATNOGS_API long dotprod_sse2(
void *dp,
signed short a[]);
385 SATNOGS_API void *initdp_av(
signed short coeffs[],
int len);
387 SATNOGS_API long dotprod_av(
void *dp,
signed short a[]);
395 SATNOGS_API unsigned long long sumsq_mmx(
signed short *in,
int cnt);
396 SATNOGS_API unsigned long long sumsq_sse(
signed short *in,
int cnt);
397 SATNOGS_API unsigned long long sumsq_sse2(
signed short *in,
int cnt);
400 SATNOGS_API unsigned long long sumsq_sse2(
signed short *in,
int cnt);
403 SATNOGS_API unsigned long long sumsq_av(
signed short *in,
int cnt);
rs nroots
Definition: init_rs.h:97
SATNOGS_API int cpu_features(void)
SATNOGS_API int init_viterbi27(void *vp, int starting_state)
SATNOGS_API void set_viterbi615_polynomial_port(int polys[6])
SATNOGS_API int update_viterbi29_blk(void *vp, unsigned char syms[], int nbits)
Definition: rs-common.h:7
SATNOGS_API void encode_rs_char(void *rs, unsigned char *data, unsigned char *parity)
SATNOGS_API unsigned long long sumsq_port(signed short *in, int cnt)
SATNOGS_API void encode_rs_8(unsigned char *data, unsigned char *parity, int pad)
SATNOGS_API unsigned char addnoise(int sym, double amp, double gain, double offset, int clip)
SATNOGS_API void * create_viterbi39(int len)
SATNOGS_API int update_viterbi29_blk_port(void *p, unsigned char *syms, int nbits)
static int parityb(unsigned char x)
Definition: fec.h:328
SATNOGS_API void encode_rs_int(void *rs, int *data, int *parity)
SATNOGS_API void delete_viterbi39(void *vp)
SATNOGS_API int update_viterbi615_blk(void *vp, unsigned char *syms, int nbits)
SATNOGS_API int init_viterbi29(void *vp, int starting_state)
SATNOGS_API void set_viterbi39_polynomial_port(int polys[3])
SATNOGS_API int update_viterbi27_blk(void *vp, unsigned char sym[], int npairs)
SATNOGS_API int init_viterbi39_port(void *p, int starting_state)
SATNOGS_API void * create_viterbi29(int len)
SATNOGS_API void delete_viterbi615(void *vp)
SATNOGS_API int init_viterbi615_port(void *p, int starting_state)
SATNOGS_API int decode_rs_int(void *rs, int *data, int *eras_pos, int no_eras)
SATNOGS_API void * initdp_port(signed short coeffs[], int len)
SATNOGS_API void freedp(void *dp)
SATNOGS_API int chainback_viterbi39_port(void *p, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API void free_rs_int(void *rs)
SATNOGS_API void freedp_port(void *dp)
SATNOGS_API void * init_rs_int(int symsize, int gfpoly, int fcr, int prim, int nroots, int pad)
SATNOGS_API void * create_viterbi27(int len)
SATNOGS_API int init_viterbi27_port(void *p, int starting_state)
SATNOGS_API int update_viterbi39_blk_port(void *p, unsigned char *syms, int nbits)
SATNOGS_API int chainback_viterbi39(void *vp, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API void * create_viterbi615_port(int len)
SATNOGS_API void encode_rs_ccsds(unsigned char *data, unsigned char *parity, int pad)
SATNOGS_API void free_rs_char(void *rs)
SATNOGS_API void * create_viterbi615(int len)
rs pad
Definition: init_rs.h:43
SATNOGS_API void set_viterbi29_polynomial(int polys[2])
SATNOGS_API void set_viterbi615_polynomial(int polys[6])
SATNOGS_API long dotprod_port(void *dp, signed short a[])
SATNOGS_API int init_viterbi615(void *vp, int starting_state)
rs fcr
Definition: init_rs.h:95
SATNOGS_API int chainback_viterbi27(void *vp, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API unsigned long long sumsq(signed short *in, int cnt)
SATNOGS_API int init_viterbi29_port(void *p, int starting_state)
cpu_mode
Definition: fec.h:314
rs prim
Definition: init_rs.h:96
SATNOGS_API void find_cpu_mode(void)
SATNOGS_API int update_viterbi27_blk_port(void *p, unsigned char *syms, int nbits)
SATNOGS_API void * create_viterbi29_port(int len)
SATNOGS_API int chainback_viterbi615_port(void *p, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API void delete_viterbi29_port(void *p)
SATNOGS_API int decode_rs_ccsds(unsigned char *data, int *eras_pos, int no_eras, int pad)
SATNOGS_API int chainback_viterbi615(void *vp, unsigned char *data, unsigned int nbits, unsigned int endstate)
static int parity(int x)
Definition: fec.h:340
SATNOGS_API enum cpu_mode Cpu_mode
SATNOGS_API void delete_viterbi29(void *vp)
SATNOGS_API int decode_rs_char(void *rs, unsigned char *data, int *eras_pos, int no_eras)
SATNOGS_API void delete_viterbi39_port(void *p)
SATNOGS_API int update_viterbi39_blk(void *vp, unsigned char syms[], int nbits)
SATNOGS_API void * init_rs_char(int symsize, int gfpoly, int fcr, int prim, int nroots, int pad)
SATNOGS_API void * create_viterbi39_port(int len)
SATNOGS_API void delete_viterbi27_port(void *p)
SATNOGS_API int chainback_viterbi27_port(void *p, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API long dotprod(void *dp, signed short a[])
SATNOGS_API void * initdp(signed short coeffs[], int len)
SATNOGS_API void set_viterbi27_polynomial_port(int polys[2])
SATNOGS_API int update_viterbi615_blk_port(void *p, unsigned char *syms, int nbits)
SATNOGS_API void delete_viterbi615_port(void *p)
SATNOGS_API int init_viterbi39(void *vp, int starting_state)
SATNOGS_API int chainback_viterbi29(void *vp, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API int chainback_viterbi29_port(void *p, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API double normal_rand(double mean, double std_dev)
SATNOGS_API void set_viterbi29_polynomial_port(int polys[2])
SATNOGS_API void set_viterbi27_polynomial(int polys[2])
SATNOGS_API int decode_rs_8(unsigned char *data, int *eras_pos, int no_eras, int pad)
SATNOGS_API void delete_viterbi27(void *vp)
#define SATNOGS_API
Definition: api.h:30
SATNOGS_API void set_viterbi39_polynomial(int polys[3])
SATNOGS_API void * create_viterbi27_port(int len)