home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / EFFO / pd6.lzh / DOC / ranges.doc < prev    next >
Text File  |  1989-12-21  |  4KB  |  121 lines

  1. RANGES(3)              NUMBER RANGES FUNCTIONS                        RANGES(3)
  2.  
  3. NAME
  4.        ranges - number intervals definitions and functions
  5.  
  6. SYNOPSIS
  7.        #include ranges.f83
  8.  
  9.        ranges ( -- )
  10.  
  11.        RANGE ( from to -- )
  12.        +from ( range -- from) private
  13.        +to ( range -- to) private
  14.  
  15.        ?empty ( range -- flag)
  16.        ?member ( value range -- flag)
  17.        ?intersection ( x y -- flag)
  18.  
  19.        length ( range -- length)
  20.  
  21.        union ( x y -- from to)
  22.        intersection ( x y -- from to)
  23.  
  24.        map ( range block[index -- ] -- )
  25.        ?map ( range block[index -- flag] -- )
  26.  
  27.        print ( range -- )
  28.        .range ( range -- )
  29.  
  30. DESCRIPTION
  31.        Number interval functions. Allows definition and manipulation of
  32.        ranges of numbers.
  33.  
  34. ranges ( -- )
  35.        Range definitions vocabulary.
  36.  
  37. RANGE ( from to -- )
  38.        Used in the following form to create a range:
  39.                <from> <to> RANGE <ranges-name>
  40.        The range is a structure type thus structure operations
  41.        are allowed (e.g. sizeof).
  42.  
  43. +from ( range -- from) private
  44.        Access field of "from" value of a range structure. Stored as a long.
  45.  
  46. +to ( range -- to) private
  47.        Access field of "to" value of a range structure. Stored as a long.
  48.  
  49. ?empty ( range -- flag)
  50.        Returns true if the "from" and "to" values are equal, i.e., the
  51.        range is empty else false.
  52.  
  53. ?member ( value range -- flag)
  54.        Returns true if the value is within the range else false.
  55.  
  56. ?intersection ( x y -- flag)
  57.        Returns true if there exists an intersection range between
  58.        the ranges "x" and "y" else false.
  59.  
  60. length ( range -- length)
  61.        Returns the length of the range.
  62.  
  63. union ( x y -- from to)
  64.        Given two ranges "x" and "y" returns the "from" and "to" values
  65.        of the union of the ranges.
  66.  
  67. intersection ( x y -- from to)
  68.        Given two ranges "x" and "y" returns the "from" and "to" values
  69.        of the intersection of the ranges. If an intersection does not
  70.        exist the value zero is returned for "from" and "to".
  71.  
  72. map ( range block[index -- ] -- )
  73.        Used in the following form:
  74.                <range> <block> map
  75.        Map function on a range. The block is called for each value of
  76.        the range starting with "from" and ending with "to". The block
  77.        receives the index as a parameter.
  78.  
  79. ?map ( range block[index -- flag] -- )
  80.        Used in the following form:
  81.                <range> <conditional-block> ?map
  82.        Conditional map function on a range. The block is called for
  83.        each value of the range starting with "from" and ending with "to"
  84.        while the block returns true. The block receives the index as a
  85.        parameter. 
  86.  
  87. print ( range -- )
  88.        Print all range values.
  89.  
  90. .range ( range -- )
  91.        Prints information about the given range.
  92.  
  93. SEE ALSO
  94.        forth(1), structures(2), blocks(2)
  95.  
  96. COPYING
  97.        Copyright (C) 1989 Mikael R.K. Patel
  98.        Permission is granted to make and distribute verbatim copies
  99.        of this manual provided the copyright notice and this permission
  100.        notice are preserved on all copies.
  101.        Permission is granted to copy and distribute modified versions
  102.        of this manual under the conditions for verbatim copying, 
  103.        provided also that the section entitled "GNU General Public
  104.        License" is included exactly as in the original, and provided
  105.        that the entire resulting derived work is distributed under
  106.        the terms of a permission notice identical to this one.
  107.        Permission is granted to copy and distribute translations of
  108.        this manual into another language, under the above conditions
  109.        for modified versions, except that the section entitled "GNU
  110.        General Public License" may be included in a translation approved
  111.        by the author instead of in the original English.
  112.  
  113. AUTHOR
  114.        Mikael R.K. Patel
  115.        Computer Aided Design Laboratory (CADLAB)
  116.        Department of Computer and Information Science
  117.        Linkoping University
  118.        S-581 83 LINKOPING
  119.        SWEDEN
  120.        Email: mip@ida.liu.se
  121.