The R Project SVN R

Rev

Rev 76585 | Rev 85053 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
29932 ripley 1
/*
2
 *  R : A Computer Language for Statistical Data Analysis
76573 ripley 3
 *  Copyright (C) 2003-2019 The R Core Team.
29932 ripley 4
 *
71657 plummer 5
 *  This header file is free software; you can redistribute it and/or modify
29932 ripley 6
 *  it under the terms of the GNU Lesser General Public License as published by
7
 *  the Free Software Foundation; either version 2.1 of the License, or
8
 *  (at your option) any later version.
9
 *
71657 plummer 10
 *  This file is part of R. R is distributed under the terms of the
11
 *  GNU General Public License, either Version 2, June 1991 or Version 3,
12
 *  June 2007. See doc/COPYRIGHTS for details of the copyright status of R.
13
 *
29932 ripley 14
 *  This program is distributed in the hope that it will be useful,
15
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 *  GNU Lesser General Public License for more details.
18
 *
19
 *  You should have received a copy of the GNU Lesser General Public License
42308 ripley 20
 *  along with this program; if not, a copy is available at
68949 ripley 21
 *  https://www.R-project.org/Licenses/
29932 ripley 22
 */
23
 
60961 ripley 24
/*
25
   C declarations of BLAS Fortran subroutines always available in R.
26
 
27
   Part of the API.
28
 
71463 ripley 29
   R packages that use these should have PKG_LIBS in src/Makevars include
60961 ripley 30
   $(BLAS_LIBS) $(FLIBS)
31
 */
32
 
60253 ripley 33
/* Part of the API */
34
 
23063 bates 35
#ifndef R_BLAS_H
36
#define R_BLAS_H
37
 
38
#include <R_ext/RS.h>		/* for F77_... */
39
#include <R_ext/Complex.h>	/* for Rcomplex */
40
 
76600 ripley 41
#ifdef FC_LEN_T
76585 ripley 42
# include <stddef.h> // for size_t if needed
43
# define FCLEN ,FC_LEN_T
44
# define FCONE ,(FC_LEN_T)1
45
#else
46
# define FCLEN
47
# define FCONE
48
#endif
49
 
23063 bates 50
#ifdef  __cplusplus
51
extern "C" {
52
#endif
53
 
60961 ripley 54
// never defined in R itself.
44687 maechler 55
#ifndef BLAS_extern
56
#define BLAS_extern extern
57
#endif
58
 
23063 bates 59
/* Double Precision Level 1 BLAS */
60
 
44687 maechler 61
BLAS_extern double /* DASUM - sum of absolute values of a one-dimensional array */
23063 bates 62
F77_NAME(dasum)(const int *n, const double *dx, const int *incx);
76573 ripley 63
BLAS_extern void   /* DAXPY - replace y by da*x + y */
64
F77_NAME(daxpy)(const int *n, const double *da,
23063 bates 65
		const double *dx, const int *incx,
66
		double *dy, const int *incy);
44687 maechler 67
BLAS_extern void   /* DCOPY - copy x to y */
23063 bates 68
F77_NAME(dcopy)(const int *n, const double *dx, const int *incx,
69
		double *dy, const int *incy);
44687 maechler 70
BLAS_extern double /* DDOT - inner product of x and y */
36367 ripley 71
F77_NAME(ddot)(const int *n, const double *dx, const int *incx,
23063 bates 72
	       const double *dy, const int *incy);
44687 maechler 73
BLAS_extern double /* DNRM2 - 2-norm of a vector */
36367 ripley 74
F77_NAME(dnrm2)(const int *n, const double *dx, const int *incx);
44687 maechler 75
BLAS_extern void   /* DROT - apply a Given's rotation */
23063 bates 76
F77_NAME(drot)(const int *n, double *dx, const int *incx,
77
	       double *dy, const int *incy, const double *c, const double *s);
44687 maechler 78
BLAS_extern void   /* DROTG - generate a Given's rotation */
23063 bates 79
F77_NAME(drotg)(const double *a, const double *b, double *c, double *s);
44687 maechler 80
BLAS_extern void   /* DROTM - apply a modified Given's rotation */
36352 ripley 81
F77_NAME(drotm)(const int *n, double *dx, const int *incx,
82
		double *dy, const int *incy, const double *dparam);
44687 maechler 83
BLAS_extern void   /* DROTMG - generate a modified Given's rotation */
36367 ripley 84
F77_NAME(drotmg)(const double *dd1, const double *dd2, const double *dx1,
36352 ripley 85
		 const double *dy1, double *param);
44687 maechler 86
BLAS_extern void   /* DSCAL - scale a one-dimensional array */
23063 bates 87
F77_NAME(dscal)(const int *n, const double *alpha, double *dx, const int *incx);
44687 maechler 88
BLAS_extern void   /* DSWAP - interchange one-dimensional arrays */
23063 bates 89
F77_NAME(dswap)(const int *n, double *dx, const int *incx,
90
		double *dy, const int *incy);
44687 maechler 91
BLAS_extern int    /* IDAMAX - return the index of the element with max abs value */
23063 bates 92
F77_NAME(idamax)(const int *n, const double *dx, const int *incx);
93
 
94
/* Double Precision Level 2 BLAS */
95
 
96
/* DGBMV - perform one of the matrix-vector operations */
97
/* y := alpha*A*x + beta*y, or y := alpha*A'*x + beta*y, */
44687 maechler 98
BLAS_extern void
23063 bates 99
F77_NAME(dgbmv)(const char *trans, const int *m, const int *n,
100
		const int *kl,const int *ku,
101
		const double *alpha, const double *a, const int *lda,
102
		const double *x, const int *incx,
76585 ripley 103
		const double *beta, double *y, const int *incy FCLEN);
23063 bates 104
/* DGEMV - perform one of the matrix-vector operations */
105
/* y := alpha*A*x + beta*y, or y := alpha*A'*x + beta*y,  */
44687 maechler 106
BLAS_extern void
23063 bates 107
F77_NAME(dgemv)(const char *trans, const int *m, const int *n,
108
		const double *alpha, const double *a, const int *lda,
109
		const double *x, const int *incx, const double *beta,
76585 ripley 110
		double *y, const int *incy FCLEN);
23063 bates 111
/* DSBMV - perform the matrix-vector operation */
112
/* y := alpha*A*x + beta*y, */
44687 maechler 113
BLAS_extern void
23063 bates 114
F77_NAME(dsbmv)(const char *uplo, const int *n, const int *k,
115
		const double *alpha, const double *a, const int *lda,
116
		const double *x, const int *incx,
76585 ripley 117
		const double *beta, double *y, const int *incy FCLEN);
23063 bates 118
/* DSPMV - perform the matrix-vector operation */
119
/* y := alpha*A*x + beta*y, */
44687 maechler 120
BLAS_extern void
23063 bates 121
F77_NAME(dspmv)(const char *uplo, const int *n,
122
		const double *alpha, const double *ap,
123
		const double *x, const int *incx,
76585 ripley 124
		const double *beta, double *y, const int *incy FCLEN);
23063 bates 125
 
126
/* DSYMV - perform the matrix-vector operation */
127
/*  y := alpha*A*x + beta*y, */
44687 maechler 128
BLAS_extern void
23063 bates 129
F77_NAME(dsymv)(const char *uplo, const int *n, const double *alpha,
130
		const double *a, const int *lda,
131
		const double *x, const int *incx,
76585 ripley 132
		const double *beta, double *y, const int *incy FCLEN);
23063 bates 133
/* DTBMV - perform one of the matrix-vector operations */
134
/* x := A*x, or x := A'*x, */
44687 maechler 135
BLAS_extern void
23063 bates 136
F77_NAME(dtbmv)(const char *uplo, const char *trans,
137
		const char *diag, const int *n, const int *k,
138
		const double *a, const int *lda,
76585 ripley 139
		double *x, const int *incx FCLEN FCLEN FCLEN);
23063 bates 140
/* DTPMV - perform one of the matrix-vector operations */
141
/* x := A*x, or x := A'*x, */
44687 maechler 142
BLAS_extern void
23063 bates 143
F77_NAME(dtpmv)(const char *uplo, const char *trans, const char *diag,
36367 ripley 144
		const int *n, const double *ap,
76585 ripley 145
		double *x, const int *incx FCLEN FCLEN FCLEN);
23063 bates 146
/* DTRMV - perform one of the matrix-vector operations  */
147
/* x := A*x, or x := A'*x, */
44687 maechler 148
BLAS_extern void
23063 bates 149
F77_NAME(dtrmv)(const char *uplo, const char *trans, const char *diag,
150
		const int *n, const double *a, const int *lda,
76585 ripley 151
		double *x, const int *incx FCLEN FCLEN FCLEN);
23063 bates 152
/* DTBSV - solve one of the systems of equations */
153
/* A*x = b, or A'*x = b, */
44687 maechler 154
BLAS_extern void
23063 bates 155
F77_NAME(dtbsv)(const char *uplo, const char *trans,
156
		const char *diag, const int *n, const int *k,
157
		const double *a, const int *lda,
76585 ripley 158
		double *x, const int *incx FCLEN FCLEN FCLEN);
23063 bates 159
/* DTPSV - solve one of the systems of equations */
160
/* A*x = b, or A'*x = b, */
44687 maechler 161
BLAS_extern void
23063 bates 162
F77_NAME(dtpsv)(const char *uplo, const char *trans,
163
		const char *diag, const int *n,
76585 ripley 164
		const double *ap, double *x, const int *incx
165
		FCLEN FCLEN FCLEN);
23063 bates 166
/* DTRSV - solve one of the systems of equations */
167
/* A*x = b, or A'*x = b, */
44687 maechler 168
BLAS_extern void
23063 bates 169
F77_NAME(dtrsv)(const char *uplo, const char *trans,
170
		const char *diag, const int *n,
171
		const double *a, const int *lda,
76585 ripley 172
		double *x, const int *incx FCLEN FCLEN FCLEN);
23063 bates 173
/* DGER - perform the rank 1 operation   A := alpha*x*y' + A */
44687 maechler 174
BLAS_extern void
23063 bates 175
F77_NAME(dger)(const int *m, const int *n, const double *alpha,
52906 maechler 176
	       const double *x, const int *incx,
177
	       const double *y, const int *incy,
23063 bates 178
	       double *a, const int *lda);
179
/* DSYR - perform the symmetric rank 1 operation A := alpha*x*x' + A */
44687 maechler 180
BLAS_extern void
23063 bates 181
F77_NAME(dsyr)(const char *uplo, const int *n, const double *alpha,
182
	       const double *x, const int *incx,
76585 ripley 183
	       double *a, const int *lda FCLEN);
23063 bates 184
/* DSPR - perform the symmetric rank 1 operation A := alpha*x*x' + A */
44687 maechler 185
BLAS_extern void
23063 bates 186
F77_NAME(dspr)(const char *uplo, const int *n, const double *alpha,
76585 ripley 187
	       const double *x, const int *incx, double *ap FCLEN);
23063 bates 188
/* DSYR2 - perform the symmetric rank 2 operation */
189
/* A := alpha*x*y' + alpha*y*x' + A, */
44687 maechler 190
BLAS_extern void
23063 bates 191
F77_NAME(dsyr2)(const char *uplo, const int *n, const double *alpha,
192
		const double *x, const int *incx,
193
		const double *y, const int *incy,
76585 ripley 194
		double *a, const int *lda FCLEN);
23063 bates 195
/* DSPR2 - perform the symmetric rank 2 operation */
196
/* A := alpha*x*y' + alpha*y*x' + A,  */
44687 maechler 197
BLAS_extern void
23063 bates 198
F77_NAME(dspr2)(const char *uplo, const int *n, const double *alpha,
199
		const double *x, const int *incx,
76585 ripley 200
		const double *y, const int *incy, double *ap FCLEN);
23063 bates 201
 
202
/* Double Precision Level 3 BLAS */
203
 
204
/* DGEMM - perform one of the matrix-matrix operations    */
205
/* C := alpha*op( A )*op( B ) + beta*C */
44687 maechler 206
BLAS_extern void
23063 bates 207
F77_NAME(dgemm)(const char *transa, const char *transb, const int *m,
208
		const int *n, const int *k, const double *alpha,
209
		const double *a, const int *lda,
210
		const double *b, const int *ldb,
76585 ripley 211
		const double *beta, double *c, const int *ldc 
212
		FCLEN FCLEN);
23063 bates 213
/* DTRSM - solve one of the matrix equations  */
214
/* op(A)*X = alpha*B, or  X*op(A) = alpha*B  */
44687 maechler 215
BLAS_extern void
23063 bates 216
F77_NAME(dtrsm)(const char *side, const char *uplo,
217
		const char *transa, const char *diag,
218
		const int *m, const int *n, const double *alpha,
219
		const double *a, const int *lda,
76585 ripley 220
		double *b, const int *ldb
221
		FCLEN FCLEN FCLEN FCLEN);
23063 bates 222
/* DTRMM - perform one of the matrix-matrix operations */
223
/* B := alpha*op( A )*B, or B := alpha*B*op( A ) */
44687 maechler 224
BLAS_extern void
23063 bates 225
F77_NAME(dtrmm)(const char *side, const char *uplo, const char *transa,
226
		const char *diag, const int *m, const int *n,
227
		const double *alpha, const double *a, const int *lda,
76585 ripley 228
		double *b, const int *ldb
229
		FCLEN FCLEN FCLEN FCLEN);
23063 bates 230
/* DSYMM - perform one of the matrix-matrix operations   */
231
/*  C := alpha*A*B + beta*C, */
44687 maechler 232
BLAS_extern void
23063 bates 233
F77_NAME(dsymm)(const char *side, const char *uplo, const int *m,
234
		const int *n, const double *alpha,
235
		const double *a, const int *lda,
236
		const double *b, const int *ldb,
76585 ripley 237
		const double *beta, double *c, const int *ldc
238
		FCLEN FCLEN);
23063 bates 239
/* DSYRK - perform one of the symmetric rank k operations */
240
/* C := alpha*A*A' + beta*C or C := alpha*A'*A + beta*C */
44687 maechler 241
BLAS_extern void
23063 bates 242
F77_NAME(dsyrk)(const char *uplo, const char *trans,
243
		const int *n, const int *k,
244
		const double *alpha, const double *a, const int *lda,
76585 ripley 245
		const double *beta, double *c, const int *ldc
246
		FCLEN FCLEN);
23063 bates 247
/* DSYR2K - perform one of the symmetric rank 2k operations */
248
/* C := alpha*A*B' + alpha*B*A' + beta*C or */
249
/* C := alpha*A'*B + alpha*B'*A + beta*C */
44687 maechler 250
BLAS_extern void
23063 bates 251
F77_NAME(dsyr2k)(const char *uplo, const char *trans,
252
		 const int *n, const int *k,
253
		 const double *alpha, const double *a, const int *lda,
254
		 const double *b, const int *ldb,
76585 ripley 255
		 const double *beta, double *c, const int *ldc
256
		 FCLEN FCLEN);
36352 ripley 257
/*
258
  LSAME is a LAPACK support routine, not part of BLAS
259
*/
35002 ripley 260
 
36367 ripley 261
/* Double complex BLAS routines added for 2.3.0 */
44669 maechler 262
/* #ifdef HAVE_FORTRAN_DOUBLE_COMPLEX */
44687 maechler 263
    BLAS_extern double
76573 ripley 264
    F77_NAME(dcabs1)(const Rcomplex *z);
44687 maechler 265
    BLAS_extern double
71463 ripley 266
    F77_NAME(dzasum)(const int *n, const Rcomplex *zx, const int *incx);
44687 maechler 267
    BLAS_extern double
71463 ripley 268
    F77_NAME(dznrm2)(const int *n, const Rcomplex *x, const int *incx);
44687 maechler 269
    BLAS_extern int
71463 ripley 270
    F77_NAME(izamax)(const int *n, const Rcomplex *zx, const int *incx);
44687 maechler 271
    BLAS_extern void
71463 ripley 272
    F77_NAME(zaxpy)(const int *n, const Rcomplex *za, const Rcomplex *zx,
273
		    const int *incx, const Rcomplex *zy, const int *incy);
44687 maechler 274
    BLAS_extern void
71463 ripley 275
    F77_NAME(zcopy)(const int *n, const Rcomplex *zx, const int *incx,
276
		    const Rcomplex *zy, const int *incy);
58613 ripley 277
 
278
    /* WARNING!  The next two return a value that may not be
279
       compatible between C and Fortran, and even if it is, this might
280
       not be the right translation to C.  Only use after
281
       configure-testing with your compilers.
282
     */
44687 maechler 283
    BLAS_extern Rcomplex
71463 ripley 284
    F77_NAME(zdotc)(const int *n,
285
		    const Rcomplex *zx, const int *incx, 
286
		    const Rcomplex *zy, const int *incy);
44687 maechler 287
    BLAS_extern Rcomplex
71463 ripley 288
    F77_NAME(zdotu)(const int *n,
289
		    const Rcomplex *zx, const int *incx,
290
		    const Rcomplex *zy, const int *incy);
58613 ripley 291
 
44687 maechler 292
    BLAS_extern void
71463 ripley 293
    F77_NAME(zdrot)(const int *n, 
294
		    const Rcomplex *zx, const int *incx, 
295
		    Rcomplex *zy, const int *incy, 
296
		    const double *c, const double *s);
44687 maechler 297
    BLAS_extern void
71463 ripley 298
    F77_NAME(zdscal)(const int *n, const double *da, 
299
		     Rcomplex *zx, const int *incx);
44687 maechler 300
    BLAS_extern void
71463 ripley 301
    F77_NAME(zgbmv)(const char *trans, int *m, int *n, int *kl,
36367 ripley 302
		    int *ku, Rcomplex *alpha, Rcomplex *a, int *lda,
303
		    Rcomplex *x, int *incx, Rcomplex *beta, Rcomplex *y,
76585 ripley 304
		    int *incy FCLEN);
44687 maechler 305
    BLAS_extern void
36367 ripley 306
    F77_NAME(zgemm)(const char *transa, const char *transb, const int *m,
307
		    const int *n, const int *k, const Rcomplex *alpha,
308
		    const Rcomplex *a, const int *lda,
309
		    const Rcomplex *b, const int *ldb,
76585 ripley 310
		    const Rcomplex *beta, Rcomplex *c, const int *ldc
311
		    FCLEN FCLEN);
44687 maechler 312
    BLAS_extern void
71463 ripley 313
    F77_NAME(zgemv)(const char *trans, const int *m, const int *n,
314
		    const Rcomplex *alpha, const Rcomplex *a, const int *lda,
315
		    const Rcomplex *x, const int *incx, const Rcomplex *beta,
76585 ripley 316
		    Rcomplex *y, const int *incy FCLEN);
44687 maechler 317
    BLAS_extern void
71463 ripley 318
    F77_NAME(zgerc)(const int *m, const int *n, const Rcomplex *alpha,
319
		    const Rcomplex *x, const int *incx, const Rcomplex *y,
320
		    const int *incy, Rcomplex *a, const int *lda);
44687 maechler 321
    BLAS_extern void
71463 ripley 322
    F77_NAME(zgeru)(const int *m, const int *n, const Rcomplex *alpha,
323
		    const Rcomplex *x, const int *incx, const Rcomplex *y,
324
		    const int *incy, Rcomplex *a, const int *lda);
44687 maechler 325
    BLAS_extern void
71463 ripley 326
    F77_NAME(zhbmv)(const char *uplo, const int *n, const int *k,
327
		    const Rcomplex *alpha, const Rcomplex *a, const int *lda,
328
		    const Rcomplex *x, const int *incx, const Rcomplex *beta,
76585 ripley 329
		    Rcomplex *y, const int *incy FCLEN);
44687 maechler 330
    BLAS_extern void
71463 ripley 331
    F77_NAME(zhemm)(const char *side, const char *uplo, const int *m,
332
		    const int *n, const Rcomplex *alpha, const Rcomplex *a,
333
		    const int *lda, const Rcomplex *b, const int *ldb,
76585 ripley 334
		    const Rcomplex *beta, Rcomplex *c, const int *ldc
335
		    FCLEN FCLEN);
44687 maechler 336
    BLAS_extern void
71463 ripley 337
    F77_NAME(zhemv)(const char *uplo, const int *n, const Rcomplex *alpha,
338
		    const Rcomplex *a, const int *lda, const Rcomplex *x,
339
		    const int *incx, const Rcomplex *beta,
76585 ripley 340
		    Rcomplex *y, const int *incy FCLEN);
44687 maechler 341
    BLAS_extern void
71463 ripley 342
    F77_NAME(zher)(const char *uplo, const int *n, const double *alpha,
343
		   const Rcomplex *x, const int *incx, Rcomplex *a,
76585 ripley 344
		   const int *lda FCLEN);
44687 maechler 345
    BLAS_extern void
71463 ripley 346
    F77_NAME(zher2)(const char *uplo, const int *n, const Rcomplex *alpha,
347
		    const Rcomplex *x, const int *incx, const Rcomplex *y,
76585 ripley 348
		    const int *incy, Rcomplex *a, const int *lda FCLEN);
44687 maechler 349
    BLAS_extern void
71463 ripley 350
    F77_NAME(zher2k)(const char *uplo, const char *trans, const int *n,
351
		     const int *k, const Rcomplex *alpha, const Rcomplex *a,
352
		     const int *lda, const Rcomplex *b, const  int *ldb,
76585 ripley 353
		     const double *beta, Rcomplex *c, const int *ldc
354
		     FCLEN FCLEN);
44687 maechler 355
    BLAS_extern void
71463 ripley 356
    F77_NAME(zherk)(const char *uplo, const char *trans, const int *n,
357
		    const int *k, const double *alpha, const Rcomplex *a,
358
		    const int *lda, const double *beta, Rcomplex *c,
76585 ripley 359
		    const int *ldc FCLEN FCLEN);
44687 maechler 360
    BLAS_extern void
71463 ripley 361
    F77_NAME(zhpmv)(const char *uplo, const int *n, const Rcomplex *alpha,
362
		    const Rcomplex *ap, const Rcomplex *x, const int *incx,
76585 ripley 363
		    const Rcomplex * beta, Rcomplex *y, const int *incy
364
		    FCLEN);
44687 maechler 365
    BLAS_extern void
71463 ripley 366
    F77_NAME(zhpr)(const char *uplo, const int *n, const double *alpha,
76585 ripley 367
		   const Rcomplex *x, const int *incx, Rcomplex *ap
368
		   FCLEN);
44687 maechler 369
    BLAS_extern void
71463 ripley 370
    F77_NAME(zhpr2)(const char *uplo, const int *n, const Rcomplex *alpha,
371
		    const Rcomplex *x, const int *incx, const Rcomplex *y,
76585 ripley 372
		    const int *incy, Rcomplex *ap FCLEN);
44687 maechler 373
    BLAS_extern void
71463 ripley 374
    F77_NAME(zrotg)(const Rcomplex *ca, const Rcomplex *cb, 
375
		    double *c, Rcomplex *s);
44687 maechler 376
    BLAS_extern void
71463 ripley 377
    F77_NAME(zscal)(const int *n, const Rcomplex *za, Rcomplex *zx,
378
		    const int *incx);
44687 maechler 379
    BLAS_extern void
71463 ripley 380
    F77_NAME(zswap)(const int *n, Rcomplex *zx, const int *incx,
381
		    Rcomplex *zy, const int *incy);
44687 maechler 382
    BLAS_extern void
71463 ripley 383
    F77_NAME(zsymm)(const char *side, const char *uplo, const int *m,
384
		    const int *n, const Rcomplex *alpha, const Rcomplex *a,
385
		    const int *lda, const Rcomplex *b, const int *ldb,
76585 ripley 386
		    const Rcomplex *beta, Rcomplex *c, const int *ldc
387
		    FCLEN FCLEN);
44687 maechler 388
    BLAS_extern void
71463 ripley 389
    F77_NAME(zsyr2k)(const char *uplo, const char *trans, int *n, int *k,
36367 ripley 390
		     Rcomplex *alpha, Rcomplex *a, int *lda, Rcomplex *b,
76585 ripley 391
		     int *ldb, Rcomplex *beta, Rcomplex *c, int *ldc
392
		     FCLEN FCLEN);
44687 maechler 393
    BLAS_extern void
71463 ripley 394
    F77_NAME(zsyrk)(const char *uplo, const char *trans, const  int *n,
395
		    const int *k, const Rcomplex *alpha, const Rcomplex *a,
396
		    const int *lda, const Rcomplex *beta, Rcomplex *c,
76585 ripley 397
		    const int *ldc FCLEN FCLEN);
44687 maechler 398
    BLAS_extern void
71463 ripley 399
    F77_NAME(ztbmv)(const char *uplo, const char *trans, const char *diag,
400
		    const int *n, const int *k, const Rcomplex *a,
76585 ripley 401
		    const int *lda, Rcomplex *x, const int *incx
402
		    FCLEN FCLEN FCLEN);
44687 maechler 403
    BLAS_extern void
71463 ripley 404
    F77_NAME(ztbsv)(const char *uplo, const char *trans, const char *diag,
405
		    const int *n, const int *k, const Rcomplex *a,
76585 ripley 406
		    const int *lda, Rcomplex *x, const int *incx
407
		    FCLEN FCLEN FCLEN);
44687 maechler 408
    BLAS_extern void
71463 ripley 409
    F77_NAME(ztpmv)(const char *uplo, const char *trans, const char *diag,
410
		    const int *n, const Rcomplex *ap, Rcomplex *x,
76585 ripley 411
		    const int *incx FCLEN FCLEN FCLEN);
44687 maechler 412
    BLAS_extern void
71463 ripley 413
    F77_NAME(ztpsv)(const char *uplo, const char *trans, const char *diag,
414
		    const int *n, const Rcomplex *ap, Rcomplex *x,
76585 ripley 415
		    const int *incx FCLEN FCLEN FCLEN);
44687 maechler 416
    BLAS_extern void
71463 ripley 417
    F77_NAME(ztrmm)(const char *side, const char *uplo, const char *transa,
418
		    const char *diag, const int *m, const int *n,
419
		    const Rcomplex *alpha, const Rcomplex *a,
76585 ripley 420
		    const int *lda, Rcomplex *b, const int *ldb
421
		    FCLEN FCLEN FCLEN FCLEN);
44687 maechler 422
    BLAS_extern void
71463 ripley 423
    F77_NAME(ztrmv)(const char *uplo, const char *trans, const char *diag,
424
		    const int *n, const Rcomplex *a, const int *lda,
76585 ripley 425
		    Rcomplex *x, const int *incx
426
		    FCLEN FCLEN FCLEN);
44687 maechler 427
    BLAS_extern void
71463 ripley 428
    F77_NAME(ztrsm)(const char *side, const char *uplo, const char *transa,
429
		    const char *diag, int *m, int *n, Rcomplex *alpha,
76585 ripley 430
		    Rcomplex *a, int *lda, Rcomplex *b, int *ldb
431
		    FCLEN FCLEN FCLEN FCLEN);
44687 maechler 432
    BLAS_extern void
71463 ripley 433
    F77_NAME(ztrsv)(const char *uplo, const char *trans, const char *diag,
434
		    const int *n, const Rcomplex *a, const int *lda,
76585 ripley 435
		    Rcomplex *x, const int *incx
436
		    FCLEN FCLEN FCLEN);
44669 maechler 437
/* #endif */
36367 ripley 438
 
23063 bates 439
#ifdef  __cplusplus
440
}
441
#endif
442
 
443
#endif /* R_BLAS_H */