|
|
|
|
||
|
DEFINITION MODULE LMathProcs; (******************************************************************* Module LMathProcs (Version 1.0) Copyright (c) 1986-2007 by Andreas Fischlin, Olivier Roth and ETH Zurich Purpose Some often used mathematical functions (LONGREAL variant) Remarks This module is a double precision (LONGREAL) variant of the companion module MathProcs Programming o Design Andreas Fischlin 19/08/2007 o Implementation Andreas Fischlin 19/08/2007 Olivier Roth 13/11/1986 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 LongEqual ( x,y: LONGREAL ): 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 double precision real variables as defined by the floating point precision of the machine on which this module currently executes. *) PROCEDURE LSIGN (x: LONGREAL): LONGREAL; (* returns the sign of x, i.e. -1.0 or +1.0 depending on the sign of x *) PROCEDURE LongInt (x: LONGREAL): LONGINT; (* returns the truncated integer part of real x (see also DMPortab.LITRUNC) *) PROCEDURE LongRound(x: LONGREAL): LONGINT; (* returns the rounded integer part of real x *) PROCEDURE LongFrac (x: LONGREAL): LONGREAL; (* returns the fractional part of x (part after the decimal point) *) PROCEDURE LongPowerI(x: LONGREAL; iexp: LONGINT): LONGREAL; (* returns x to the power of iexp *) PROCEDURE LongPower(x, exp: LONGREAL): LONGREAL; (* returns x to the power of exp *) PROCEDURE LongLg(x: LONGREAL): LONGREAL; (* returns the logarithm of x to base 10 *) PROCEDURE LongFac(k: LONGCARD): LONGCARD; (* returns the factorial for k, i.e. k! = k*(k-1)*(k-2)*(k-3)...*1 (note 0! = 1) *) PROCEDURE LIMax(i1,i2: LONGINT): LONGINT; (* returns maximum value of the two integers i1 and i2 *) PROCEDURE LIMin(i1,i2: LONGINT): LONGINT; (* returns minimum value of the two integers i1 and i2 *) PROCEDURE LRMax(x1,x2: LONGREAL): LONGREAL; (* returns maximum value of the two reals x1 and x2 *) PROCEDURE LRMin(x1,x2: LONGREAL): LONGREAL; (* returns minimum value of the two reals x1 and x2 *) (******************************) (*##### TRIGONOMETRY #####*) (******************************) PROCEDURE LongPi(): LONGREAL; (* returns pi *) PROCEDURE LongRad(deg: LONGREAL): LONGREAL; (* returns radian value for degrees deg *) PROCEDURE LongDeg(rad: LONGREAL): LONGREAL; (* returns degrees for radian value rad *) PROCEDURE LongTan(alpha: LONGREAL): LONGREAL; (* returns the tangens of angle x in radians *) PROCEDURE LongArcSin(a: LONGREAL): LONGREAL; (* 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 LongArcCos(a: LONGREAL): LONGREAL; (* Returns the inverse in radians of cosine x (Note, with x in [-1.0..1.0] LongArcCos(x) returns values in [0 .. pi]). *) END LMathProcs.
|
||
|
|
|