/*! \file gk_blas.h \brief This file contains GKlib's code generators for BLAS-like routines \date Started 3/28/07 \author George \version\verbatim $Id: gk_blas.h 1421 2007-04-06 14:37:41Z karypis $ \endverbatim */ #ifndef _GK_BLAS_H_ #define _GK_BLAS_H_ /*************************************************************************/ /*! The macro for gk_?set()-class of routines */ /*************************************************************************/ #define GK_SET(NAME, TYPE) \ TYPE *NAME(size_t n, TYPE val, TYPE *x)\ {\ size_t i;\ \ for (i=0; i x[max] ? i : max);\ \ return max;\ } #define GK_ARGMAX_PROTO(NAME, TYPE) \ size_t NAME(size_t n, TYPE *x); /*************************************************************************/ /*! The macro for gk_?argmin()-class of routines */ /*************************************************************************/ #define GK_ARGMIN(NAME, TYPE) \ size_t NAME(size_t n, TYPE *x)\ {\ size_t i, min=0;\ \ for (i=1; i 0 ? (OUTTYPE)sqrt((double)partial) : 0.0);\ } #define GK_NORM2_PROTO(NAME, INTYPE, OUTTYPE) \ OUTTYPE NAME(size_t n, INTYPE *x, size_t incx); /*************************************************************************/ /*! The macro for gk_?dot()-class of routines */ /**************************************************************************/ #define GK_DOT(NAME, INTYPE, OUTTYPE) \ OUTTYPE NAME(size_t n, INTYPE *x, size_t incx, INTYPE *y, size_t incy)\ {\ size_t i;\ OUTTYPE partial = 0.0;\ \ for (i=0; i