Lines Matching defs:magnitude

37 int32_t getIndex(int32_t magnitude, StandardPlural::Form plural) {
38 return magnitude * StandardPlural::COUNT + plural;
97 int32_t CompactData::getMultiplier(int32_t magnitude) const {
98 if (magnitude < 0) {
101 if (magnitude > largestMagnitude) {
102 magnitude = largestMagnitude;
104 return multipliers[magnitude];
108 int32_t magnitude,
111 if (magnitude < 0) {
114 if (magnitude > largestMagnitude) {
115 magnitude = largestMagnitude;
121 patternString = patterns[getIndex(magnitude, StandardPlural::Form::EQ_0)];
123 patternString = patterns[getIndex(magnitude, StandardPlural::Form::EQ_1)];
130 patternString = patterns[getIndex(magnitude, plural)];
133 patternString = patterns[getIndex(magnitude, StandardPlural::OTHER)];
175 // Assumes that the keys are always of the form "10000" where the magnitude is the
177 // ignore entries that have greater magnitude.
178 auto magnitude = static_cast<int8_t> (strlen(key) - 1);
179 U_ASSERT(magnitude < COMPACT_MAX_DIGITS); // debug assert
180 if (magnitude >= COMPACT_MAX_DIGITS) { // skip in production
183 int8_t multiplier = data.multipliers[magnitude];
189 // Skip this magnitude/plural if we already have it from a child locale.
193 if (data.patterns[getIndex(magnitude, plural)] != nullptr) {
208 data.patterns[getIndex(magnitude, plural)] = patternString;
210 // If necessary, compute the multiplier: the difference between the magnitude
215 multiplier = static_cast<int8_t> (numZeros - magnitude - 1);
221 if (data.multipliers[magnitude] == 0) {
222 data.multipliers[magnitude] = multiplier;
223 if (magnitude > data.largestMagnitude) {
224 data.largestMagnitude = magnitude;
228 U_ASSERT(data.multipliers[magnitude] == multiplier);
300 // Treat zero, NaN, and infinity as if they had magnitude 0
301 int32_t magnitude;
304 magnitude = 0;
309 magnitude = quantity.isZeroish() ? 0 : quantity.getMagnitude();
310 magnitude -= multiplier;
313 const UChar *patternString = data.getPattern(magnitude, rules, quantity);