Forgot a help fix: Drag a dock's title bar, not divider, to reposition
[supercollider.git] / HelpSource / Classes / Integer.schelp
blobd63951af270c41be6cc43722a8e0fc6f215aa031
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 argument:: exclude
67 an link::Classes/Integer::.
68 returns:: a random value from zero to this, excluding the value exclude.
70 method:: xrand2
71 argument:: exclude
72 an link::Classes/Integer::.
73 returns:: a random value from this.neg to this, excluding the value exclude.
75 subsection:: Conversion
77 method:: asAscii
78 returns:: a link::Classes/Char:: which has the ASCII value of the receiver.
80 method:: asDigit
81 returns:: a link::Classes/Char:: which represents the receiver as an ASCII digit.
82 discussion:: For example code::5.asDigit:: returns code::$5::.
84 method:: asBinaryDigits
85 returns:: an array with the binary digits (integer 0 or 1).
87 method:: asDigits
88 returns:: an array with the n-ary digits.
89 discussion::
90 See also the complementary method link::Classes/SequenceableCollection#-convertDigits::.
91 code::
92 2007.asDigits;
93 2007.asDigits(2);
96 method:: asBinaryString
97 returns:: a string with the binary digits (0 or 1).
99 method:: asHexString
100 returns:: a string with the hexadecimal digits (integer 0 to F).
102 method:: asIPString
103 returns:: a string in IP format.
105 method:: degreeToKey
106 Interpret this as index into a scale with a given number of steps per ocatve.
107 discussion::
108 code::
109 2.degreeToKey([0, 2, 5, 7, 11]);
112 method:: grayCode
113 Returns:: the gray code for the number.
114 discussion::
115 code::
116 2.grayCode
119 subsection:: Binary Representation
121 method:: setBit
122 set nth bit to zero (bool = false) or one (bool = true)
124 method::leadingZeroes
125 code:: { _CLZ } ::
127 method:: trailingZeroes
128 code:: { _CTZ } ::
130 method:: numBits
131 returns:: number of required bits
134 subsection:: Properties
136 method:: even
137 returns:: true if dividable by 2 with no rest
139 method:: odd
140 returns:: true if not dividable by 2 with no rest
143 subsection:: Powers Of Two
145 method:: nextPowerOfTwo
146 returns:: the next power of two greater than or equal to the receiver.
147 discussion::
148 code::
149 13.nextPowerOfTwo.postln;
150 64.nextPowerOfTwo.postln;
153 method:: isPowerOfTwo
154 returns:: the whether the receiver is a power of two.
155 discussion::
156 code::
157 13.isPowerOfTwo.postln;
158 64.isPowerOfTwo.postln;
162 subsection:: Prime Numbers
164 method:: nthPrime
165 returns:: the nth prime number. The receiver must be from 0 to 6541.
166 discussion::
167 code::
168 [0,1,2,3,4,5].collect({ arg i; i.nthPrime; }).postln;
171 method:: prevPrime
172 returns:: the next prime less than or equal to the receiver up to 65521.
173 discussion::
174 code::
175 25.prevPrime.postln;
178 method:: nextPrime
179 returns:: the next prime less than or equal to the receiver up to 65521.
180 discussion::
181 code::
182 25.nextPrime.postln;
185 method:: isPrime
186 returns:: whether the receiver is prime.
187 discussion::
188 code::
189 25.isPrime.postln;
190 13.isPrime.postln;
193 method:: indexOfPrime
194 returns:: the index of a prime number less than or equal to the receiver up to 65521.
195 If the receiver is not a prime, the answer is nil.
196 discussion::
197 code::
198 23.indexOfPrime;
199 25.indexOfPrime;
203 subsection:: Misc
205 method:: pidRunning
206 returns:: a Boolean for whether or not the specified pid is running.
207 discussion::
208 code::
209 p = "cat".unixCmd;
210 p.pidRunning; // cat will stay alive
211 ("kill" + p).unixCmd
212 p.pidRunning;