Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

blas.cpp

Go to the documentation of this file.
00001 #include "blas.h"
00002 //
00003 // C++ implementations of level 1 Blas --- selectively replaced by
00004 // other implementations at link time
00005 //
00006 int icopy_(long* n, int* ix, long* incx, int* iy, long* incy)
00007 {
00008     register int* ixp;
00009     register int* iyp;
00010     register long i;
00011     for(i = 1, ixp = ix, iyp = iy; i <= *n; i++, ixp+=(*incx), iyp+=(*incy))
00012     *iyp = *ixp;
00013 
00014     return 0;
00015 }
00016 int  lcopy_(long* n, long* ix, long* incx, long* iy, long* incy)
00017 {
00018     register long* ixp;
00019     register long* iyp;
00020     register long i;
00021     for(i = 1, ixp = ix, iyp = iy; i <= *n;i++, ixp+=(*incx), iyp+=(*incy))
00022         *iyp = *ixp;
00023     return 0;
00024 };
00025 int  scopy_(long* n, float* ix, long* incx, float* iy, long* incy)
00026 {
00027     register float* ixp;
00028     register float* iyp;
00029     register long i;
00030     for(i = 1, ixp = ix, iyp = iy; i <= *n;i++, ixp+=(*incx), iyp+=(*incy))
00031        *iyp = *ixp;
00032     return 0;
00033 };
00034 
00035 
00036 
00037 int iscal_(long* n, int* ia, int* ix, long* incx)
00038 {
00039     register int* ixp;
00040     register int a = *ia;
00041     register long i;
00042     for(i = 1, ixp = ix; i <= *n; i++ , ixp+=(*incx))
00043     *ixp *= a;
00044     return 0;
00045 }
00046 int lscal_(long* n, long* la, long* ix, long* incx)
00047 {
00048     register long* ixp;
00049     register long  a = *la;
00050     register long i;
00051     for(i = 1, ixp = ix; i <= *n; i++ , ixp+=(*incx))
00052     *ixp *= a;
00053     return 0;
00054 };
00055 int sscal_(long* n, float* sa, float* ix, long* incx)
00056 {
00057     register float* ixp;
00058     register float a = *sa;
00059     register long i;
00060     for(i = 1, ixp = ix; i <= *n; i++ , ixp+=(*incx))
00061     *ixp *= a;
00062     return 0;
00063 };
00064 
00065 
00066 int iaxpy_(long* n, int* ia, int* ix, long* incx, int* iy, long* incy)
00067 {
00068     register int* ixp;
00069     register int* iyp;
00070     register int a = *ia;
00071     register long i;
00072     for(i = 1, ixp = ix, iyp = iy; i  <= *n; i++, ixp+=(*incx), iyp+=(*incy))
00073     *iyp += a*(*ixp);
00074     return 0;
00075 }
00076 int laxpy_(long* n, long* la, long* ix, long* incx, long* iy, long* incy)
00077 {
00078     register long* ixp;
00079     register long* iyp;
00080     register long a = *la;
00081     register long i;
00082     for(i = 1, ixp = ix, iyp = iy; i  <= *n; i++, ixp+=(*incx), iyp+=(*incy))
00083     *iyp += a*(*ixp);
00084     return 0;
00085 };
00086 int saxpy_(long* n, float* sa, float* ix, long* incx, float* iy, long* incy)
00087 {
00088     register float* ixp;
00089     register float* iyp;
00090     register float a = *sa;
00091     register long i;
00092     for(i = 1, ixp = ix, iyp = iy; i  <= *n; i++, ixp+=(*incx), iyp+=(*incy))
00093         *iyp += a*(*ixp);
00094     return 0;
00095 };
00096 
00097 //
00098 // The following have been replaced by ftc translations of LINPACK
00099 // routines.
00100 //
00101 /*
00102 extern "C" int dscal_(long* n, double* da, double* ix, long* incx)
00103 {
00104     register double* ixp;
00105     register double a = *da;
00106     register long i;
00107     for(i = 1, ixp = ix; i <= *n; i++ , ixp+=(*incx))
00108     *ixp *= a;
00109 };
00110 */
00111 
00112 /*
00113 extern "C"  int  dcopy_(long* n, double* ix, long* incx, double* iy, long* incy)
00114 {
00115 
00116     register double* ixp;
00117     register double* iyp;
00118     register long i;
00119     for(i = 1, ixp = ix, iyp = iy; i <= *n; i++, ixp+=(*incx), iyp+=(*incy))
00120     *iyp = *ixp;
00121 
00122 };
00123 */
00124 
00125 /*
00126 extern "C" int daxpy_(long* n, double* da, double* ix, long* incx, double* iy, long* incy)
00127 {
00128     register double* ixp;
00129     register double* iyp;
00130     register double a = *da;
00131     register long i;
00132     for(i = 1, ixp = ix, iyp = iy; i  <= *n;i++, ixp+=(*incx), iyp+=(*incy))
00133         *iyp += a*(*ixp);
00134 };
00135 */
00136 
00137 
00138   

Generated on Wed Sep 5 12:54:18 2007 for DSACSS Operational Code by  doxygen 1.3.9.1