The R Project SVN R

Rev

Rev 23175 | Rev 24735 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 23175 Rev 23236
Line 1... Line 1...
1
/*
1
/*
2
 *  R : A Computer Language for Statistical Data Analysis
2
 *  R : A Computer Language for Statistical Data Analysis
3
 *  Copyright (C) 1995, 1996  Robert Gentleman and Ross Ihaka
3
 *  Copyright (C) 1995, 1996  Robert Gentleman and Ross Ihaka
4
 *  Copyright (C) 1998-2002   The R Development Core Team.
4
 *  Copyright (C) 1998-2003   The R Development Core Team.
5
 *
5
 *
6
 *  This program is free software; you can redistribute it and/or modify
6
 *  This program is free software; you can redistribute it and/or modify
7
 *  it under the terms of the GNU General Public License as published by
7
 *  it under the terms of the GNU General Public License as published by
8
 *  the Free Software Foundation; either version 2 of the License, or
8
 *  the Free Software Foundation; either version 2 of the License, or
9
 *  (at your option) any later version.
9
 *  (at your option) any later version.
Line 351... Line 351...
351
	    ;
351
	    ;
352
	}
352
	}
353
#endif
353
#endif
354
}
354
}
355
 
355
 
-
 
356
#ifdef HAVE_DOUBLE_COMPLEX
356
/* DGEMM - perform one of the matrix-matrix operations    */
357
/* ZGEMM - perform one of the matrix-matrix operations    */
357
/* C := alpha*op( A )*op( B ) + beta*C */
358
/* C := alpha*op( A )*op( B ) + beta*C */
358
extern void 
359
extern void 
359
F77_NAME(zgemm)(const char *transa, const char *transb, const int *m,
360
F77_NAME(zgemm)(const char *transa, const char *transb, const int *m,
360
		const int *n, const int *k, const Rcomplex *alpha,
361
		const int *n, const int *k, const Rcomplex *alpha,
361
		const Rcomplex *a, const int *lda,
362
		const Rcomplex *a, const int *lda,
362
		const Rcomplex *b, const int *ldb,
363
		const Rcomplex *b, const int *ldb,
363
		const Rcomplex *beta, Rcomplex *c, const int *ldc);
364
		const Rcomplex *beta, Rcomplex *c, const int *ldc);
-
 
365
#endif
364
 
366
 
365
static void cmatprod(Rcomplex *x, int nrx, int ncx,
367
static void cmatprod(Rcomplex *x, int nrx, int ncx,
366
		     Rcomplex *y, int nry, int ncy, Rcomplex *z)
368
		     Rcomplex *y, int nry, int ncy, Rcomplex *z)
367
{
369
{
368
#ifdef IEEE_754
370
#if defined(HAVE_DOUBLE_COMPLEX) && defined(IEEE_754)
369
    char *transa = "N", *transb = "N";
371
    char *transa = "N", *transb = "N";
370
    int i;
372
    int i;
371
    Rcomplex one, zero;
373
    Rcomplex one, zero;
372
 
374
 
373
    one.r = 1.0; one.i = zero.r = zero.i = 0.0;
375
    one.r = 1.0; one.i = zero.r = zero.i = 0.0;