mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-01 08:07:10 -04:00
5ac886855d
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6437 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
50 lines
1.6 KiB
C
Executable File
50 lines
1.6 KiB
C
Executable File
/* 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 *);
|