rotate.c

来自「适合大型数值计算代码 现在网络上已经找不到了 购买需要20$」· C语言 代码 · 共 37 行

C
37
字号
#include <math.h>#define NRANSI#include "nrutil.h"void rotate(float **r, float **qt, int n, int i, float a, float b){	int j;	float c,fact,s,w,y;	if (a == 0.0) {		c=0.0;		s=(b >= 0.0 ? 1.0 : -1.0);	} else if (fabs(a) > fabs(b)) {		fact=b/a;		c=SIGN(1.0/sqrt(1.0+(fact*fact)),a);		s=fact*c;	} else {		fact=a/b;		s=SIGN(1.0/sqrt(1.0+(fact*fact)),b);		c=fact*s;	}	for (j=i;j<=n;j++) {		y=r[i][j];		w=r[i+1][j];		r[i][j]=c*y-s*w;		r[i+1][j]=s*y+c*w;	}	for (j=1;j<=n;j++) {		y=qt[i][j];		w=qt[i+1][j];		qt[i][j]=c*y-s*w;		qt[i+1][j]=s*y+c*w;	}}#undef NRANSI

⌨️ 快捷键说明

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