OB.DAAC Logo
NASA Logo
Ocean Color Science Software

ocssw V2022
fec.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define V27POLYA   0x6d
 
#define V27POLYB   0x4f
 
#define V29POLYA   0x1af
 
#define V29POLYB   0x11d
 
#define V39POLYA   0x1ed
 
#define V39POLYB   0x19b
 
#define V39POLYC   0x127
 
#define V615POLYA   042631
 
#define V615POLYB   047245
 
#define V615POLYC   056507
 
#define V615POLYD   073363
 
#define V615POLYE   077267
 
#define V615POLYF   064537
 

Enumerations

enum  cpu_mode {
  UNKNOWN =0, PORT, MMX, SSE,
  SSE2, ALTIVEC
}
 

Functions

void * create_viterbi27 (int len)
 
void set_viterbi27_polynomial (int polys[2])
 
int init_viterbi27 (void *vp, int starting_state)
 
int update_viterbi27_blk (void *vp, unsigned char sym[], int npairs)
 
int chainback_viterbi27 (void *vp, unsigned char *data, unsigned int nbits, unsigned int endstate)
 
void delete_viterbi27 (void *vp)
 
void * create_viterbi27_port (int len)
 
void set_viterbi27_polynomial_port (int polys[2])
 
int init_viterbi27_port (void *p, int starting_state)
 
int chainback_viterbi27_port (void *p, unsigned char *data, unsigned int nbits, unsigned int endstate)
 
void delete_viterbi27_port (void *p)
 
int update_viterbi27_blk_port (void *p, unsigned char *syms, int nbits)
 
void * create_viterbi29 (int len)
 
void set_viterbi29_polynomial (int polys[2])
 
int init_viterbi29 (void *vp, int starting_state)
 
int update_viterbi29_blk (void *vp, unsigned char syms[], int nbits)
 
int chainback_viterbi29 (void *vp, unsigned char *data, unsigned int nbits, unsigned int endstate)
 
void delete_viterbi29 (void *vp)
 
void * create_viterbi29_port (int len)
 
void set_viterbi29_polynomial_port (int polys[2])
 
int init_viterbi29_port (void *p, int starting_state)
 
int chainback_viterbi29_port (void *p, unsigned char *data, unsigned int nbits, unsigned int endstate)
 
void delete_viterbi29_port (void *p)
 
int update_viterbi29_blk_port (void *p, unsigned char *syms, int nbits)
 
void * create_viterbi39 (int len)
 
void set_viterbi39_polynomial (int polys[3])
 
int init_viterbi39 (void *vp, int starting_state)
 
int update_viterbi39_blk (void *vp, unsigned char syms[], int nbits)
 
int chainback_viterbi39 (void *vp, unsigned char *data, unsigned int nbits, unsigned int endstate)
 
void delete_viterbi39 (void *vp)
 
void * create_viterbi39_port (int len)
 
void set_viterbi39_polynomial_port (int polys[3])
 
int init_viterbi39_port (void *p, int starting_state)
 
int chainback_viterbi39_port (void *p, unsigned char *data, unsigned int nbits, unsigned int endstate)
 
void delete_viterbi39_port (void *p)
 
int update_viterbi39_blk_port (void *p, unsigned char *syms, int nbits)
 
void * create_viterbi615 (int len)
 
void set_viterbi615_polynomial (int polys[6])
 
int init_viterbi615 (void *vp, int starting_state)
 
int update_viterbi615_blk (void *vp, unsigned char *syms, int nbits)
 
int chainback_viterbi615 (void *vp, unsigned char *data, unsigned int nbits, unsigned int endstate)
 
void delete_viterbi615 (void *vp)
 
void * create_viterbi615_port (int len)
 
void set_viterbi615_polynomial_port (int polys[6])
 
int init_viterbi615_port (void *p, int starting_state)
 
int chainback_viterbi615_port (void *p, unsigned char *data, unsigned int nbits, unsigned int endstate)
 
void delete_viterbi615_port (void *p)
 
int update_viterbi615_blk_port (void *p, unsigned char *syms, int nbits)
 
void encode_rs_char (void *rs, unsigned char *data, unsigned char *parity)
 
int decode_rs_char (void *rs, unsigned char *data, int *eras_pos, int no_eras)
 
void * init_rs_char (int symsize, int gfpoly, int fcr, int prim, int nroots, int pad)
 
void free_rs_char (void *rs)
 
void encode_rs_int (void *rs, int *data, int *parity)
 
int decode_rs_int (void *rs, int *data, int *eras_pos, int no_eras)
 
void * init_rs_int (int symsize, int gfpoly, int fcr, int prim, int nroots, int pad)
 
void free_rs_int (void *rs)
 
void encode_rs_8 (unsigned char *data, unsigned char *parity, int pad)
 
int decode_rs_8 (unsigned char *data, int *eras_pos, int no_eras, int pad)
 
void encode_rs_ccsds (unsigned char *data, unsigned char *parity, int pad)
 
int decode_rs_ccsds (unsigned char *data, int *eras_pos, int no_eras, int pad)
 
void find_cpu_mode (void)
 
void partab_init ()
 
double normal_rand (double mean, double std_dev)
 
unsigned char addnoise (int sym, double amp, double gain, double offset, int clip)
 
void * initdp (signed short coeffs[], int len)
 
void freedp (void *dp)
 
long dotprod (void *dp, signed short a[])
 
void * initdp_port (signed short coeffs[], int len)
 
void freedp_port (void *dp)
 
long dotprod_port (void *dp, signed short a[])
 
unsigned long long sumsq (signed short *in, int cnt)
 
unsigned long long sumsq_port (signed short *in, int cnt)
 
int cpu_features (void)
 

Variables

unsigned char Taltab []
 
unsigned char Tal1tab []
 
enum cpu_mode Cpu_mode
 
int Bitcnt []
 

Macro Definition Documentation

◆ V27POLYA

#define V27POLYA   0x6d

Definition at line 13 of file fec.h.

◆ V27POLYB

#define V27POLYB   0x4f

Definition at line 14 of file fec.h.

◆ V29POLYA

#define V29POLYA   0x1af

Definition at line 63 of file fec.h.

◆ V29POLYB

#define V29POLYB   0x11d

Definition at line 64 of file fec.h.

◆ V39POLYA

#define V39POLYA   0x1ed

Definition at line 113 of file fec.h.

◆ V39POLYB

#define V39POLYB   0x19b

Definition at line 114 of file fec.h.

◆ V39POLYC

#define V39POLYC   0x127

Definition at line 115 of file fec.h.

◆ V615POLYA

#define V615POLYA   042631

Definition at line 173 of file fec.h.

◆ V615POLYB

#define V615POLYB   047245

Definition at line 174 of file fec.h.

◆ V615POLYC

#define V615POLYC   056507

Definition at line 175 of file fec.h.

◆ V615POLYD

#define V615POLYD   073363

Definition at line 176 of file fec.h.

◆ V615POLYE

#define V615POLYE   077267

Definition at line 177 of file fec.h.

◆ V615POLYF

#define V615POLYF   064537

Definition at line 178 of file fec.h.

Enumeration Type Documentation

◆ cpu_mode

enum cpu_mode
Enumerator
UNKNOWN 
PORT 
MMX 
SSE 
SSE2 
ALTIVEC 

Definition at line 261 of file fec.h.

Function Documentation

◆ addnoise()

unsigned char addnoise ( int  sym,
double  amp,
double  gain,
double  offset,
int  clip 
)

◆ chainback_viterbi27()

int chainback_viterbi27 ( void *  vp,
unsigned char *  data,
unsigned int  nbits,
unsigned int  endstate 
)

Definition at line 242 of file fec_seahawk.c.

◆ chainback_viterbi27_port()

int chainback_viterbi27_port ( void *  p,
unsigned char *  data,
unsigned int  nbits,
unsigned int  endstate 
)

Definition at line 393 of file fec_seahawk.c.

◆ chainback_viterbi29()

int chainback_viterbi29 ( void *  vp,
unsigned char *  data,
unsigned int  nbits,
unsigned int  endstate 
)

◆ chainback_viterbi29_port()

int chainback_viterbi29_port ( void *  p,
unsigned char *  data,
unsigned int  nbits,
unsigned int  endstate 
)

◆ chainback_viterbi39()

int chainback_viterbi39 ( void *  vp,
unsigned char *  data,
unsigned int  nbits,
unsigned int  endstate 
)

◆ chainback_viterbi39_port()

int chainback_viterbi39_port ( void *  p,
unsigned char *  data,
unsigned int  nbits,
unsigned int  endstate 
)

◆ chainback_viterbi615()

int chainback_viterbi615 ( void *  vp,
unsigned char *  data,
unsigned int  nbits,
unsigned int  endstate 
)

◆ chainback_viterbi615_port()

int chainback_viterbi615_port ( void *  p,
unsigned char *  data,
unsigned int  nbits,
unsigned int  endstate 
)

◆ cpu_features()

int cpu_features ( void  )

◆ create_viterbi27()

void* create_viterbi27 ( int  len)

Definition at line 173 of file fec_seahawk.c.

◆ create_viterbi27_port()

void* create_viterbi27_port ( int  len)

Definition at line 374 of file fec_seahawk.c.

◆ create_viterbi29()

void* create_viterbi29 ( int  len)

◆ create_viterbi29_port()

void* create_viterbi29_port ( int  len)

◆ create_viterbi39()

void* create_viterbi39 ( int  len)

◆ create_viterbi39_port()

void* create_viterbi39_port ( int  len)

◆ create_viterbi615()

void* create_viterbi615 ( int  len)

◆ create_viterbi615_port()

void* create_viterbi615_port ( int  len)

◆ decode_rs_8()

int decode_rs_8 ( unsigned char *  data,
int *  eras_pos,
int  no_eras,
int  pad 
)

Definition at line 76 of file fec_seahawk.c.

◆ decode_rs_ccsds()

int decode_rs_ccsds ( unsigned char *  data,
int *  eras_pos,
int  no_eras,
int  pad 
)

Definition at line 53 of file fec_seahawk.c.

◆ decode_rs_char()

int decode_rs_char ( void *  rs,
unsigned char *  data,
int *  eras_pos,
int  no_eras 
)

◆ decode_rs_int()

int decode_rs_int ( void *  rs,
int *  data,
int *  eras_pos,
int  no_eras 
)

◆ delete_viterbi27()

void delete_viterbi27 ( void *  vp)

Definition at line 268 of file fec_seahawk.c.

◆ delete_viterbi27_port()

void delete_viterbi27_port ( void *  p)

Definition at line 425 of file fec_seahawk.c.

◆ delete_viterbi29()

void delete_viterbi29 ( void *  vp)

◆ delete_viterbi29_port()

void delete_viterbi29_port ( void *  p)

◆ delete_viterbi39()

void delete_viterbi39 ( void *  vp)

◆ delete_viterbi39_port()

void delete_viterbi39_port ( void *  p)

◆ delete_viterbi615()

void delete_viterbi615 ( void *  vp)

◆ delete_viterbi615_port()

void delete_viterbi615_port ( void *  p)

◆ dotprod()

long dotprod ( void *  dp,
signed short  a[] 
)

◆ dotprod_port()

long dotprod_port ( void *  dp,
signed short  a[] 
)

◆ encode_rs_8()

void encode_rs_8 ( unsigned char *  data,
unsigned char *  parity,
int  pad 
)

◆ encode_rs_ccsds()

void encode_rs_ccsds ( unsigned char *  data,
unsigned char *  parity,
int  pad 
)

◆ encode_rs_char()

void encode_rs_char ( void *  rs,
unsigned char *  data,
unsigned char *  parity 
)

◆ encode_rs_int()

void encode_rs_int ( void *  rs,
int *  data,
int *  parity 
)

◆ find_cpu_mode()

void find_cpu_mode ( void  )

Definition at line 585 of file fec_seahawk.c.

◆ free_rs_char()

void free_rs_char ( void *  rs)

◆ free_rs_int()

void free_rs_int ( void *  rs)

◆ freedp()

void freedp ( void *  dp)

◆ freedp_port()

void freedp_port ( void *  dp)

◆ init_rs_char()

void* init_rs_char ( int  symsize,
int  gfpoly,
int  fcr,
int  prim,
int  nroots,
int  pad 
)

◆ init_rs_int()

void* init_rs_int ( int  symsize,
int  gfpoly,
int  fcr,
int  prim,
int  nroots,
int  pad 
)

◆ init_viterbi27()

int init_viterbi27 ( void *  vp,
int  starting_state 
)

Definition at line 221 of file fec_seahawk.c.

◆ init_viterbi27_port()

int init_viterbi27_port ( void *  p,
int  starting_state 
)

Definition at line 347 of file fec_seahawk.c.

◆ init_viterbi29()

int init_viterbi29 ( void *  vp,
int  starting_state 
)

◆ init_viterbi29_port()

int init_viterbi29_port ( void *  p,
int  starting_state 
)

◆ init_viterbi39()

int init_viterbi39 ( void *  vp,
int  starting_state 
)

◆ init_viterbi39_port()

int init_viterbi39_port ( void *  p,
int  starting_state 
)

◆ init_viterbi615()

int init_viterbi615 ( void *  vp,
int  starting_state 
)

◆ init_viterbi615_port()

int init_viterbi615_port ( void *  p,
int  starting_state 
)

◆ initdp()

void* initdp ( signed short  coeffs[],
int  len 
)

◆ initdp_port()

void* initdp_port ( signed short  coeffs[],
int  len 
)

◆ normal_rand()

double normal_rand ( double  mean,
double  std_dev 
)

◆ partab_init()

void partab_init ( )

Definition at line 520 of file fec_seahawk.c.

◆ set_viterbi27_polynomial()

void set_viterbi27_polynomial ( int  polys[2])

Definition at line 195 of file fec_seahawk.c.

◆ set_viterbi27_polynomial_port()

void set_viterbi27_polynomial_port ( int  polys[2])

Definition at line 363 of file fec_seahawk.c.

◆ set_viterbi29_polynomial()

void set_viterbi29_polynomial ( int  polys[2])

◆ set_viterbi29_polynomial_port()

void set_viterbi29_polynomial_port ( int  polys[2])

◆ set_viterbi39_polynomial()

void set_viterbi39_polynomial ( int  polys[3])

◆ set_viterbi39_polynomial_port()

void set_viterbi39_polynomial_port ( int  polys[3])

◆ set_viterbi615_polynomial()

void set_viterbi615_polynomial ( int  polys[6])

◆ set_viterbi615_polynomial_port()

void set_viterbi615_polynomial_port ( int  polys[6])

◆ sumsq()

unsigned long long sumsq ( signed short *  in,
int  cnt 
)

◆ sumsq_port()

unsigned long long sumsq_port ( signed short *  in,
int  cnt 
)

◆ update_viterbi27_blk()

int update_viterbi27_blk ( void *  vp,
unsigned char  sym[],
int  npairs 
)

Definition at line 297 of file fec_seahawk.c.

◆ update_viterbi27_blk_port()

int update_viterbi27_blk_port ( void *  p,
unsigned char *  syms,
int  nbits 
)

Definition at line 454 of file fec_seahawk.c.

◆ update_viterbi29_blk()

int update_viterbi29_blk ( void *  vp,
unsigned char  syms[],
int  nbits 
)

◆ update_viterbi29_blk_port()

int update_viterbi29_blk_port ( void *  p,
unsigned char *  syms,
int  nbits 
)

◆ update_viterbi39_blk()

int update_viterbi39_blk ( void *  vp,
unsigned char  syms[],
int  nbits 
)

◆ update_viterbi39_blk_port()

int update_viterbi39_blk_port ( void *  p,
unsigned char *  syms,
int  nbits 
)

◆ update_viterbi615_blk()

int update_viterbi615_blk ( void *  vp,
unsigned char *  syms,
int  nbits 
)

◆ update_viterbi615_blk_port()

int update_viterbi615_blk_port ( void *  p,
unsigned char *  syms,
int  nbits 
)

Variable Documentation

◆ Bitcnt

int Bitcnt[]

Definition at line 538 of file fec_seahawk.c.

◆ Cpu_mode

enum cpu_mode Cpu_mode

◆ Tal1tab

unsigned char Tal1tab[]

Definition at line 257 of file fec.h.

◆ Taltab

unsigned char Taltab[]

Definition at line 130 of file fec_seahawk.c.