changeset 64:ddea89113517

* ATLAS libraries compiled for AMD64 (on Intel Core 2 Duo MacBook)
author Chris Cannam <c.cannam@qmul.ac.uk>
date Wed, 13 Feb 2008 13:44:40 +0000
parents b084e87b83e4
children 851560f7fca2
files build/linux/amd64/atlas/atlas_buildinfo.h build/linux/amd64/atlas/atlas_cNCmm.h build/linux/amd64/atlas/atlas_cacheedge.h build/linux/amd64/atlas/atlas_cmv.h build/linux/amd64/atlas/atlas_cmvN.h build/linux/amd64/atlas/atlas_cmvS.h build/linux/amd64/atlas/atlas_cmvT.h build/linux/amd64/atlas/atlas_cr1.h build/linux/amd64/atlas/atlas_csNKB.h build/linux/amd64/atlas/atlas_csysinfo.h build/linux/amd64/atlas/atlas_ctrsmXover.h build/linux/amd64/atlas/atlas_dNCmm.h build/linux/amd64/atlas/atlas_dmv.h build/linux/amd64/atlas/atlas_dmvN.h build/linux/amd64/atlas/atlas_dmvS.h build/linux/amd64/atlas/atlas_dmvT.h build/linux/amd64/atlas/atlas_dr1.h build/linux/amd64/atlas/atlas_dsysinfo.h build/linux/amd64/atlas/atlas_dtrsmXover.h build/linux/amd64/atlas/atlas_sNCmm.h build/linux/amd64/atlas/atlas_smv.h build/linux/amd64/atlas/atlas_smvN.h build/linux/amd64/atlas/atlas_smvS.h build/linux/amd64/atlas/atlas_smvT.h build/linux/amd64/atlas/atlas_sr1.h build/linux/amd64/atlas/atlas_ssysinfo.h build/linux/amd64/atlas/atlas_strsmXover.h build/linux/amd64/atlas/atlas_trsmNB.h build/linux/amd64/atlas/atlas_type.h build/linux/amd64/atlas/atlas_zNCmm.h build/linux/amd64/atlas/atlas_zdNKB.h build/linux/amd64/atlas/atlas_zmv.h build/linux/amd64/atlas/atlas_zmvN.h build/linux/amd64/atlas/atlas_zmvS.h build/linux/amd64/atlas/atlas_zmvT.h build/linux/amd64/atlas/atlas_zr1.h build/linux/amd64/atlas/atlas_zsysinfo.h build/linux/amd64/atlas/atlas_ztrsmXover.h build/linux/amd64/atlas/cXover.h build/linux/amd64/atlas/cmm.h build/linux/amd64/atlas/dXover.h build/linux/amd64/atlas/dmm.h build/linux/amd64/atlas/sXover.h build/linux/amd64/atlas/smm.h build/linux/amd64/atlas/zXover.h build/linux/amd64/atlas/zmm.h build/linux/amd64/cblas.h build/linux/amd64/clapack.h build/linux/amd64/libatlas.a build/linux/amd64/libcblas.a build/linux/amd64/libf77blas.a build/linux/amd64/liblapack.a
diffstat 48 files changed, 1586 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_buildinfo.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,31 @@
+#ifndef ATL_INSTINFO_H
+   #define ATL_INSTINFO_H
+
+#define ATL_ARCH "Core2Duo64SSE3"
+#define ATL_INSTFLAGS "-1 0 -a 1"
+#define ATL_F2CDEFS "-DAdd__ -DF77_INTEGER=int -DStringSunStyle"
+#define ATL_ARCHDEFS "-DATL_OS_Linux -DATL_ARCH_Core2Duo -DATL_CPUMHZ=1500 -DATL_SSE3 -DATL_SSE2 -DATL_SSE1 -DATL_USE64BITS -DATL_GAS_x8664"
+#define ATL_DKCFLAGS "-fomit-frame-pointer -mfpmath=sse -msse3 -O2 -fPIC -m64"
+#define ATL_DKC "gcc"
+#define ATL_SKCFLAGS "-fomit-frame-pointer -mfpmath=sse -msse3 -O2 -fPIC -m64"
+#define ATL_SKC "gcc"
+#define ATL_DMCFLAGS "-fomit-frame-pointer -mfpmath=sse -msse3 -O2 -fPIC -m64"
+#define ATL_DMC "gcc"
+#define ATL_SMCFLAGS "-fomit-frame-pointer -mfpmath=sse -msse3 -O2 -fPIC -m64"
+#define ATL_SMC "gcc"
+#define ATL_ICCFLAGS "-DL2SIZE=4194304 -I/home/cannam/ATLAS/build/include -I/home/cannam/ATLAS/build/..//include -I/home/cannam/ATLAS/build/..//include/contrib -DAdd__ -DF77_INTEGER=int -DStringSunStyle -DATL_OS_Linux -DATL_ARCH_Core2Duo -DATL_CPUMHZ=1500 -DATL_SSE3 -DATL_SSE2 -DATL_SSE1 -DATL_USE64BITS -DATL_GAS_x8664 -DPentiumCPS=1000 -fomit-frame-pointer -mfpmath=sse -msse3 -O2 -fPIC -m64"
+#define ATL_ICC "gcc-4.2"
+#define ATL_F77FLAGS "-O -fPIC -m64"
+#define ATL_F77 "g77"
+#define ATL_DKCVERS "gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)"
+#define ATL_SKCVERS "gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)"
+#define ATL_DMCVERS "gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)"
+#define ATL_SMCVERS "gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)"
+#define ATL_ICCVERS "gcc-4.2 (GCC) 4.2.1 (Ubuntu 4.2.1-5ubuntu4)"
+#define ATL_F77VERS "GNU Fortran (GCC) 3.4.6 (Ubuntu 3.4.6-6ubuntu2)"
+#define ATL_SYSINFO "Linux yves-laptop 2.6.22-14-generic #1 SMP Thu Jan 31 23:33:13 UTC 2008 x86_64 GNU/Linux"
+#define ATL_DATE    "Wed Feb 13 11:25:06 GMT 2008"
+#define ATL_UNAM    "cannam"
+#define ATL_VERS    "3.8.0"
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_cNCmm.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,23 @@
+#ifndef CMM_H
+   #define CMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 1
+   #define ATL_mmMU  12
+   #define ATL_mmNU  1
+   #define ATL_mmKU  72
+   #define MB 48
+   #define NB 48
+   #define KB 48
+   #define NBNB 2304
+   #define MBNB 2304
+   #define MBKB 2304
+   #define NBKB 2304
+   #define NB2 96
+   #define NBNB2 4608
+
+   #define ATL_MulByNB(N_) ((N_) * 48)
+   #define ATL_DivByNB(N_) ((N_) / 48)
+   #define ATL_MulByNBNB(N_) ((N_) * 2304)
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_cacheedge.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,4 @@
+#ifndef ATLAS_CACHEEDGE_H
+   #define ATLAS_CACHEEDGE_H
+   #define CacheEdge 0
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_cmv.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,9 @@
+#ifndef ATLAS_CMV_H
+#define ATLAS_CMV_H
+
+#define ATL_L1mvelts 3932
+#include "atlas_cmvN.h"
+#include "atlas_cmvT.h"
+#include "atlas_cmvS.h"
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_cmvN.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,21 @@
+#ifndef ATLAS_MVN_H
+#define ATLAS_MVN_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvNMU 32
+#define ATL_mvNNU 1
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#define ATL_AXPYMV
+
+#define ATL_GetPartMVN(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvNNU<<1)) / ((ATL_mvNNU<<1)+1); \
+   if (*(mb_) > ATL_mvNMU) *(mb_) = ATL_mvNMU*( *(mb_)/ATL_mvNMU ); \
+   else *(mb_) = ATL_mvNMU; \
+   *(nb_) = ATL_mvNNU; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_cmvS.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVS_H
+#define ATLAS_MVS_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvSMU 2
+#define ATL_mvSNU 32
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_cmvN.h"
+#endif
+#ifndef ATL_mvTNU
+   #include "atlas_cmvT.h"
+#endif
+#define ATL_GetPartSYMV(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = ATL_mvSMU; \
+   *(mb_) = 320; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_cmvT.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVT_H
+#define ATLAS_MVT_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvTMU 2
+#define ATL_mvTNU 8
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_cmvN.h"
+#endif
+
+#define ATL_GetPartMVT(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvTMU<<1)) / ((ATL_mvTMU<<1)+1); \
+   if (*(mb_) > ATL_mvTNU) *(mb_) = (*(mb_)/ATL_mvTNU)*ATL_mvTNU; \
+   else (*mb_) = ATL_mvTNU; \
+   *(nb_) = ATL_mvTMU; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_cr1.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,16 @@
+#ifndef ATLAS_CR1_H
+#define ATLAS_CR1_H
+
+#define ATL_L1r1elts 3809
+#define ATL_r1MU 16
+#define ATL_r1NU 1
+
+#define ATL_GetPartR1(A_, lda_, mb_, nb_) \
+{ \
+   (mb_) = (ATL_L1r1elts - (ATL_r1NU+ATL_r1NU)) / (ATL_r1NU+ATL_r1NU+1); \
+   if ((mb_) > ATL_r1MU) (mb_) = ATL_r1MU*((mb_)/ATL_r1MU); \
+   else (mb_) = ATL_r1MU; \
+   (nb_) = ATL_r1NU; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_csNKB.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,4 @@
+#ifndef ATLAS_CSNKB_H
+   #define ATLAS_CSNKB_H
+   #define ATL_CSNKB 0
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_csysinfo.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,11 @@
+#ifndef ATL_CSYSINFO_H
+   #define ATL_CSYSINFO_H
+
+#define ATL_MULADD
+#define ATL_L1elts 2048
+#define ATL_fplat  4
+#define ATL_lbnreg 16
+#define ATL_mmnreg 18
+#define ATL_nkflop 879334
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_dNCmm.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,23 @@
+#ifndef DMM_H
+   #define DMM_H
+
+   #define ATL_mmNOMULADD
+   #define ATL_mmLAT 1
+   #define ATL_mmMU  12
+   #define ATL_mmNU  1
+   #define ATL_mmKU  56
+   #define MB 24
+   #define NB 24
+   #define KB 24
+   #define NBNB 576
+   #define MBNB 576
+   #define MBKB 576
+   #define NBKB 576
+   #define NB2 48
+   #define NBNB2 1152
+
+   #define ATL_MulByNB(N_) ((N_) * 24)
+   #define ATL_DivByNB(N_) ((N_) / 24)
+   #define ATL_MulByNBNB(N_) ((N_) * 576)
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_dmv.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,9 @@
+#ifndef ATLAS_DMV_H
+#define ATLAS_DMV_H
+
+#define ATL_L1mvelts 3317
+#include "atlas_dmvN.h"
+#include "atlas_dmvT.h"
+#include "atlas_dmvS.h"
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_dmvN.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,21 @@
+#ifndef ATLAS_MVN_H
+#define ATLAS_MVN_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvNMU 32
+#define ATL_mvNNU 1
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#define ATL_AXPYMV
+
+#define ATL_GetPartMVN(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvNNU<<1)) / ((ATL_mvNNU<<1)+1); \
+   if (*(mb_) > ATL_mvNMU) *(mb_) = ATL_mvNMU*( *(mb_)/ATL_mvNMU ); \
+   else *(mb_) = ATL_mvNMU; \
+   *(nb_) = ATL_mvNNU; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_dmvS.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVS_H
+#define ATLAS_MVS_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvSMU 2
+#define ATL_mvSNU 32
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_dmvN.h"
+#endif
+#ifndef ATL_mvTNU
+   #include "atlas_dmvT.h"
+#endif
+#define ATL_GetPartSYMV(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = ATL_mvSMU; \
+   *(mb_) = 256; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_dmvT.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVT_H
+#define ATLAS_MVT_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvTMU 2
+#define ATL_mvTNU 16
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_dmvN.h"
+#endif
+
+#define ATL_GetPartMVT(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvTMU<<1)) / ((ATL_mvTMU<<1)+1); \
+   if (*(mb_) > ATL_mvTNU) *(mb_) = (*(mb_)/ATL_mvTNU)*ATL_mvTNU; \
+   else (*mb_) = ATL_mvTNU; \
+   *(nb_) = ATL_mvTMU; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_dr1.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,16 @@
+#ifndef ATLAS_DR1_H
+#define ATLAS_DR1_H
+
+#define ATL_L1r1elts 3809
+#define ATL_r1MU 16
+#define ATL_r1NU 1
+
+#define ATL_GetPartR1(A_, lda_, mb_, nb_) \
+{ \
+   (mb_) = (ATL_L1r1elts - (ATL_r1NU+ATL_r1NU)) / (ATL_r1NU+ATL_r1NU+1); \
+   if ((mb_) > ATL_r1MU) (mb_) = ATL_r1MU*((mb_)/ATL_r1MU); \
+   else (mb_) = ATL_r1MU; \
+   (nb_) = ATL_r1NU; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_dsysinfo.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,11 @@
+#ifndef ATL_DSYSINFO_H
+   #define ATL_DSYSINFO_H
+
+#define ATL_MULADD
+#define ATL_L1elts 4096
+#define ATL_fplat  12
+#define ATL_lbnreg 16
+#define ATL_mmnreg 18
+#define ATL_nkflop 2159859
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_sNCmm.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,23 @@
+#ifndef SMM_H
+   #define SMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 1
+   #define ATL_mmMU  12
+   #define ATL_mmNU  1
+   #define ATL_mmKU  80
+   #define MB 36
+   #define NB 36
+   #define KB 36
+   #define NBNB 1296
+   #define MBNB 1296
+   #define MBKB 1296
+   #define NBKB 1296
+   #define NB2 72
+   #define NBNB2 2592
+
+   #define ATL_MulByNB(N_) ((N_) * 36)
+   #define ATL_DivByNB(N_) ((N_) / 36)
+   #define ATL_MulByNBNB(N_) ((N_) * 1296)
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_smv.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,9 @@
+#ifndef ATLAS_SMV_H
+#define ATLAS_SMV_H
+
+#define ATL_L1mvelts 7127
+#include "atlas_smvN.h"
+#include "atlas_smvT.h"
+#include "atlas_smvS.h"
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_smvN.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,21 @@
+#ifndef ATLAS_MVN_H
+#define ATLAS_MVN_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvNMU 32
+#define ATL_mvNNU 1
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#define ATL_AXPYMV
+
+#define ATL_GetPartMVN(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvNNU<<1)) / ((ATL_mvNNU<<1)+1); \
+   if (*(mb_) > ATL_mvNMU) *(mb_) = ATL_mvNMU*( *(mb_)/ATL_mvNMU ); \
+   else *(mb_) = ATL_mvNMU; \
+   *(nb_) = ATL_mvNNU; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_smvS.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVS_H
+#define ATLAS_MVS_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvSMU 2
+#define ATL_mvSNU 32
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_smvN.h"
+#endif
+#ifndef ATL_mvTNU
+   #include "atlas_smvT.h"
+#endif
+#define ATL_GetPartSYMV(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = ATL_mvSMU; \
+   *(mb_) = 576; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_smvT.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVT_H
+#define ATLAS_MVT_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvTMU 2
+#define ATL_mvTNU 16
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_smvN.h"
+#endif
+
+#define ATL_GetPartMVT(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvTMU<<1)) / ((ATL_mvTMU<<1)+1); \
+   if (*(mb_) > ATL_mvTNU) *(mb_) = (*(mb_)/ATL_mvTNU)*ATL_mvTNU; \
+   else (*mb_) = ATL_mvTNU; \
+   *(nb_) = ATL_mvTMU; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_sr1.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,16 @@
+#ifndef ATLAS_SR1_H
+#define ATLAS_SR1_H
+
+#define ATL_L1r1elts 7127
+#define ATL_r1MU 16
+#define ATL_r1NU 1
+
+#define ATL_GetPartR1(A_, lda_, mb_, nb_) \
+{ \
+   (mb_) = (ATL_L1r1elts - (ATL_r1NU+ATL_r1NU)) / (ATL_r1NU+ATL_r1NU+1); \
+   if ((mb_) > ATL_r1MU) (mb_) = ATL_r1MU*((mb_)/ATL_r1MU); \
+   else (mb_) = ATL_r1MU; \
+   (nb_) = ATL_r1NU; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_ssysinfo.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,11 @@
+#ifndef ATL_SSYSINFO_H
+   #define ATL_SSYSINFO_H
+
+#define ATL_MULADD
+#define ATL_L1elts 8192
+#define ATL_fplat  4
+#define ATL_lbnreg 16
+#define ATL_mmnreg 18
+#define ATL_nkflop 879334
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_trsmNB.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,12 @@
+#ifndef ATLAS_TRSMNB_H
+   #define ATLAS_TRSMNB_H
+
+   #ifdef SREAL
+      #define TRSM_NB 60
+   #elif defined(DREAL)
+      #define TRSM_NB 12
+   #else
+      #define TRSM_NB 4
+   #endif
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_type.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,20 @@
+#ifndef ATLAS_TYPE_H
+#define ATLAS_TYPE_H
+
+#define ATL_isize 4
+#define ATL_ssize 4
+#define ATL_dsize 8
+#define ATL_csize 8
+#define ATL_zsize 16
+#define ATL_iMulBySize(N_) ((((N_)) << 2))
+#define ATL_sMulBySize(N_) ((((N_)) << 2))
+#define ATL_dMulBySize(N_) ((((N_)) << 3))
+#define ATL_cMulBySize(N_) ((((N_)) << 3))
+#define ATL_zMulBySize(N_) ((((N_)) << 4))
+#define ATL_iDivBySize(N_) ((N_) >> 2)
+#define ATL_sDivBySize(N_) ((N_) >> 2)
+#define ATL_cDivBySize(N_) ((N_) >> 3)
+#define ATL_dDivBySize(N_) ((N_) >> 3)
+#define ATL_zDivBySize(N_) ((N_) >> 4)
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_zNCmm.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,23 @@
+#ifndef ZMM_H
+   #define ZMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 1
+   #define ATL_mmMU  12
+   #define ATL_mmNU  1
+   #define ATL_mmKU  48
+   #define MB 36
+   #define NB 36
+   #define KB 36
+   #define NBNB 1296
+   #define MBNB 1296
+   #define MBKB 1296
+   #define NBKB 1296
+   #define NB2 72
+   #define NBNB2 2592
+
+   #define ATL_MulByNB(N_) ((N_) * 36)
+   #define ATL_DivByNB(N_) ((N_) / 36)
+   #define ATL_MulByNBNB(N_) ((N_) * 1296)
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_zdNKB.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,4 @@
+#ifndef ATLAS_ZDNKB_H
+   #define ATLAS_ZDNKB_H
+   #define ATL_ZDNKB 0
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_zmv.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,9 @@
+#ifndef ATLAS_ZMV_H
+#define ATLAS_ZMV_H
+
+#define ATL_L1mvelts 2048
+#include "atlas_zmvN.h"
+#include "atlas_zmvT.h"
+#include "atlas_zmvS.h"
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_zmvN.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,21 @@
+#ifndef ATLAS_MVN_H
+#define ATLAS_MVN_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvNMU 32
+#define ATL_mvNNU 1
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#define ATL_AXPYMV
+
+#define ATL_GetPartMVN(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvNNU<<1)) / ((ATL_mvNNU<<1)+1); \
+   if (*(mb_) > ATL_mvNMU) *(mb_) = ATL_mvNMU*( *(mb_)/ATL_mvNMU ); \
+   else *(mb_) = ATL_mvNMU; \
+   *(nb_) = ATL_mvNNU; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_zmvS.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVS_H
+#define ATLAS_MVS_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvSMU 2
+#define ATL_mvSNU 32
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_zmvN.h"
+#endif
+#ifndef ATL_mvTNU
+   #include "atlas_zmvT.h"
+#endif
+#define ATL_GetPartSYMV(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = ATL_mvSMU; \
+   *(mb_) = 160; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_zmvT.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVT_H
+#define ATLAS_MVT_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvTMU 2
+#define ATL_mvTNU 8
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_zmvN.h"
+#endif
+
+#define ATL_GetPartMVT(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvTMU<<1)) / ((ATL_mvTMU<<1)+1); \
+   if (*(mb_) > ATL_mvTNU) *(mb_) = (*(mb_)/ATL_mvTNU)*ATL_mvTNU; \
+   else (*mb_) = ATL_mvTNU; \
+   *(nb_) = ATL_mvTMU; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_zr1.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,16 @@
+#ifndef ATLAS_ZR1_H
+#define ATLAS_ZR1_H
+
+#define ATL_L1r1elts 2048
+#define ATL_r1MU 16
+#define ATL_r1NU 1
+
+#define ATL_GetPartR1(A_, lda_, mb_, nb_) \
+{ \
+   (mb_) = (ATL_L1r1elts - (ATL_r1NU+ATL_r1NU)) / (ATL_r1NU+ATL_r1NU+1); \
+   if ((mb_) > ATL_r1MU) (mb_) = ATL_r1MU*((mb_)/ATL_r1MU); \
+   else (mb_) = ATL_r1MU; \
+   (nb_) = ATL_r1NU; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/atlas_zsysinfo.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,11 @@
+#ifndef ATL_ZSYSINFO_H
+   #define ATL_ZSYSINFO_H
+
+#define ATL_MULADD
+#define ATL_L1elts 4096
+#define ATL_fplat  12
+#define ATL_lbnreg 16
+#define ATL_mmnreg 18
+#define ATL_nkflop 2159859
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/cXover.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,27 @@
+#ifndef CXOVER_H
+#define CXOVER_H
+
+#define ATL_3NB 216
+#define NN_MNK_M 7200
+#define NN_MNK_N 7200
+#define NN_MNK_MN 51840
+#define NN_MNK_K 16200
+#define NN_MNK_GE 1000
+#define NT_MNK_M 7200
+#define NT_MNK_N 7200
+#define NT_MNK_MN 51840
+#define NT_MNK_K 16200
+#define NT_MNK_GE 1000
+#define TN_MNK_M 7200
+#define TN_MNK_N 7200
+#define TN_MNK_MN 51840
+#define TN_MNK_K 41472
+#define TN_MNK_GE 3375
+#define TT_MNK_M 7200
+#define TT_MNK_N 7200
+#define TT_MNK_MN 51840
+#define TT_MNK_K 16200
+#define TT_MNK_GE 1000
+#define C2R_K 278
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/cmm.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,51 @@
+#ifndef CMM_H
+   #define CMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 1
+   #define ATL_mmMU  12
+   #define ATL_mmNU  1
+   #define ATL_mmKU  72
+   #define MB 72
+   #define NB 72
+   #define KB 72
+   #define NBNB 5184
+   #define MBNB 5184
+   #define MBKB 5184
+   #define NBKB 5184
+   #define NB2 144
+   #define NBNB2 10368
+
+   #define ATL_MulByNB(N_) ((N_) * 72)
+   #define ATL_DivByNB(N_) ((N_) / 72)
+   #define ATL_MulByNBNB(N_) ((N_) * 5184)
+void ATL_cJIK72x72x72TN72x72x0_a1_b0(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+void ATL_cJIK72x72x72TN72x72x0_a1_b1(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+void ATL_cJIK72x72x72TN72x72x0_a1_bX(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+
+   #define NBmm_b1(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_cJIK72x72x72TN72x72x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, ATL_rnone, C_, ldc_); \
+   ATL_cJIK72x72x72TN72x72x0_a1_b1(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, ATL_rone, (C_)+1, ldc_); \
+   ATL_cJIK72x72x72TN72x72x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_cJIK72x72x72TN72x72x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define NBmm_b0(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_cJIK72x72x72TN72x72x0_a1_b0(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, ATL_rzero, C_, ldc_); \
+   ATL_cJIK72x72x72TN72x72x0_a1_b0(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, ATL_rzero, (C_)+1, ldc_); \
+   ATL_cJIK72x72x72TN72x72x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_cJIK72x72x72TN72x72x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define NBmm_bX(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_cJIK72x72x72TN72x72x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, -(be_), C_, ldc_); \
+   ATL_cJIK72x72x72TN72x72x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, be_, (C_)+1, ldc_); \
+   ATL_cJIK72x72x72TN72x72x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_cJIK72x72x72TN72x72x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define rNBmm_b1 ATL_sJIK72x72x72TN72x72x0_a1_b1
+   #define rNBmm_b0 ATL_sJIK72x72x72TN72x72x0_a1_b0
+   #define rNBmm_bX ATL_sJIK72x72x72TN72x72x0_a1_bX
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/dXover.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,26 @@
+#ifndef DXOVER_H
+#define DXOVER_H
+
+#define ATL_3NB 168
+#define NN_MNK_M 5600
+#define NN_MNK_N 12600
+#define NN_MNK_MN 31360
+#define NN_MNK_K 80864
+#define NN_MNK_GE 13824
+#define NT_MNK_M 5600
+#define NT_MNK_N 5600
+#define NT_MNK_MN 31360
+#define NT_MNK_K 32256
+#define NT_MNK_GE 3375
+#define TN_MNK_M 5600
+#define TN_MNK_N 5600
+#define TN_MNK_MN 31360
+#define TN_MNK_K 80864
+#define TN_MNK_GE 13824
+#define TT_MNK_M 5600
+#define TT_MNK_N 12600
+#define TT_MNK_MN 31360
+#define TT_MNK_K 32256
+#define TT_MNK_GE 3375
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/dmm.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,27 @@
+#ifndef DMM_H
+   #define DMM_H
+
+   #define ATL_mmNOMULADD
+   #define ATL_mmLAT 1
+   #define ATL_mmMU  12
+   #define ATL_mmNU  1
+   #define ATL_mmKU  56
+   #define MB 56
+   #define NB 56
+   #define KB 56
+   #define NBNB 3136
+   #define MBNB 3136
+   #define MBKB 3136
+   #define NBKB 3136
+   #define NB2 112
+   #define NBNB2 6272
+
+   #define ATL_MulByNB(N_) ((N_) * 56)
+   #define ATL_DivByNB(N_) ((N_) / 56)
+   #define ATL_MulByNBNB(N_) ((N_) * 3136)
+   #define NBmm ATL_dJIK56x56x56TN56x56x0_a1_b1
+   #define NBmm_b1 ATL_dJIK56x56x56TN56x56x0_a1_b1
+   #define NBmm_b0 ATL_dJIK56x56x56TN56x56x0_a1_b0
+   #define NBmm_bX ATL_dJIK56x56x56TN56x56x0_a1_bX
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/sXover.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,26 @@
+#ifndef SXOVER_H
+#define SXOVER_H
+
+#define ATL_3NB 216
+#define NN_MNK_M 7200
+#define NN_MNK_N 16200
+#define NN_MNK_MN 51840
+#define NN_MNK_K 41472
+#define NN_MNK_GE 13824
+#define NT_MNK_M 7200
+#define NT_MNK_N 7200
+#define NT_MNK_MN 51840
+#define NT_MNK_K 16200
+#define NT_MNK_GE 3375
+#define TN_MNK_M 7200
+#define TN_MNK_N 16200
+#define TN_MNK_MN 51840
+#define TN_MNK_K 352800
+#define TN_MNK_GE 27000
+#define TT_MNK_M 7200
+#define TT_MNK_N 7200
+#define TT_MNK_MN 51840
+#define TT_MNK_K 41472
+#define TT_MNK_GE 3375
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/smm.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,27 @@
+#ifndef SMM_H
+   #define SMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 1
+   #define ATL_mmMU  12
+   #define ATL_mmNU  1
+   #define ATL_mmKU  80
+   #define MB 80
+   #define NB 80
+   #define KB 80
+   #define NBNB 6400
+   #define MBNB 6400
+   #define MBKB 6400
+   #define NBKB 6400
+   #define NB2 160
+   #define NBNB2 12800
+
+   #define ATL_MulByNB(N_) ((N_) * 80)
+   #define ATL_DivByNB(N_) ((N_) / 80)
+   #define ATL_MulByNBNB(N_) ((N_) * 6400)
+   #define NBmm ATL_sJIK80x80x80TN80x80x0_a1_b1
+   #define NBmm_b1 ATL_sJIK80x80x80TN80x80x0_a1_b1
+   #define NBmm_b0 ATL_sJIK80x80x80TN80x80x0_a1_b0
+   #define NBmm_bX ATL_sJIK80x80x80TN80x80x0_a1_bX
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/zXover.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,27 @@
+#ifndef ZXOVER_H
+#define ZXOVER_H
+
+#define ATL_3NB 144
+#define NN_MNK_M 4800
+#define NN_MNK_N 4800
+#define NN_MNK_MN 23040
+#define NN_MNK_K 4800
+#define NN_MNK_GE 1000
+#define NT_MNK_M 4800
+#define NT_MNK_N 4800
+#define NT_MNK_MN 23040
+#define NT_MNK_K 4800
+#define NT_MNK_GE 1000
+#define TN_MNK_M 4800
+#define TN_MNK_N 4800
+#define TN_MNK_MN 23040
+#define TN_MNK_K 10800
+#define TN_MNK_GE 1000
+#define TT_MNK_M 4800
+#define TT_MNK_N 4800
+#define TT_MNK_MN 23040
+#define TT_MNK_K 10800
+#define TT_MNK_GE 1000
+#define C2R_K 570
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/atlas/zmm.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,51 @@
+#ifndef ZMM_H
+   #define ZMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 1
+   #define ATL_mmMU  12
+   #define ATL_mmNU  1
+   #define ATL_mmKU  48
+   #define MB 48
+   #define NB 48
+   #define KB 48
+   #define NBNB 2304
+   #define MBNB 2304
+   #define MBKB 2304
+   #define NBKB 2304
+   #define NB2 96
+   #define NBNB2 4608
+
+   #define ATL_MulByNB(N_) ((N_) * 48)
+   #define ATL_DivByNB(N_) ((N_) / 48)
+   #define ATL_MulByNBNB(N_) ((N_) * 2304)
+void ATL_zJIK48x48x48TN48x48x0_a1_b0(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+void ATL_zJIK48x48x48TN48x48x0_a1_b1(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+void ATL_zJIK48x48x48TN48x48x0_a1_bX(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+
+   #define NBmm_b1(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, ATL_rnone, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b1(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, ATL_rone, (C_)+1, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define NBmm_b0(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_zJIK48x48x48TN48x48x0_a1_b0(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, ATL_rzero, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b0(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, ATL_rzero, (C_)+1, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define NBmm_bX(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, -(be_), C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, be_, (C_)+1, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define rNBmm_b1 ATL_dJIK48x48x48TN48x48x0_a1_b1
+   #define rNBmm_b0 ATL_dJIK48x48x48TN48x48x0_a1_b0
+   #define rNBmm_bX ATL_dJIK48x48x48TN48x48x0_a1_bX
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/cblas.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,596 @@
+#ifndef CBLAS_H
+
+#ifndef CBLAS_ENUM_DEFINED_H
+   #define CBLAS_ENUM_DEFINED_H
+   enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102 };
+   enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113,
+                         AtlasConj=114};
+   enum CBLAS_UPLO  {CblasUpper=121, CblasLower=122};
+   enum CBLAS_DIAG  {CblasNonUnit=131, CblasUnit=132};
+   enum CBLAS_SIDE  {CblasLeft=141, CblasRight=142};
+#endif
+
+#ifndef CBLAS_ENUM_ONLY
+#define CBLAS_H
+#define CBLAS_INDEX int
+
+int cblas_errprn(int ierr, int info, char *form, ...);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 1 BLAS functions (complex are recast as routines)
+ * ===========================================================================
+ */
+float  cblas_sdsdot(const int N, const float alpha, const float *X,
+                    const int incX, const float *Y, const int incY);
+double cblas_dsdot(const int N, const float *X, const int incX, const float *Y,
+                   const int incY);
+float  cblas_sdot(const int N, const float  *X, const int incX,
+                  const float  *Y, const int incY);
+double cblas_ddot(const int N, const double *X, const int incX,
+                  const double *Y, const int incY);
+/*
+ * Functions having prefixes Z and C only
+ */
+void   cblas_cdotu_sub(const int N, const void *X, const int incX,
+                       const void *Y, const int incY, void *dotu);
+void   cblas_cdotc_sub(const int N, const void *X, const int incX,
+                       const void *Y, const int incY, void *dotc);
+
+void   cblas_zdotu_sub(const int N, const void *X, const int incX,
+                       const void *Y, const int incY, void *dotu);
+void   cblas_zdotc_sub(const int N, const void *X, const int incX,
+                       const void *Y, const int incY, void *dotc);
+
+
+/*
+ * Functions having prefixes S D SC DZ
+ */
+float  cblas_snrm2(const int N, const float *X, const int incX);
+float  cblas_sasum(const int N, const float *X, const int incX);
+
+double cblas_dnrm2(const int N, const double *X, const int incX);
+double cblas_dasum(const int N, const double *X, const int incX);
+
+float  cblas_scnrm2(const int N, const void *X, const int incX);
+float  cblas_scasum(const int N, const void *X, const int incX);
+
+double cblas_dznrm2(const int N, const void *X, const int incX);
+double cblas_dzasum(const int N, const void *X, const int incX);
+
+
+/*
+ * Functions having standard 4 prefixes (S D C Z)
+ */
+CBLAS_INDEX cblas_isamax(const int N, const float  *X, const int incX);
+CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
+CBLAS_INDEX cblas_icamax(const int N, const void   *X, const int incX);
+CBLAS_INDEX cblas_izamax(const int N, const void   *X, const int incX);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 1 BLAS routines
+ * ===========================================================================
+ */
+
+/*
+ * Routines with standard 4 prefixes (s, d, c, z)
+ */
+void cblas_sswap(const int N, float *X, const int incX,
+                 float *Y, const int incY);
+void cblas_scopy(const int N, const float *X, const int incX,
+                 float *Y, const int incY);
+void cblas_saxpy(const int N, const float alpha, const float *X,
+                 const int incX, float *Y, const int incY);
+void catlas_saxpby(const int N, const float alpha, const float *X,
+                  const int incX, const float beta, float *Y, const int incY);
+void catlas_sset
+   (const int N, const float alpha, float *X, const int incX);
+
+void cblas_dswap(const int N, double *X, const int incX,
+                 double *Y, const int incY);
+void cblas_dcopy(const int N, const double *X, const int incX,
+                 double *Y, const int incY);
+void cblas_daxpy(const int N, const double alpha, const double *X,
+                 const int incX, double *Y, const int incY);
+void catlas_daxpby(const int N, const double alpha, const double *X,
+                  const int incX, const double beta, double *Y, const int incY);
+void catlas_dset
+   (const int N, const double alpha, double *X, const int incX);
+
+void cblas_cswap(const int N, void *X, const int incX,
+                 void *Y, const int incY);
+void cblas_ccopy(const int N, const void *X, const int incX,
+                 void *Y, const int incY);
+void cblas_caxpy(const int N, const void *alpha, const void *X,
+                 const int incX, void *Y, const int incY);
+void catlas_caxpby(const int N, const void *alpha, const void *X,
+                  const int incX, const void *beta, void *Y, const int incY);
+void catlas_cset
+   (const int N, const void *alpha, void *X, const int incX);
+
+void cblas_zswap(const int N, void *X, const int incX,
+                 void *Y, const int incY);
+void cblas_zcopy(const int N, const void *X, const int incX,
+                 void *Y, const int incY);
+void cblas_zaxpy(const int N, const void *alpha, const void *X,
+                 const int incX, void *Y, const int incY);
+void catlas_zaxpby(const int N, const void *alpha, const void *X,
+                  const int incX, const void *beta, void *Y, const int incY);
+void catlas_zset
+   (const int N, const void *alpha, void *X, const int incX);
+
+
+/*
+ * Routines with S and D prefix only
+ */
+void cblas_srotg(float *a, float *b, float *c, float *s);
+void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P);
+void cblas_srot(const int N, float *X, const int incX,
+                float *Y, const int incY, const float c, const float s);
+void cblas_srotm(const int N, float *X, const int incX,
+                float *Y, const int incY, const float *P);
+
+void cblas_drotg(double *a, double *b, double *c, double *s);
+void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P);
+void cblas_drot(const int N, double *X, const int incX,
+                double *Y, const int incY, const double c, const double s);
+void cblas_drotm(const int N, double *X, const int incX,
+                double *Y, const int incY, const double *P);
+
+
+/*
+ * Routines with S D C Z CS and ZD prefixes
+ */
+void cblas_sscal(const int N, const float alpha, float *X, const int incX);
+void cblas_dscal(const int N, const double alpha, double *X, const int incX);
+void cblas_cscal(const int N, const void *alpha, void *X, const int incX);
+void cblas_zscal(const int N, const void *alpha, void *X, const int incX);
+void cblas_csscal(const int N, const float alpha, void *X, const int incX);
+void cblas_zdscal(const int N, const double alpha, void *X, const int incX);
+
+/*
+ * Extra reference routines provided by ATLAS, but not mandated by the standard
+ */
+void cblas_crotg(void *a, void *b, void *c, void *s);
+void cblas_zrotg(void *a, void *b, void *c, void *s);
+void cblas_csrot(const int N, void *X, const int incX, void *Y, const int incY,
+                 const float c, const float s);
+void cblas_zdrot(const int N, void *X, const int incX, void *Y, const int incY,
+                 const double c, const double s);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 2 BLAS
+ * ===========================================================================
+ */
+
+/*
+ * Routines with standard 4 prefixes (S, D, C, Z)
+ */
+void cblas_sgemv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const float alpha, const float *A, const int lda,
+                 const float *X, const int incX, const float beta,
+                 float *Y, const int incY);
+void cblas_sgbmv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const int KL, const int KU, const float alpha,
+                 const float *A, const int lda, const float *X,
+                 const int incX, const float beta, float *Y, const int incY);
+void cblas_strmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const float *A, const int lda,
+                 float *X, const int incX);
+void cblas_stbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const float *A, const int lda,
+                 float *X, const int incX);
+void cblas_stpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const float *Ap, float *X, const int incX);
+void cblas_strsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const float *A, const int lda, float *X,
+                 const int incX);
+void cblas_stbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const float *A, const int lda,
+                 float *X, const int incX);
+void cblas_stpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const float *Ap, float *X, const int incX);
+
+void cblas_dgemv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const double alpha, const double *A, const int lda,
+                 const double *X, const int incX, const double beta,
+                 double *Y, const int incY);
+void cblas_dgbmv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const int KL, const int KU, const double alpha,
+                 const double *A, const int lda, const double *X,
+                 const int incX, const double beta, double *Y, const int incY);
+void cblas_dtrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const double *A, const int lda,
+                 double *X, const int incX);
+void cblas_dtbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const double *A, const int lda,
+                 double *X, const int incX);
+void cblas_dtpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const double *Ap, double *X, const int incX);
+void cblas_dtrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const double *A, const int lda, double *X,
+                 const int incX);
+void cblas_dtbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const double *A, const int lda,
+                 double *X, const int incX);
+void cblas_dtpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const double *Ap, double *X, const int incX);
+
+void cblas_cgemv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *X, const int incX, const void *beta,
+                 void *Y, const int incY);
+void cblas_cgbmv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const int KL, const int KU, const void *alpha,
+                 const void *A, const int lda, const void *X,
+                 const int incX, const void *beta, void *Y, const int incY);
+void cblas_ctrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ctbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ctpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *Ap, void *X, const int incX);
+void cblas_ctrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *A, const int lda, void *X,
+                 const int incX);
+void cblas_ctbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ctpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *Ap, void *X, const int incX);
+
+void cblas_zgemv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *X, const int incX, const void *beta,
+                 void *Y, const int incY);
+void cblas_zgbmv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const int KL, const int KU, const void *alpha,
+                 const void *A, const int lda, const void *X,
+                 const int incX, const void *beta, void *Y, const int incY);
+void cblas_ztrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ztbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ztpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *Ap, void *X, const int incX);
+void cblas_ztrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *A, const int lda, void *X,
+                 const int incX);
+void cblas_ztbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ztpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *Ap, void *X, const int incX);
+
+
+/*
+ * Routines with S and D prefixes only
+ */
+void cblas_ssymv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const float alpha, const float *A,
+                 const int lda, const float *X, const int incX,
+                 const float beta, float *Y, const int incY);
+void cblas_ssbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const int K, const float alpha, const float *A,
+                 const int lda, const float *X, const int incX,
+                 const float beta, float *Y, const int incY);
+void cblas_sspmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const float alpha, const float *Ap,
+                 const float *X, const int incX,
+                 const float beta, float *Y, const int incY);
+void cblas_sger(const enum CBLAS_ORDER Order, const int M, const int N,
+                const float alpha, const float *X, const int incX,
+                const float *Y, const int incY, float *A, const int lda);
+void cblas_ssyr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const float *X,
+                const int incX, float *A, const int lda);
+void cblas_sspr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const float *X,
+                const int incX, float *Ap);
+void cblas_ssyr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const float *X,
+                const int incX, const float *Y, const int incY, float *A,
+                const int lda);
+void cblas_sspr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const float *X,
+                const int incX, const float *Y, const int incY, float *A);
+
+void cblas_dsymv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const double alpha, const double *A,
+                 const int lda, const double *X, const int incX,
+                 const double beta, double *Y, const int incY);
+void cblas_dsbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const int K, const double alpha, const double *A,
+                 const int lda, const double *X, const int incX,
+                 const double beta, double *Y, const int incY);
+void cblas_dspmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const double alpha, const double *Ap,
+                 const double *X, const int incX,
+                 const double beta, double *Y, const int incY);
+void cblas_dger(const enum CBLAS_ORDER Order, const int M, const int N,
+                const double alpha, const double *X, const int incX,
+                const double *Y, const int incY, double *A, const int lda);
+void cblas_dsyr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const double *X,
+                const int incX, double *A, const int lda);
+void cblas_dspr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const double *X,
+                const int incX, double *Ap);
+void cblas_dsyr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const double *X,
+                const int incX, const double *Y, const int incY, double *A,
+                const int lda);
+void cblas_dspr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const double *X,
+                const int incX, const double *Y, const int incY, double *A);
+
+
+/*
+ * Routines with C and Z prefixes only
+ */
+void cblas_chemv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const void *alpha, const void *A,
+                 const int lda, const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_chbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const int K, const void *alpha, const void *A,
+                 const int lda, const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_chpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const void *alpha, const void *Ap,
+                 const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_cgeru(const enum CBLAS_ORDER Order, const int M, const int N,
+                 const void *alpha, const void *X, const int incX,
+                 const void *Y, const int incY, void *A, const int lda);
+void cblas_cgerc(const enum CBLAS_ORDER Order, const int M, const int N,
+                 const void *alpha, const void *X, const int incX,
+                 const void *Y, const int incY, void *A, const int lda);
+void cblas_cher(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const void *X, const int incX,
+                void *A, const int lda);
+void cblas_chpr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const void *X,
+                const int incX, void *A);
+void cblas_cher2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
+                const void *alpha, const void *X, const int incX,
+                const void *Y, const int incY, void *A, const int lda);
+void cblas_chpr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
+                const void *alpha, const void *X, const int incX,
+                const void *Y, const int incY, void *Ap);
+
+void cblas_zhemv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const void *alpha, const void *A,
+                 const int lda, const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_zhbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const int K, const void *alpha, const void *A,
+                 const int lda, const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_zhpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const void *alpha, const void *Ap,
+                 const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_zgeru(const enum CBLAS_ORDER Order, const int M, const int N,
+                 const void *alpha, const void *X, const int incX,
+                 const void *Y, const int incY, void *A, const int lda);
+void cblas_zgerc(const enum CBLAS_ORDER Order, const int M, const int N,
+                 const void *alpha, const void *X, const int incX,
+                 const void *Y, const int incY, void *A, const int lda);
+void cblas_zher(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const void *X, const int incX,
+                void *A, const int lda);
+void cblas_zhpr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const void *X,
+                const int incX, void *A);
+void cblas_zher2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
+                const void *alpha, const void *X, const int incX,
+                const void *Y, const int incY, void *A, const int lda);
+void cblas_zhpr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
+                const void *alpha, const void *X, const int incX,
+                const void *Y, const int incY, void *Ap);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 3 BLAS
+ * ===========================================================================
+ */
+
+/*
+ * Routines with standard 4 prefixes (S, D, C, Z)
+ */
+void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+                 const int K, const float alpha, const float *A,
+                 const int lda, const float *B, const int ldb,
+                 const float beta, float *C, const int ldc);
+void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const float alpha, const float *A, const int lda,
+                 const float *B, const int ldb, const float beta,
+                 float *C, const int ldc);
+void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const float alpha, const float *A, const int lda,
+                 const float beta, float *C, const int ldc);
+void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const float alpha, const float *A, const int lda,
+                  const float *B, const int ldb, const float beta,
+                  float *C, const int ldc);
+void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const float alpha, const float *A, const int lda,
+                 float *B, const int ldb);
+void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const float alpha, const float *A, const int lda,
+                 float *B, const int ldb);
+
+void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+                 const int K, const double alpha, const double *A,
+                 const int lda, const double *B, const int ldb,
+                 const double beta, double *C, const int ldc);
+void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const double alpha, const double *A, const int lda,
+                 const double *B, const int ldb, const double beta,
+                 double *C, const int ldc);
+void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const double alpha, const double *A, const int lda,
+                 const double beta, double *C, const int ldc);
+void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const double alpha, const double *A, const int lda,
+                  const double *B, const int ldb, const double beta,
+                  double *C, const int ldc);
+void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const double alpha, const double *A, const int lda,
+                 double *B, const int ldb);
+void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const double alpha, const double *A, const int lda,
+                 double *B, const int ldb);
+
+void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+                 const int K, const void *alpha, const void *A,
+                 const int lda, const void *B, const int ldb,
+                 const void *beta, void *C, const int ldc);
+void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *B, const int ldb, const void *beta,
+                 void *C, const int ldc);
+void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const void *alpha, const void *A, const int lda,
+                 const void *beta, void *C, const int ldc);
+void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const void *alpha, const void *A, const int lda,
+                  const void *B, const int ldb, const void *beta,
+                  void *C, const int ldc);
+void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 void *B, const int ldb);
+void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 void *B, const int ldb);
+
+void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+                 const int K, const void *alpha, const void *A,
+                 const int lda, const void *B, const int ldb,
+                 const void *beta, void *C, const int ldc);
+void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *B, const int ldb, const void *beta,
+                 void *C, const int ldc);
+void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const void *alpha, const void *A, const int lda,
+                 const void *beta, void *C, const int ldc);
+void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const void *alpha, const void *A, const int lda,
+                  const void *B, const int ldb, const void *beta,
+                  void *C, const int ldc);
+void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 void *B, const int ldb);
+void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 void *B, const int ldb);
+
+
+/*
+ * Routines with prefixes C and Z only
+ */
+void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *B, const int ldb, const void *beta,
+                 void *C, const int ldc);
+void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const float alpha, const void *A, const int lda,
+                 const float beta, void *C, const int ldc);
+void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const void *alpha, const void *A, const int lda,
+                  const void *B, const int ldb, const float beta,
+                  void *C, const int ldc);
+void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *B, const int ldb, const void *beta,
+                 void *C, const int ldc);
+void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const double alpha, const void *A, const int lda,
+                 const double beta, void *C, const int ldc);
+void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const void *alpha, const void *A, const int lda,
+                  const void *B, const int ldb, const double beta,
+                  void *C, const int ldc);
+
+int cblas_errprn(int ierr, int info, char *form, ...);
+
+#endif  /* end #ifdef CBLAS_ENUM_ONLY */
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/linux/amd64/clapack.h	Wed Feb 13 13:44:40 2008 +0000
@@ -0,0 +1,149 @@
+/*
+ *             Automatically Tuned Linear Algebra Software v3.8.0
+ *                    (C) Copyright 1999 R. Clint Whaley
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *   1. Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions, and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *   3. The name of the ATLAS group or the names of its contributers may
+ *      not be used to endorse or promote products derived from this
+ *      software without specific written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ATLAS GROUP OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef CLAPACK_H
+
+#define CLAPACK_H
+#include "cblas.h"
+
+#ifndef ATLAS_ORDER
+   #define ATLAS_ORDER CBLAS_ORDER
+#endif
+#ifndef ATLAS_UPLO
+   #define ATLAS_UPLO CBLAS_UPLO
+#endif
+#ifndef ATLAS_DIAG
+   #define ATLAS_DIAG CBLAS_DIAG
+#endif
+int clapack_sgesv(const enum CBLAS_ORDER Order, const int N, const int NRHS,
+                  float *A, const int lda, int *ipiv,
+                  float *B, const int ldb);
+int clapack_sgetrf(const enum CBLAS_ORDER Order, const int M, const int N,
+                   float *A, const int lda, int *ipiv);
+int clapack_sgetrs
+   (const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE Trans,
+    const int N, const int NRHS, const float *A, const int lda,
+    const int *ipiv, float *B, const int ldb);
+int clapack_sgetri(const enum CBLAS_ORDER Order, const int N, float *A,
+                   const int lda, const int *ipiv);
+int clapack_sposv(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                  const int N, const int NRHS, float *A, const int lda,
+                  float *B, const int ldb);
+int clapack_spotrf(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, float *A, const int lda);
+int clapack_spotrs(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                   const int N, const int NRHS, const float *A, const int lda,
+                   float *B, const int ldb);
+int clapack_spotri(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, float *A, const int lda);
+int clapack_slauum(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, float *A, const int lda);
+int clapack_strtri(const enum ATLAS_ORDER Order,const enum ATLAS_UPLO Uplo,
+                  const enum ATLAS_DIAG Diag,const int N, float *A, const int lda);
+
+int clapack_dgesv(const enum CBLAS_ORDER Order, const int N, const int NRHS,
+                  double *A, const int lda, int *ipiv,
+                  double *B, const int ldb);
+int clapack_dgetrf(const enum CBLAS_ORDER Order, const int M, const int N,
+                   double *A, const int lda, int *ipiv);
+int clapack_dgetrs
+   (const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE Trans,
+    const int N, const int NRHS, const double *A, const int lda,
+    const int *ipiv, double *B, const int ldb);
+int clapack_dgetri(const enum CBLAS_ORDER Order, const int N, double *A,
+                   const int lda, const int *ipiv);
+int clapack_dposv(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                  const int N, const int NRHS, double *A, const int lda,
+                  double *B, const int ldb);
+int clapack_dpotrf(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, double *A, const int lda);
+int clapack_dpotrs(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                   const int N, const int NRHS, const double *A, const int lda,
+                   double *B, const int ldb);
+int clapack_dpotri(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, double *A, const int lda);
+int clapack_dlauum(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, double *A, const int lda);
+int clapack_dtrtri(const enum ATLAS_ORDER Order,const enum ATLAS_UPLO Uplo,
+                  const enum ATLAS_DIAG Diag,const int N, double *A, const int lda);
+
+int clapack_cgesv(const enum CBLAS_ORDER Order, const int N, const int NRHS,
+                  void *A, const int lda, int *ipiv,
+                  void *B, const int ldb);
+int clapack_cgetrf(const enum CBLAS_ORDER Order, const int M, const int N,
+                   void *A, const int lda, int *ipiv);
+int clapack_cgetrs
+   (const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE Trans,
+    const int N, const int NRHS, const void *A, const int lda,
+    const int *ipiv, void *B, const int ldb);
+int clapack_cgetri(const enum CBLAS_ORDER Order, const int N, void *A,
+                   const int lda, const int *ipiv);
+int clapack_cposv(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                  const int N, const int NRHS, void *A, const int lda,
+                  void *B, const int ldb);
+int clapack_cpotrf(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, void *A, const int lda);
+int clapack_cpotrs(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                   const int N, const int NRHS, const void *A, const int lda,
+                   void *B, const int ldb);
+int clapack_cpotri(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, void *A, const int lda);
+int clapack_clauum(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, void *A, const int lda);
+int clapack_ctrtri(const enum ATLAS_ORDER Order,const enum ATLAS_UPLO Uplo,
+                  const enum ATLAS_DIAG Diag,const int N, void *A, const int lda);
+
+int clapack_zgesv(const enum CBLAS_ORDER Order, const int N, const int NRHS,
+                  void *A, const int lda, int *ipiv,
+                  void *B, const int ldb);
+int clapack_zgetrf(const enum CBLAS_ORDER Order, const int M, const int N,
+                   void *A, const int lda, int *ipiv);
+int clapack_zgetrs
+   (const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE Trans,
+    const int N, const int NRHS, const void *A, const int lda,
+    const int *ipiv, void *B, const int ldb);
+int clapack_zgetri(const enum CBLAS_ORDER Order, const int N, void *A,
+                   const int lda, const int *ipiv);
+int clapack_zposv(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                  const int N, const int NRHS, void *A, const int lda,
+                  void *B, const int ldb);
+int clapack_zpotrf(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, void *A, const int lda);
+int clapack_zpotrs(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                   const int N, const int NRHS, const void *A, const int lda,
+                   void *B, const int ldb);
+int clapack_zpotri(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, void *A, const int lda);
+int clapack_zlauum(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, void *A, const int lda);
+int clapack_ztrtri(const enum ATLAS_ORDER Order,const enum ATLAS_UPLO Uplo,
+                  const enum ATLAS_DIAG Diag,const int N, void *A, const int lda);
+
+#endif
Binary file build/linux/amd64/libatlas.a has changed
Binary file build/linux/amd64/libcblas.a has changed
Binary file build/linux/amd64/libf77blas.a has changed
Binary file build/linux/amd64/liblapack.a has changed