1 /* Various Thresholds of MPFR, not exported. -*- mode: C -*- 2 3 Copyright 2005-2023 Free Software Foundation, Inc. 4 5 This file is part of the GNU MPFR Library. 6 7 The GNU MPFR Library is free software; you can redistribute it and/or modify 8 it under the terms of the GNU Lesser General Public License as published by 9 the Free Software Foundation; either version 3 of the License, or (at your 10 option) any later version. 11 12 The GNU MPFR Library is distributed in the hope that it will be useful, but 13 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 15 License for more details. 16 17 You should have received a copy of the GNU Lesser General Public License 18 along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see 19 https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc., 20 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ 21 22 /* Generated by MPFR's tuneup.c, 2018-02-22, gcc 7.3.0 */ 23 /* calva.loria.fr ARMv7 Processor rev 5 (v7l) with gmp-6.1.2, 24 which defines -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a7 */ 25 26 #define MPFR_MULHIGH_TAB \ 27 -1,0,0,0,-1,-1,0,-1,-1,-1,-1,-1,0,-1,-1,0, \ 28 0,0,13,14,13,14,17,16,16,17,19,19,20,20,23,23, \ 29 24,25,23,24,25,26,25,26,29,28,29,29,31,32,32,34, \ 30 29,35,31,32,32,32,32,34,35,38,37,38,40,38,38,40, \ 31 40,40,40,40,46,46,46,52,46,46,52,51,52,50,52,51, \ 32 52,51,52,52,56,52,58,58,58,58,64,64,58,62,64,64, \ 33 64,64,64,63,64,64,68,88,64,68,70,70,80,70,76,80, \ 34 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, \ 35 92,92,92,92,92,92,92,92,92,92,104,104,104,104,100,104, \ 36 104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,116, \ 37 104,116,116,104,116,116,116,116,116,116,116,116,116,116,116,116, \ 38 112,128,116,128,128,128,128,128,135,116,128,127,128,128,127,128, \ 39 128,153,124,128,128,135,128,128,128,153,147,153,153,135,128,153, \ 40 153,153,153,138,135,135,153,153,153,153,150,153,152,152,150,153, \ 41 153,153,152,153,152,153,152,153,153,153,152,152,153,153,170,171, \ 42 171,165,170,170,171,170,170,171,168,171,171,171,170,171,170,171, \ 43 170,171,171,170,168,189,186,189,170,189,189,189,189,189,189,189, \ 44 189,189,188,189,188,189,189,189,189,189,189,189,189,189,189,204, \ 45 204,204,204,204,204,204,204,204,204,204,204,204,228,228,228,228, \ 46 228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228, \ 47 228,228,228,228,228,228,228,228,228,228,228,252,252,252,252,252, \ 48 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252, \ 49 252,252,252,251,252,252,252,252,252,252,251,252,252,252,252,252, \ 50 252,252,252,252,252,252,252,252,252,252,252,252,276,252,276,276, \ 51 276,276,275,252,276,276,276,276,276,276,276,276,316,276,276,316, \ 52 316,316,316,316,316,316,316,316,316,315,316,316,316,316,316,316, \ 53 316,316,316,315,316,316,316,315,316,316,315,316,316,316,316,316, \ 54 316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316, \ 55 316,316,316,316,316,364,316,316,364,364,363,364,364,364,364,364, \ 56 364,364,364,363,364,364,364,364,364,364,364,364,364,364,364,364, \ 57 364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364, \ 58 364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364, \ 59 364,364,364,364,364,364,364,364,364,364,364,412,412,412,412,412, \ 60 412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412, \ 61 412,412,412,412,412,412,412,412,412,412,411,412,412,412,411,412, \ 62 412,412,412,412,412,412,412,412,412,474,412,474,474,474,474,474, \ 63 474,473,474,474,474,474,474,474,473,474,474,474,474,474,473,474, \ 64 474,474,474,474,474,474,473,474,474,474,474,474,474,474,474,474, \ 65 474,474,473,474,474,474,474,474,473,474,474,474,474,474,474,474, \ 66 474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474, \ 67 474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474, \ 68 474,474,504,474,474,504,474,474,474,474,474,504,504,474,474,504, \ 69 504,504,504,504,504,504,504,504,504,504,504,504,504,504,536,504, \ 70 552,552,504,552,504,552,552,552,552,552,552,552,552,552,552,552, \ 71 552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552, \ 72 552,552,552,552,552,552,552,632,631,631,632,631,632,632,630,631, \ 73 632,632,631,631,632,632,631,632,632,631,632,632,632,632,632,632, \ 74 632,631,632,632,632,632,632,632,632,632,632,632,632,631,632,632, \ 75 632,632,632,632,632,631,631,632,632,632,632,632,632,632,632,632, \ 76 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \ 77 632,632,632,632,632,631,632,632,632,632,632,632,632,632,632,632, \ 78 631,632,632,631,632,632,632,632,632,630,631,632,632,631,632,632, \ 79 632,632,632,631,632,631,632,632,632,632,632,728,728,631,632,728, \ 80 728,727,728,728,728,727,728,727,728,727,728,728,728,728,728,728, \ 81 728,727,728,728,728,728,728,728,728,727,728,728,728,727,728,728, \ 82 728,728,728,728,728,727,728,728,728,727,728,728,728,727,728,728, \ 83 728,727,728,728,728,728,728,728,728,727,728,728,728,727,728,728, \ 84 728,727,726,727,728,728,728,728,728,727,728,728,728,727,728,728, \ 85 728,728,728,728,728,728,728,728,728,727,728,728,728,727,728,728, \ 86 728,728,728,728,728,726,728,728,728,824,728,728,727,824,824,728, \ 87 824,824,728,824,824,728,824,824,728,824,824,728,824,824,824,824, \ 88 824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, \ 89 824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, \ 90 824,824,824,824,824,824,823,824,824,824,824,824,824,823,824,824 \ 91 92 #define MPFR_SQRHIGH_TAB \ 93 -1,0,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, \ 94 12,12,11,12,12,14,15,16,16,16,18,16,20,18,20,20, \ 95 21,20,20,24,22,24,24,25,26,28,28,25,25,27,27,28, \ 96 29,27,28,29,29,28,29,29,31,31,32,33,33,35,35,36, \ 97 37,34,35,36,37,36,39,40,41,42,41,40,42,41,42,44, \ 98 44,42,44,44,45,44,48,48,49,50,48,52,56,56,52,52, \ 99 56,52,56,56,60,56,56,64,64,60,60,64,68,64,68,64, \ 100 68,64,68,68,72,72,72,72,68,72,76,74,72,72,72,80, \ 101 72,72,72,72,70,72,72,74,74,80,76,80,78,80,80,84, \ 102 80,84,84,88,84,88,88,90,88,84,92,80,88,88,88,84, \ 103 84,92,88,88,88,88,88,88,88,88,96,96,92,92,112,96, \ 104 96,92,92,96,104,104,112,104,104,112,112,112,104,104,104,112, \ 105 112,112,112,112,112,112,112,120,120,112,120,112,120,120,120,112, \ 106 128,120,120,128,128,112,128,120,120,120,120,128,120,128,128,128, \ 107 128,128,128,136,128,128,136,136,136,136,136,136,136,136,144,144, \ 108 136,144,144,128,144,144,144,128,144,144,136,144,144,136,136,144, \ 109 144,144,144,144,144,144,144,144,144,144,144,144,144,152,144,152, \ 110 152,144,144,144,160,160,144,160,160,160,160,160,160,160,160,160, \ 111 160,160,160,160,160,177,177,160,160,160,160,160,160,160,177,160, \ 112 160,160,160,160,177,177,177,160,177,177,177,201,177,201,177,201, \ 113 201,177,201,201,201,201,201,177,201,201,201,201,201,201,201,201, \ 114 201,201,201,207,201,201,201,200,201,201,201,201,201,201,201,201, \ 115 201,201,213,201,213,213,213,213,213,213,213,213,213,213,218,218, \ 116 218,219,213,213,213,213,219,213,225,213,218,219,225,219,237,218, \ 117 237,237,237,237,237,237,237,237,237,237,237,237,224,237,249,237, \ 118 237,249,237,237,249,243,237,237,243,243,237,249,249,249,249,248, \ 119 249,249,249,237,249,249,261,249,249,260,261,248,249,249,261,261, \ 120 261,261,261,273,261,249,249,260,261,273,261,261,261,273,284,284, \ 121 273,284,261,284,273,261,292,273,284,292,291,292,292,292,292,284, \ 122 292,292,292,284,291,292,284,292,292,284,292,284,284,292,292,284, \ 123 284,292,284,291,292,308,291,292,292,292,292,284,284,284,284,316, \ 124 292,292,316,284,308,292,292,284,300,316,292,292,316,292,300,316, \ 125 316,316,291,292,292,292,291,292,316,292,308,308,300,316,316,332, \ 126 292,300,316,316,316,316,316,316,332,308,324,316,316,316,332,316, \ 127 316,316,332,316,332,316,332,324,316,324,332,332,332,332,332,332, \ 128 332,332,332,332,332,332,324,316,332,348,324,332,348,348,348,348, \ 129 332,348,332,332,348,348,332,332,348,332,348,364,364,332,348,364, \ 130 348,364,348,348,348,364,348,348,364,348,348,364,364,348,364,364, \ 131 364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,372, \ 132 380,364,380,372,380,364,379,380,364,364,364,380,364,380,402,380, \ 133 364,372,364,380,372,380,402,380,402,402,402,402,402,402,426,402, \ 134 402,426,402,402,402,438,426,438,426,426,426,438,426,438,426,438, \ 135 426,426,426,426,426,426,438,426,426,426,438,426,438,438,438,438, \ 136 438,438,438,426,426,438,438,438,426,426,426,438,426,426,426,438, \ 137 426,426,438,438,426,438,438,438,438,438,474,450,438,474,474,450, \ 138 474,474,474,474,474,474,474,474,474,450,474,474,474,474,450,474, \ 139 486,474,498,474,473,474,474,474,474,474,474,474,498,474,474,498, \ 140 473,474,474,438,474,474,474,498,450,474,474,498,450,498,498,498, \ 141 522,498,498,474,522,498,498,498,498,498,474,522,474,498,474,498, \ 142 474,474,474,474,474,522,474,474,474,522,522,522,474,522,522,522, \ 143 522,522,498,522,522,498,498,498,498,522,498,498,498,498,498,498, \ 144 522,498,498,498,498,498,498,498,498,522,546,522,522,522,522,522, \ 145 522,522,522,546,522,522,522,522,522,546,522,522,522,522,522,522, \ 146 546,546,522,522,546,546,546,546,546,546,546,522,546,546,546,546, \ 147 546,546,546,546,546,546,545,546,546,546,546,546,568,558,546,568, \ 148 546,568,568,546,546,546,546,546,546,546,546,568,546,546,546,545, \ 149 546,584,584,584,546,584,546,584,568,546,568,584,584,568,584,568, \ 150 584,584,600,568,584,600,568,584,568,568,584,600,600,600,600,584, \ 151 600,600,616,584,600,616,632,616,584,616,616,632,632,616,632,632, \ 152 632,631,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \ 153 632,632,632,632,632,632,632,632,632,632,632,632,664,632,632,632, \ 154 632,664,664,632,632,664,632,664,664,632,664,664,664,632,664,632, \ 155 632,664,631,664,632,664,664,664,664,664,664,664,664,664,664,664, \ 156 664,664,664,664,664,664,664,664,696,664,696,696,664,696,696,664 \ 157 158 #define MPFR_DIVHIGH_TAB \ 159 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \ 160 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \ 161 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \ 162 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \ 163 0,0,0,0,0,0,0,0,0,42,41,44,44,45,45,45, /*64-79*/ \ 164 44,44,49,47,47,46,47,46,52,52,52,51,52,52,52,52, /*80-95*/ \ 165 53,51,52,59,58,52,59,64,58,59,62,68,62,57,64,59, /*96-111*/ \ 166 64,59,68,68,70,68,70,70,68,64,70,70,66,64,66,70, /*112-127*/ \ 167 76,67,69,72,70,70,80,80,71,88,76,80,80,76,80,80, /*128-143*/ \ 168 80,88,88,90,92,92,92,90,88,84,92,80,88,80,92,92, /*144-159*/ \ 169 92,92,92,88,88,90,90,92,92,92,95,94,94,92,92,94, /*160-175*/ \ 170 96,104,94,92,92,92,95,102,104,104,103,104,104,104,104,104, /*176-191*/ \ 171 104,104,104,100,104,104,104,104,104,104,104,103,104,112,108,112, /*192-207*/ \ 172 116,116,116,128,116,128,116,128,116,128,128,128,116,128,128,128, /*208-223*/ \ 173 127,128,128,128,128,128,128,136,128,128,136,128,128,140,128,128, /*224-239*/ \ 174 128,140,128,136,128,128,128,128,128,139,128,136,136,138,140,140, /*240-255*/ \ 175 136,136,140,140,140,140,140,138,144,140,136,140,148,142,139,160, /*256-271*/ \ 176 160,140,160,158,160,160,160,148,160,160,160,160,160,160,160,160, /*272-287*/ \ 177 160,160,152,160,160,160,176,176,160,160,176,160,160,168,160,184, /*288-303*/ \ 178 160,160,184,160,160,176,160,160,176,184,184,184,160,184,184,183, /*304-319*/ \ 179 176,184,184,182,184,184,184,184,182,184,184,184,176,208,184,184, /*320-335*/ \ 180 192,184,184,184,184,184,184,184,208,184,184,184,208,208,184,184, /*336-351*/ \ 181 208,208,184,208,208,208,208,208,208,200,208,184,208,208,208,208, /*352-367*/ \ 182 208,208,208,208,208,208,208,208,208,208,208,208,208,204,208,208, /*368-383*/ \ 183 208,208,208,207,208,208,206,208,208,208,208,206,208,208,208,208, /*384-399*/ \ 184 208,208,206,208,208,208,208,208,208,208,208,208,208,208,224,224, /*400-415*/ \ 185 224,224,224,231,232,256,256,224,256,232,232,232,256,256,232,224, /*416-431*/ \ 186 232,256,256,224,232,228,224,256,232,256,256,232,256,256,256,256, /*432-447*/ \ 187 256,256,256,232,256,230,256,256,256,256,256,256,256,256,256,256, /*448-463*/ \ 188 256,248,256,256,256,252,256,256,256,256,255,256,254,256,256,256, /*464-479*/ \ 189 256,256,256,255,256,256,256,256,256,256,256,256,256,248,256,256, /*480-495*/ \ 190 256,256,256,256,256,256,256,256,256,256,256,256,256,270,280,272, /*496-511*/ \ 191 272,280,270,268,280,288,288,288,288,292,280,276,288,270,280,304, /*512-527*/ \ 192 288,304,288,280,280,279,304,280,280,280,280,304,296,280,280,282, /*528-543*/ \ 193 304,320,279,320,288,304,304,288,320,304,320,316,320,304,320,304, /*544-559*/ \ 194 288,304,304,304,320,304,320,320,320,304,304,304,320,318,296,304, /*560-575*/ \ 195 320,320,318,320,318,304,304,320,304,304,320,304,304,304,304,320, /*576-591*/ \ 196 320,320,320,318,320,320,320,318,352,320,320,320,318,352,320,352, /*592-607*/ \ 197 320,320,320,320,320,336,368,336,368,320,320,368,352,352,368,368, /*608-623*/ \ 198 366,320,342,368,320,368,352,350,352,352,320,364,352,366,352,366, /*624-639*/ \ 199 368,367,366,360,364,368,368,366,368,368,368,368,368,366,368,378, /*640-655*/ \ 200 352,376,368,368,352,364,352,368,352,366,366,352,368,384,368,368, /*656-671*/ \ 201 364,366,364,367,368,367,368,368,376,368,368,368,368,367,368,376, /*672-687*/ \ 202 366,364,366,366,368,366,368,368,368,368,384,416,384,376,416,368, /*688-703*/ \ 203 376,378,368,366,368,368,384,368,366,416,368,368,416,376,368,367, /*704-719*/ \ 204 368,384,416,416,368,416,416,416,416,416,416,416,384,384,408,416, /*720-735*/ \ 205 416,416,376,408,408,416,416,408,408,416,416,416,378,416,416,416, /*736-751*/ \ 206 416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,400, /*752-767*/ \ 207 416,416,416,416,416,416,416,416,408,416,416,416,416,416,408,416, /*768-783*/ \ 208 416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416, /*784-799*/ \ 209 448,416,416,416,416,448,416,456,416,416,416,448,416,416,416,416, /*800-815*/ \ 210 416,448,416,448,416,416,416,416,416,416,416,448,456,416,448,464, /*816-831*/ \ 211 456,448,512,448,464,462,464,464,464,448,448,464,448,448,464,448, /*832-847*/ \ 212 448,448,464,480,512,448,448,448,464,512,448,448,448,456,456,456, /*848-863*/ \ 213 512,512,464,464,456,464,464,512,512,512,512,464,512,512,512,512, /*864-879*/ \ 214 512,512,512,512,512,512,512,512,512,512,512,512,456,512,512,454, /*880-895*/ \ 215 512,512,456,511,464,512,504,504,504,512,512,504,512,464,512,512, /*896-911*/ \ 216 512,512,512,512,464,512,512,512,512,512,512,464,512,512,512,512, /*912-927*/ \ 217 504,512,510,512,512,512,512,512,512,512,512,512,512,512,512,512, /*928-943*/ \ 218 512,512,512,512,512,504,504,512,512,512,512,512,504,512,512,512, /*944-959*/ \ 219 512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512, /*960-975*/ \ 220 512,512,512,512,512,511,512,512,512,512,512,512,504,512,512,511, /*976-991*/ \ 221 511,512,512,511,512,512,512,512,512,512,512,512,512,511,512,512, /*992-1007*/ \ 222 512,512,512,512,512,512,512,512,512,512,512,512,512,536,544,544 /*1008-1023*/ \ 223 224 #define MPFR_MUL_THRESHOLD 22 /* limbs */ 225 #define MPFR_SQR_THRESHOLD 24 /* limbs */ 226 #define MPFR_DIV_THRESHOLD 3 /* limbs */ 227 #define MPFR_EXP_2_THRESHOLD 277 /* bits */ 228 #define MPFR_EXP_THRESHOLD 10666 /* bits */ 229 #define MPFR_SINCOS_THRESHOLD 28990 /* bits */ 230 #define MPFR_AI_THRESHOLD1 -28503 /* threshold for negative input of mpfr_ai */ 231 #define MPFR_AI_THRESHOLD2 2972 232 #define MPFR_AI_THRESHOLD3 44718 233 /* Tuneup completed successfully, took 3001 seconds */ 234