home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG023.ARK / FLOATPNT.DOC < prev    next >
Text File  |  1984-04-29  |  4KB  |  147 lines

  1.  
  2.  
  3. ***************************************************************************
  4. ** COPYRIGHT (C) MASSACHUSETTS INSTITUTE OF TECHNOLOGY AND HARVARD       **
  5. ** UNIVERSITY, BIOMEDICAL ENGINEERING CENTER 1977.  ALL RIGHTS RESERVED. **
  6. ***************************************************************************
  7.  
  8. FLOATING POINT
  9. J. SACHS 2/2/77
  10.  
  11. FLOATING POINT IN ADDED TO STOIC BY LOADING THE FILE "FP".
  12. SUBSEQUENT TO LOADING "FP", FLOATING POINT LITERALS ARE
  13. RECOGNIZED BY STOIC, AND A SET OF FLOATING POINT WORDS ARE
  14. DEFINED.  THE FORMAT OF FLOATING POINT NUMBERS IS AS
  15. FOLLOWS:
  16.  
  17.     BYTE    CONTENTS    FORMAT
  18.  
  19.     0    SIGN        =0 FOR POSITIVE
  20.                 =80 HEX FOR NEGATIVE
  21.  
  22.     1    EXPONENT     8-BIT 2'S COMPLEMENT
  23.  
  24.     2,3    FRACTION    UNSIGNED BINARY
  25.                 BINARY POINT IS JUST LEFT OF THE MSB
  26.  
  27.     WHEN A FLOATING POINT NUMBER IS ON THE STACK, THE SIGN/EXPONENT
  28. WORD IS ON TOP, THE FRACTION IS AT TOP - 1.  PRECISION IS BETTER THAN 4 1/2
  29. DECIMAL PLACES.  WHEN A FLOATING POINT NUMBER IS STORED IN MEMORY, THE
  30. SIGN/EXPONENT WORD IS AT (ADDRESS), THE FRACTION IS AT (ADDRESS+2).
  31.  
  32. FLOATING POINT LITERALS ARE THE SAME AS INTEGER LITERALS EXCEPT THAT THEY
  33. MAY INCLUDE A DECIMAL POINT AND MAY OPTIONALLY BE FOLLOWED BY AN "E"
  34. FOLLOWED BY AN EXPONENT.  EMBEDDED SPACES WITHIN THE LITERAL ARE NOT ALLOWED.
  35. FLOATING POINT LITERALS ARE ALWAYS DECIMAL.
  36.  
  37. EXAMPLES:
  38.  
  39. 1.
  40. 2.0E-1
  41. +12.345
  42. -5.0E-3
  43.  
  44. THE FOLLOWING WORDS MAKE UP THE FLOATING POINT PACKAGE:
  45.  
  46. FCONSTANT    DEFINES A FLOATING POINT CONSTANT
  47. FVARAIBLE    DEFINES A FLOATING POINT VARIABLE
  48.  
  49. EXAMPLES:
  50.  
  51.     2.71828 'E FCONSTANT
  52.     0.0 'X FVARAIBLE
  53.  
  54. PI    A FLOATING POINT CONSTANT EQUAL TO 3.1416
  55.  
  56. F@    PUSHES THE FLOATING POINT NUMBER ADDRESSED BY THE TOP
  57.     OF THE STACK.
  58.  
  59. F!    STORES THE FLOATING POINT NUMBER AT TOP - 1 AND TOP - 2
  60.     AT THE ADDRESS AT TOP.
  61.  
  62. D2OVER    PUSH A COPY OF TOP-3,TOP-2
  63.  
  64. D3OVER    PUSH A COPY OF TOP-5,TOP-4
  65.  
  66. D2UNDER    STORE TOP-1,TOP AT TOP-5,TOP-4
  67.  
  68. D3UNDER    STORE TOP-1,TOP AT TOP-7,TOP-6
  69.  
  70. FMINUS    FLOATING POINT NEGATE
  71.  
  72. FABS    FLOATING POINT ABSOLUTE VALUE
  73.  
  74. F+    FLOATING POINT ADD
  75.  
  76. F-    FLOATING POINT SUBTRACT
  77.  
  78. F*    FLOATING POINT MULTIPLY
  79.  
  80. F/    FLOATING POINT DIVIDE
  81.  
  82. F+!    FLOATING POINT ADD TO MEMORY
  83.  
  84. FLOAT    CONVERT THE INTEGER AT TOP TO FLOATING POINT
  85.  
  86. INTEGER    TRUNCATE THE FLOATING POINT NUMBER AT TOP-1,TOP TO
  87.     AN INTEGER.
  88.  
  89. FRAC    PUSH THE FRACTION PART OF THE FLOATING POINT NUMBER
  90.     ON THE TOP OF THE STACK
  91.  
  92. FMOD    FLOATING POINT MOD FUNCTION.
  93.     COMPUTED AT ARG2*FRAC(ARG1/ARG2)
  94.  
  95. FLTZ    FLOATING POINT LESS THAN ZERO
  96. FLEZ    FLOATING POINT LESS THAN OR EQUAL TO ZERO
  97. FGTZ    FLOATING POINT GREATER THAN ZERO
  98. FGEZ    FLOATING POINT GREATER THAN OR EQUAL TO ZERO
  99. FEQZ    FLOATING POINT EQUAL TO ZERO
  100. FNEZ    FLOATING POINT NOT EQUAL TO ZERO
  101.  
  102. FLT    FLOATING POINT LESS THAN
  103. FLE    FLOATING POINT LESS THAN OR EQUAL TO
  104. FGT    FLOATING POINT GREATER THAN
  105. FGE    FLOATING POINT GREATER THAN OR EQUAL TO
  106. FEQ    FLOATING POINT EQUAL TO
  107. FNE    FLOATING POINT NOT EQUAL TO
  108.  
  109. FSQRT    FLOATING POINT SQUARE ROOT
  110. FSIN    FLOATING POINT SINE (ARGUMENT IN RADIANS)
  111. FCOS    FLOATING POINT COSINE (ARGUMENT IN RADIANS)
  112. FATAN    FLOATING POINT ARCTANGENT (SINGLE ARGUMENT, RESULT IN RADIANS)
  113. FLN    FLOATING POINT LOG BASE E
  114. FLOG2    FLOATING POINT LOG BASE 2
  115. FLOG10    FLOATING POINT LOG BASE 10
  116. FEXP    FLOATING POINT EXPONENTIAL BASE E
  117. 2.0**    FLOATING POINT EXPONENTIAL BASE 2
  118. 10.0**    FLOATING POINT EXPONENTIAL BASE 10
  119.  
  120. F=    FLOATING POINT E-FORMAT PRINT
  121. F?    PRINT FLOATING POINT NUMBER ADDRESSED BY TOP OF STACK
  122.  
  123. FLITERAL
  124.     ACCEPTS A STRING ARGUMENT AT TOP AND ATTEMPTS
  125.     TO CONVERT THE STRING TO A FLOATING POINT NUMBER.
  126.     IF SUCCESSFUL, A -1 IS LEFT AT TOP, AND THE VALUE IS
  127.     RETURNED AT TOP - 1 AND TOP - 2.  IF NOT SUCCESSFUL,
  128.     A ZERO IS RETURNED AT TOP.
  129.  
  130. <LSQ    INITIATE A LINEAR LEAST SQUARES FIT.
  131.  
  132. LSQ    ACCEPTS TWO FLOATING POINT NUMBERS, A Y COORDINATE AT TOP
  133.     AND AN X COORDINATE BENEATH.  THIS POINT (X,Y) IS PROCESSED.
  134.  
  135. LSQ>    WHEN "LSQ" HAS BEEN CALLED FOR ALL INPUT POINTS, "LSQ>" IS
  136.     CALLED, RETURNING THE SLOPE AND INTERCEPT OF THE LINEAR LEAST
  137.     SQUARES FIT TO THE GIVEN POINTS.  (SLOPE RETURNED AT TOP,
  138.     Y-INTERCEPT AT TOP - 1)
  139.  
  140. FRAND    RETURNS A RANDOM FLOATING POINT NUMBER UNIFORMLY DISTRIBUTED
  141.     BETWEEN 0.0 AND 1.0.
  142.  
  143.  
  144.  
  145. ***EOF***
  146.  
  147.