⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pow.c

📁 操作系统源代码
💻 C
字号:
/* * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". * * Author: Ceriel J.H. Jacobs *//* $Header: pow.c,v 1.3 90/08/28 13:59:36 eck Exp $ */#include	<math.h>#include	<float.h>#include	<errno.h>#include	"localmath.h"doublepow(double x, double y){	/*	Simple version for now. The Cody and Waite book has		a very complicated, much more precise version, but		this version has machine-dependent arrays A1 and A2,		and I don't know yet how to solve this ???	*/	double dummy;	int	result_neg = 0;	if ((x == 0 && y == 0) ||	    (x < 0 && modf(y, &dummy) != 0)) {		errno = EDOM;		return 0;	}	if (x == 0) return x;	if (x < 0) {		if (modf(y/2.0, &dummy) != 0) {			/* y was odd */			result_neg = 1;		}		x = -x;	}	x = log(x);	if (x < 0) {		x = -x;		y = -y;	}	/* Beware of overflow in the multiplication */	if (x > 1.0 && y > DBL_MAX/x) {		errno = ERANGE;		return result_neg ? -HUGE_VAL : HUGE_VAL;	}	x = exp(x * y);	return result_neg ? -x : x;}

⌨️ 快捷键说明

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