// amtieee.lib linkable library prototypes
// Version 1.02 - (nov 3 93) © Fausto Passariello

BOOL InitKernel(void);

void CloseKernel(void);

void swap(double * , double * );

BOOL allocmat(struct matrix * );

struct matrix * allocmatmem(UWORD , UWORD );

struct matrix * allocmatcopy(struct matrix * );

void freemat(struct matrix * );

void freematmem(struct matrix * );

void mateq(struct matrix * , double );

void matzer(struct matrix * );

BOOL matidn(struct matrix * );

BOOL matcopy(struct matrix * , struct matrix * );

BOOL mattrs(struct matrix * , struct matrix * );

BOOL mattrsrd(struct matrix * );

BOOL matplus(struct matrix * , struct matrix * , struct matrix * );

BOOL matper(struct matrix * , struct matrix * , struct matrix * );

BOOL matrowcol(struct matrix * , struct matrix * , struct matrix * );

BOOL matpercol(struct matrix * , struct matrix * , struct matrix * );

BOOL matpower(struct matrix * , struct matrix * );

void matscal(struct matrix * , double );

BOOL matsymm(struct matrix * , struct matrix * , struct matrix * );

double mattrace(struct matrix * );

void matcopyrd(struct matrix * , struct matrix * );

void mattransform(struct matrix * , UWORD , double , BOOL , double );

double matinv(struct matrix * , struct matrix * );

void matstd(struct matrix * , struct matrix * , struct matrix * , struct matrix * , BOOL , BOOL );

BOOL matavl(struct matrix * , struct matrix * , UWORD );

void matnorm(struct matrix * , double * , double * );

BOOL allocfuncmat(struct matfunc * );

struct matfunc * allocfuncmatmem(UWORD , UWORD );

struct matfunc * allocfuncmatcopy(struct matfunc * );

void freefuncmat(struct matfunc * );

void freefuncmatmem(struct matfunc * );

void matfuncnull(struct matfunc * );

BOOL matfuncidn(struct matfunc * );

void matfunceq(struct matfunc * , double (* )());

BOOL matfunccopy(struct matfunc * , double , struct matrix * );

BOOL loadmatfunc(struct matfunc * , double (* )(), UWORD , UWORD );

void printusing(UWORD , UWORD );

void settransform(double (* )(double ));

void setprecision(double );

void setiterations(int );

void setmatperid(int );

BOOL setterm(UWORD , UWORD );

double ** getarray(struct matrix * );

UWORD getdim(struct matrix * , BOOL );

UWORD getfuncdim(struct matfunc * , BOOL );

double getprecision(void);

int getiterations(void);

unsigned short * getseed(void);

double getepsilon(void);

char * getformat(BOOL );

int getmatperid(void);

double getlastprecision(void);

int getlastiteration(void);

BOOL matinp(char * , UWORD , struct matrix * , UWORD * , UWORD , UWORD , double );

UWORD choosematvar(char ** , UWORD , char * , UWORD * );

BOOL openmatfile(char * , char ** , UWORD * , UWORD * );

struct matrix * file2matrix(char * , BOOL );

BOOL matrandom(struct matrix * , long , long );

void matprint(char * , struct matrix * );

void matrawprint(char * , struct matrix * );

BOOL checkdim(struct matrix * , struct matrix * , struct matrix * , UWORD );

