From 9e5f709d2b191e42c1c4227260794928331de187 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Mon, 8 Apr 2024 21:13:35 +0200 Subject: Use double-division instead of integer-division --- lib/unicode/prop/uprop_get_nv.c | 304 ++++++++++++++++++++-------------------- 1 file changed, 152 insertions(+), 152 deletions(-) (limited to 'lib/unicode/prop/uprop_get_nv.c') diff --git a/lib/unicode/prop/uprop_get_nv.c b/lib/unicode/prop/uprop_get_nv.c index 240ea1c..5d476ef 100644 --- a/lib/unicode/prop/uprop_get_nv.c +++ b/lib/unicode/prop/uprop_get_nv.c @@ -8,38 +8,38 @@ #include "unicode/prop.h" static constexpr double lookup_lat1[] = { - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, 2, 3, NAN, NAN, NAN, NAN, - NAN, 1, NAN, NAN, 1/4, 1/2, 3/4, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, - NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, 2, 3, NAN, NAN, NAN, NAN, + NAN, 1, NAN, NAN, 1./4, 1./2, 3./4, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, + NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, }; static const struct { @@ -96,11 +96,11 @@ static const struct { {RUNE_C(0x0009ED), 7}, {RUNE_C(0x0009EE), 8}, {RUNE_C(0x0009EF), 9}, - {RUNE_C(0x0009F4), 1/16}, - {RUNE_C(0x0009F5), 1/8}, - {RUNE_C(0x0009F6), 3/16}, - {RUNE_C(0x0009F7), 1/4}, - {RUNE_C(0x0009F8), 3/4}, + {RUNE_C(0x0009F4), 1./16}, + {RUNE_C(0x0009F5), 1./8}, + {RUNE_C(0x0009F6), 3./16}, + {RUNE_C(0x0009F7), 1./4}, + {RUNE_C(0x0009F8), 3./4}, {RUNE_C(0x0009F9), 16}, {RUNE_C(0x000A66), 0}, {RUNE_C(0x000A67), 1}, @@ -132,12 +132,12 @@ static const struct { {RUNE_C(0x000B6D), 7}, {RUNE_C(0x000B6E), 8}, {RUNE_C(0x000B6F), 9}, - {RUNE_C(0x000B72), 1/4}, - {RUNE_C(0x000B73), 1/2}, - {RUNE_C(0x000B74), 3/4}, - {RUNE_C(0x000B75), 1/16}, - {RUNE_C(0x000B76), 1/8}, - {RUNE_C(0x000B77), 3/16}, + {RUNE_C(0x000B72), 1./4}, + {RUNE_C(0x000B73), 1./2}, + {RUNE_C(0x000B74), 3./4}, + {RUNE_C(0x000B75), 1./16}, + {RUNE_C(0x000B76), 1./8}, + {RUNE_C(0x000B77), 3./16}, {RUNE_C(0x000BE6), 0}, {RUNE_C(0x000BE7), 1}, {RUNE_C(0x000BE8), 2}, @@ -178,13 +178,13 @@ static const struct { {RUNE_C(0x000CED), 7}, {RUNE_C(0x000CEE), 8}, {RUNE_C(0x000CEF), 9}, - {RUNE_C(0x000D58), 1/160}, - {RUNE_C(0x000D59), 1/40}, - {RUNE_C(0x000D5A), 3/80}, - {RUNE_C(0x000D5B), 1/20}, - {RUNE_C(0x000D5C), 1/10}, - {RUNE_C(0x000D5D), 3/20}, - {RUNE_C(0x000D5E), 1/5}, + {RUNE_C(0x000D58), 1./160}, + {RUNE_C(0x000D59), 1./40}, + {RUNE_C(0x000D5A), 3./80}, + {RUNE_C(0x000D5B), 1./20}, + {RUNE_C(0x000D5C), 1./10}, + {RUNE_C(0x000D5D), 3./20}, + {RUNE_C(0x000D5E), 1./5}, {RUNE_C(0x000D66), 0}, {RUNE_C(0x000D67), 1}, {RUNE_C(0x000D68), 2}, @@ -198,12 +198,12 @@ static const struct { {RUNE_C(0x000D70), 10}, {RUNE_C(0x000D71), 100}, {RUNE_C(0x000D72), 1000}, - {RUNE_C(0x000D73), 1/4}, - {RUNE_C(0x000D74), 1/2}, - {RUNE_C(0x000D75), 3/4}, - {RUNE_C(0x000D76), 1/16}, - {RUNE_C(0x000D77), 1/8}, - {RUNE_C(0x000D78), 3/16}, + {RUNE_C(0x000D73), 1./4}, + {RUNE_C(0x000D74), 1./2}, + {RUNE_C(0x000D75), 3./4}, + {RUNE_C(0x000D76), 1./16}, + {RUNE_C(0x000D77), 1./8}, + {RUNE_C(0x000D78), 3./16}, {RUNE_C(0x000DE6), 0}, {RUNE_C(0x000DE7), 1}, {RUNE_C(0x000DE8), 2}, @@ -244,16 +244,16 @@ static const struct { {RUNE_C(0x000F27), 7}, {RUNE_C(0x000F28), 8}, {RUNE_C(0x000F29), 9}, - {RUNE_C(0x000F2A), 1/2}, - {RUNE_C(0x000F2B), 3/2}, - {RUNE_C(0x000F2C), 5/2}, - {RUNE_C(0x000F2D), 7/2}, - {RUNE_C(0x000F2E), 9/2}, - {RUNE_C(0x000F2F), 11/2}, - {RUNE_C(0x000F30), 13/2}, - {RUNE_C(0x000F31), 15/2}, - {RUNE_C(0x000F32), 17/2}, - {RUNE_C(0x000F33), -1/2}, + {RUNE_C(0x000F2A), 1./2}, + {RUNE_C(0x000F2B), 3./2}, + {RUNE_C(0x000F2C), 5./2}, + {RUNE_C(0x000F2D), 7./2}, + {RUNE_C(0x000F2E), 9./2}, + {RUNE_C(0x000F2F), 11./2}, + {RUNE_C(0x000F30), 13./2}, + {RUNE_C(0x000F31), 15./2}, + {RUNE_C(0x000F32), 17./2}, + {RUNE_C(0x000F33), -1./2}, {RUNE_C(0x001040), 0}, {RUNE_C(0x001041), 1}, {RUNE_C(0x001042), 2}, @@ -425,21 +425,21 @@ static const struct { {RUNE_C(0x002087), 7}, {RUNE_C(0x002088), 8}, {RUNE_C(0x002089), 9}, - {RUNE_C(0x002150), 1/7}, - {RUNE_C(0x002151), 1/9}, - {RUNE_C(0x002152), 1/10}, - {RUNE_C(0x002153), 1/3}, - {RUNE_C(0x002154), 2/3}, - {RUNE_C(0x002155), 1/5}, - {RUNE_C(0x002156), 2/5}, - {RUNE_C(0x002157), 3/5}, - {RUNE_C(0x002158), 4/5}, - {RUNE_C(0x002159), 1/6}, - {RUNE_C(0x00215A), 5/6}, - {RUNE_C(0x00215B), 1/8}, - {RUNE_C(0x00215C), 3/8}, - {RUNE_C(0x00215D), 5/8}, - {RUNE_C(0x00215E), 7/8}, + {RUNE_C(0x002150), 1./7}, + {RUNE_C(0x002151), 1./9}, + {RUNE_C(0x002152), 1./10}, + {RUNE_C(0x002153), 1./3}, + {RUNE_C(0x002154), 2./3}, + {RUNE_C(0x002155), 1./5}, + {RUNE_C(0x002156), 2./5}, + {RUNE_C(0x002157), 3./5}, + {RUNE_C(0x002158), 4./5}, + {RUNE_C(0x002159), 1./6}, + {RUNE_C(0x00215A), 5./6}, + {RUNE_C(0x00215B), 1./8}, + {RUNE_C(0x00215C), 3./8}, + {RUNE_C(0x00215D), 5./8}, + {RUNE_C(0x00215E), 7./8}, {RUNE_C(0x00215F), 1}, {RUNE_C(0x002160), 1}, {RUNE_C(0x002161), 2}, @@ -593,7 +593,7 @@ static const struct { {RUNE_C(0x002791), 8}, {RUNE_C(0x002792), 9}, {RUNE_C(0x002793), 10}, - {RUNE_C(0x002CFD), 1/2}, + {RUNE_C(0x002CFD), 1./2}, {RUNE_C(0x003007), 0}, {RUNE_C(0x003021), 1}, {RUNE_C(0x003022), 2}, @@ -757,12 +757,12 @@ static const struct { {RUNE_C(0x00A6ED), 8}, {RUNE_C(0x00A6EE), 9}, {RUNE_C(0x00A6EF), 0}, - {RUNE_C(0x00A830), 1/4}, - {RUNE_C(0x00A831), 1/2}, - {RUNE_C(0x00A832), 3/4}, - {RUNE_C(0x00A833), 1/16}, - {RUNE_C(0x00A834), 1/8}, - {RUNE_C(0x00A835), 3/16}, + {RUNE_C(0x00A830), 1./4}, + {RUNE_C(0x00A831), 1./2}, + {RUNE_C(0x00A832), 3./4}, + {RUNE_C(0x00A833), 1./16}, + {RUNE_C(0x00A834), 1./8}, + {RUNE_C(0x00A835), 3./16}, {RUNE_C(0x00A8D0), 0}, {RUNE_C(0x00A8D1), 1}, {RUNE_C(0x00A8D2), 2}, @@ -885,8 +885,8 @@ static const struct { {RUNE_C(0x010131), 70000}, {RUNE_C(0x010132), 80000}, {RUNE_C(0x010133), 90000}, - {RUNE_C(0x010140), 1/4}, - {RUNE_C(0x010141), 1/2}, + {RUNE_C(0x010140), 1./4}, + {RUNE_C(0x010141), 1./2}, {RUNE_C(0x010142), 1}, {RUNE_C(0x010143), 5}, {RUNE_C(0x010144), 50}, @@ -938,12 +938,12 @@ static const struct { {RUNE_C(0x010172), 5000}, {RUNE_C(0x010173), 5}, {RUNE_C(0x010174), 50}, - {RUNE_C(0x010175), 1/2}, - {RUNE_C(0x010176), 1/2}, - {RUNE_C(0x010177), 2/3}, - {RUNE_C(0x010178), 3/4}, + {RUNE_C(0x010175), 1./2}, + {RUNE_C(0x010176), 1../2}, + {RUNE_C(0x010177), 2./3}, + {RUNE_C(0x010178), 3./4}, {RUNE_C(0x01018A), 0}, - {RUNE_C(0x01018B), 1/4}, + {RUNE_C(0x01018B), 1./4}, {RUNE_C(0x0102E1), 1}, {RUNE_C(0x0102E2), 2}, {RUNE_C(0x0102E3), 3}, @@ -1027,8 +1027,8 @@ static const struct { {RUNE_C(0x010919), 100}, {RUNE_C(0x01091A), 2}, {RUNE_C(0x01091B), 3}, - {RUNE_C(0x0109BC), 11/12}, - {RUNE_C(0x0109BD), 1/2}, + {RUNE_C(0x0109BC), 11./12}, + {RUNE_C(0x0109BD), 1./2}, {RUNE_C(0x0109C0), 1}, {RUNE_C(0x0109C1), 2}, {RUNE_C(0x0109C2), 3}, @@ -1081,16 +1081,16 @@ static const struct { {RUNE_C(0x0109F3), 700000}, {RUNE_C(0x0109F4), 800000}, {RUNE_C(0x0109F5), 900000}, - {RUNE_C(0x0109F6), 1/12}, - {RUNE_C(0x0109F7), 1/6}, - {RUNE_C(0x0109F8), 1/4}, - {RUNE_C(0x0109F9), 1/3}, - {RUNE_C(0x0109FA), 5/12}, - {RUNE_C(0x0109FB), 1/2}, - {RUNE_C(0x0109FC), 7/12}, - {RUNE_C(0x0109FD), 2/3}, - {RUNE_C(0x0109FE), 3/4}, - {RUNE_C(0x0109FF), 5/6}, + {RUNE_C(0x0109F6), 1./12}, + {RUNE_C(0x0109F7), 1./6}, + {RUNE_C(0x0109F8), 1./4}, + {RUNE_C(0x0109F9), 1./3}, + {RUNE_C(0x0109FA), 5./12}, + {RUNE_C(0x0109FB), 1./2}, + {RUNE_C(0x0109FC), 7./12}, + {RUNE_C(0x0109FD), 2./3}, + {RUNE_C(0x0109FE), 3./4}, + {RUNE_C(0x0109FF), 5./6}, {RUNE_C(0x010A40), 1}, {RUNE_C(0x010A41), 2}, {RUNE_C(0x010A42), 3}, @@ -1099,7 +1099,7 @@ static const struct { {RUNE_C(0x010A45), 20}, {RUNE_C(0x010A46), 100}, {RUNE_C(0x010A47), 1000}, - {RUNE_C(0x010A48), 1/2}, + {RUNE_C(0x010A48), 1./2}, {RUNE_C(0x010A7D), 1}, {RUNE_C(0x010A7E), 50}, {RUNE_C(0x010A9D), 1}, @@ -1176,10 +1176,10 @@ static const struct { {RUNE_C(0x010E78), 700}, {RUNE_C(0x010E79), 800}, {RUNE_C(0x010E7A), 900}, - {RUNE_C(0x010E7B), 1/2}, - {RUNE_C(0x010E7C), 1/4}, - {RUNE_C(0x010E7D), 1/3}, - {RUNE_C(0x010E7E), 2/3}, + {RUNE_C(0x010E7B), 1./2}, + {RUNE_C(0x010E7C), 1./4}, + {RUNE_C(0x010E7D), 1./3}, + {RUNE_C(0x010E7E), 2./3}, {RUNE_C(0x010F1D), 1}, {RUNE_C(0x010F1E), 2}, {RUNE_C(0x010F1F), 3}, @@ -1189,7 +1189,7 @@ static const struct { {RUNE_C(0x010F23), 20}, {RUNE_C(0x010F24), 30}, {RUNE_C(0x010F25), 100}, - {RUNE_C(0x010F26), 1/2}, + {RUNE_C(0x010F26), 1./2}, {RUNE_C(0x010F51), 1}, {RUNE_C(0x010F52), 10}, {RUNE_C(0x010F53), 20}, @@ -1431,27 +1431,27 @@ static const struct { {RUNE_C(0x011F57), 7}, {RUNE_C(0x011F58), 8}, {RUNE_C(0x011F59), 9}, - {RUNE_C(0x011FC0), 1/320}, - {RUNE_C(0x011FC1), 1/160}, - {RUNE_C(0x011FC2), 1/80}, - {RUNE_C(0x011FC3), 1/64}, - {RUNE_C(0x011FC4), 1/40}, - {RUNE_C(0x011FC5), 1/32}, - {RUNE_C(0x011FC6), 3/80}, - {RUNE_C(0x011FC7), 3/64}, - {RUNE_C(0x011FC8), 1/20}, - {RUNE_C(0x011FC9), 1/16}, - {RUNE_C(0x011FCA), 1/16}, - {RUNE_C(0x011FCB), 1/10}, - {RUNE_C(0x011FCC), 1/8}, - {RUNE_C(0x011FCD), 3/20}, - {RUNE_C(0x011FCE), 3/16}, - {RUNE_C(0x011FCF), 1/5}, - {RUNE_C(0x011FD0), 1/4}, - {RUNE_C(0x011FD1), 1/2}, - {RUNE_C(0x011FD2), 1/2}, - {RUNE_C(0x011FD3), 3/4}, - {RUNE_C(0x011FD4), 1/320}, + {RUNE_C(0x011FC0), 1./320}, + {RUNE_C(0x011FC1), 1./160}, + {RUNE_C(0x011FC2), 1./80}, + {RUNE_C(0x011FC3), 1./64}, + {RUNE_C(0x011FC4), 1./40}, + {RUNE_C(0x011FC5), 1./32}, + {RUNE_C(0x011FC6), 3./80}, + {RUNE_C(0x011FC7), 3./64}, + {RUNE_C(0x011FC8), 1./20}, + {RUNE_C(0x011FC9), 1./16}, + {RUNE_C(0x011FCA), 1../16}, + {RUNE_C(0x011FCB), 1./10}, + {RUNE_C(0x011FCC), 1./8}, + {RUNE_C(0x011FCD), 3./20}, + {RUNE_C(0x011FCE), 3./16}, + {RUNE_C(0x011FCF), 1./5}, + {RUNE_C(0x011FD0), 1./4}, + {RUNE_C(0x011FD1), 1./2}, + {RUNE_C(0x011FD2), 1../2}, + {RUNE_C(0x011FD3), 3./4}, + {RUNE_C(0x011FD4), 1./320}, {RUNE_C(0x012400), 2}, {RUNE_C(0x012401), 3}, {RUNE_C(0x012402), 4}, @@ -1542,19 +1542,19 @@ static const struct { {RUNE_C(0x012457), 3}, {RUNE_C(0x012458), 1}, {RUNE_C(0x012459), 2}, - {RUNE_C(0x01245A), 1/3}, - {RUNE_C(0x01245B), 2/3}, - {RUNE_C(0x01245C), 5/6}, - {RUNE_C(0x01245D), 1/3}, - {RUNE_C(0x01245E), 2/3}, - {RUNE_C(0x01245F), 1/8}, - {RUNE_C(0x012460), 1/4}, - {RUNE_C(0x012461), 1/6}, - {RUNE_C(0x012462), 1/4}, - {RUNE_C(0x012463), 1/4}, - {RUNE_C(0x012464), 1/2}, - {RUNE_C(0x012465), 1/3}, - {RUNE_C(0x012466), 2/3}, + {RUNE_C(0x01245A), 1./3}, + {RUNE_C(0x01245B), 2./3}, + {RUNE_C(0x01245C), 5./6}, + {RUNE_C(0x01245D), 1./3}, + {RUNE_C(0x01245E), 2./3}, + {RUNE_C(0x01245F), 1./8}, + {RUNE_C(0x012460), 1./4}, + {RUNE_C(0x012461), 1./6}, + {RUNE_C(0x012462), 1./4}, + {RUNE_C(0x012463), 1../4}, + {RUNE_C(0x012464), 1./2}, + {RUNE_C(0x012465), 1./3}, + {RUNE_C(0x012466), 2./3}, {RUNE_C(0x012467), 40}, {RUNE_C(0x012468), 50}, {RUNE_C(0x012469), 4}, @@ -1846,9 +1846,9 @@ static const struct { {RUNE_C(0x01ECA9), 7}, {RUNE_C(0x01ECAA), 8}, {RUNE_C(0x01ECAB), 9}, - {RUNE_C(0x01ECAD), 1/4}, - {RUNE_C(0x01ECAE), 1/2}, - {RUNE_C(0x01ECAF), 3/4}, + {RUNE_C(0x01ECAD), 1./4}, + {RUNE_C(0x01ECAE), 1./2}, + {RUNE_C(0x01ECAF), 3./4}, {RUNE_C(0x01ECB1), 1}, {RUNE_C(0x01ECB2), 2}, {RUNE_C(0x01ECB3), 10000}, @@ -1911,8 +1911,8 @@ static const struct { {RUNE_C(0x01ED39), 600}, {RUNE_C(0x01ED3A), 2000}, {RUNE_C(0x01ED3B), 10000}, - {RUNE_C(0x01ED3C), 1/2}, - {RUNE_C(0x01ED3D), 1/6}, + {RUNE_C(0x01ED3C), 1./2}, + {RUNE_C(0x01ED3D), 1./6}, {RUNE_C(0x01F100), 0}, {RUNE_C(0x01F101), 0}, {RUNE_C(0x01F102), 1}, -- cgit v1.2.3