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 + -
显示快捷键?