/*
   MatrixProto.h
   Contains prototypes for user functions in Matrix.c
*/

/*  Prototypes for Matrix.library  */
extern LONG *AllocLVector(LONG);
extern LONG **AllocLMatrix(LONG,LONG);
extern BOOL FreeLVector(LONG *, LONG);
extern BOOL FreeLMatrix(LONG **,LONG,LONG);
extern LONG *AddLVectors(LONG *,LONG *,LONG *,LONG);
extern LONG *SubLVectors(LONG *,LONG *,LONG *,LONG);
extern LONG **AddLMatrices(LONG **,LONG **,LONG **,LONG,LONG);
extern LONG **SubLMatrices(LONG **,LONG **,LONG **,LONG,LONG);
extern LONG **MultLMatrices(LONG **,LONG **,LONG **,LONG,LONG,LONG);
extern LONG *MultLVectorMatrix(LONG *,LONG **,LONG *,LONG,LONG);
extern LONG *MultLMatrixVector(LONG **,LONG *,LONG *,LONG,LONG);
extern LONG **TransposeLMatrix(LONG **,LONG **,LONG,LONG);

extern DOUBLE *AllocDVector(LONG);
extern DOUBLE **AllocDMatrix(LONG,LONG);
extern BOOL FreeDVector(DOUBLE *, LONG);
extern BOOL FreeDMatrix(DOUBLE **,LONG,LONG);
extern DOUBLE *AddDVectors(DOUBLE *,DOUBLE *,DOUBLE *,LONG);
extern DOUBLE *SubDVectors(DOUBLE *,DOUBLE *,DOUBLE *,LONG);
extern DOUBLE **AddDMatrices(DOUBLE **,DOUBLE **,DOUBLE **,LONG,LONG);
extern DOUBLE **SubDMatrices(DOUBLE **,DOUBLE **,DOUBLE **,LONG,LONG);
extern DOUBLE **MultDMatrices(DOUBLE **,DOUBLE **,DOUBLE **,LONG,LONG,LONG);
extern DOUBLE *MultDVectorMatrix(DOUBLE *,DOUBLE **,DOUBLE *,LONG,LONG);
extern DOUBLE *MultDMatrixVector(DOUBLE **,DOUBLE *,DOUBLE *,LONG,LONG);
extern DOUBLE **TransposeDMatrix(DOUBLE **,DOUBLE **,LONG,LONG);
extern DOUBLE **InvertDMatrix(DOUBLE **,DOUBLE **,DOUBLE **,LONG);

