(root)/
mpfr-4.2.1/
src/
arm/
mparam.h
       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 */