class library: SynthDef - lazy implementation of removeUGen
[supercollider.git] / HelpSource / Classes / Integer.schelp
blob6a88d2eba345ccf3796856b3cc75f646ee96f86b
1 class:: Integer
2 summary:: Integer number
3 categories:: Math
5 description::
6 A 32 bit integer. Integer inherits most of its behaviour from its superclass.
8 instancemethods::
10 subsection:: Iteration
12 method:: do
13 Executes strong::function:: for all integers from zero to this minus one.
14 argument:: function
15 a link::Classes/Function:: which is passed two arguments, both of which are the same
16 integer from zero to this minus one. The reason two arguments are passed is for
17 symmetry with the implementations of do in link::Classes/Collection::.
19 method:: reverseDo
20 Executes strong::function:: for all integers from  this minus one to zero.
22 method:: for
23 Executes strong::function:: for all integers from this to strong::endval::, inclusive.
24 argument:: endval
25 an link::Classes/Integer::.
26 argument:: function
27 a link::Classes/Function:: which is passed two arguments, the first which is an integer from this to
28 endval, and the second which is a number from zero to the number of iterations minus one.
30 method:: forBy
31 Executes strong::function:: for all integers from this to strong::endval::, inclusive, stepping each time by strong::stepval::.
32 argument:: endval
33 an link::Classes/Integer::.
34 argument:: stepval
35 an link::Classes/Integer::.
36 argument:: function
37 a link::Classes/Function:: which is passed two arguments, the first which is an integer from this to
38 endval, and the second which is a number from zero to the number of iterations minus one.
40 method:: collect
41 Returns:: an link::Classes/Array:: of this size filled by objects generated from evaluating the strong::function::.
43 method:: collectAs
44 Returns:: a link::Classes/Collection:: of strong::class:: of this size filled by objects generated from evaluating the strong::function::.
46 method:: to
47 returns:: an link::Classes/Interval:: from this to strong::hi::.
49 method:: geom
50 returns:: an array with a geometric series of this size from start.
52 method:: fib
53 returns:: an array with a fibonacci series of this size beginning with strong::a:: and strong::b::.
55 method:: factors
56 returns:: the prime factors as array.
58 method:: factorial
59 returns:: the factorial of this.
62 subsection:: Random Numbers
63 See also: link::Guides/Randomness::
65 method:: xrand
66 returns:: a random value from zero to this, excluding the value exclude.
67 argument:: exclude
68 an link::Classes/Integer::.
70 method:: xrand2
71 returns:: a random value from this.neg to this, excluding the value exclude.
72 argument:: exclude
73 an link::Classes/Integer::.
76 subsection:: Conversion
78 method:: asAscii
79 returns:: a link::Classes/Char:: which has the ASCII value of the receiver.
81 method:: asDigit
82 returns:: a link::Classes/Char:: which represents the receiver as an ASCII digit.
83 discussion:: For example code::5.asDigit:: returns code::$5::.
85 method:: asBinaryDigits
86 returns:: an array with the binary digits (integer 0 or 1).
88 method:: asDigits
89 returns:: an array with the n-ary digits.
90 discussion::
91 See also the complementary method link::Classes/SequenceableCollection#-convertDigits::.
92 code::
93 2007.asDigits;
94 2007.asDigits(2);
97 method:: asBinaryString
98 returns:: a string with the binary digits (0 or 1).
100 method:: asHexString
101 returns:: a string with the hexadecimal digits (integer 0 to F).
103 method:: asIPString
104 returns:: a string in IP format.
106 method:: degreeToKey
107 Interpret this as index into a scale with a given number of steps per ocatve.
108 discussion::
109 code::
110 2.degreeToKey([0, 2, 5, 7, 11]);
113 method:: grayCode
114 Returns:: the gray code for the number.
115 discussion::
116 code::
117 2.grayCode
120 subsection:: Binary Representation
122 method:: setBit
123 set nth bit to zero (bool = false) or one (bool = true)
125 method::leadingZeroes
126 code:: { _CLZ } ::
128 method:: trailingZeroes
129 code:: { _CTZ } ::
131 method:: numBits
132 returns:: number of required bits
135 subsection:: Properties
137 method:: even
138 returns:: true if dividable by 2 with no rest
140 method:: odd
141 returns:: true if not dividable by 2 with no rest
144 subsection:: Powers Of Two
146 method:: nextPowerOfTwo
147 returns:: the next power of two greater than or equal to the receiver.
148 discussion::
149 code::
150 13.nextPowerOfTwo.postln;
151 64.nextPowerOfTwo.postln;
154 method:: isPowerOfTwo
155 returns:: the whether the receiver is a power of two.
156 discussion::
157 code::
158 13.isPowerOfTwo.postln;
159 64.isPowerOfTwo.postln;
163 subsection:: Prime Numbers
165 method:: nthPrime
166 returns:: the nth prime number. The receiver must be from 0 to 6541.
167 discussion::
168 code::
169 [0,1,2,3,4,5].collect({ arg i; i.nthPrime; }).postln;
172 method:: prevPrime
173 returns:: the next prime less than or equal to the receiver up to 65521.
174 discussion::
175 code::
176 25.prevPrime.postln;
179 method:: nextPrime
180 returns:: the next prime less than or equal to the receiver up to 65521.
181 discussion::
182 code::
183 25.nextPrime.postln;
186 method:: isPrime
187 returns:: whether the receiver is prime.
188 discussion::
189 code::
190 25.isPrime.postln;
191 13.isPrime.postln;
194 method:: indexOfPrime
195 returns:: the index of a prime number less than or equal to the receiver up to 65521.
196 If the receiver is not a prime, the answer is nil.
197 discussion::
198 code::
199 23.indexOfPrime;
200 25.indexOfPrime;
204 subsection:: Misc
206 method:: pidRunning
207 returns:: a Boolean for whether or not the specified pid is running.
208 discussion::
209 code::
210 p = "cat".unixCmd;
211 p.pidRunning; // cat will stay alive
212 ("kill" + p).unixCmd
213 p.pidRunning;
216 method:: getKeys
217 Returns:: the bits from the Macintosh GetKeys() Toolbox call. Receiver should be 0 to 3.
218 discussion::
219 code::
220 [0.getKeys, 1.getKeys, 2.getKeys, 3.getKeys].postln;