Lines Matching refs:parts
22 // few parts; if heap storage is used at all then all parts are copied there.
50 // The fast algorithm: combine parts in a balanced-binary-tree like order:
51 // Multiply-and-add neighboring pairs of parts, then loop, until only one
60 // as the parts/multipliers grow, we'll need most of the memory anyway.)
63 // - one is considered empty, and is overwritten with the new parts,
65 // - one initially holds the parts and is overwritten with the new multipliers
80 // parts: 12 34 56 78 90 12 34 5
83 // parts: 1234 5678 9012 345
86 // parts: 12345678 9012345
94 RWDigits parts(accumulator->heap_parts_.data(), num_parts);
105 RWDigits new_multipliers = parts;
108 digit_t p_in = parts[i];
109 digit_t p_in2 = parts[i + 1];
132 new_parts[i] = parts[i];
138 parts = new_parts;
148 RWDigits new_multipliers = parts;
153 Digits p_in(parts, start, part_len);
154 Digits p_in2(parts, start + part_len, part_len);
187 Digits p_in(parts, i * part_len, part_len);
202 parts = new_parts;
207 if (parts.digits() != Z.digits()) {
209 for (; i < parts.len(); i++) Z[i] = parts[i];
219 // For these radixes, {parts} already is a list of correct bit sequences, we
221 // - The parts are currently in reversed order. The highest-index parts[i]
223 // - All parts, possibly except for the last, are maximally populated.
230 // Example: Given the following parts vector, where letters are used to
234 // parts[0] -> [xxABCDEF][xxGHIJKL][xxMNOPQR][xxxxxSTU] <- parts[3]
245 Digits parts(accumulator->heap_parts_.size() > 0
259 // If the last part is fully populated, then all parts must be, and we can
264 Z[z_index++] = parts[part_index--];
270 // Otherwise we have to shift parts contents around as needed.
272 digit_t digit = parts[part_index--];
276 // Holds the last part that we read from {parts}...
281 part = parts[part_index--];