home *** CD-ROM | disk | FTP | other *** search
/ Really Useful CD 1 / ReallyUsefulCD1.iso / extras / languages / smalltalk / _smalltalk / prelude / number < prev    next >
Encoding:
Text File  |  1987-12-30  |  2.0 KB  |  101 lines

  1. Class Number :Magnitude
  2. [
  3.      maxtype: aNumber
  4.           ^ <GeneralityTest self aNumber> 
  5.                ifTrue:  [self]
  6.                ifFalse: [aNumber coerce: self ]
  7. |
  8.      = aNumber
  9.           ^ (self maxtype: aNumber) = (aNumber maxtype: self)
  10. |
  11.      < aNumber
  12.           ^ (self maxtype: aNumber) < (aNumber maxtype: self)
  13. |
  14.      > aNumber
  15.           ^ (self maxtype: aNumber) > (aNumber maxtype: self)
  16. |
  17.      + aNumber
  18.           ^ (self maxtype: aNumber) + (aNumber maxtype: self)
  19. |
  20.      - aNumber
  21.           ^ (self maxtype: aNumber) - (aNumber maxtype: self)
  22. |
  23.      * aNumber
  24.           ^ (self maxtype: aNumber) * (aNumber maxtype: self)
  25. |
  26.      / aNumber
  27.           ^ (self maxtype: aNumber) / (aNumber maxtype: self)
  28. |
  29.      ^ aNumber
  30.           ^ self asFloat ^ aNumber asFloat
  31. |
  32.      @ aNumber
  33.           ^ ( Point new x: self ) y: aNumber
  34. |
  35.      abs
  36.           ^ (self < 0)
  37.                ifTrue:  [ 0 - self ]
  38.                ifFalse: [ self ]
  39. |
  40.      exp
  41.           ^ self asFloat exp
  42. |
  43.      gamma
  44.           ^ self asFloat gamma
  45. |
  46.      ln
  47.           ^ self asFloat ln
  48. |
  49.      log: aNumber
  50.           ^ self ln / aNumber ln
  51. |
  52.      negated
  53.           ^ 0 - self
  54. |
  55.      negative
  56.           ^ self < 0
  57. |
  58.      pi
  59.           ^ self * 3.1415926
  60. |
  61.      positive
  62.           ^ self >= 0
  63. |
  64.      radians
  65.           ^ Radian new: self asFloat
  66. |
  67.      raisedTo: aNumber
  68.           ^ self asFloat ^ aNumber asFloat
  69. |
  70.      reciprocal
  71.           ^ 1.00 / self
  72. |
  73.      roundTo: aNumber
  74.           ^ (self / aNumber) rounded * aNumber
  75. |
  76.      sign
  77.           ^ (self < 0)
  78.                ifTrue: [ -1 ]
  79.                ifFalse: [ (self > 0)
  80.                          ifTrue: [ 1 ]
  81.                          ifFalse: [ 0 ] ]
  82. |
  83.      sqrt
  84.           ^ self asFloat sqrt
  85. |
  86.      squared
  87.           ^ self * self
  88. |
  89.      strictlyPositive
  90.           ^ self > 0
  91. |
  92.      to: highValue
  93.           ^ Interval new ; from: self to: highValue by: 1
  94. |
  95.      to: highValue by: stepSize
  96.           ^ Interval new ; from: self to: highValue by: stepSize
  97. |
  98.      truncateTo: aNumber
  99.           ^ (self / aNumber) truncated * aNumber
  100. ]
  101.