--- INC/protos.h.orig	2013-10-08 23:16:19.000000000 -0400
+++ INC/protos.h	2013-10-08 23:17:04.000000000 -0400
@@ -1,7 +1,10 @@
 #ifndef __ITSOL_INCLUDED_PROTOS_H__
 #define __ITSOL_INCLUDED_PROTOS_H__
 
+#include <math.h>
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #include "globheads.h"
 
 #if defined(_SGI) || defined(_LINUX)
@@ -20,6 +23,8 @@
 #define roscal  roscal_
 #define coscal  coscal_
 #define qsplit  qsplit_
+#define gauss   gauss_
+#define bxinv   bxinv_
 #elif defined(_IBM)
 #include <essl.h>
 #define dnrm2   dnrm2
@@ -37,6 +42,8 @@
 #define roscal  roscal
 #define coscal  coscal
 #define qsplit  qsplit
+#define gauss   gauss
+#define bxinv   bxinv
 #else
 #define dnrm2   dnrm2_
 #define ddot    ddot_
@@ -53,6 +60,8 @@
 #define roscal  roscal_
 #define coscal  coscal_
 #define qsplit  qsplit_
+#define gauss   gauss_
+#define bxinv   bxinv_
 #endif
 
 #ifndef min
@@ -78,6 +87,8 @@
 		   int*); 
 extern void csrcoo ( int *, int *, int *, double *, int *, int *, int *,
 		double *, int *, int *, int *);    
+extern void gauss (int *, double*, int*); 
+extern void bxinv (int*, int*, double*,double*,double*);
 
 #if defined(_IBM)
 #define DDOT(n,x,incx,y,incy)        ddot((n), (x), (incx), (y), (incy)) 
@@ -224,11 +235,6 @@
 extern int invGauss(int nn, double *A); 
 extern int invSVD(int nn, double *A) ;
 
-/* setblks.c */ 
-extern int KeyComp(const void *vfst, const void *vsnd);
-extern int init_blocks(csptr, int *, int **, int **, double, double *,
-		       double *);  
-
 /* upper directory */
 extern int vbilukC( int lofM, vbsptr vbmat, vbiluptr lu, FILE *fp ); 
 extern int vbilutC( vbsptr vbmat, vbiluptr lu, int lfil, double tol,