dzsum1.c
来自「SuperLU is a general purpose library for」· C语言 代码 · 共 95 行
C
95 行
/*! @file dzsum1.c * \brief Takes sum of the absolute values of a complex vector and returns a double precision result * * <pre> * -- LAPACK auxiliary routine (version 2.0) -- * Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., * Courant Institute, Argonne National Lab, and Rice University * October 31, 1992 * </pre> */#include "slu_dcomplex.h"#include "slu_Cnames.h"/*! \brief <pre> Purpose ======= DZSUM1 takes the sum of the absolute values of a complex vector and returns a double precision result. Based on DZASUM from the Level 1 BLAS. The change is to use the 'genuine' absolute value. Contributed by Nick Higham for use with ZLACON. Arguments ========= N (input) INT The number of elements in the vector CX. CX (input) COMPLEX*16 array, dimension (N) The vector whose elements will be summed. INCX (input) INT The spacing between successive values of CX. INCX > 0. ===================================================================== </pre>*/ double dzsum1_(int *n, doublecomplex *cx, int *incx){ /* Builtin functions */ double z_abs(doublecomplex *); /* Local variables */ int i, nincx; double stemp;#define CX(I) cx[(I)-1] stemp = 0.; if (*n <= 0) { return stemp; } if (*incx == 1) { goto L20; } /* CODE FOR INCREMENT NOT EQUAL TO 1 */ nincx = *n * *incx; for (i = 1; *incx < 0 ? i >= nincx : i <= nincx; i += *incx) { /* NEXT LINE MODIFIED. */ stemp += z_abs(&CX(i));/* L10: */ } return stemp; /* CODE FOR INCREMENT EQUAL TO 1 */L20: for (i = 1; i <= *n; ++i) { /* NEXT LINE MODIFIED. */ stemp += z_abs(&CX(i));/* L30: */ } return stemp; /* End of DZSUM1 */} /* dzsum1_ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?