/* voc 2.1.0 [2025/05/18] for gcc LP64 on slackware xtspaF */

#ifndef ulmRandomGenerators__h
#define ulmRandomGenerators__h

#include "SYSTEM.h"
#include "ulmObjects.h"
#include "ulmOperations.h"
#include "ulmServices.h"

typedef
	struct ulmRandomGenerators_SequenceRec *ulmRandomGenerators_Sequence;

typedef
	INT32 (*ulmRandomGenerators_Int32ValSProc)(ulmRandomGenerators_Sequence);

typedef
	struct ulmRandomGenerators_InterfaceRec *ulmRandomGenerators_Interface;

typedef
	LONGREAL (*ulmRandomGenerators_LongRealValSProc)(ulmRandomGenerators_Sequence);

typedef
	void (*ulmRandomGenerators_RewindSequenceProc)(ulmRandomGenerators_Sequence);

typedef
	void (*ulmRandomGenerators_RestartSequenceProc)(ulmRandomGenerators_Sequence, ulmRandomGenerators_Sequence);

typedef
	struct ulmRandomGenerators_InterfaceRec { /* ulmObjects_ObjectRec */
		ulmRandomGenerators_Int32ValSProc int32ValS;
		ulmRandomGenerators_LongRealValSProc longRealValS;
		ulmRandomGenerators_RewindSequenceProc rewindSequence;
		ulmRandomGenerators_RestartSequenceProc restartSequence;
	} ulmRandomGenerators_InterfaceRec;

typedef
	struct ulmRandomGenerators_SequenceRec { /* ulmServices_ObjectRec */
		INT64 _prvt0;
		char _prvt1[28];
	} ulmRandomGenerators_SequenceRec;

typedef
	void (*ulmRandomGenerators_SetValSProc)(ulmRandomGenerators_Sequence, ulmOperations_Operand);


import ulmRandomGenerators_Sequence ulmRandomGenerators_std, ulmRandomGenerators_seed, ulmRandomGenerators_unpredictable;

import ADDRESS *ulmRandomGenerators_InterfaceRec__typ;
import ADDRESS *ulmRandomGenerators_SequenceRec__typ;

import UINT32 ulmRandomGenerators_Capabilities (ulmRandomGenerators_Sequence sequence);
import BOOLEAN ulmRandomGenerators_Flip (void);
import BOOLEAN ulmRandomGenerators_FlipS (ulmRandomGenerators_Sequence sequence);
import void ulmRandomGenerators_Init (ulmRandomGenerators_Sequence sequence, ulmRandomGenerators_Interface if_, UINT32 caps);
import INT32 ulmRandomGenerators_Int32Val (void);
import INT32 ulmRandomGenerators_Int32ValS (ulmRandomGenerators_Sequence sequence);
import LONGREAL ulmRandomGenerators_LongRealVal (void);
import LONGREAL ulmRandomGenerators_LongRealValS (ulmRandomGenerators_Sequence sequence);
import LONGREAL ulmRandomGenerators_RealVal (void);
import LONGREAL ulmRandomGenerators_RealValS (ulmRandomGenerators_Sequence sequence);
import void ulmRandomGenerators_RestartSequence (ulmRandomGenerators_Sequence sequence, ulmRandomGenerators_Sequence seed);
import void ulmRandomGenerators_RewindSequence (ulmRandomGenerators_Sequence sequence);
import void ulmRandomGenerators_SetVal (ulmOperations_Operand value);
import void ulmRandomGenerators_SetValS (ulmRandomGenerators_Sequence sequence, ulmOperations_Operand value);
import void ulmRandomGenerators_Support (ulmServices_Type type, ulmRandomGenerators_SetValSProc setValS);
import INT32 ulmRandomGenerators_Val (INT32 low, INT32 high);
import INT32 ulmRandomGenerators_ValS (ulmRandomGenerators_Sequence sequence, INT32 low, INT32 high);
import void *ulmRandomGenerators__init(void);


#endif // ulmRandomGenerators
