hypre/lapack/hypre_lapack.h

349 lines
16 KiB
C

/*BHEADER**********************************************************************
* Copyright (c) 2006 The Regents of the University of California.
* Produced at the Lawrence Livermore National Laboratory.
* Written by the HYPRE team. UCRL-CODE-222953.
* All rights reserved.
*
* This file is part of HYPRE (see http://www.llnl.gov/CASC/hypre/).
* Please see the COPYRIGHT_and_LICENSE file for the copyright notice,
* disclaimer, contact information and the GNU Lesser General Public License.
*
* HYPRE is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License (as published by the Free Software
* Foundation) version 2.1 dated February 1999.
*
* HYPRE is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the IMPLIED WARRANTY OF MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the terms and conditions of the GNU General
* Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* $Revision$
***********************************************************************EHEADER*/
/* hypre_lapack.h -- Contains LAPACK prototypes needed by Hypre */
#ifndef HYPRE_LAPACK_H
#define HYPRE_LAPACK_H
#include "f2c.h"
/* --------------------------------------------------------------------------
* Change all names to hypre_ to avoid link conflicts
* --------------------------------------------------------------------------*/
#define dgebd2_ hypre_dgebd2
#define dgebrd_ hypre_dgebrd
#define dgelq2_ hypre_dgelq2
#define dgelqf_ hypre_dgelqf
#define dgels_ hypre_dgels
#define dgeqr2_ hypre_dgeqr2
#define dgeqrf_ hypre_dgeqrf
#define dgesvd_ hypre_dgesvd
#define dgetf2_ hypre_dgetf2
#define dgetrf_ hypre_dgetrf
#define dgetrs_ hypre_dgetrs
#define dlabad_ hypre_dlabad
#define dlabrd_ hypre_dlabrd
#define dlae2_ hypre_dlae2
#define dlaev2_ hypre_dlaev2
#define dlamch_ hypre_dlamch
#define dlamc1_ hypre_dlamc1
#define dlamc2_ hypre_dlamc2
#define dlamc3_ hypre_dlamc3
#define dlamc4_ hypre_dlamc4
#define dlamc5_ hypre_dlamc5
#define dlaswp_ hypre_dlaswp
#define dlange_ hypre_dlange
#define dlanst_ hypre_dlanst
#define dlansy_ hypre_dlansy
#define dlapy2_ hypre_dlapy2
#define dlarf_ hypre_dlarf
#define dlarfb_ hypre_dlarfb
#define dlarfg_ hypre_dlarfg
#define dlarft_ hypre_dlarft
#define dlartg_ hypre_dlartg
#define dlascl_ hypre_dlascl
#define dlaset_ hypre_dlaset
#define dlasr_ hypre_dlasr
#define dlasrt_ hypre_dlasrt
#define dlassq_ hypre_dlassq
#define dlatrd_ hypre_dlatrd
#define dorg2l_ hypre_dorg2l
#define dorg2r_ hypre_dorg2r
#define dorgql_ hypre_dorgql
#define dorgqr_ hypre_dorgqr
#define dorgtr_ hypre_dorgtr
#define dorm2r_ hypre_dorm2r
#define dorml2_ hypre_dorml2
#define dormlq_ hypre_dormlq
#define dormqr_ hypre_dormqr
#define dpotf2_ hypre_dpotf2
#define dpotrf_ hypre_dpotrf
#define dpotrs_ hypre_dpotrs
#define dsteqr_ hypre_dsteqr
#define dsterf_ hypre_dsterf
#define dsyev_ hypre_dsyev
#define dsygst_ hypre_dsygst
#define dsygv_ hypre_dsygv
#define dsytd2_ hypre_dsytd2
#define dsytrd_ hypre_dsytrd
#define ieeeck_ hypre_ieeeck
#define ilaenv_ hypre_ilaenv
#define d_lg10_ hypre_d_lg10
#define d_sign_ hypre_d_sign
#define pow_di_ hypre_pow_di
#define pow_dd_ hypre_pow_dd
#define s_cat_ hypre_s_cat
#define lsame_ hypre_lsame
#define xerbla_ hypre_xerbla
#define dbdsqr_ hypre_dbdsqr
#define dorgbr_ hypre_dorgbr
#define dsygs2_ hypre_dsygs2
#define dorglq_ hypre_dorglq
#define dlacpy_ hypre_dlacpy
#define dormbr_ hypre_dormbr
#define dlasq1_ hypre_dlasq1
#define dlas2_ hypre_dlas2
#define dlasv2_ hypre_dlasv2
#define dorgl2_ hypre_dorgl2
#define dlasq2_ hypre_dlasq2
#define dlasq3_ hypre_dlasq3
#define dlasq4_ hypre_dlasq4
#define dlasq5_ hypre_dlasq5
#define dlasq6_ hypre_dlasq6
/* --------------------------------------------------------------------------
* Prototypes
* --------------------------------------------------------------------------*/
/* dgebd2.c */
int dgebd2_ ( integer *m , integer *n , doublereal *a , integer *lda , doublereal *d__ , doublereal *e , doublereal *tauq , doublereal *taup , doublereal *work , integer *info );
/* dgebrd.c */
int dgebrd_ ( integer *m , integer *n , doublereal *a , integer *lda , doublereal *d__ , doublereal *e , doublereal *tauq , doublereal *taup , doublereal *work , integer *lwork , integer *info );
/* dgelq2.c */
int dgelq2_ ( integer *m , integer *n , doublereal *a , integer *lda , doublereal *tau , doublereal *work , integer *info );
/* dgelqf.c */
int dgelqf_ ( integer *m , integer *n , doublereal *a , integer *lda , doublereal *tau , doublereal *work , integer *lwork , integer *info );
/* dgels.c */
int dgels_ ( char *trans , integer *m , integer *n , integer *nrhs , doublereal *a , integer *lda , doublereal *b , integer *ldb , doublereal *work , integer *lwork , integer *info );
/* dgeqr2.c */
int dgeqr2_ ( integer *m , integer *n , doublereal *a , integer *lda , doublereal *tau , doublereal *work , integer *info );
/* dgeqrf.c */
int dgeqrf_ ( integer *m , integer *n , doublereal *a , integer *lda , doublereal *tau , doublereal *work , integer *lwork , integer *info );
/* dgesvd.c */
int dgesvd_ ( char *jobu , char *jobvt , integer *m , integer *n , doublereal *a , integer *lda , doublereal *s , doublereal *u , integer *ldu , doublereal *vt , integer *ldvt , doublereal *work , integer *lwork , integer *info );
/* dgetf2.c */
int dgetf2_( integer *m , integer *n , doublereal *a , integer *lda , integer *ipiv , integer *info );
/* dgetrf.c */
int dgetrf_( integer *m , integer *n , doublereal *a , integer *lda , integer *ipiv , integer *info );
/* dgetrs.c */
int dgetrs_( char *trans , integer *n , integer *nrhs , doublereal *a , integer *lda , integer *ipiv , doublereal *b , integer *ldb , integer *info );
/* dlabad.c */
int dlabad_ ( doublereal *small , doublereal *large );
/* dlabrd.c */
int dlabrd_ ( integer *m , integer *n , integer *nb , doublereal *a , integer *lda , doublereal *d__ , doublereal *e , doublereal *tauq , doublereal *taup , doublereal *x , integer *ldx , doublereal *y , integer *ldy );
/* dlae2.c */
int dlae2_ ( doublereal *a , doublereal *b , doublereal *c__ , doublereal *rt1 , doublereal *rt2 );
/* dlaev2.c */
int dlaev2_ ( doublereal *a , doublereal *b , doublereal *c__ , doublereal *rt1 , doublereal *rt2 , doublereal *cs1 , doublereal *sn1 );
/* dlamch.c */
doublereal dlamch_ ( char *cmach );
int dlamc1_ ( integer *beta , integer *t , logical *rnd , logical *ieee1 );
int dlamc2_ ( integer *beta , integer *t , logical *rnd , doublereal *eps , integer *emin , doublereal *rmin , integer *emax , doublereal *rmax );
doublereal dlamc3_ ( doublereal *a , doublereal *b );
int dlamc4_ ( integer *emin , doublereal *start , integer *base );
int dlamc5_ ( integer *beta , integer *p , integer *emin , logical *ieee , integer *emax , doublereal *rmax );
/* dlaswp.c */
int dlaswp_( integer *n , doublereal *a , integer *lda , integer *k1 , integer *k2 , integer *ipiv , integer *incx );
/* dlange.c */
doublereal dlange_ ( char *norm , integer *m , integer *n , doublereal *a , integer *lda , doublereal *work );
/* dlanst.c */
doublereal dlanst_ ( char *norm , integer *n , doublereal *d__ , doublereal *e );
/* dlansy.c */
doublereal dlansy_ ( char *norm , char *uplo , integer *n , doublereal *a , integer *lda , doublereal *work );
/* dlapy2.c */
doublereal dlapy2_ ( doublereal *x , doublereal *y );
/* dlarf.c */
int dlarf_ ( char *side , integer *m , integer *n , doublereal *v , integer *incv , doublereal *tau , doublereal *c__ , integer *ldc , doublereal *work );
/* dlarfb.c */
int dlarfb_ ( char *side , char *trans , char *direct , char *storev , integer *m , integer *n , integer *k , doublereal *v , integer *ldv , doublereal *t , integer *ldt , doublereal *c__ , integer *ldc , doublereal *work , integer *ldwork );
/* dlarfg.c */
int dlarfg_ ( integer *n , doublereal *alpha , doublereal *x , integer *incx , doublereal *tau );
/* dlarft.c */
int dlarft_ ( char *direct , char *storev , integer *n , integer *k , doublereal *v , integer *ldv , doublereal *tau , doublereal *t , integer *ldt );
/* dlartg.c */
int dlartg_ ( doublereal *f , doublereal *g , doublereal *cs , doublereal *sn , doublereal *r__ );
/* dlascl.c */
int dlascl_ ( char *type__ , integer *kl , integer *ku , doublereal *cfrom , doublereal *cto , integer *m , integer *n , doublereal *a , integer *lda , integer *info );
/* dlaset.c */
int dlaset_ ( char *uplo , integer *m , integer *n , doublereal *alpha , doublereal *beta , doublereal *a , integer *lda );
/* dlasr.c */
int dlasr_ ( char *side , char *pivot , char *direct , integer *m , integer *n , doublereal *c__ , doublereal *s , doublereal *a , integer *lda );
/* dlasrt.c */
int dlasrt_ ( char *id , integer *n , doublereal *d__ , integer *info );
/* dlassq.c */
int dlassq_ ( integer *n , doublereal *x , integer *incx , doublereal *scale , doublereal *sumsq );
/* dlatrd.c */
int dlatrd_ ( char *uplo , integer *n , integer *nb , doublereal *a , integer *lda , doublereal *e , doublereal *tau , doublereal *w , integer *ldw );
/* dorg2l.c */
int dorg2l_ ( integer *m , integer *n , integer *k , doublereal *a , integer *lda , doublereal *tau , doublereal *work , integer *info );
/* dorg2r.c */
int dorg2r_ ( integer *m , integer *n , integer *k , doublereal *a , integer *lda , doublereal *tau , doublereal *work , integer *info );
/* dorgql.c */
int dorgql_ ( integer *m , integer *n , integer *k , doublereal *a , integer *lda , doublereal *tau , doublereal *work , integer *lwork , integer *info );
/* dorgqr.c */
int dorgqr_ ( integer *m , integer *n , integer *k , doublereal *a , integer *lda , doublereal *tau , doublereal *work , integer *lwork , integer *info );
/* dorgtr.c */
int dorgtr_ ( char *uplo , integer *n , doublereal *a , integer *lda , doublereal *tau , doublereal *work , integer *lwork , integer *info );
/* dorm2r.c */
int dorm2r_ ( char *side , char *trans , integer *m , integer *n , integer *k , doublereal *a , integer *lda , doublereal *tau , doublereal *c__ , integer *ldc , doublereal *work , integer *info );
/* dorml2.c */
int dorml2_ ( char *side , char *trans , integer *m , integer *n , integer *k , doublereal *a , integer *lda , doublereal *tau , doublereal *c__ , integer *ldc , doublereal *work , integer *info );
/* dormlq.c */
int dormlq_ ( char *side , char *trans , integer *m , integer *n , integer *k , doublereal *a , integer *lda , doublereal *tau , doublereal *c__ , integer *ldc , doublereal *work , integer *lwork , integer *info );
/* dormqr.c */
int dormqr_ ( char *side , char *trans , integer *m , integer *n , integer *k , doublereal *a , integer *lda , doublereal *tau , doublereal *c__ , integer *ldc , doublereal *work , integer *lwork , integer *info );
/* dpotf2.c */
int dpotf2_ ( char *uplo , integer *n , doublereal *a , integer *lda , integer *info );
/* dpotrf.c */
int dpotrf_ ( char *uplo , integer *n , doublereal *a , integer *lda , integer *info );
/* dpotrs.c */
int dpotrs_ ( char *uplo , integer *n , integer *nrhs , doublereal *a , integer *lda , doublereal *b , integer *ldb , integer *info );
/* dsteqr.c */
int dsteqr_ ( char *compz , integer *n , doublereal *d__ , doublereal *e , doublereal *z__ , integer *ldz , doublereal *work , integer *info );
/* dsterf.c */
int dsterf_ ( integer *n , doublereal *d__ , doublereal *e , integer *info );
/* dsyev.c */
int dsyev_ ( char *jobz , char *uplo , integer *n , doublereal *a , integer *lda , doublereal *w , doublereal *work , integer *lwork , integer *info );
/* dsygst.c */
int dsygst_ ( integer *itype , char *uplo , integer *n , doublereal *a , integer *lda , doublereal *b , integer *ldb , integer *info );
/* dsygv.c */
int dsygv_ ( integer *itype , char *jobz , char *uplo , integer *n , doublereal *a , integer *lda , doublereal *b , integer *ldb , doublereal *w , doublereal *work , integer *lwork , integer *info );
/* dsytd2.c */
int dsytd2_ ( char *uplo , integer *n , doublereal *a , integer *lda , doublereal *d__ , doublereal *e , doublereal *tau , integer *info );
/* dsytrd.c */
int dsytrd_ ( char *uplo , integer *n , doublereal *a , integer *lda , doublereal *d__ , doublereal *e , doublereal *tau , doublereal *work , integer *lwork , integer *info );
/* ieeeck.c */
integer ieeeck_ ( integer *ispec , real *zero , real *one );
/* ilaenv.c */
integer ilaenv_ ( integer *ispec , char *name__ , char *opts , integer *n1 , integer *n2 , integer *n3 , integer *n4 , ftnlen name_len , ftnlen opts_len );
/* lapack_utils.c */
double d_lg10 ( doublereal *x );
double d_sign ( doublereal *a , doublereal *b );
double pow_di ( doublereal *ap , integer *bp );
double pow_dd ( doublereal *ap , doublereal *bp );
int s_cat ( char *lp , char *rpp [], ftnlen rnp [], ftnlen *np , ftnlen ll );
/* lsame.c */
logical lsame_ ( char *ca , char *cb );
/* xerbla.c */
int xerbla_ ( char *srname , integer *info );
/* dbdsqr.c */
int dbdsqr_ ( char *uplo , integer *n , integer *ncvt , integer *nru , integer *ncc , doublereal *d__ , doublereal *e , doublereal *vt , integer *ldvt , doublereal *u , integer *ldu , doublereal *c__ , integer *ldc , doublereal *work , integer *info );
/* dorgbr.c */
int dorgbr_ ( char *vect , integer *m , integer *n , integer *k , doublereal *a , integer *lda , doublereal *tau , doublereal *work , integer *lwork , integer *info );
/* dsygs2.c */
int dsygs2_ ( integer *itype , char *uplo , integer *n , doublereal *a , integer *lda , doublereal *b , integer *ldb , integer *info );
/* dorglq.c */
int dorglq_ ( integer *m , integer *n , integer *k , doublereal *a , integer *lda , doublereal *tau , doublereal *work , integer *lwork , integer *info );
/* dlacpy.c */
int dlacpy_ ( char *uplo , integer *m , integer *n , doublereal *a , integer *lda , doublereal *b , integer *ldb );
/* dormbr.c */
int dormbr_ ( char *vect , char *side , char *trans , integer *m , integer *n , integer *k , doublereal *a , integer *lda , doublereal *tau , doublereal *c__ , integer *ldc , doublereal *work , integer *lwork , integer *info );
/* dlasq1.c */
int dlasq1_ ( integer *n , doublereal *d__ , doublereal *e , doublereal *work , integer *info );
/* dlas2.c */
int dlas2_ ( doublereal *f , doublereal *g , doublereal *h__ , doublereal *ssmin , doublereal *ssmax );
/* dlasv2.c */
int dlasv2_ ( doublereal *f , doublereal *g , doublereal *h__ , doublereal *ssmin , doublereal *ssmax , doublereal *snr , doublereal *csr , doublereal *snl , doublereal *csl );
/* dorgl2.c */
int dorgl2_ ( integer *m , integer *n , integer *k , doublereal *a , integer *lda , doublereal *tau , doublereal *work , integer *info );
/* dlasq2.c */
int dlasq2_ ( integer *n , doublereal *z__ , integer *info );
/* dlasq3.c */
int dlasq3_ ( integer *i0 , integer *n0 , doublereal *z__ , integer *pp , doublereal *dmin__ , doublereal *sigma , doublereal *desig , doublereal *qmax , integer *nfail , integer *iter , integer *ndiv , logical *ieee );
/* dlasq4.c */
int dlasq4_ ( integer *i0 , integer *n0 , doublereal *z__ , integer *pp , integer *n0in , doublereal *dmin__ , doublereal *dmin1 , doublereal *dmin2 , doublereal *dn , doublereal *dn1 , doublereal *dn2 , doublereal *tau , integer *ttype );
/* dlasq5.c */
int dlasq5_ ( integer *i0 , integer *n0 , doublereal *z__ , integer *pp , doublereal *tau , doublereal *dmin__ , doublereal *dmin1 , doublereal *dmin2 , doublereal *dn , doublereal *dnm1 , doublereal *dnm2 , logical *ieee );
/* dlasq6.c */
int dlasq6_ ( integer *i0 , integer *n0 , doublereal *z__ , integer *pp , doublereal *dmin__ , doublereal *dmin1 , doublereal *dmin2 , doublereal *dn , doublereal *dnm1 , doublereal *dnm2 );
#endif