109 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Modula-2
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Modula-2
		
	
	
	
	
	
| DEFINITION MODULE Mathlib;
 | |
| (*
 | |
|   Module:	Mathematical functions
 | |
|   Author:	Ceriel J.H. Jacobs
 | |
|   Version:	$Header$
 | |
| *)
 | |
| 
 | |
|   (* Some mathematical constants: *)
 | |
| 
 | |
|   CONST
 | |
| 	(* From:	Handbook of Mathematical Functions
 | |
| 			Edited by M. Abramowitz and I.A. Stegun
 | |
| 			National Bureau of Standards
 | |
| 			Applied Mathematics Series 55
 | |
| 	*)
 | |
| 
 | |
| 	pi	= 3.141592653589793238462643;
 | |
| 	twicepi	= 6.283185307179586476925286;
 | |
| 	halfpi	= 1.570796326794896619231322;
 | |
| 	quartpi	= 0.785398163397448309615661;
 | |
| 	e	= 2.718281828459045235360287;
 | |
| 	ln2	= 0.693147180559945309417232;
 | |
| 	ln10	= 2.302585092994045684017992;
 | |
| 
 | |
|   (* basic functions *)
 | |
| 
 | |
|   PROCEDURE pow(x: REAL; i: INTEGER): REAL;
 | |
| 
 | |
|   PROCEDURE longpow(x: LONGREAL; i: INTEGER): LONGREAL;
 | |
| 
 | |
|   PROCEDURE sqrt(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longsqrt(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   PROCEDURE exp(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longexp(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   PROCEDURE ln(x: REAL): REAL;	(* natural log *)
 | |
| 
 | |
|   PROCEDURE longln(x: LONGREAL): LONGREAL;	(* natural log *)
 | |
| 
 | |
|   PROCEDURE log(x: REAL): REAL;	(* log with base 10 *)
 | |
| 
 | |
|   PROCEDURE longlog(x: LONGREAL): LONGREAL;	(* log with base 10 *)
 | |
| 
 | |
|   (* trigonometric functions; arguments in radians *)
 | |
| 
 | |
|   PROCEDURE sin(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longsin(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   PROCEDURE cos(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longcos(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   PROCEDURE tan(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longtan(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   PROCEDURE arcsin(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longarcsin(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   PROCEDURE arccos(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longarccos(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   PROCEDURE arctan(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longarctan(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   (* hyperbolic functions *)
 | |
| 
 | |
|   PROCEDURE sinh(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longsinh(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   PROCEDURE cosh(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longcosh(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   PROCEDURE tanh(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longtanh(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   PROCEDURE arcsinh(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longarcsinh(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   PROCEDURE arccosh(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longarccosh(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   PROCEDURE arctanh(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longarctanh(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   (* conversions *)
 | |
| 
 | |
|   PROCEDURE RadianToDegree(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longRadianToDegree(x: LONGREAL): LONGREAL;
 | |
| 
 | |
|   PROCEDURE DegreeToRadian(x: REAL): REAL;
 | |
| 
 | |
|   PROCEDURE longDegreeToRadian(x: LONGREAL): LONGREAL;
 | |
| 
 | |
| END Mathlib.
 |