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

📄 cmath.h

📁 早期freebsd实现
💻 H
字号:
/* * Copyright (c) 1993 David I. Bell * Permission is granted to use, distribute, or modify this source, * provided that this copyright notice remains intact. * * Data structure declarations for extended precision complex arithmetic. */#ifndef	CMATH_H#define	CMATH_H#include "qmath.h"/* * Complex arithmetic definitions. */typedef struct {	NUMBER *real;		/* real part of number */	NUMBER *imag;		/* imaginary part of number */	long links;		/* link count */} COMPLEX;/* * Input, output, and conversion routines. */extern COMPLEX *comalloc MATH_PROTO((void));extern COMPLEX *qqtoc MATH_PROTO((NUMBER *q1, NUMBER *q2));extern void comfree MATH_PROTO((COMPLEX *c));extern void comprint MATH_PROTO((COMPLEX *c));extern void cprintfr MATH_PROTO((COMPLEX *c));/* * Basic numeric routines. */extern COMPLEX *cadd MATH_PROTO((COMPLEX *c1, COMPLEX *c2));extern COMPLEX *csub MATH_PROTO((COMPLEX *c1, COMPLEX *c2));extern COMPLEX *cmul MATH_PROTO((COMPLEX *c1, COMPLEX *c2));extern COMPLEX *cdiv MATH_PROTO((COMPLEX *c1, COMPLEX *c2));extern COMPLEX *caddq MATH_PROTO((COMPLEX *c, NUMBER *q));extern COMPLEX *csubq MATH_PROTO((COMPLEX *c, NUMBER *q));extern COMPLEX *cmulq MATH_PROTO((COMPLEX *c, NUMBER *q));extern COMPLEX *cdivq MATH_PROTO((COMPLEX *c, NUMBER *q));extern COMPLEX *cmodq MATH_PROTO((COMPLEX *c, NUMBER *q));extern COMPLEX *cquoq MATH_PROTO((COMPLEX *c, NUMBER *q));extern COMPLEX *cscale MATH_PROTO((COMPLEX *c, long i));extern COMPLEX *cshift MATH_PROTO((COMPLEX *c, long i));extern COMPLEX *cround MATH_PROTO((COMPLEX *c, long i));extern COMPLEX *cbround MATH_PROTO((COMPLEX *c, long i));extern COMPLEX *csquare MATH_PROTO((COMPLEX *c));extern COMPLEX *cconj MATH_PROTO((COMPLEX *c));extern COMPLEX *creal MATH_PROTO((COMPLEX *c));extern COMPLEX *cimag MATH_PROTO((COMPLEX *c));extern COMPLEX *cneg MATH_PROTO((COMPLEX *c));extern COMPLEX *cinv MATH_PROTO((COMPLEX *c));extern COMPLEX *cint MATH_PROTO((COMPLEX *c));extern COMPLEX *cfrac MATH_PROTO((COMPLEX *c));extern BOOL ccmp MATH_PROTO((COMPLEX *c1, COMPLEX *c2));/* * More complicated functions. */extern COMPLEX *cpowi MATH_PROTO((COMPLEX *c, NUMBER *q));extern HASH chash MATH_PROTO((COMPLEX *c));/* * Transcendental routines.  These all take an epsilon argument to * specify how accurately these are to be calculated. */extern COMPLEX *cpower MATH_PROTO((COMPLEX *c1, COMPLEX *c2, NUMBER *epsilon));extern COMPLEX *csqrt MATH_PROTO((COMPLEX *c, NUMBER *epsilon));extern COMPLEX *croot MATH_PROTO((COMPLEX *c, NUMBER *q, NUMBER *epsilon));extern COMPLEX *cexp MATH_PROTO((COMPLEX *c, NUMBER *epsilon));extern COMPLEX *cln MATH_PROTO((COMPLEX *c, NUMBER *epsilon));extern COMPLEX *ccos MATH_PROTO((COMPLEX *c, NUMBER *epsilon));extern COMPLEX *csin MATH_PROTO((COMPLEX *c, NUMBER *epsilon));extern COMPLEX *cpolar MATH_PROTO((NUMBER *q1, NUMBER *q2, NUMBER *epsilon));/* * macro expansions to speed this thing up */#define cisreal(c)	(qiszero((c)->imag))#define cisimag(c)	(qiszero((c)->real) && !cisreal(c))#define ciszero(c)	(cisreal(c) && qiszero((c)->real))#define cisone(c)	(cisreal(c) && qisone((c)->real))#define cisnegone(c)	(cisreal(c) && qisnegone((c)->real))#define cisrunit(c)	(cisreal(c) && qisunit((c)->real))#define cisiunit(c)	(qiszero((c)->real) && qisunit((c)->imag))#define	cisunit(c)	(cisrunit(c) || cisiunit(c))#define cistwo(c)	(cisreal(c) && qistwo((c)->real))#define cisint(c)	(qisint((c)->real) && qisint((c)->imag))#define ciseven(c)	(qiseven((c)->real) && qiseven((c)->imag))#define cisodd(c)	(qisodd((c)->real) || qisodd((c)->imag))#define clink(c)	((c)->links++, (c))/* * Pre-defined values. */extern COMPLEX _czero_, _cone_, _conei_;#endif/* END CODE */

⌨️ 快捷键说明

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