# HG changeset patch # User jwe # Date 753446696 0 # Node ID e1b072bcffb9cbaa84893f0349dd63e5874101fc # Parent 9a6ecd8b50bc6567aacbd7257341b1e151785bbf [project @ 1993-11-16 10:44:39 by jwe] diff -r 9a6ecd8b50bc -r e1b072bcffb9 liboctave/Matrix.cc --- a/liboctave/Matrix.cc Tue Nov 16 10:37:07 1993 +0000 +++ b/liboctave/Matrix.cc Tue Nov 16 10:44:56 1993 +0000 @@ -31,6 +31,88 @@ #include "Matrix.h" #include "mx-inlines.cc" #include "lo-error.h" +#include "f77-uscore.h" + +// Fortran functions we call. + +extern "C" +{ + int F77_FCN (dgemm) (const char*, const char*, const int*, + const int*, const int*, const double*, + const double*, const int*, const double*, + const int*, const double*, double*, const int*, + long, long); + + int F77_FCN (dgemv) (const char*, const int*, const int*, + const double*, const double*, const int*, + const double*, const int*, const double*, + double*, const int*, long); + + int F77_FCN (dgeco) (double*, const int*, const int*, int*, double*, + double*); + + int F77_FCN (dgesl) (const double*, const int*, const int*, + const int*, double*, const int*); + + int F77_FCN (dgedi) (double*, const int*, const int*, const int*, + double*, double*, const int*); + + int F77_FCN (dgelss) (const int*, const int*, const int*, double*, + const int*, double*, const int*, double*, + const double*, int*, double*, const int*, + int*); + +/* + * f2c translates complex*16 as + * + * typedef struct { doublereal re, im; } doublecomplex; + * + * and Complex.h from libg++ uses + * + * protected: + * double re; + * double im; + * + * as the only data members, so this should work (fingers crossed that + * things don't change). + */ + + int F77_FCN (zgemm) (const char*, const char*, const int*, + const int*, const int*, const Complex*, + const Complex*, const int*, const Complex*, + const int*, const Complex*, Complex*, const int*, + long, long); + + int F77_FCN (zgemv) (const char*, const int*, const int*, + const Complex*, const Complex*, const int*, + const Complex*, const int*, const Complex*, + Complex*, const int*, long); + + int F77_FCN (zgeco) (Complex*, const int*, const int*, int*, + double*, Complex*); + + int F77_FCN (zgedi) (Complex*, const int*, const int*, int*, + Complex*, Complex*, const int*); + + int F77_FCN (zgesl) (Complex*, const int*, const int*, int*, + Complex*, const int*); + + int F77_FCN (zgelss) (const int*, const int*, const int*, Complex*, + const int*, Complex*, const int*, double*, + const double*, int*, Complex*, const int*, + double*, int*); + +// Note that the original complex fft routines were not written for +// double complex arguments. They have been modified by adding an +// implicit double precision (a-h,o-z) statement at the beginning of +// each subroutine. + + int F77_FCN (cffti) (const int*, Complex*); + + int F77_FCN (cfftf) (const int*, Complex*, Complex*); + + int F77_FCN (cfftb) (const int*, Complex*, Complex*); +} /* * Matrix class. diff -r 9a6ecd8b50bc -r e1b072bcffb9 liboctave/Matrix.h --- a/liboctave/Matrix.h Tue Nov 16 10:37:07 1993 +0000 +++ b/liboctave/Matrix.h Tue Nov 16 10:44:56 1993 +0000 @@ -56,207 +56,6 @@ #endif -#include "f77-uscore.h" - -// Fortran functions we call. - -extern "C" -{ - int F77_FCN (dgemm) (const char*, const char*, const int*, - const int*, const int*, const double*, - const double*, const int*, const double*, - const int*, const double*, double*, const int*, - long, long); - - int F77_FCN (dgemv) (const char*, const int*, const int*, - const double*, const double*, const int*, - const double*, const int*, const double*, - double*, const int*, long); - - int F77_FCN (dgeco) (double*, const int*, const int*, int*, double*, - double*); - - int F77_FCN (dgesv) (const int*, const int*, double*, const int*, - int*, double*, const int*, int*); - - int F77_FCN (dgeqrf) (const int*, const int*, double*, const int*, - double*, double*, const int*, int*); - - int F77_FCN (dorgqr) (const int*, const int*, const int*, double*, - const int*, double*, double*, const int*, int*); - - int F77_FCN (dgesl) (const double*, const int*, const int*, - const int*, double*, const int*); - - int F77_FCN (dgedi) (double*, const int*, const int*, const int*, - double*, double*, const int*); - - double F77_FCN (ddot) (const int*, const double*, const int*, - const double*, const int*); - - int F77_FCN (dgeev) (const char*, const char*, const int*, double*, - const int*, double*, double*, double*, - const int*, double*, const int*, double*, - const int*, int*, long, long); - - int F77_FCN (dgeesx) (const char*, const char*, int (*)(), const char*, - const int*, double*, const int*, int*, double*, - double*, double*, const int*, double*, double*, - double*, const int*, int*, const int*, int*, - int*, long, long); - - int F77_FCN (dhseqr) (const char*, const char*, const int*, - const int*, const int*, double*, - const int*, double*, double*, - double*, const int*, double*, const int*, - int*, long, long); - - int F77_FCN (dgebal) (const char*, const int*, double*, - const int*, int*, int*, double*, - int*, long, long); - - int F77_FCN (dgebak) (const char*, const char*, const int*, const int*, - const int*, double*, const int*, double*, const int*, - int*, long, long); - - int F77_FCN (dgehrd) (const int*, const int*, const int*, - double*, const int*, double*, double*, - const int*, int*, long, long); - - int F77_FCN (dorghr) (const int*, const int*, const int*, - double*, const int*, double*, double*, - const int*, int*, long, long); - - int F77_FCN (dgesvd) (const char*, const char*, const int*, - const int*, double*, const int*, double*, - double*, const int*, double*, const int*, - double*, const int*, int*, long, long); - - int F77_FCN (dgelss) (const int*, const int*, const int*, double*, - const int*, double*, const int*, double*, - const double*, int*, double*, const int*, - int*); - - int F77_FCN (dpotrf) (const char*, const int*, double*, const int*, - int*, long); - -// -// fortran functions for generalized eigenvalue problems -// - int F77_FCN (reduce) (const int*, const int*, double*, - const int*, double*, - int*, int*, double*, double*); - - int F77_FCN (scaleg) (const int*, const int*, double*, - const int*, double*, - const int*, const int*, double*, double*, double*); - - int F77_FCN (gradeq) (const int*, const int*, double*, - const int*, double*, - int*, int*, double*, double*); - -/* - * f2c translates complex*16 as - * - * typedef struct { doublereal re, im; } doublecomplex; - * - * and Complex.h from libg++ uses - * - * protected: - * double re; - * double im; - * - * as the only data members, so this should work (fingers crossed that - * things don't change). - */ - - int F77_FCN (zgemm) (const char*, const char*, const int*, - const int*, const int*, const Complex*, - const Complex*, const int*, const Complex*, - const int*, const Complex*, Complex*, const int*, - long, long); - - int F77_FCN (zgemv) (const char*, const int*, const int*, - const Complex*, const Complex*, const int*, - const Complex*, const int*, const Complex*, - Complex*, const int*, long); - - int F77_FCN (zgeco) (Complex*, const int*, const int*, int*, - double*, Complex*); - - int F77_FCN (zgesv) (const int*, const int*, Complex*, const int*, - int*, Complex*, const int*, int*); - - int F77_FCN (zgeqrf) (const int*, const int*, Complex*, const int*, - Complex*, Complex*, const int*, int*); - - int F77_FCN (zgeesx) (const char*, const char*, int (*)(), const char*, - const int*, Complex*, const int*, int*, - Complex*, Complex*, const int*, double*, double*, - Complex*, const int*, double*, int*, int*, - long, long); - - int F77_FCN (zhseqr) (const char*, const char*, const int*, - const int*, const int*, Complex*, const int*, - Complex*, Complex*, const int*, Complex*, - const int*, int*, long, long); - - int F77_FCN (zgebal) (const char*, const int*, Complex*, const int*, - int*, int*, double*, int*, long, long); - - int F77_FCN (zgebak) (const char*, const char*, const int*, const int*, - const int*, double*, const int*, Complex*, - const int*, int*, long, long); - - int F77_FCN (zgehrd) (const int*, const int*, const int*, Complex*, - const int*, Complex*, Complex*, const int*, - int*, long, long); - - int F77_FCN (zunghr) (const int*, const int*, const int*, Complex*, - const int*, Complex*, Complex*, const int*, - int*, long, long); - - int F77_FCN (zungqr) (const int*, const int*, const int*, Complex*, - const int*, Complex*, Complex*, const int*, int*); - - int F77_FCN (zgedi) (Complex*, const int*, const int*, int*, - Complex*, Complex*, const int*); - - int F77_FCN (zgesl) (Complex*, const int*, const int*, int*, - Complex*, const int*); - - int F77_FCN (zgeev) (const char*, const char*, const int*, Complex*, - const int*, Complex*, Complex*, const int*, - Complex*, const int*, Complex*, const int*, - double*, int*, long, long); - - int F77_FCN (zgesvd) (const char*, const char*, const int*, - const int*, Complex*, const int*, double*, - Complex*, const int*, Complex*, const int*, - Complex*, const int*, double*, int*, long, long); - - int F77_FCN (zgelss) (const int*, const int*, const int*, Complex*, - const int*, Complex*, const int*, double*, - const double*, int*, Complex*, const int*, - double*, int*); - - int F77_FCN (zpotrf) (const char*, const int*, Complex*, const int*, - int*, long); - - -// Note that the original complex fft routines were not written for -// double complex arguments. They have been modified by adding an -// implicit double precision (a-h,o-z) statement at the beginning of -// each subroutine. - - int F77_FCN (cffti) (const int*, Complex*); - - int F77_FCN (cfftf) (const int*, Complex*, Complex*); - - int F77_FCN (cfftb) (const int*, Complex*, Complex*); - -} - // Classes we declare. class Matrix;