/*
 * This routine prototypes the C wrappers to the Fortran77 LAPACK routines
 * (i.e., those LAPACK routines not natively provided by ATLAS).
 * See "clapack.h" for the prototypes of ATLAS's native LAPACK routines.
 */
#ifndef ATLAS_C2FLAPACK_H
   #define ATLAS_C2FLAPACK_H

int ATL_C2Fsgelqf(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float * tau);
int ATL_C2Fsgelqf_wrk(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float *tau, float *wrk, ATL_INT lwork);
#define ATL_C2Fsgelqf_wrk__    /* signal that this func exists */
int ATL_C2Fsgerqf(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float * tau);
int ATL_C2Fsgerqf_wrk(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float *tau, float *wrk, ATL_INT lwork);
#define ATL_C2Fsgerqf_wrk__    /* signal that this func exists */
int ATL_C2Fsgeqlf(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float * tau);
int ATL_C2Fsgeqlf_wrk(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float *tau, float *wrk, ATL_INT lwork);
#define ATL_C2Fsgeqlf_wrk__    /* signal that this func exists */
int ATL_C2Fsgeqrf(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float * tau);
int ATL_C2Fsgeqrf_wrk(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float *tau, float *wrk, ATL_INT lwork);
#define ATL_C2Fsgeqrf_wrk__    /* signal that this func exists */
int ATL_C2Fsgels(const enum CBLAS_TRANSPOSE TA, ATL_CINT M, ATL_CINT N,
                 ATL_CINT NRHS, float *A, ATL_CINT lda,
                 float *B, ATL_CINT ldb);
int ATL_C2Fsgels_wrk(const enum CBLAS_TRANSPOSE TA, ATL_CINT M, ATL_CINT N,
                    ATL_CINT NRHS, float *A, ATL_CINT lda,
                    float *B, ATL_CINT ldb, float *wrk, ATL_INT lwrk);
#define ATL_C2Fsgels_wrk__    /* signal that this func exists */
int ATL_C2Fdgelqf(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double * tau);
int ATL_C2Fdgelqf_wrk(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double *tau, double *wrk, ATL_INT lwork);
#define ATL_C2Fdgelqf_wrk__    /* signal that this func exists */
int ATL_C2Fdgerqf(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double * tau);
int ATL_C2Fdgerqf_wrk(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double *tau, double *wrk, ATL_INT lwork);
#define ATL_C2Fdgerqf_wrk__    /* signal that this func exists */
int ATL_C2Fdgeqlf(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double * tau);
int ATL_C2Fdgeqlf_wrk(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double *tau, double *wrk, ATL_INT lwork);
#define ATL_C2Fdgeqlf_wrk__    /* signal that this func exists */
int ATL_C2Fdgeqrf(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double * tau);
int ATL_C2Fdgeqrf_wrk(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double *tau, double *wrk, ATL_INT lwork);
#define ATL_C2Fdgeqrf_wrk__    /* signal that this func exists */
int ATL_C2Fdgels(const enum CBLAS_TRANSPOSE TA, ATL_CINT M, ATL_CINT N,
                 ATL_CINT NRHS, double *A, ATL_CINT lda,
                 double *B, ATL_CINT ldb);
int ATL_C2Fdgels_wrk(const enum CBLAS_TRANSPOSE TA, ATL_CINT M, ATL_CINT N,
                    ATL_CINT NRHS, double *A, ATL_CINT lda,
                    double *B, ATL_CINT ldb, double *wrk, ATL_INT lwrk);
#define ATL_C2Fdgels_wrk__    /* signal that this func exists */
int ATL_C2Fcgelqf(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float * tau);
int ATL_C2Fcgelqf_wrk(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float *tau, float *wrk, ATL_INT lwork);
#define ATL_C2Fcgelqf_wrk__    /* signal that this func exists */
int ATL_C2Fcgerqf(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float * tau);
int ATL_C2Fcgerqf_wrk(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float *tau, float *wrk, ATL_INT lwork);
#define ATL_C2Fcgerqf_wrk__    /* signal that this func exists */
int ATL_C2Fcgeqlf(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float * tau);
int ATL_C2Fcgeqlf_wrk(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float *tau, float *wrk, ATL_INT lwork);
#define ATL_C2Fcgeqlf_wrk__    /* signal that this func exists */
int ATL_C2Fcgeqrf(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float * tau);
int ATL_C2Fcgeqrf_wrk(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, float *tau, float *wrk, ATL_INT lwork);
#define ATL_C2Fcgeqrf_wrk__    /* signal that this func exists */
int ATL_C2Fcgels(const enum CBLAS_TRANSPOSE TA, ATL_CINT M, ATL_CINT N,
                 ATL_CINT NRHS, float *A, ATL_CINT lda,
                 float *B, ATL_CINT ldb);
int ATL_C2Fcgels_wrk(const enum CBLAS_TRANSPOSE TA, ATL_CINT M, ATL_CINT N,
                    ATL_CINT NRHS, float *A, ATL_CINT lda,
                    float *B, ATL_CINT ldb, float *wrk, ATL_INT lwrk);
#define ATL_C2Fcgels_wrk__    /* signal that this func exists */
int ATL_C2Fzgelqf(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double * tau);
int ATL_C2Fzgelqf_wrk(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double *tau, double *wrk, ATL_INT lwork);
#define ATL_C2Fzgelqf_wrk__    /* signal that this func exists */
int ATL_C2Fzgerqf(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double * tau);
int ATL_C2Fzgerqf_wrk(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double *tau, double *wrk, ATL_INT lwork);
#define ATL_C2Fzgerqf_wrk__    /* signal that this func exists */
int ATL_C2Fzgeqlf(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double * tau);
int ATL_C2Fzgeqlf_wrk(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double *tau, double *wrk, ATL_INT lwork);
#define ATL_C2Fzgeqlf_wrk__    /* signal that this func exists */
int ATL_C2Fzgeqrf(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double * tau);
int ATL_C2Fzgeqrf_wrk(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, double *tau, double *wrk, ATL_INT lwork);
#define ATL_C2Fzgeqrf_wrk__    /* signal that this func exists */
int ATL_C2Fzgels(const enum CBLAS_TRANSPOSE TA, ATL_CINT M, ATL_CINT N,
                 ATL_CINT NRHS, double *A, ATL_CINT lda,
                 double *B, ATL_CINT ldb);
int ATL_C2Fzgels_wrk(const enum CBLAS_TRANSPOSE TA, ATL_CINT M, ATL_CINT N,
                    ATL_CINT NRHS, double *A, ATL_CINT lda,
                    double *B, ATL_CINT ldb, double *wrk, ATL_INT lwrk);
#define ATL_C2Fzgels_wrk__    /* signal that this func exists */

#endif   /* end ifdef ATLAS_C2FLAPACK_H */
