1Slurm::Bitstr(3) User Contributed Perl Documentation Slurm::Bitstr(3)
2
3
4
6 Slurm::Bitstr - Bitstring functions in libslurm
7
9 use Slurm;
10
11 $bitmap = Slurm::Bitstr::alloc(32);
12 if ($bitmap->test(10)) {
13 print "bit 10 is set\n";
14 }
15
17 The Slurm::Bitstr class is a wrapper of the bit string functions in
18 libslurm. This package is loaded and bootstrapped with package Slurm.
19
21 $bitmap = Slurm::Bitstr::alloc($nbits);
22
23 Allocate a bitstring object with $nbits bits. An opaque bitstr object
24 is returned. This is a CLASS METHOD.
25
26 $bitmap->realloc($nbits);
27
28 Reallocate a bitstring(expand or contract size). $nbits is the number
29 of bits in the new bitstring.
30
31 $len = $bitmap->size();
32
33 Return the number of possible bits in a bitstring.
34
35 $cond = $bitmap->test($n);
36
37 Check if bit $n of $bitmap is set.
38
39 $bitmap->set($n);
40
41 Set bit $n of $bitmap.
42
43 $bitmap->clear($n);
44
45 Clear bit $n of $bitmap.
46
47 $bitmap->nset($start, $stop);
48
49 Set bits $start .. $stop in $bitmap.
50
51 $bitmap->nclear($start, $stop);
52
53 Clear bits $start .. $stop in $bitmap.
54
55 $pos = $bitmap->ffc();
56
57 Find first bit clear in $bitmap.
58
59 $pos = $bitmap->nffc($n)
60
61 Find the first $n contiguous bits clear in $bitmap.
62
63 $pos = $bitmap->noc($n, $seed);
64
65 Find $n contiguous bits clear in $bitmap starting at offset $seed.
66
67 $pos = $bitmap->nffs($n);
68
69 Find the first $n contiguous bits set in $bitmap.
70
71 $pos = $bitmap->ffs();
72
73 Find first bit set in $bitmap;
74
75 $pos = $bitmap->fls();
76
77 Find last bit set in $bitmap;
78
79 $bitmap->fill_gaps();
80
81 Set all bits of $bitmap between the first and last bits set(i.e. fill
82 in the gaps to make set bits contiguous).
83
84 $cond = $bitmap1->super_set($bitmap2);
85
86 Return 1 if all bits set in $bitmap1 are also set in $bitmap2, 0
87 otherwise.
88
89 $cond = $bitmap1->equal($bitmap2);
90
91 Return 1 if $bitmap1 and $bitmap2 are identical, 0 otherwise.
92
93 $bitmap1->and($bitmap2);
94
95 $bitmap1 &= $bitmap2.
96
97 $bitmap->not();
98
99 $bitmap = ~$bitmap.
100
101 $bitmap1->or($bitmap2);
102
103 $bitmap1 |= $bitmap2.
104
105 $new = $bitmap->copy();
106
107 Return a copy of the supplied bitmap.
108
109 $dest_bitmap->copybits($src_bitmap);
110
111 Copy all bits of $src_bitmap to $dest_bitmap.
112
113 $n = $bitmap->set_count();
114
115 Count the number of bits set in bitstring.
116
117 $n = $bitmap1->overlap($bitmap2);
118
119 Return number of bits set in $bitmap1 that are also set in $bitmap2, 0
120 if no overlap.
121
122 $n = $bitmap->clear_count();
123
124 Count the number of bits clear in bitstring.
125
126 $n = $bitmap->nset_max_count();
127
128 Return the count of the largest number of contiguous bits set in
129 $bitmap.
130
131 $sum = $bitmap->inst_and_set_count($int_array);
132
133 And $int_array and $bitmap and sum the elements corresponding to set
134 entries in $bitmap.
135
136 $new = $bitmap->rotate_copy($n, $nbits);
137
138 Return a copy of $bitmap rotated by $n bits. Number of bit in the new
139 bitmap is $nbits.
140
141 $bitmap->rotate($n);
142
143 Rotate $bitmap by $n bits.
144
145 $new = $bitmap->pick_cnt($nbits);
146
147 Build a bitmap containing the first $nbits of $bitmap which are set.
148
149 $str = $bitmap->fmt();
150
151 Convert $bitmap to range string format, e.g. 0-5,42
152
153 $rc = $bitmap->unfmt($str);
154
155 Convert range string format to bitmap.
156
157 $array = Slurm::Bitstr::bitfmt2int($str);
158
159 Convert $str describing bitmap (output from fmt(), e.g.
160 "0-30,45,50-60") into an array of integer (start/edn) pairs terminated
161 by -1 (e.g. "0, 30, 45, 45, 50, 60, -1").
162
163 $str = $bitmap->fmt_hexmask();
164
165 Given a bit string, allocate and return a string in the form of:
166 "0x0123ABC\0"
167 ^ ^
168 | |
169 MSB LSB
170
171 $rc = $bitmap->unfmt_hexmask($str);
172
173 Give a hex mask string "0x0123ABC\0", convert to a bit string.
174 ^ ^
175 | |
176 MSB LSB
177
178 $str = $bitmap->fmt_binmask();
179
180 Given a bit string, allocate and return a binary string in the form of:
181 "0001010\0"
182 ^ ^
183 | |
184 MSB LSB
185
186 $rc = $bitmap->unfmt_binmask($str);
187
188 Give a bin mask string "0001010\0", convert to a bit string.
189 ^ ^
190 | |
191 MSB LSB
192
193 $pos = $bitmap->get_bit_num($n);
194
195 Find position of the $n-th set bit(0 based, i.e., the first set bit is
196 the 0-th) in $bitmap. Returns -1 if there are less than $n bits set.
197
198 $n = $bitmap->get_pos_num($pos);
199
200 Find the number of bits set minus one in $bitmap between bit position
201 [0 .. $pos]. Returns -1 if no bits are set between [0 .. $pos].
202
204 Slurm
205
207 This library is created by Hongjia Cao, <hjcao(AT)nudt.edu.cn> and
208 Danny Auble, <da(AT)llnl.gov>. It is distributed with Slurm.
209
211 This library is free software; you can redistribute it and/or modify it
212 under the same terms as Perl itself, either Perl version 5.8.4 or, at
213 your option, any later version of Perl 5 you may have available.
214
215
216
217perl v5.32.0 2021-01-19 Slurm::Bitstr(3)