ETHZ_Logo RAMSES_Logo_Right   RAMSES   RAMSES_Logo_Left Systems Ecology  
Start    search button      Modules:   A-Z   Function   Layer        QuickRefs:   DM   AuxLib   AuxLibE   SciLib   EasyMW   MW   ISIS   RMSLib

DEFINITION MODULE DMMathLF;

  (*******************************************************************

    Module  DMMathLF     ('Dialog Machine' DM_V3.0)

      Copyright (c) 1991-2006 by Andreas Fischlin and ETH Zurich.

    Purpose   Basic mathematical routines (as provided by module 
              DMMathLib), but with a fast implementation, which 
              uses possibly present floating point processors 
              (numerical behavior may be hardware dependent).

    Remarks   Macintosh implementation:
              ------------------------
              Always requires the presence of a mathematical
              coprocessor.

              IBM PC implementation:
              ---------------------
              Portable, not necessary most efficient implementation
              provided.

              Sun (Unix) implementation:
              -------------------------
              Portable, not necessary most efficient implementation
              provided.

              This module directly uses the mathematical
              coprocessor which may render the code significantly
              faster.

              There are also companion modules named DMMathLib,
              which work on any machine, regardless whether there is a
              mathematical coprocessor actually present or not, thus
              offering optimal portability, eventually at the price of
              less efficiency.

              This module belongs to the 'Dialog Machine'.


    Programming

      o Design
        Andreas Fischlin          25/06/1991

      o Implementation
        Andreas Fischlin          25/06/1991


    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:  06/09/1995  AF

  *******************************************************************)


  PROCEDURE Sqrt  (x: REAL):    REAL;
  PROCEDURE Exp   (x: REAL):    REAL;
  PROCEDURE Ln    (x: REAL):    REAL;
  PROCEDURE Sin   (x: REAL):    REAL;
  PROCEDURE Cos   (x: REAL):    REAL;
  PROCEDURE ArcTan(x: REAL):    REAL;
  PROCEDURE Real  (x: INTEGER): REAL;
  PROCEDURE Entier(x: REAL):    INTEGER; (* Entier is similar to TRUNC,
                                         but truncates also negative x
                                         values to the smaller integral
                                         part. Ex.: Entier(-3.3) returns
                                         -4 where TRUNC(-3.3) is -3.  *)

  (*
    Simple random number generators, which return variates in
    ranges [0..upperBound] (RandomInt) resp. (0..1] (RandomReal).
    Don't use these generators for serious stochastic simulations!
    Their properties are not optimal. For better random number
    generators see the modules RandGen, RandGen0, RandGen1,
    RandNormal etc.
  *)
  PROCEDURE Randomize;
  PROCEDURE RandomInt(upperBound: INTEGER): INTEGER;
  PROCEDURE RandomReal(): REAL;

END DMMathLF.

  Contact RAMSES@env.ethz.ch Last updated: 25-Jul-2011 [Top of page]