1 define: #NumericMixin &parents: {Mixin}.
3 t@(NumericMixin traits) as: x@(Number traits)
5 t collect: #(as: n) `er
8 t@(NumericMixin traits) + n@(Number traits)
13 t@(NumericMixin traits) + u@(NumericMixin traits)
15 t with: u collect: #+ `er
18 t@(NumericMixin traits) * n@(Number traits)
23 t@(NumericMixin traits) * u@(NumericMixin traits)
25 t with: u collect: #* `er
28 t@(NumericMixin traits) / n@(Number traits)
33 t@(NumericMixin traits) / u@(NumericMixin traits)
35 t with: u collect: #/ `er
38 t@(NumericMixin traits) // n@(Number traits)
40 t collect: #(// n) `er
43 t@(NumericMixin traits) // u@(NumericMixin traits)
45 t with: u collect: #// `er
48 t@(NumericMixin traits) \\ n@(Number traits)
50 t collect: #(\\ n) `er
53 t@(NumericMixin traits) \\ u@(NumericMixin traits)
55 t with: u collect: #\\ `er
58 t@(NumericMixin traits) isNegative
60 t collect: #isNegative `er
63 t@(NumericMixin traits) abs
68 t@(NumericMixin traits) - x
70 t collect: [| :each | each + x negated]
73 t@(NumericMixin traits) isZero
75 (contents detect: [| :each | each isZero not]) isNil
78 c@(NumericMixin traits) min
80 c inject: c anyOne into: #min: `er
83 c@(NumericMixin traits) max
85 c inject: c anyOne into: #max: `er
88 c@(NumericMixin traits) range
93 c@(NumericMixin traits) median
95 (c as: SortedArray) median
98 c@(NumericMixin traits) average
103 c@(NumericMixin traits) sum
104 "Kludge to include unit'd measurement support."
106 (c inject: 0 into: #+ `er) - c anyOne
109 c@(NumericMixin traits) <= d@(NumericMixin traits)
111 c doWithIndex: [| :index | (c at: index) <= (d at: index)
116 c@(NumericMixin traits) >= d@(NumericMixin traits)
118 c doWithIndex: [| :index | (c at: index) >= (d at: index)
123 c@(NumericMixin traits) < d@(NumericMixin traits)
125 c doWithIndex: [| :index | (c at: index) < (d at: index)
130 c@(NumericMixin traits) > d@(NumericMixin traits)
132 c doWithIndex: [| :index | (c at: index) > (d at: index)