diff -u b/numpy/linalg/lapack_lite/f2c_blas.c b/numpy/linalg/lapack_lite/f2c_blas.c
--- b/numpy/linalg/lapack_lite/f2c_blas.c
+++ b/numpy/linalg/lapack_lite/f2c_blas.c
@@ -29,19 +29,19 @@
 
 /* Table of constant values */
 
-static complex c_b21 = {1.f,0.f};
+static singlecomplex c_b21 = {1.f,0.f};
 static doublecomplex c_b1078 = {1.,0.};
 
-/* Subroutine */ int caxpy_(integer *n, complex *ca, complex *cx, integer *
-	incx, complex *cy, integer *incy)
+/* Subroutine */ int caxpy_(integer *n, singlecomplex *ca, singlecomplex *cx, integer *
+	incx, singlecomplex *cy, integer *incy)
 {
     /* System generated locals */
     integer i__1, i__2, i__3, i__4;
-    complex q__1, q__2;
+    singlecomplex q__1, q__2;
 
     /* Local variables */
     static integer i__, ix, iy;
-    extern doublereal scabs1_(complex *);
+    extern doublereal scabs1_(singlecomplex *);
 
 
 /*
@@ -119,7 +119,7 @@
     return 0;
 } /* caxpy_ */
 
-/* Subroutine */ int ccopy_(integer *n, complex *cx, integer *incx, complex *
+/* Subroutine */ int ccopy_(integer *n, singlecomplex *cx, integer *incx, singlecomplex *
 	cy, integer *incy)
 {
     /* System generated locals */
@@ -193,16 +193,16 @@
     return 0;
 } /* ccopy_ */
 
-/* Complex */ VOID cdotc_(complex * ret_val, integer *n, complex *cx, integer
-	*incx, complex *cy, integer *incy)
+/* Complex */ VOID cdotc_(singlecomplex * ret_val, integer *n, singlecomplex *cx, integer
+	*incx, singlecomplex *cy, integer *incy)
 {
     /* System generated locals */
     integer i__1, i__2;
-    complex q__1, q__2, q__3;
+    singlecomplex q__1, q__2, q__3;
 
     /* Local variables */
     static integer i__, ix, iy;
-    static complex ctemp;
+    static singlecomplex ctemp;
 
 
 /*
@@ -280,16 +280,16 @@
     return ;
 } /* cdotc_ */
 
-/* Complex */ VOID cdotu_(complex * ret_val, integer *n, complex *cx, integer
-	*incx, complex *cy, integer *incy)
+/* Complex */ VOID cdotu_(singlecomplex * ret_val, integer *n, singlecomplex *cx, integer
+	*incx, singlecomplex *cy, integer *incy)
 {
     /* System generated locals */
     integer i__1, i__2, i__3;
-    complex q__1, q__2;
+    singlecomplex q__1, q__2;
 
     /* Local variables */
     static integer i__, ix, iy;
-    static complex ctemp;
+    static singlecomplex ctemp;
 
 
 /*
@@ -367,20 +367,19 @@
 } /* cdotu_ */
 
 /* Subroutine */ int cgemm_(char *transa, char *transb, integer *m, integer *
-	n, integer *k, complex *alpha, complex *a, integer *lda, complex *b,
-	integer *ldb, complex *beta, complex *c__, integer *ldc)
+	n, integer *k, singlecomplex *alpha, singlecomplex *a, integer *lda, singlecomplex *b,
+	integer *ldb, singlecomplex *beta, singlecomplex *c__, integer *ldc)
 {
     /* System generated locals */
     integer a_dim1, a_offset, b_dim1, b_offset, c_dim1, c_offset, i__1, i__2,
 	    i__3, i__4, i__5, i__6;
-    complex q__1, q__2, q__3, q__4;
+    singlecomplex q__1, q__2, q__3, q__4;
 
     /* Local variables */
     static integer i__, j, l, info;
     static logical nota, notb;
-    static complex temp;
+    static singlecomplex temp;
     static logical conja, conjb;
-    static integer ncola;
     extern logical lsame_(char *, char *);
     static integer nrowa, nrowb;
     extern /* Subroutine */ int xerbla_(char *, integer *);
@@ -514,7 +513,7 @@
        Set  NOTA  and  NOTB  as  true if  A  and  B  respectively are not
        conjugated or transposed, set  CONJA and CONJB  as true if  A  and
        B  respectively are to be  transposed but  not conjugated  and set
-       NROWA, NCOLA and  NROWB  as the number of rows and  columns  of  A
+       NROWA and  NROWB  as the number of rows and  columns  of  A
        and the number of rows of  B  respectively.
 */
 
@@ -536,10 +535,8 @@
     conjb = lsame_(transb, "C");
     if (nota) {
 	nrowa = *m;
-	ncola = *k;
     } else {
 	nrowa = *k;
-	ncola = *m;
     }
     if (notb) {
 	nrowb = *k;
@@ -1037,17 +1034,17 @@
 
 } /* cgemm_ */
 
-/* Subroutine */ int cgemv_(char *trans, integer *m, integer *n, complex *
-	alpha, complex *a, integer *lda, complex *x, integer *incx, complex *
-	beta, complex *y, integer *incy)
+/* Subroutine */ int cgemv_(char *trans, integer *m, integer *n, singlecomplex *
+	alpha, singlecomplex *a, integer *lda, singlecomplex *x, integer *incx, singlecomplex *
+	beta, singlecomplex *y, integer *incy)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5;
-    complex q__1, q__2, q__3;
+    singlecomplex q__1, q__2, q__3;
 
     /* Local variables */
     static integer i__, j, ix, iy, jx, jy, kx, ky, info;
-    static complex temp;
+    static singlecomplex temp;
     static integer lenx, leny;
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int xerbla_(char *, integer *);
@@ -1426,16 +1423,16 @@
 
 } /* cgemv_ */
 
-/* Subroutine */ int cgerc_(integer *m, integer *n, complex *alpha, complex *
-	x, integer *incx, complex *y, integer *incy, complex *a, integer *lda)
+/* Subroutine */ int cgerc_(integer *m, integer *n, singlecomplex *alpha, singlecomplex *
+	x, integer *incx, singlecomplex *y, integer *incy, singlecomplex *a, integer *lda)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5;
-    complex q__1, q__2;
+    singlecomplex q__1, q__2;
 
     /* Local variables */
     static integer i__, j, ix, jy, kx, info;
-    static complex temp;
+    static singlecomplex temp;
     extern /* Subroutine */ int xerbla_(char *, integer *);
 
 
@@ -1621,16 +1618,16 @@
 
 } /* cgerc_ */
 
-/* Subroutine */ int cgeru_(integer *m, integer *n, complex *alpha, complex *
-	x, integer *incx, complex *y, integer *incy, complex *a, integer *lda)
+/* Subroutine */ int cgeru_(integer *m, integer *n, singlecomplex *alpha, singlecomplex *
+	x, integer *incx, singlecomplex *y, integer *incy, singlecomplex *a, integer *lda)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5;
-    complex q__1, q__2;
+    singlecomplex q__1, q__2;
 
     /* Local variables */
     static integer i__, j, ix, jy, kx, info;
-    static complex temp;
+    static singlecomplex temp;
     extern /* Subroutine */ int xerbla_(char *, integer *);
 
 
@@ -1816,18 +1813,18 @@
 
 } /* cgeru_ */
 
-/* Subroutine */ int chemv_(char *uplo, integer *n, complex *alpha, complex *
-	a, integer *lda, complex *x, integer *incx, complex *beta, complex *y,
+/* Subroutine */ int chemv_(char *uplo, integer *n, singlecomplex *alpha, singlecomplex *
+	a, integer *lda, singlecomplex *x, integer *incx, singlecomplex *beta, singlecomplex *y,
 	 integer *incy)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5;
     real r__1;
-    complex q__1, q__2, q__3, q__4;
+    singlecomplex q__1, q__2, q__3, q__4;
 
     /* Local variables */
     static integer i__, j, ix, iy, jx, jy, kx, ky, info;
-    static complex temp1, temp2;
+    static singlecomplex temp1, temp2;
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int xerbla_(char *, integer *);
 
@@ -2225,17 +2222,17 @@
 
 } /* chemv_ */
 
-/* Subroutine */ int cher2_(char *uplo, integer *n, complex *alpha, complex *
-	x, integer *incx, complex *y, integer *incy, complex *a, integer *lda)
+/* Subroutine */ int cher2_(char *uplo, integer *n, singlecomplex *alpha, singlecomplex *
+	x, integer *incx, singlecomplex *y, integer *incy, singlecomplex *a, integer *lda)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5, i__6;
     real r__1;
-    complex q__1, q__2, q__3, q__4;
+    singlecomplex q__1, q__2, q__3, q__4;
 
     /* Local variables */
     static integer i__, j, ix, iy, jx, jy, kx, ky, info;
-    static complex temp1, temp2;
+    static singlecomplex temp1, temp2;
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int xerbla_(char *, integer *);
 
@@ -2650,18 +2647,18 @@
 } /* cher2_ */
 
 /* Subroutine */ int cher2k_(char *uplo, char *trans, integer *n, integer *k,
-	complex *alpha, complex *a, integer *lda, complex *b, integer *ldb,
-	real *beta, complex *c__, integer *ldc)
+	singlecomplex *alpha, singlecomplex *a, integer *lda, singlecomplex *b, integer *ldb,
+	real *beta, singlecomplex *c__, integer *ldc)
 {
     /* System generated locals */
     integer a_dim1, a_offset, b_dim1, b_offset, c_dim1, c_offset, i__1, i__2,
 	    i__3, i__4, i__5, i__6, i__7;
     real r__1;
-    complex q__1, q__2, q__3, q__4, q__5, q__6;
+    singlecomplex q__1, q__2, q__3, q__4, q__5, q__6;
 
     /* Local variables */
     static integer i__, j, l, info;
-    static complex temp1, temp2;
+    static singlecomplex temp1, temp2;
     extern logical lsame_(char *, char *);
     static integer nrowa;
     static logical upper;
@@ -3299,18 +3296,18 @@
 } /* cher2k_ */
 
 /* Subroutine */ int cherk_(char *uplo, char *trans, integer *n, integer *k,
-	real *alpha, complex *a, integer *lda, real *beta, complex *c__,
+	real *alpha, singlecomplex *a, integer *lda, real *beta, singlecomplex *c__,
 	integer *ldc)
 {
     /* System generated locals */
     integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3, i__4, i__5,
 	    i__6;
     real r__1;
-    complex q__1, q__2, q__3;
+    singlecomplex q__1, q__2, q__3;
 
     /* Local variables */
     static integer i__, j, l, info;
-    static complex temp;
+    static singlecomplex temp;
     extern logical lsame_(char *, char *);
     static integer nrowa;
     static real rtemp;
@@ -3805,12 +3802,12 @@
 
 } /* cherk_ */
 
-/* Subroutine */ int cscal_(integer *n, complex *ca, complex *cx, integer *
+/* Subroutine */ int cscal_(integer *n, singlecomplex *ca, singlecomplex *cx, integer *
 	incx)
 {
     /* System generated locals */
     integer i__1, i__2, i__3, i__4;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, nincx;
@@ -3873,16 +3870,16 @@
     return 0;
 } /* cscal_ */
 
-/* Subroutine */ int csrot_(integer *n, complex *cx, integer *incx, complex *
+/* Subroutine */ int csrot_(integer *n, singlecomplex *cx, integer *incx, singlecomplex *
 	cy, integer *incy, real *c__, real *s)
 {
     /* System generated locals */
     integer i__1, i__2, i__3, i__4;
-    complex q__1, q__2, q__3;
+    singlecomplex q__1, q__2, q__3;
 
     /* Local variables */
     static integer i__, ix, iy;
-    static complex ctemp;
+    static singlecomplex ctemp;
 
 
 /*
@@ -3890,7 +3887,7 @@
     =======
 
     CSROT applies a plane rotation, where the cos and sin (c and s) are real
-    and the vectors cx and cy are complex.
+    and the vectors cx and cy are singlecomplex.
     jack dongarra, linpack, 3/11/78.
 
     Arguments
@@ -4008,12 +4005,12 @@
     return 0;
 } /* csrot_ */
 
-/* Subroutine */ int csscal_(integer *n, real *sa, complex *cx, integer *incx)
+/* Subroutine */ int csscal_(integer *n, real *sa, singlecomplex *cx, integer *incx)
 {
     /* System generated locals */
     integer i__1, i__2, i__3, i__4;
     real r__1, r__2;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, nincx;
@@ -4078,7 +4075,7 @@
     return 0;
 } /* csscal_ */
 
-/* Subroutine */ int cswap_(integer *n, complex *cx, integer *incx, complex *
+/* Subroutine */ int cswap_(integer *n, singlecomplex *cx, integer *incx, singlecomplex *
 	cy, integer *incy)
 {
     /* System generated locals */
@@ -4086,7 +4083,7 @@
 
     /* Local variables */
     static integer i__, ix, iy;
-    static complex ctemp;
+    static singlecomplex ctemp;
 
 
 /*
@@ -4161,17 +4158,17 @@
 } /* cswap_ */
 
 /* Subroutine */ int ctrmm_(char *side, char *uplo, char *transa, char *diag,
-	integer *m, integer *n, complex *alpha, complex *a, integer *lda,
-	complex *b, integer *ldb)
+	integer *m, integer *n, singlecomplex *alpha, singlecomplex *a, integer *lda,
+	singlecomplex *b, integer *ldb)
 {
     /* System generated locals */
     integer a_dim1, a_offset, b_dim1, b_offset, i__1, i__2, i__3, i__4, i__5,
 	    i__6;
-    complex q__1, q__2, q__3;
+    singlecomplex q__1, q__2, q__3;
 
     /* Local variables */
     static integer i__, j, k, info;
-    static complex temp;
+    static singlecomplex temp;
     extern logical lsame_(char *, char *);
     static logical lside;
     static integer nrowa;
@@ -4823,15 +4820,15 @@
 } /* ctrmm_ */
 
 /* Subroutine */ int ctrmv_(char *uplo, char *trans, char *diag, integer *n,
-	complex *a, integer *lda, complex *x, integer *incx)
+	singlecomplex *a, integer *lda, singlecomplex *x, integer *incx)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5;
-    complex q__1, q__2, q__3;
+    singlecomplex q__1, q__2, q__3;
 
     /* Local variables */
     static integer i__, j, ix, jx, kx, info;
-    static complex temp;
+    static singlecomplex temp;
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int xerbla_(char *, integer *);
     static logical noconj, nounit;
@@ -5355,17 +5352,17 @@
 } /* ctrmv_ */
 
 /* Subroutine */ int ctrsm_(char *side, char *uplo, char *transa, char *diag,
-	integer *m, integer *n, complex *alpha, complex *a, integer *lda,
-	complex *b, integer *ldb)
+	integer *m, integer *n, singlecomplex *alpha, singlecomplex *a, integer *lda,
+	singlecomplex *b, integer *ldb)
 {
     /* System generated locals */
     integer a_dim1, a_offset, b_dim1, b_offset, i__1, i__2, i__3, i__4, i__5,
 	    i__6, i__7;
-    complex q__1, q__2, q__3;
+    singlecomplex q__1, q__2, q__3;
 
     /* Local variables */
     static integer i__, j, k, info;
-    static complex temp;
+    static singlecomplex temp;
     extern logical lsame_(char *, char *);
     static logical lside;
     static integer nrowa;
@@ -6027,15 +6024,15 @@
 } /* ctrsm_ */
 
 /* Subroutine */ int ctrsv_(char *uplo, char *trans, char *diag, integer *n,
-	complex *a, integer *lda, complex *x, integer *incx)
+	singlecomplex *a, integer *lda, singlecomplex *x, integer *incx)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5;
-    complex q__1, q__2, q__3;
+    singlecomplex q__1, q__2, q__3;
 
     /* Local variables */
     static integer i__, j, ix, jx, kx, info;
-    static complex temp;
+    static singlecomplex temp;
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int xerbla_(char *, integer *);
     static logical noconj, nounit;
@@ -6632,7 +6629,7 @@
     Purpose
     =======
 
-    DCABS1 computes absolute value of a double complex number
+    DCABS1 computes absolute value of a double singlecomplex number
 
     =====================================================================
 */
@@ -6850,7 +6847,6 @@
     static integer i__, j, l, info;
     static logical nota, notb;
     static doublereal temp;
-    static integer ncola;
     extern logical lsame_(char *, char *);
     static integer nrowa, nrowb;
     extern /* Subroutine */ int xerbla_(char *, integer *);
@@ -6982,7 +6978,7 @@
 
 
        Set  NOTA  and  NOTB  as  true if  A  and  B  respectively are not
-       transposed and set  NROWA, NCOLA and  NROWB  as the number of rows
+       transposed and set  NROWA and  NROWB  as the number of rows
        and  columns of  A  and the  number of  rows  of  B  respectively.
 */
 
@@ -7002,10 +6998,8 @@
     notb = lsame_(transb, "N");
     if (nota) {
 	nrowa = *m;
-	ncola = *k;
     } else {
 	nrowa = *k;
-	ncola = *m;
     }
     if (notb) {
 	nrowb = *k;
@@ -10664,7 +10658,7 @@
 
 } /* dznrm2_ */
 
-integer icamax_(integer *n, complex *cx, integer *incx)
+integer icamax_(integer *n, singlecomplex *cx, integer *incx)
 {
     /* System generated locals */
     integer ret_val, i__1;
@@ -10672,7 +10666,7 @@
     /* Local variables */
     static integer i__, ix;
     static real smax;
-    extern doublereal scabs1_(complex *);
+    extern doublereal scabs1_(singlecomplex *);
 
 
 /*
@@ -11072,7 +11066,7 @@
     return 0;
 } /* saxpy_ */
 
-doublereal scabs1_(complex *z__)
+doublereal scabs1_(singlecomplex *z__)
 {
     /* System generated locals */
     real ret_val, r__1, r__2;
@@ -11091,7 +11085,7 @@
     return ret_val;
 } /* scabs1_ */
 
-doublereal scasum_(integer *n, complex *cx, integer *incx)
+doublereal scasum_(integer *n, singlecomplex *cx, integer *incx)
 {
     /* System generated locals */
     integer i__1, i__2, i__3;
@@ -11160,7 +11154,7 @@
     return ret_val;
 } /* scasum_ */
 
-doublereal scnrm2_(integer *n, complex *x, integer *incx)
+doublereal scnrm2_(integer *n, singlecomplex *x, integer *incx)
 {
     /* System generated locals */
     integer i__1, i__2, i__3;
@@ -11454,7 +11448,6 @@
     static integer i__, j, l, info;
     static logical nota, notb;
     static real temp;
-    static integer ncola;
     extern logical lsame_(char *, char *);
     static integer nrowa, nrowb;
     extern /* Subroutine */ int xerbla_(char *, integer *);
@@ -11586,7 +11579,7 @@
 
 
        Set  NOTA  and  NOTB  as  true if  A  and  B  respectively are not
-       transposed and set  NROWA, NCOLA and  NROWB  as the number of rows
+       transposed and set  NROWA and  NROWB  as the number of rows
        and  columns of  A  and the  number of  rows  of  B  respectively.
 */
 
@@ -11606,10 +11599,8 @@
     notb = lsame_(transb, "N");
     if (nota) {
 	nrowa = *m;
-	ncola = *k;
     } else {
 	nrowa = *k;
-	ncola = *m;
     }
     if (notb) {
 	nrowb = *k;
@@ -15667,7 +15658,6 @@
     static logical nota, notb;
     static doublecomplex temp;
     static logical conja, conjb;
-    static integer ncola;
     extern logical lsame_(char *, char *);
     static integer nrowa, nrowb;
     extern /* Subroutine */ int xerbla_(char *, integer *);
@@ -15801,7 +15791,7 @@
        Set  NOTA  and  NOTB  as  true if  A  and  B  respectively are not
        conjugated or transposed, set  CONJA and CONJB  as true if  A  and
        B  respectively are to be  transposed but  not conjugated  and set
-       NROWA, NCOLA and  NROWB  as the number of rows and  columns  of  A
+       NROWA and  NROWB  as the number of rows and  columns  of  A
        and the number of rows of  B  respectively.
 */
 
@@ -15823,10 +15813,8 @@
     conjb = lsame_(transb, "C");
     if (nota) {
 	nrowa = *m;
-	ncola = *k;
     } else {
 	nrowa = *k;
-	ncola = *m;
     }
     if (notb) {
 	nrowb = *k;
