dladiv.c

来自「算断裂的」· C语言 代码 · 共 61 行

C
61
字号
#include "f2c.h"/* Subroutine */ int dladiv_(doublereal *a, doublereal *b, doublereal *c, 	doublereal *d, doublereal *p, doublereal *q){/*  -- 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       Purpose       =======       DLADIV performs complex division in  real arithmetic                             a + i*b                  p + i*q = ---------                             c + i*d       The algorithm is due to Robert L. Smith and can be found       in D. Knuth, The art of Computer Programming, Vol.2, p.195       Arguments       =========       A       (input) DOUBLE PRECISION       B       (input) DOUBLE PRECISION       C       (input) DOUBLE PRECISION       D       (input) DOUBLE PRECISION               The scalars a, b, c, and d in the above expression.       P       (output) DOUBLE PRECISION       Q       (output) DOUBLE PRECISION               The scalars p and q in the above expression.       ===================================================================== */    static doublereal e, f;    if (abs(*d) < abs(*c)) {	e = *d / *c;	f = *c + *d * e;	*p = (*a + *b * e) / f;	*q = (*b - *a * e) / f;    } else {	e = *c / *d;	f = *d + *c * e;	*p = (*b + *a * e) / f;	*q = (-(*a) + *b * e) / f;    }    return 0;/*     End of DLADIV */} /* dladiv_ */

⌨️ 快捷键说明

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