mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-01 08:07:10 -04:00
50 lines
1.6 KiB
C
50 lines
1.6 KiB
C
|
/* DISTRIB.H - Interface to module for handling distributions over numbers. */
|
||
|
|
||
|
/* Copyright (c) 1995-2012 by Radford M. Neal and Peter Junteng Liu.
|
||
|
*
|
||
|
* Permission is granted for anyone to copy, use, modify, and distribute
|
||
|
* these programs and accompanying documents for any purpose, provided
|
||
|
* this copyright notice is retained and prominently displayed, and note
|
||
|
* is made of any changes made to these programs. These programs and
|
||
|
* documents are distributed without any warranty, express or implied.
|
||
|
* As the programs were written for research purposes only, they have not
|
||
|
* been tested to the degree that would be advisable in any important
|
||
|
* application. All use of these programs is entirely at the user's own
|
||
|
* risk.
|
||
|
*/
|
||
|
|
||
|
|
||
|
/* DATA STRUCTURES USED TO STORE A DISTRIBUTION LIST. Entries in the list
|
||
|
* (distrib_entry) are stored in an array (distrib->list[]). */
|
||
|
|
||
|
typedef struct distrib_entry
|
||
|
{ int num; /* A positive number */
|
||
|
double prop; /* Proportion for this number */
|
||
|
} distrib_entry;
|
||
|
|
||
|
typedef struct distrib
|
||
|
{ struct distrib_entry *list; /* The list of numbers and proportions */
|
||
|
int size; /* Number of entries in the list */
|
||
|
} distrib;
|
||
|
|
||
|
|
||
|
/* MACROS TO ACCESS ELEMENTS OF A DISTRIBUTION LIST. Note that indexes for
|
||
|
entries start at 0. */
|
||
|
|
||
|
#define distrib_num(d,i) \
|
||
|
((d)->list[i].num) /* The number for the i'th entry */
|
||
|
|
||
|
#define distrib_prop(d,i) \
|
||
|
((d)->list[i].prop) /* The i'th entry's proportion [probability] */
|
||
|
|
||
|
#define distrib_size(d) \
|
||
|
((d)->size) /* The length of the list (integer) */
|
||
|
|
||
|
|
||
|
/* PROCEDURES FOR DISTRIBUTION LISTS. */
|
||
|
|
||
|
distrib *distrib_create (char *);
|
||
|
void distrib_free (distrib *);
|
||
|
|
||
|
int distrib_max(distrib *);
|