swap_stub.c

来自「基于Blas CLapck的.用过的人知道是干啥的」· C语言 代码 · 共 47 行

C
47
字号
#include "atlas_misc.h"void ATL_USWAP(const int N, TYPE *X, const int incX, TYPE *Y, const int incY);void ATL_SWAP(const int N, TYPE *X, const int incX,              TYPE *Y, const int incY){   int incx=incX, incy=incY;   if (N > 0)   {/* *    Manipulate incX and inxY such that: *    -  Both are positive *    -  else if incX or incY has abs()=1, make it positive *    -  if both abs(inc) are 1, or if neither, make incY positive */      if (incX > 0 && incY > 0) goto L1;      else if (incY < 0)      {         if (incX < 0) /* make both positive */         {            incx = -incX;            incy = -incY;            X += ((N-1)SHIFT)*incX;            Y += ((N-1)SHIFT)*incY;         }         else if (incX != 1 || incY == -1)         {            incy = -incY;            Y += ((N-1)SHIFT)*incY;            incx = -incX;            X += ((N-1)SHIFT)*incX;         }      }      else if (incX == -1 && incY != 1)      {         incx = 1;         X -= ((N-1)SHIFT);         incy = -incY;         Y += ((N-1)SHIFT)*incY;      }      else if (!incX || !incY) return;L1:      ATL_USWAP(N, X, incx, Y, incy);   }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?