#include <v_lib.h>

#ifdef	__cplusplus
extern	"C" {
#endif	/* __cplusplus */
	vec_t		V_GLOBAL	umGetRandom(int Lower,int Upper,
		vboolean ExcludeZero);
	vboolean	V_GLOBAL	umMakeRandomVector(vector_t *dest,
		int Lower,int Upper,vboolean ExcludeZeros);
	vboolean	V_GLOBAL	umMakeRandomMatrix(matrix_t *dest,int Lower,
		int Upper,vboolean ExcludeZeros,vboolean ExcludeSingular);
	vboolean	V_GLOBAL	umCreateRandomVectorSet(vector_t ***vSet,
		u32_t NumVectors,u32_t Dimension,int Lower,int Upper,
		vboolean ExcludeZeros);
	vboolean	V_GLOBAL	umCreateRandomMatrixSet(matrix_t ***mSet,
		u32_t NumMatrices,u32_t M,u32_t N,int Lower,int Upper,
		vboolean ExcludeZeros,vboolean ExcludeSingular);
	void		V_GLOBAL	umDestroyRandomVectorSet(vector_t **arr,
		u32_t NumVectors);
	void		V_GLOBAL	umDestroyRandomMatrixSet(matrix_t **arr,
		u32_t NumMatrices);
	void		V_GLOBAL	umDumpVector(vhandle_t out,vector_t *v,
		char *lead,char *in_between,char *trail,vboolean prepend_sign);
	void		V_GLOBAL	umDumpVectorAsFractions(vhandle_t out,vector_t *v,
		char *lead,char *in_between,char *trail,vboolean prepend_sign);
	void		V_GLOBAL	umDumpMatrix(vhandle_t out,matrix_t *m,
		char *row_lead,char *row_in_between,char *row_trail,
		char *lead,char *in_between,char *trail,vboolean prepend_sign);
	void		V_GLOBAL	umDumpMatrixAsFractions(vhandle_t out,matrix_t *m,
		char *row_lead,char *row_in_between,char *row_trail,
		char *lead,char *in_between,char *trail,vboolean prepend_sign);
	void		V_GLOBAL	umDecimalToNormal(vec_t ratio,
		vec_t *numerator,vec_t *quotent);
#ifdef	__cplusplus
}
#endif	/* __cplusplus */
