|
|
|
|
||
|
DEFINITION MODULE MathProcs; (******************************************************************* Module MathProcs (Version 1.0) Copyright (c) 1986-2006 by Olivier Roth, Andreas Fischlin and ETH Zurich Purpose Some often used mathematical functions (REAL variant) Remarks This module is a single precision (REAL) variant of the companion module LMathProcs Programming o Design Olivier Roth 13/11/1986 o Implementation Olivier Roth 13/11/1986 Andreas Fischlin 17/03/1987 ETH Zurich Systems Ecology CHN E 35.1 Universitaetstrasse 16 8092 Zurich SWITZERLAND URLs: <mailto:RAMSES@env.ethz.ch> <http://www.sysecol.ethz.ch> <http://www.sysecol.ethz.ch/SimSoftware/RAMSES> Last revision of definition: 19/08/2007 af *******************************************************************) (****************************************) (*##### MATHEMATICAL FUNCTIONS #####*) (****************************************) PROCEDURE Equal (x,y: REAL): BOOLEAN; (* Returns wether two reals x and y are equal or differ at most by a small amount epsilon (ABS(x-y)<=epsilon). The parameter epsilon is computed in a machine dependent way and represents the absolute minimum difference between two single precision real variables as defined by the floating point precision of the machine on which this module currently executes. *) PROCEDURE SIGN (x: REAL): REAL; (* returns the sign of x, i.e. -1.0 or +1.0 depending on the sign of x *) PROCEDURE Int(x: REAL): INTEGER; (* returns the truncated integer part of real x*) PROCEDURE Round(x: REAL): INTEGER; (* returns the rounded integer part of real x *) PROCEDURE Frac (x: REAL): REAL; (* returns the fractional part of x (part after the decimal point) *) PROCEDURE PowerI( x: REAL; iexp: INTEGER): REAL; (* returns x to the power of iexp *) PROCEDURE Power( x, exp: REAL ): REAL; (* returns x to the power of exp *) PROCEDURE Lg(x: REAL): REAL; (* returns the logarithm of x to base 10 *) PROCEDURE Fac(k: CARDINAL): CARDINAL; (* returns the factorial for k, i.e. k! = k*(k-1)*(k-2)*(k-3)...*1 (note 0! = 1) *) PROCEDURE IMax(i1,i2: INTEGER): INTEGER; (* returns maximum value of the two integers i1 and i2 *) PROCEDURE IMin(i1,i2: INTEGER): INTEGER; (* returns minimum value of the two integers i1 and i2 *) PROCEDURE RMax(x1,x2: REAL): REAL; (* returns maximum value of the two reals x1 and x2 *) PROCEDURE RMin(x1,x2: REAL): REAL; (* returns minimum value of the two reals x1 and x2 *) (******************************) (*##### TRIGONOMETRY #####*) (******************************) PROCEDURE Pi(): REAL; (* returns pi *) PROCEDURE Tan(x: REAL): REAL; (* returns the tangens of angle x in radians *) PROCEDURE ArcSin(x: REAL): REAL; (* Returns the inverse in radians of sine x (Note, with x in [-1.0..1.0] LongArcSin(x) returns values in [-pi/2 .. +pi/2]). *) PROCEDURE ArcCos(x: REAL): REAL; (* Returns the inverse in radians of cosine x (Note, with x in [-1.0..1.0] LongArcCos(x) returns values in [0 .. pi]). *) END MathProcs.
|
||
|
|
|