abs.c

来自「cfront是最开始c++语言到C语言的转换工具」· C语言 代码 · 共 49 行

C
49
字号
/*ident	"@(#)cls4:lib/complex/complex/abs.c	1.1" *//******************************************************************************* C++ source for the C++ Language System, Release 3.0.  This productis a new release of the original cfront developed in the computerscience research center of AT&T Bell Laboratories.Copyright (c) 1991 AT&T and UNIX System Laboratories, Inc.Copyright (c) 1984, 1989, 1990 AT&T.  All Rights Reserved.THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE of AT&T and UNIX SystemLaboratories, Inc.  The copyright notice above does not evidenceany actual or intended publication of such source code.*******************************************************************************/#include <complex.h>#include "const.h"doubleabs(complex z){	register double temp;	register double r = z.re;	register double i = z.im;		if (r < 0) r = -r;	if (i == 0) return r;	if (i < 0) i = -i;	if (r == 0) return i;	if (i > r) { temp = r; r = i; i = temp; }	temp = i/r;	temp = r*sqrt(1.0 + temp*temp);  /*overflow!!*/	return temp;}doublenorm(complex z){	register double r = z.re;	register double i = z.im;#define	SAFE 6.521908912666391000e+18  /* 0.5*sqrt(GREATEST)*/	if (r<SAFE && i<SAFE) return r*r+i*i;	return GREATEST;}

⌨️ 快捷键说明

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