31 SATNOGS_API void set_viterbi27_polynomial_av(
int polys[2]);
32 SATNOGS_API int init_viterbi27_av(
void *p,
int starting_state);
33 SATNOGS_API int chainback_viterbi27_av(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
35 SATNOGS_API int update_viterbi27_blk_av(
void *p,
unsigned char *syms,
int nbits);
40 SATNOGS_API void set_viterbi27_polynomial_mmx(
int polys[2]);
41 SATNOGS_API int init_viterbi27_mmx(
void *p,
int starting_state);
42 SATNOGS_API int chainback_viterbi27_mmx(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
44 SATNOGS_API int update_viterbi27_blk_mmx(
void *p,
unsigned char *syms,
int nbits);
47 SATNOGS_API void set_viterbi27_polynomial_sse(
int polys[2]);
48 SATNOGS_API int init_viterbi27_sse(
void *p,
int starting_state);
49 SATNOGS_API int chainback_viterbi27_sse(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
51 SATNOGS_API int update_viterbi27_blk_sse(
void *p,
unsigned char *syms,
int nbits);
54 SATNOGS_API void set_viterbi27_polynomial_sse2(
int polys[2]);
55 SATNOGS_API int init_viterbi27_sse2(
void *p,
int starting_state);
56 SATNOGS_API int chainback_viterbi27_sse2(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
58 SATNOGS_API int update_viterbi27_blk_sse2(
void *p,
unsigned char *syms,
int nbits);
70 #define V29POLYA 0x1af 71 #define V29POLYB 0x11d 82 SATNOGS_API void set_viterbi29_polynomial_av(
int polys[2]);
83 SATNOGS_API int init_viterbi29_av(
void *p,
int starting_state);
84 SATNOGS_API int chainback_viterbi29_av(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
86 SATNOGS_API int update_viterbi29_blk_av(
void *p,
unsigned char *syms,
int nbits);
91 SATNOGS_API void set_viterbi29_polynomial_mmx(
int polys[2]);
92 SATNOGS_API int init_viterbi29_mmx(
void *p,
int starting_state);
93 SATNOGS_API int chainback_viterbi29_mmx(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
95 SATNOGS_API int update_viterbi29_blk_mmx(
void *p,
unsigned char *syms,
int nbits);
98 SATNOGS_API void set_viterbi29_polynomial_sse(
int polys[2]);
99 SATNOGS_API int init_viterbi29_sse(
void *p,
int starting_state);
100 SATNOGS_API int chainback_viterbi29_sse(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
102 SATNOGS_API int update_viterbi29_blk_sse(
void *p,
unsigned char *syms,
int nbits);
105 SATNOGS_API void set_viterbi29_polynomial_sse2(
int polys[2]);
106 SATNOGS_API int init_viterbi29_sse2(
void *p,
int starting_state);
107 SATNOGS_API int chainback_viterbi29_sse2(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
109 SATNOGS_API int update_viterbi29_blk_sse2(
void *p,
unsigned char *syms,
int nbits);
120 #define V39POLYA 0x1ed 121 #define V39POLYB 0x19b 122 #define V39POLYC 0x127 133 SATNOGS_API void set_viterbi39_polynomial_av(
int polys[3]);
134 SATNOGS_API int init_viterbi39_av(
void *p,
int starting_state);
135 SATNOGS_API int chainback_viterbi39_av(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
137 SATNOGS_API int update_viterbi39_blk_av(
void *p,
unsigned char *syms,
int nbits);
142 SATNOGS_API void set_viterbi39_polynomial_mmx(
int polys[3]);
143 SATNOGS_API int init_viterbi39_mmx(
void *p,
int starting_state);
144 SATNOGS_API int chainback_viterbi39_mmx(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
146 SATNOGS_API int update_viterbi39_blk_mmx(
void *p,
unsigned char *syms,
int nbits);
149 SATNOGS_API void set_viterbi39_polynomial_sse(
int polys[3]);
150 SATNOGS_API int init_viterbi39_sse(
void *p,
int starting_state);
151 SATNOGS_API int chainback_viterbi39_sse(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
153 SATNOGS_API int update_viterbi39_blk_sse(
void *p,
unsigned char *syms,
int nbits);
156 SATNOGS_API void set_viterbi39_polynomial_sse2(
int polys[3]);
157 SATNOGS_API int init_viterbi39_sse2(
void *p,
int starting_state);
158 SATNOGS_API int chainback_viterbi39_sse2(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
160 SATNOGS_API int update_viterbi39_blk_sse2(
void *p,
unsigned char *syms,
int nbits);
179 #define V615POLYA 042631 180 #define V615POLYB 047245 181 #define V615POLYC 056507 182 #define V615POLYD 073363 183 #define V615POLYE 077267 184 #define V615POLYF 064537 195 SATNOGS_API void set_viterbi615_polynomial_av(
int polys[6]);
196 SATNOGS_API int init_viterbi615_av(
void *p,
int starting_state);
197 SATNOGS_API int chainback_viterbi615_av(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
199 SATNOGS_API int update_viterbi615_blk_av(
void *p,
unsigned char *syms,
int nbits);
204 SATNOGS_API void set_viterbi615_polynomial_mmx(
int polys[6]);
205 SATNOGS_API int init_viterbi615_mmx(
void *p,
int starting_state);
206 SATNOGS_API int chainback_viterbi615_mmx(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
208 SATNOGS_API int update_viterbi615_blk_mmx(
void *p,
unsigned char *syms,
int nbits);
211 SATNOGS_API void set_viterbi615_polynomial_sse(
int polys[6]);
212 SATNOGS_API int init_viterbi615_sse(
void *p,
int starting_state);
213 SATNOGS_API int chainback_viterbi615_sse(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
215 SATNOGS_API int update_viterbi615_blk_sse(
void *p,
unsigned char *syms,
int nbits);
218 SATNOGS_API void set_viterbi615_polynomial_sse2(
int polys[6]);
219 SATNOGS_API int init_viterbi615_sse2(
void *p,
int starting_state);
220 SATNOGS_API int chainback_viterbi615_sse2(
void *p,
unsigned char *data,
unsigned int nbits,
unsigned int endstate);
222 SATNOGS_API int update_viterbi615_blk_sse2(
void *p,
unsigned char *syms,
int nbits);
268 #if defined(__i386__) || defined(__x86_64__) 269 static inline int parityb(
unsigned char x){
270 __asm__ __volatile__ (
"test %1,%1;setpo %0" :
"=q"(x) :
"q" (x));
277 extern unsigned char Partab[256];
309 SATNOGS_API void *initdp_mmx(
signed short coeffs[],
int len);
311 SATNOGS_API long dotprod_mmx(
void *dp,
signed short a[]);
313 SATNOGS_API void *initdp_sse(
signed short coeffs[],
int len);
315 SATNOGS_API long dotprod_sse(
void *dp,
signed short a[]);
317 SATNOGS_API void *initdp_sse2(
signed short coeffs[],
int len);
319 SATNOGS_API long dotprod_sse2(
void *dp,
signed short a[]);
323 SATNOGS_API void *initdp_sse2(
signed short coeffs[],
int len);
325 SATNOGS_API long dotprod_sse2(
void *dp,
signed short a[]);
329 SATNOGS_API void *initdp_av(
signed short coeffs[],
int len);
331 SATNOGS_API long dotprod_av(
void *dp,
signed short a[]);
339 SATNOGS_API unsigned long long sumsq_mmx(
signed short *in,
int cnt);
340 SATNOGS_API unsigned long long sumsq_sse(
signed short *in,
int cnt);
341 SATNOGS_API unsigned long long sumsq_sse2(
signed short *in,
int cnt);
344 SATNOGS_API unsigned long long sumsq_sse2(
signed short *in,
int cnt);
347 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 int chainback_viterbi27_port_unpacked_trunc(void *p, unsigned char *data, unsigned int nbits)
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:276
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 int chainback_viterbi27_unpacked_trunc(void *p, unsigned char *data, unsigned int nbits)
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:264
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:286
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)