42 lines
860 B
C
42 lines
860 B
C
|
|
#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 */
|