Magnitude.st
author Claus Gittinger <cg@exept.de>
Tue, 30 Apr 1996 17:39:28 +0200
changeset 1321 52e043fb7eaf
parent 1295 83f594f05c52
child 5565 a815d6b86ace
permissions -rw-r--r--
checkin from browser
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     1
"
5
67342904af11 *** empty log message ***
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1988 by Claus Gittinger
213
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
     3
	      All Rights Reserved
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     4
a27a279701f8 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
a27a279701f8 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
a27a279701f8 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a27a279701f8 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a27a279701f8 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
a27a279701f8 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    11
"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    12
a27a279701f8 Initial revision
claus
parents:
diff changeset
    13
Object subclass:#Magnitude
1226
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    14
	instanceVariableNames:''
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    15
	classVariableNames:''
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    16
	poolDictionaries:''
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    17
	category:'Magnitude-General'
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    18
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    19
88
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    20
!Magnitude class methodsFor:'documentation'!
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    21
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    22
copyright
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    23
"
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    24
 COPYRIGHT (c) 1988 by Claus Gittinger
213
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
    25
	      All Rights Reserved
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    26
88
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    27
 This software is furnished under a license and may be used
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    28
 only in accordance with the terms of that license and with the
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    29
 inclusion of the above copyright notice.   This software may not
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    30
 be provided or otherwise made available to, or used by, any
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    31
 other person.  No title to or ownership of the software is
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    32
 hereby transferred.
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    33
"
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    34
!
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    35
88
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    36
documentation
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    37
"
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    38
    This is an abstract class definining common methods for
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    39
    Objects which can be compared by a kind of greater realation.
1295
83f594f05c52 documentation
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
    40
83f594f05c52 documentation
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
    41
    [author:]
83f594f05c52 documentation
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
    42
        Claus Gittinger
88
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    43
"
81dacba7a63a *** empty log message ***
claus
parents: 56
diff changeset
    44
! !
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    45
a27a279701f8 Initial revision
claus
parents:
diff changeset
    46
!Magnitude methodsFor:'comparing'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    47
699
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    48
< aMagnitude
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    49
    "Compare the receiver with the argument and return true if the
699
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    50
     receiver is less than the argument. Otherwise return false."
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    51
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    52
    ^ (aMagnitude > self)
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    53
!
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    54
699
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    55
<= aMagnitude
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    56
    "Compare the receiver with the argument and return true if the
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    57
     receiver is less than or equal to the argument. Otherwise return false."
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    58
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    59
    ^ (self > aMagnitude) not
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    60
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    61
a27a279701f8 Initial revision
claus
parents:
diff changeset
    62
= aMagnitude
a27a279701f8 Initial revision
claus
parents:
diff changeset
    63
    "Compare the receiver with the argument and return true if the
a27a279701f8 Initial revision
claus
parents:
diff changeset
    64
     receiver is equal to the argument. Otherwise return false."
a27a279701f8 Initial revision
claus
parents:
diff changeset
    65
a27a279701f8 Initial revision
claus
parents:
diff changeset
    66
    ^ self subclassResponsibility
a27a279701f8 Initial revision
claus
parents:
diff changeset
    67
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    68
699
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    69
> aMagnitude
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    70
    "Compare the receiver with the argument and return true if the
699
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    71
     receiver is greater than the argument. Otherwise return false."
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    72
699
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    73
    ^ self subclassResponsibility
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    74
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    75
a27a279701f8 Initial revision
claus
parents:
diff changeset
    76
>= aMagnitude
a27a279701f8 Initial revision
claus
parents:
diff changeset
    77
    "Compare the receiver with the argument and return true if the
a27a279701f8 Initial revision
claus
parents:
diff changeset
    78
     receiver is greater than or equal to the argument.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    79
     Otherwise return false."
a27a279701f8 Initial revision
claus
parents:
diff changeset
    80
a27a279701f8 Initial revision
claus
parents:
diff changeset
    81
    ^ (aMagnitude > self) not
213
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
    82
!
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
    83
1226
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    84
clampBetween:min and:max
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    85
    "return the receiver if its between min .. max,
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    86
     or min if its less than min, or max of its greater than max.
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    87
     This is only a lazy-typers helper for: ((something min:max) max:min)"
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    88
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    89
    (self > max) ifTrue:[^ max].
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    90
    (self < min) ifTrue:[^ min].
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    91
    ^ self
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    92
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    93
    "
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    94
     1 clampBetween:2 and:5  
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    95
     3 clampBetween:2 and:5  
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    96
     6 clampBetween:2 and:5  
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    97
    "
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    98
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
    99
    "Modified: 19.4.1996 / 14:58:12 / cg"
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
   100
!
0beea7b0ab4f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 699
diff changeset
   101
699
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   102
max:aMagnitude
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   103
    "return the receiver or the argument, whichever has greater magnitude"
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   104
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   105
    (self > aMagnitude) ifTrue:[^ self].
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   106
    ^ aMagnitude
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   107
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   108
    "
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   109
     1 max: 2
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   110
     1 max: 2.0
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   111
     2.0 max: 1.0
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   112
     2.0 max: 2
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   113
    "
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   114
!
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   115
213
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   116
min:aMagnitude
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   117
    "return the receiver or the argument, whichever has lesser magnitude"
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   118
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   119
    (self < aMagnitude) ifTrue:[^ self].
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   120
    ^ aMagnitude
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   121
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   122
    "
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   123
     1 min: 2
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   124
     1 min: 2.0
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   125
     2.0 min: 1.0
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   126
     2.0 min: 2
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   127
    "
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   128
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
   129
a27a279701f8 Initial revision
claus
parents:
diff changeset
   130
!Magnitude methodsFor:'testing'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   131
a27a279701f8 Initial revision
claus
parents:
diff changeset
   132
between:min and:max
a27a279701f8 Initial revision
claus
parents:
diff changeset
   133
    "return whether the receiver is less than or equal to the argument max
a27a279701f8 Initial revision
claus
parents:
diff changeset
   134
     and greater than or equal to the argument min."
a27a279701f8 Initial revision
claus
parents:
diff changeset
   135
a27a279701f8 Initial revision
claus
parents:
diff changeset
   136
    (self < min) ifTrue:[^ false].
a27a279701f8 Initial revision
claus
parents:
diff changeset
   137
    (self > max) ifTrue:[^ false].
a27a279701f8 Initial revision
claus
parents:
diff changeset
   138
    ^ true
56
be0ed17e6f85 *** empty log message ***
claus
parents: 5
diff changeset
   139
213
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   140
    "
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   141
     1.2 between:1 and:2
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   142
     (3/2) between:1 and:2
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   143
     (3/2) between:0 and:1
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   144
    "
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   145
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   146
a27a279701f8 Initial revision
claus
parents:
diff changeset
   147
in:anInterval
a27a279701f8 Initial revision
claus
parents:
diff changeset
   148
    "return whether the receiver is within the interval bounds"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   149
a27a279701f8 Initial revision
claus
parents:
diff changeset
   150
    (self < anInterval start) ifTrue:[^ false].
a27a279701f8 Initial revision
claus
parents:
diff changeset
   151
    (self > anInterval stop) ifTrue:[^ false].
a27a279701f8 Initial revision
claus
parents:
diff changeset
   152
    ^ true
56
be0ed17e6f85 *** empty log message ***
claus
parents: 5
diff changeset
   153
213
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   154
    "
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   155
     1.2 in:(1 to: 2)
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   156
     (3/2) in:(1 to: 2)
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   157
     (3/2) in:(0 to: 1)
3b56a17534fd *** empty log message ***
claus
parents: 93
diff changeset
   158
    "
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   159
! !
699
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   160
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   161
!Magnitude class methodsFor:'documentation'!
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   162
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   163
version
1295
83f594f05c52 documentation
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
   164
    ^ '$Header: /cvs/stx/stx/libbasic/Magnitude.st,v 1.14 1996-04-25 16:57:17 cg Exp $'
699
12f456343eea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   165
! !