28 unsigned int endstate);
35SATNOGS_API void set_viterbi27_polynomial_av(
int polys[2]);
36SATNOGS_API int init_viterbi27_av(
void* p,
int starting_state);
40 unsigned int endstate);
42SATNOGS_API int update_viterbi27_blk_av(
void* p,
unsigned char* syms,
int nbits);
47SATNOGS_API void set_viterbi27_polynomial_mmx(
int polys[2]);
48SATNOGS_API int init_viterbi27_mmx(
void* p,
int starting_state);
52 unsigned int endstate);
54SATNOGS_API int update_viterbi27_blk_mmx(
void* p,
unsigned char* syms,
int nbits);
57SATNOGS_API void set_viterbi27_polynomial_sse(
int polys[2]);
58SATNOGS_API int init_viterbi27_sse(
void* p,
int starting_state);
62 unsigned int endstate);
64SATNOGS_API int update_viterbi27_blk_sse(
void* p,
unsigned char* syms,
int nbits);
67SATNOGS_API void set_viterbi27_polynomial_sse2(
int polys[2]);
68SATNOGS_API int init_viterbi27_sse2(
void* p,
int starting_state);
72 unsigned int endstate);
74SATNOGS_API int update_viterbi27_blk_sse2(
void* p,
unsigned char* syms,
int nbits);
83 unsigned int endstate);
100 unsigned int endstate);
105SATNOGS_API void set_viterbi29_polynomial_av(
int polys[2]);
106SATNOGS_API int init_viterbi29_av(
void* p,
int starting_state);
110 unsigned int endstate);
112SATNOGS_API int update_viterbi29_blk_av(
void* p,
unsigned char* syms,
int nbits);
117SATNOGS_API void set_viterbi29_polynomial_mmx(
int polys[2]);
118SATNOGS_API int init_viterbi29_mmx(
void* p,
int starting_state);
122 unsigned int endstate);
124SATNOGS_API int update_viterbi29_blk_mmx(
void* p,
unsigned char* syms,
int nbits);
127SATNOGS_API void set_viterbi29_polynomial_sse(
int polys[2]);
128SATNOGS_API int init_viterbi29_sse(
void* p,
int starting_state);
132 unsigned int endstate);
134SATNOGS_API int update_viterbi29_blk_sse(
void* p,
unsigned char* syms,
int nbits);
137SATNOGS_API void set_viterbi29_polynomial_sse2(
int polys[2]);
138SATNOGS_API int init_viterbi29_sse2(
void* p,
int starting_state);
142 unsigned int endstate);
144SATNOGS_API int update_viterbi29_blk_sse2(
void* p,
unsigned char* syms,
int nbits);
153 unsigned int endstate);
158#define V39POLYA 0x1ed
159#define V39POLYB 0x19b
160#define V39POLYC 0x127
169 unsigned int endstate);
174SATNOGS_API void set_viterbi39_polynomial_av(
int polys[3]);
175SATNOGS_API int init_viterbi39_av(
void* p,
int starting_state);
179 unsigned int endstate);
181SATNOGS_API int update_viterbi39_blk_av(
void* p,
unsigned char* syms,
int nbits);
186SATNOGS_API void set_viterbi39_polynomial_mmx(
int polys[3]);
187SATNOGS_API int init_viterbi39_mmx(
void* p,
int starting_state);
191 unsigned int endstate);
193SATNOGS_API int update_viterbi39_blk_mmx(
void* p,
unsigned char* syms,
int nbits);
196SATNOGS_API void set_viterbi39_polynomial_sse(
int polys[3]);
197SATNOGS_API int init_viterbi39_sse(
void* p,
int starting_state);
201 unsigned int endstate);
203SATNOGS_API int update_viterbi39_blk_sse(
void* p,
unsigned char* syms,
int nbits);
206SATNOGS_API void set_viterbi39_polynomial_sse2(
int polys[3]);
207SATNOGS_API int init_viterbi39_sse2(
void* p,
int starting_state);
211 unsigned int endstate);
213SATNOGS_API int update_viterbi39_blk_sse2(
void* p,
unsigned char* syms,
int nbits);
222 unsigned int endstate);
235#define V615POLYA 042631
236#define V615POLYB 047245
237#define V615POLYC 056507
238#define V615POLYD 073363
239#define V615POLYE 077267
240#define V615POLYF 064537
249 unsigned int endstate);
254SATNOGS_API void set_viterbi615_polynomial_av(
int polys[6]);
255SATNOGS_API int init_viterbi615_av(
void* p,
int starting_state);
259 unsigned int endstate);
261SATNOGS_API int update_viterbi615_blk_av(
void* p,
unsigned char* syms,
int nbits);
266SATNOGS_API void set_viterbi615_polynomial_mmx(
int polys[6]);
267SATNOGS_API int init_viterbi615_mmx(
void* p,
int starting_state);
271 unsigned int endstate);
273SATNOGS_API int update_viterbi615_blk_mmx(
void* p,
unsigned char* syms,
int nbits);
276SATNOGS_API void set_viterbi615_polynomial_sse(
int polys[6]);
277SATNOGS_API int init_viterbi615_sse(
void* p,
int starting_state);
281 unsigned int endstate);
283SATNOGS_API int update_viterbi615_blk_sse(
void* p,
unsigned char* syms,
int nbits);
286SATNOGS_API void set_viterbi615_polynomial_sse2(
int polys[6]);
287SATNOGS_API int init_viterbi615_sse2(
void* p,
int starting_state);
291 unsigned int endstate);
293SATNOGS_API int update_viterbi615_blk_sse2(
void* p,
unsigned char* syms,
int nbits);
302 unsigned int endstate);
340#if defined(__i386__) || defined(__x86_64__)
341static inline int parityb(
unsigned char x)
343 __asm__ __volatile__(
"test %1,%1;setpo %0" :
"=q"(x) :
"q"(x));
351 extern unsigned char Partab[256];
371addnoise(
int sym,
double amp,
double gain,
double offset,
int clip);
385SATNOGS_API void* initdp_mmx(
signed short coeffs[],
int len);
387SATNOGS_API long dotprod_mmx(
void* dp,
signed short a[]);
389SATNOGS_API void* initdp_sse(
signed short coeffs[],
int len);
391SATNOGS_API long dotprod_sse(
void* dp,
signed short a[]);
393SATNOGS_API void* initdp_sse2(
signed short coeffs[],
int len);
395SATNOGS_API long dotprod_sse2(
void* dp,
signed short a[]);
399SATNOGS_API void* initdp_sse2(
signed short coeffs[],
int len);
401SATNOGS_API long dotprod_sse2(
void* dp,
signed short a[]);
405SATNOGS_API void* initdp_av(
signed short coeffs[],
int len);
407SATNOGS_API long dotprod_av(
void* dp,
signed short a[]);
415SATNOGS_API unsigned long long sumsq_mmx(
signed short* in,
int cnt);
416SATNOGS_API unsigned long long sumsq_sse(
signed short* in,
int cnt);
417SATNOGS_API unsigned long long sumsq_sse2(
signed short* in,
int cnt);
420SATNOGS_API unsigned long long sumsq_sse2(
signed short* in,
int cnt);
423SATNOGS_API unsigned long long sumsq_av(
signed short* in,
int cnt);
#define SATNOGS_API
Definition: api.h:19
SATNOGS_API int init_viterbi615(void *vp, int starting_state)
SATNOGS_API int chainback_viterbi615(void *vp, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API void * create_viterbi615(int len)
SATNOGS_API void free_rs_char(void *rs)
SATNOGS_API int decode_rs_int(void *rs, int *data, int *eras_pos, int no_eras)
SATNOGS_API int update_viterbi29_blk(void *vp, unsigned char syms[], int nbits)
SATNOGS_API void delete_viterbi29_port(void *p)
SATNOGS_API unsigned long long sumsq_port(signed short *in, int cnt)
SATNOGS_API void * create_viterbi27_port(int len)
SATNOGS_API void delete_viterbi39_port(void *p)
SATNOGS_API void * initdp(signed short coeffs[], int len)
SATNOGS_API int decode_rs_ccsds(unsigned char *data, int *eras_pos, int no_eras, int pad)
static int parity(int x)
Definition: fec.h:360
SATNOGS_API void * create_viterbi29(int len)
SATNOGS_API long dotprod_port(void *dp, signed short a[])
SATNOGS_API void * initdp_port(signed short coeffs[], int len)
SATNOGS_API void set_viterbi27_polynomial_port(int polys[2])
SATNOGS_API void free_rs_int(void *rs)
SATNOGS_API int chainback_viterbi27_port_unpacked_trunc(void *p, unsigned char *data, unsigned int nbits)
SATNOGS_API void encode_rs_ccsds(unsigned char *data, unsigned char *parity, int pad)
SATNOGS_API void delete_viterbi39(void *vp)
SATNOGS_API int init_viterbi29(void *vp, int starting_state)
SATNOGS_API void * init_rs_char(int symsize, int gfpoly, int fcr, int prim, int nroots, int pad)
SATNOGS_API int init_viterbi27_port(void *p, int starting_state)
SATNOGS_API void find_cpu_mode(void)
SATNOGS_API void delete_viterbi615_port(void *p)
SATNOGS_API int chainback_viterbi615_port(void *p, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API void * init_rs_int(int symsize, int gfpoly, int fcr, int prim, int nroots, int pad)
SATNOGS_API int decode_rs_char(void *rs, unsigned char *data, int *eras_pos, int no_eras)
SATNOGS_API int chainback_viterbi29_port(void *p, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API int init_viterbi29_port(void *p, int starting_state)
SATNOGS_API void delete_viterbi27(void *vp)
SATNOGS_API int init_viterbi39(void *vp, int starting_state)
SATNOGS_API int update_viterbi27_blk_port(void *p, unsigned char *syms, int nbits)
SATNOGS_API int update_viterbi29_blk_port(void *p, unsigned char *syms, int nbits)
SATNOGS_API void delete_viterbi29(void *vp)
SATNOGS_API int chainback_viterbi29(void *vp, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API void delete_viterbi27_port(void *p)
SATNOGS_API int decode_rs_8(unsigned char *data, int *eras_pos, int no_eras, int pad)
SATNOGS_API void encode_rs_char(void *rs, unsigned char *data, unsigned char *parity)
SATNOGS_API void * create_viterbi39_port(int len)
SATNOGS_API long dotprod(void *dp, signed short a[])
SATNOGS_API void * create_viterbi27(int len)
SATNOGS_API int update_viterbi615_blk_port(void *p, unsigned char *syms, int nbits)
SATNOGS_API unsigned long long sumsq(signed short *in, int cnt)
SATNOGS_API int update_viterbi27_blk(void *vp, unsigned char sym[], int npairs)
SATNOGS_API void set_viterbi29_polynomial_port(int polys[2])
SATNOGS_API void set_viterbi615_polynomial(int polys[6])
SATNOGS_API int chainback_viterbi27_unpacked_trunc(void *p, unsigned char *data, unsigned int nbits)
SATNOGS_API void freedp_port(void *dp)
SATNOGS_API void * create_viterbi615_port(int len)
cpu_mode
Definition: fec.h:336
@ SSE
Definition: fec.h:336
@ UNKNOWN
Definition: fec.h:336
@ PORT
Definition: fec.h:336
@ SSE2
Definition: fec.h:336
@ MMX
Definition: fec.h:336
@ ALTIVEC
Definition: fec.h:336
SATNOGS_API int chainback_viterbi39_port(void *p, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API void delete_viterbi615(void *vp)
SATNOGS_API int chainback_viterbi39(void *vp, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API void freedp(void *dp)
SATNOGS_API void set_viterbi39_polynomial(int polys[3])
SATNOGS_API unsigned char addnoise(int sym, double amp, double gain, double offset, int clip)
SATNOGS_API int init_viterbi39_port(void *p, int starting_state)
SATNOGS_API int cpu_features(void)
SATNOGS_API void set_viterbi27_polynomial(int polys[2])
SATNOGS_API int update_viterbi39_blk(void *vp, unsigned char syms[], int nbits)
SATNOGS_API void set_viterbi39_polynomial_port(int polys[3])
SATNOGS_API int update_viterbi615_blk(void *vp, unsigned char *syms, int nbits)
SATNOGS_API void * create_viterbi39(int len)
SATNOGS_API void * create_viterbi29_port(int len)
SATNOGS_API int chainback_viterbi27(void *vp, unsigned char *data, unsigned int nbits, unsigned int endstate)
static int parityb(unsigned char x)
Definition: fec.h:349
SATNOGS_API int update_viterbi39_blk_port(void *p, unsigned char *syms, int nbits)
SATNOGS_API int init_viterbi27(void *vp, int starting_state)
SATNOGS_API void encode_rs_int(void *rs, int *data, int *parity)
SATNOGS_API void encode_rs_8(unsigned char *data, unsigned char *parity, int pad)
SATNOGS_API double normal_rand(double mean, double std_dev)
SATNOGS_API int chainback_viterbi27_port(void *p, unsigned char *data, unsigned int nbits, unsigned int endstate)
SATNOGS_API int init_viterbi615_port(void *p, int starting_state)
unsigned char Tal1tab[]
Definition: fec.h:333
SATNOGS_API void set_viterbi29_polynomial(int polys[2])
SATNOGS_API void set_viterbi615_polynomial_port(int polys[6])
rs pad
Definition: init_rs.h:43
rs nroots
Definition: init_rs.h:97
rs fcr
Definition: init_rs.h:95
rs prim
Definition: init_rs.h:96
Definition: rs-common.h:7