
#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 within range 0 to length-1 */
extern randix *new_randix(int length, int start);


#define RANDIX_H
#endif /* RANDIX_H */
