home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / dev / e / amigae / src / tools / longreal / longreal.doc < prev    next >
Text File  |  1992-09-02  |  2KB  |  100 lines

  1. longreal.m: A module for 64bit floats in E.
  2.  
  3.  
  4. The module introduces a type 'longreal' to the E language.
  5. All functions in the module are prefixed by a 'd' (for 'double')
  6. Before you use this module, first call:
  7.  
  8. dInit()
  9.  
  10. and upon exit _always_ call:
  11.  
  12. dCleanup()
  13.  
  14. dInit() may raise an "DLIB" exception if
  15. it fails to open one of the IEEE double libraries. If you don't
  16. need any transcendental functions, dInit(FALSE) will cause only the
  17. mathieeedoubbas.library to be opened.
  18.  
  19.  
  20. Using longreals as a type.
  21. There are various ways to create a longreal variable. simplest is:
  22.  
  23. DEF f:longreal
  24.  
  25. or:
  26.  
  27. DEF f:PTR TO longreal
  28.  
  29. and then later:
  30.  
  31. NEW f
  32.  
  33. also, you can make arrays of longreals, or use them in objects:
  34.  
  35. OBJECT bla
  36.   x:INT, y:longreal
  37. ENDOBJECT
  38.  
  39. DEF a[100]:ARRAY OF longreal, b:bla
  40.  
  41. As you see they work just like the builtin types.
  42. In the above examples
  43.  
  44. f, a[1], a[10], b.y
  45.  
  46. all denote longreal variables. these can be used whereever a
  47. longreal is expected in the functions decribed below. Note however
  48. that, being objects, longreals are passed by reference.
  49.  
  50.  
  51.     i:=dFix(f)        dFloat(i,f)
  52.  
  53. convert a longreal to a LONG and a LONG to a longreal respectively.
  54. dFloat() returns f
  55.  
  56.     dAdd(x,y)        dAdd(x,y,to)
  57.     dSub(x,y)        dSub(x,y,to)
  58.     dMul(x,y)        dMul(x,y,to)
  59.     dDiv(x,y)        dDiv(x,y,to)
  60.  
  61. perform these common operations on their arguments. 'x' and 'y' are in the
  62. same order as their operator-counterparts. The result is stored in 'to',
  63. or in 'x' if only two arguments are passed. (all functions return 'to' or
  64. 'x', resp.).
  65.  
  66.     r:=dCompare(x,y)    r:=dTest(x)
  67.  
  68. Compare longreals. dTest compares x with 0 as second arg. result 'r' is
  69. positive if x>y, negative for x<y, and 0 for x=y.
  70.  
  71.     dRound(x)        dRoundUp(x)
  72.  
  73. make x a round number, where dRound takes the lower, and dRoundUp
  74. the upper choice. Both also return x
  75.  
  76.     dAbs(x)            dNeg(x)
  77.  
  78. take absolute value of x or negate x, respectively. Both also return x.
  79.  
  80.     dCopy(x,y)
  81.  
  82. copies y to x, and returns x also.
  83.  
  84.     dFormat(s:STRING,x,num)
  85.  
  86. produces an ascii representation of 'x' in 's' with 'num' decimals after
  87. the '.'. num must be >0. Returns s.
  88. Not great and somewhat slow, but it works :-)
  89.  
  90.     dSqrt(x)
  91.  
  92.  
  93. ----------------
  94. NOTE: Erwin has added a large bunch of useful functions, and documentation
  95. on these can be found in the module source, and longdemo.e.
  96. Because the module got rather big, I also included the original longreal
  97. module (now longrealtiny.m) for those who don't need all the bells and
  98. whistles...
  99.  
  100.