59 mask = 1 << (num_joints - 1 - 32);
60 for (x = num_joints; x > 32; x--) {
61 if (state->
part1 & mask) {
74 mask = 1 << (num_joints - 1);
77 if (state->
part2 & mask) {
102 inT16 num_pieces = 0;
104 mask = ((num_joints > 32) ?
105 (1 << (num_joints - 1 - 32)) : (1 << (num_joints - 1)));
107 pieces[num_pieces] = 0;
109 for (x = num_joints - 1; x >= 0; x--) {
111 pieces[num_pieces]++;
115 ((state->
part1 & mask) ?
TRUE : FALSE)) {
116 pieces[++num_pieces] = 0;
119 mask = ((mask == 1) ? (1 << 31) : (mask >> 1));
121 pieces[num_pieces]++;
122 pieces[++num_pieces] = 0;
135 register int num_joints) {
136 register unsigned int mask;
137 register unsigned int result;
139 index = (num_joints - index);
143 result = (mask & state->
part2) << 1;
144 result |= (~mask & state->
part2);
146 if (state->
part2 & 0x80000000)
148 state->
part2 = result;
153 result = (mask & state->
part1) << 1;
154 result |= (~mask & state->
part1);
155 state->
part1 = result;
169 this_state = newstate ();
187 mask = 1 << (num_joints - 1 - 32);
189 mask = 1 << (num_joints - 1);
191 for (x = num_joints - 1; x >= 0; x--) {
195 num_ones += ((state->
part2 & mask) ? 1 : 0);
197 num_ones += ((state->
part1 & mask) ? 1 : 0);
219 mask = 1 << (num_joints - 1 - 32);
221 mask = 1 << (num_joints - 1);
225 for (x = num_joints - 1; x >= 0; x--) {
249 for (
int i = 0; pieces[i] > 0; i++) {
266 state->
part2 >>= 32 - n;
272 state->
part1 >>= 64 - n;
makestructure(newstate, free_state, STATE)
STATE * new_state(STATE *oldstate)
void print_state(const char *label, STATE *state, int num_joints)
SEARCH_STATE bin_to_chunks(STATE *state, int num_joints)
int ones_in_state(STATE *state, int num_joints)
void add_str_int(const char *str, int number)
void set_n_ones(STATE *state, int n)
void insert_new_chunk(register STATE *state, register int index, register int num_joints)
uinT8 PIECES_STATE[MAX_NUM_CHUNKS+2]
void cprintf(const char *format,...)
void bin_to_pieces(STATE *state, int num_joints, PIECES_STATE pieces)