• Home
  • Raw
  • Download

Lines Matching +full:- +full:- +full:diff

5 *   Copyright (C) 2001-2014, International Business Machines
9 * encoding: US-ASCII
29 * encode one difference value -0x10ffff..+0x10ffff in 1..4 bytes,
33 u_writeDiff(int32_t diff, uint8_t *p) { in u_writeDiff() argument
34 if(diff>=SLOPE_REACH_NEG_1) { in u_writeDiff()
35 if(diff<=SLOPE_REACH_POS_1) { in u_writeDiff()
36 *p++=(uint8_t)(SLOPE_MIDDLE+diff); in u_writeDiff()
37 } else if(diff<=SLOPE_REACH_POS_2) { in u_writeDiff()
38 *p++=(uint8_t)(SLOPE_START_POS_2+(diff/SLOPE_TAIL_COUNT)); in u_writeDiff()
39 *p++=(uint8_t)(SLOPE_MIN+diff%SLOPE_TAIL_COUNT); in u_writeDiff()
40 } else if(diff<=SLOPE_REACH_POS_3) { in u_writeDiff()
41 p[2]=(uint8_t)(SLOPE_MIN+diff%SLOPE_TAIL_COUNT); in u_writeDiff()
42 diff/=SLOPE_TAIL_COUNT; in u_writeDiff()
43 p[1]=(uint8_t)(SLOPE_MIN+diff%SLOPE_TAIL_COUNT); in u_writeDiff()
44 *p=(uint8_t)(SLOPE_START_POS_3+(diff/SLOPE_TAIL_COUNT)); in u_writeDiff()
47 p[3]=(uint8_t)(SLOPE_MIN+diff%SLOPE_TAIL_COUNT); in u_writeDiff()
48 diff/=SLOPE_TAIL_COUNT; in u_writeDiff()
49 p[2]=(uint8_t)(SLOPE_MIN+diff%SLOPE_TAIL_COUNT); in u_writeDiff()
50 diff/=SLOPE_TAIL_COUNT; in u_writeDiff()
51 p[1]=(uint8_t)(SLOPE_MIN+diff%SLOPE_TAIL_COUNT); in u_writeDiff()
58 if(diff>=SLOPE_REACH_NEG_2) { in u_writeDiff()
59 NEGDIVMOD(diff, SLOPE_TAIL_COUNT, m); in u_writeDiff()
60 *p++=(uint8_t)(SLOPE_START_NEG_2+diff); in u_writeDiff()
62 } else if(diff>=SLOPE_REACH_NEG_3) { in u_writeDiff()
63 NEGDIVMOD(diff, SLOPE_TAIL_COUNT, m); in u_writeDiff()
65 NEGDIVMOD(diff, SLOPE_TAIL_COUNT, m); in u_writeDiff()
67 *p=(uint8_t)(SLOPE_START_NEG_3+diff); in u_writeDiff()
70 NEGDIVMOD(diff, SLOPE_TAIL_COUNT, m); in u_writeDiff()
72 NEGDIVMOD(diff, SLOPE_TAIL_COUNT, m); in u_writeDiff()
74 NEGDIVMOD(diff, SLOPE_TAIL_COUNT, m); in u_writeDiff()
85 * a sequence of byte-encoded differences (slope detection),
88 * Optimize the difference-taking for runs of Unicode text within
91 * Most small scripts are allocated within aligned 128-blocks of Unicode
97 * Note that the identical-level run in a sort key is generated from
98 * NFD text - there are never Hangul characters included.
117 uint8_t *lastSafe=p+capacity-SLOPE_MAX_BYTES; in u_writeIdenticalLevelRun()
120 prev=(prev&~0x7f)-SLOPE_REACH_NEG_1; in u_writeIdenticalLevelRun()
124 * double-bytes down from the upper end in u_writeIdenticalLevelRun()
126 prev=0x9fff-SLOPE_REACH_POS_2; in u_writeIdenticalLevelRun()
135 p=u_writeDiff(c-prev, p); in u_writeIdenticalLevelRun()
139 sink.Append(buffer, (int32_t)(p-reinterpret_cast<uint8_t *>(buffer))); in u_writeIdenticalLevelRun()