diff --git a/blas/CMakeLists.txt b/blas/CMakeLists.txt
index c530957..4ae0603 100644
--- a/blas/CMakeLists.txt
+++ b/blas/CMakeLists.txt
@@ -18,7 +18,7 @@
                     f2c/lsame.c   f2c/dspmv.c   f2c/ssbmv.c f2c/chbmv.c
                     f2c/sspmv.c   f2c/zhbmv.c   f2c/chpmv.c f2c/dsbmv.c
                     f2c/zhpmv.c   f2c/dtbmv.c   f2c/stbmv.c f2c/ctbmv.c
-                    f2c/ztbmv.c   f2c/d_cnjg.c  f2c/r_cnjg.c
+                    f2c/ztbmv.c
    )
 
 if (EIGEN_Fortran_COMPILER_WORKS)
diff --git a/blas/f2c/chbmv.c b/blas/f2c/chbmv.c
index 2b9d528..410a3ce 100644
--- a/blas/f2c/chbmv.c
+++ b/blas/f2c/chbmv.c
@@ -12,6 +12,11 @@
 
 #include "datatypes.h"
 
+static inline void r_cnjg(complex *r, complex *z) {
+  r->r = z->r;
+  r->i = -(z->i);
+}
+
 /* Subroutine */ int chbmv_(char *uplo, integer *n, integer *k, complex *alpha, complex *a, integer *lda, complex *x,
                             integer *incx, complex *beta, complex *y, integer *incy, ftnlen uplo_len) {
   /* System generated locals */
@@ -19,9 +24,6 @@
   real r__1;
   complex q__1, q__2, q__3, q__4;
 
-  /* Builtin functions */
-  void r_cnjg(complex *, complex *);
-
   /* Local variables */
   integer i__, j, l, ix, iy, jx, jy, kx, ky, info;
   complex temp1, temp2;
diff --git a/blas/f2c/chpmv.c b/blas/f2c/chpmv.c
index 3dd5e58..eb0e753 100644
--- a/blas/f2c/chpmv.c
+++ b/blas/f2c/chpmv.c
@@ -12,6 +12,11 @@
 
 #include "datatypes.h"
 
+static inline void r_cnjg(complex *r, complex *z) {
+  r->r = z->r;
+  r->i = -(z->i);
+}
+
 /* Subroutine */ int chpmv_(char *uplo, integer *n, complex *alpha, complex *ap, complex *x, integer *incx,
                             complex *beta, complex *y, integer *incy, ftnlen uplo_len) {
   /* System generated locals */
@@ -19,9 +24,6 @@
   real r__1;
   complex q__1, q__2, q__3, q__4;
 
-  /* Builtin functions */
-  void r_cnjg(complex *, complex *);
-
   /* Local variables */
   integer i__, j, k, kk, ix, iy, jx, jy, kx, ky, info;
   complex temp1, temp2;
diff --git a/blas/f2c/ctbmv.c b/blas/f2c/ctbmv.c
index 8038e72..e67482c 100644
--- a/blas/f2c/ctbmv.c
+++ b/blas/f2c/ctbmv.c
@@ -12,15 +12,17 @@
 
 #include "datatypes.h"
 
+static inline void r_cnjg(complex *r, complex *z) {
+  r->r = z->r;
+  r->i = -(z->i);
+}
+
 /* Subroutine */ int ctbmv_(char *uplo, char *trans, char *diag, integer *n, integer *k, complex *a, integer *lda,
                             complex *x, integer *incx, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len) {
   /* 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;
 
-  /* Builtin functions */
-  void r_cnjg(complex *, complex *);
-
   /* Local variables */
   integer i__, j, l, ix, jx, kx, info;
   complex temp;
diff --git a/blas/f2c/d_cnjg.c b/blas/f2c/d_cnjg.c
deleted file mode 100644
index dad02f5..0000000
--- a/blas/f2c/d_cnjg.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "datatypes.h"
-
-void d_cnjg(doublecomplex *r, doublecomplex *z) {
-  r->r = z->r;
-  r->i = -(z->i);
-}
diff --git a/blas/f2c/r_cnjg.c b/blas/f2c/r_cnjg.c
deleted file mode 100644
index dd4d346..0000000
--- a/blas/f2c/r_cnjg.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "datatypes.h"
-
-void r_cnjg(complex *r, complex *z) {
-  r->r = z->r;
-  r->i = -(z->i);
-}
diff --git a/blas/f2c/zhbmv.c b/blas/f2c/zhbmv.c
index 9d6d5db..43862a6 100644
--- a/blas/f2c/zhbmv.c
+++ b/blas/f2c/zhbmv.c
@@ -12,6 +12,11 @@
 
 #include "datatypes.h"
 
+static inline void d_cnjg(doublecomplex *r, doublecomplex *z) {
+  r->r = z->r;
+  r->i = -(z->i);
+}
+
 /* Subroutine */ int zhbmv_(char *uplo, integer *n, integer *k, doublecomplex *alpha, doublecomplex *a, integer *lda,
                             doublecomplex *x, integer *incx, doublecomplex *beta, doublecomplex *y, integer *incy,
                             ftnlen uplo_len) {
@@ -20,9 +25,6 @@
   doublereal d__1;
   doublecomplex z__1, z__2, z__3, z__4;
 
-  /* Builtin functions */
-  void d_cnjg(doublecomplex *, doublecomplex *);
-
   /* Local variables */
   integer i__, j, l, ix, iy, jx, jy, kx, ky, info;
   doublecomplex temp1, temp2;
diff --git a/blas/f2c/zhpmv.c b/blas/f2c/zhpmv.c
index 3f93b97..d61307f 100644
--- a/blas/f2c/zhpmv.c
+++ b/blas/f2c/zhpmv.c
@@ -12,6 +12,11 @@
 
 #include "datatypes.h"
 
+static inline void d_cnjg(doublecomplex *r, doublecomplex *z) {
+  r->r = z->r;
+  r->i = -(z->i);
+}
+
 /* Subroutine */ int zhpmv_(char *uplo, integer *n, doublecomplex *alpha, doublecomplex *ap, doublecomplex *x,
                             integer *incx, doublecomplex *beta, doublecomplex *y, integer *incy, ftnlen uplo_len) {
   /* System generated locals */
@@ -19,9 +24,6 @@
   doublereal d__1;
   doublecomplex z__1, z__2, z__3, z__4;
 
-  /* Builtin functions */
-  void d_cnjg(doublecomplex *, doublecomplex *);
-
   /* Local variables */
   integer i__, j, k, kk, ix, iy, jx, jy, kx, ky, info;
   doublecomplex temp1, temp2;
diff --git a/blas/f2c/ztbmv.c b/blas/f2c/ztbmv.c
index 9a41370..157c491 100644
--- a/blas/f2c/ztbmv.c
+++ b/blas/f2c/ztbmv.c
@@ -12,15 +12,17 @@
 
 #include "datatypes.h"
 
+static inline void d_cnjg(doublecomplex *r, doublecomplex *z) {
+  r->r = z->r;
+  r->i = -(z->i);
+}
+
 /* Subroutine */ int ztbmv_(char *uplo, char *trans, char *diag, integer *n, integer *k, doublecomplex *a, integer *lda,
                             doublecomplex *x, integer *incx, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len) {
   /* System generated locals */
   integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5;
   doublecomplex z__1, z__2, z__3;
 
-  /* Builtin functions */
-  void d_cnjg(doublecomplex *, doublecomplex *);
-
   /* Local variables */
   integer i__, j, l, ix, jx, kx, info;
   doublecomplex temp;
