summaryrefslogtreecommitdiff
path: root/target/randix.h
blob: b4c36c03465fffbf71cd0668d67a2e5120eec93b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

#ifndef RANDIX_H
/* 
 * Argyll Color Correction System
 *
 * Random array indexing class
 *
 * Author: Graeme W. Gill
 * Date:   16/10/96
 *
 * Copyright 1996, Graeme W. Gill
 * All rights reserved.
 *
 * This material is licenced under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 :-
 * see the License.txt file for licencing details.
 */

struct _randix {
/* private: */
	int tbit;		/* Top bit mask */
	int mask;		/* Overall mask */
	int xorm;		/* Xor value */
	int length;	/* Length needed */
	int ss;		/* Current value */

/* public: */
	/* return the next in the sequence */
	int (*next)(struct _randix *p);

	/* Destroy ourselves */
	void (*del)(struct _randix *p);

	}; typedef struct _randix randix;

/* Creator */
/* Counts withing range 0 to length-1 */
extern randix *new_randix(int length, int start);


#define RANDIX_H
#endif /* RANDIX_H */