(root)/
Python-3.12.0/
Modules/
_decimal/
docstrings.h
       1  /*
       2   * Copyright (c) 2001-2012 Python Software Foundation. All Rights Reserved.
       3   * Modified and extended by Stefan Krah.
       4   */
       5  
       6  
       7  #ifndef DOCSTRINGS_H
       8  #define DOCSTRINGS_H
       9  
      10  
      11  #include "pymacro.h"
      12  
      13  
      14  /******************************************************************************/
      15  /*                                Module                                      */
      16  /******************************************************************************/
      17  
      18  
      19  PyDoc_STRVAR(doc__decimal,
      20  "C decimal arithmetic module");
      21  
      22  PyDoc_STRVAR(doc_getcontext,
      23  "getcontext($module, /)\n--\n\n\
      24  Get the current default context.\n\
      25  \n");
      26  
      27  PyDoc_STRVAR(doc_setcontext,
      28  "setcontext($module, context, /)\n--\n\n\
      29  Set a new default context.\n\
      30  \n");
      31  
      32  PyDoc_STRVAR(doc_localcontext,
      33  "localcontext($module, /, ctx=None, **kwargs)\n--\n\n\
      34  Return a context manager that will set the default context to a copy of ctx\n\
      35  on entry to the with-statement and restore the previous default context when\n\
      36  exiting the with-statement. If no context is specified, a copy of the current\n\
      37  default context is used.\n\
      38  \n");
      39  
      40  #ifdef EXTRA_FUNCTIONALITY
      41  PyDoc_STRVAR(doc_ieee_context,
      42  "IEEEContext($module, bits, /)\n--\n\n\
      43  Return a context object initialized to the proper values for one of the\n\
      44  IEEE interchange formats.  The argument must be a multiple of 32 and less\n\
      45  than IEEE_CONTEXT_MAX_BITS.  For the most common values, the constants\n\
      46  DECIMAL32, DECIMAL64 and DECIMAL128 are provided.\n\
      47  \n");
      48  #endif
      49  
      50  
      51  /******************************************************************************/
      52  /*                       Decimal Object and Methods                           */
      53  /******************************************************************************/
      54  
      55  PyDoc_STRVAR(doc_decimal,
      56  "Decimal(value=\"0\", context=None)\n--\n\n\
      57  Construct a new Decimal object. 'value' can be an integer, string, tuple,\n\
      58  or another Decimal object. If no value is given, return Decimal('0'). The\n\
      59  context does not affect the conversion and is only passed to determine if\n\
      60  the InvalidOperation trap is active.\n\
      61  \n");
      62  
      63  PyDoc_STRVAR(doc_adjusted,
      64  "adjusted($self, /)\n--\n\n\
      65  Return the adjusted exponent of the number.  Defined as exp + digits - 1.\n\
      66  \n");
      67  
      68  PyDoc_STRVAR(doc_as_tuple,
      69  "as_tuple($self, /)\n--\n\n\
      70  Return a tuple representation of the number.\n\
      71  \n");
      72  
      73  PyDoc_STRVAR(doc_as_integer_ratio,
      74  "as_integer_ratio($self, /)\n--\n\n\
      75  Decimal.as_integer_ratio() -> (int, int)\n\
      76  \n\
      77  Return a pair of integers, whose ratio is exactly equal to the original\n\
      78  Decimal and with a positive denominator. The ratio is in lowest terms.\n\
      79  Raise OverflowError on infinities and a ValueError on NaNs.\n\
      80  \n");
      81  
      82  PyDoc_STRVAR(doc_canonical,
      83  "canonical($self, /)\n--\n\n\
      84  Return the canonical encoding of the argument.  Currently, the encoding\n\
      85  of a Decimal instance is always canonical, so this operation returns its\n\
      86  argument unchanged.\n\
      87  \n");
      88  
      89  PyDoc_STRVAR(doc_compare,
      90  "compare($self, /, other, context=None)\n--\n\n\
      91  Compare self to other.  Return a decimal value:\n\
      92  \n\
      93      a or b is a NaN ==> Decimal('NaN')\n\
      94      a < b           ==> Decimal('-1')\n\
      95      a == b          ==> Decimal('0')\n\
      96      a > b           ==> Decimal('1')\n\
      97  \n");
      98  
      99  PyDoc_STRVAR(doc_compare_signal,
     100  "compare_signal($self, /, other, context=None)\n--\n\n\
     101  Identical to compare, except that all NaNs signal.\n\
     102  \n");
     103  
     104  PyDoc_STRVAR(doc_compare_total,
     105  "compare_total($self, /, other, context=None)\n--\n\n\
     106  Compare two operands using their abstract representation rather than\n\
     107  their numerical value.  Similar to the compare() method, but the result\n\
     108  gives a total ordering on Decimal instances.  Two Decimal instances with\n\
     109  the same numeric value but different representations compare unequal\n\
     110  in this ordering:\n\
     111  \n\
     112      >>> Decimal('12.0').compare_total(Decimal('12'))\n\
     113      Decimal('-1')\n\
     114  \n\
     115  Quiet and signaling NaNs are also included in the total ordering. The result\n\
     116  of this function is Decimal('0') if both operands have the same representation,\n\
     117  Decimal('-1') if the first operand is lower in the total order than the second,\n\
     118  and Decimal('1') if the first operand is higher in the total order than the\n\
     119  second operand. See the specification for details of the total order.\n\
     120  \n\
     121  This operation is unaffected by context and is quiet: no flags are changed\n\
     122  and no rounding is performed. As an exception, the C version may raise\n\
     123  InvalidOperation if the second operand cannot be converted exactly.\n\
     124  \n");
     125  
     126  PyDoc_STRVAR(doc_compare_total_mag,
     127  "compare_total_mag($self, /, other, context=None)\n--\n\n\
     128  Compare two operands using their abstract representation rather than their\n\
     129  value as in compare_total(), but ignoring the sign of each operand.\n\
     130  \n\
     131  x.compare_total_mag(y) is equivalent to x.copy_abs().compare_total(y.copy_abs()).\n\
     132  \n\
     133  This operation is unaffected by context and is quiet: no flags are changed\n\
     134  and no rounding is performed. As an exception, the C version may raise\n\
     135  InvalidOperation if the second operand cannot be converted exactly.\n\
     136  \n");
     137  
     138  PyDoc_STRVAR(doc_conjugate,
     139  "conjugate($self, /)\n--\n\n\
     140  Return self.\n\
     141  \n");
     142  
     143  PyDoc_STRVAR(doc_copy_abs,
     144  "copy_abs($self, /)\n--\n\n\
     145  Return the absolute value of the argument.  This operation is unaffected by\n\
     146  context and is quiet: no flags are changed and no rounding is performed.\n\
     147  \n");
     148  
     149  PyDoc_STRVAR(doc_copy_negate,
     150  "copy_negate($self, /)\n--\n\n\
     151  Return the negation of the argument.  This operation is unaffected by context\n\
     152  and is quiet: no flags are changed and no rounding is performed.\n\
     153  \n");
     154  
     155  PyDoc_STRVAR(doc_copy_sign,
     156  "copy_sign($self, /, other, context=None)\n--\n\n\
     157  Return a copy of the first operand with the sign set to be the same as the\n\
     158  sign of the second operand. For example:\n\
     159  \n\
     160      >>> Decimal('2.3').copy_sign(Decimal('-1.5'))\n\
     161      Decimal('-2.3')\n\
     162  \n\
     163  This operation is unaffected by context and is quiet: no flags are changed\n\
     164  and no rounding is performed. As an exception, the C version may raise\n\
     165  InvalidOperation if the second operand cannot be converted exactly.\n\
     166  \n");
     167  
     168  PyDoc_STRVAR(doc_exp,
     169  "exp($self, /, context=None)\n--\n\n\
     170  Return the value of the (natural) exponential function e**x at the given\n\
     171  number.  The function always uses the ROUND_HALF_EVEN mode and the result\n\
     172  is correctly rounded.\n\
     173  \n");
     174  
     175  PyDoc_STRVAR(doc_from_float,
     176  "from_float($type, f, /)\n--\n\n\
     177  Class method that converts a float to a decimal number, exactly.\n\
     178  Since 0.1 is not exactly representable in binary floating point,\n\
     179  Decimal.from_float(0.1) is not the same as Decimal('0.1').\n\
     180  \n\
     181      >>> Decimal.from_float(0.1)\n\
     182      Decimal('0.1000000000000000055511151231257827021181583404541015625')\n\
     183      >>> Decimal.from_float(float('nan'))\n\
     184      Decimal('NaN')\n\
     185      >>> Decimal.from_float(float('inf'))\n\
     186      Decimal('Infinity')\n\
     187      >>> Decimal.from_float(float('-inf'))\n\
     188      Decimal('-Infinity')\n\
     189  \n\
     190  \n");
     191  
     192  PyDoc_STRVAR(doc_fma,
     193  "fma($self, /, other, third, context=None)\n--\n\n\
     194  Fused multiply-add.  Return self*other+third with no rounding of the\n\
     195  intermediate product self*other.\n\
     196  \n\
     197      >>> Decimal(2).fma(3, 5)\n\
     198      Decimal('11')\n\
     199  \n\
     200  \n");
     201  
     202  PyDoc_STRVAR(doc_is_canonical,
     203  "is_canonical($self, /)\n--\n\n\
     204  Return True if the argument is canonical and False otherwise.  Currently,\n\
     205  a Decimal instance is always canonical, so this operation always returns\n\
     206  True.\n\
     207  \n");
     208  
     209  PyDoc_STRVAR(doc_is_finite,
     210  "is_finite($self, /)\n--\n\n\
     211  Return True if the argument is a finite number, and False if the argument\n\
     212  is infinite or a NaN.\n\
     213  \n");
     214  
     215  PyDoc_STRVAR(doc_is_infinite,
     216  "is_infinite($self, /)\n--\n\n\
     217  Return True if the argument is either positive or negative infinity and\n\
     218  False otherwise.\n\
     219  \n");
     220  
     221  PyDoc_STRVAR(doc_is_nan,
     222  "is_nan($self, /)\n--\n\n\
     223  Return True if the argument is a (quiet or signaling) NaN and False\n\
     224  otherwise.\n\
     225  \n");
     226  
     227  PyDoc_STRVAR(doc_is_normal,
     228  "is_normal($self, /, context=None)\n--\n\n\
     229  Return True if the argument is a normal finite non-zero number with an\n\
     230  adjusted exponent greater than or equal to Emin. Return False if the\n\
     231  argument is zero, subnormal, infinite or a NaN.\n\
     232  \n");
     233  
     234  PyDoc_STRVAR(doc_is_qnan,
     235  "is_qnan($self, /)\n--\n\n\
     236  Return True if the argument is a quiet NaN, and False otherwise.\n\
     237  \n");
     238  
     239  PyDoc_STRVAR(doc_is_signed,
     240  "is_signed($self, /)\n--\n\n\
     241  Return True if the argument has a negative sign and False otherwise.\n\
     242  Note that both zeros and NaNs can carry signs.\n\
     243  \n");
     244  
     245  PyDoc_STRVAR(doc_is_snan,
     246  "is_snan($self, /)\n--\n\n\
     247  Return True if the argument is a signaling NaN and False otherwise.\n\
     248  \n");
     249  
     250  PyDoc_STRVAR(doc_is_subnormal,
     251  "is_subnormal($self, /, context=None)\n--\n\n\
     252  Return True if the argument is subnormal, and False otherwise. A number is\n\
     253  subnormal if it is non-zero, finite, and has an adjusted exponent less\n\
     254  than Emin.\n\
     255  \n");
     256  
     257  PyDoc_STRVAR(doc_is_zero,
     258  "is_zero($self, /)\n--\n\n\
     259  Return True if the argument is a (positive or negative) zero and False\n\
     260  otherwise.\n\
     261  \n");
     262  
     263  PyDoc_STRVAR(doc_ln,
     264  "ln($self, /, context=None)\n--\n\n\
     265  Return the natural (base e) logarithm of the operand. The function always\n\
     266  uses the ROUND_HALF_EVEN mode and the result is correctly rounded.\n\
     267  \n");
     268  
     269  PyDoc_STRVAR(doc_log10,
     270  "log10($self, /, context=None)\n--\n\n\
     271  Return the base ten logarithm of the operand. The function always uses the\n\
     272  ROUND_HALF_EVEN mode and the result is correctly rounded.\n\
     273  \n");
     274  
     275  PyDoc_STRVAR(doc_logb,
     276  "logb($self, /, context=None)\n--\n\n\
     277  For a non-zero number, return the adjusted exponent of the operand as a\n\
     278  Decimal instance.  If the operand is a zero, then Decimal('-Infinity') is\n\
     279  returned and the DivisionByZero condition is raised. If the operand is\n\
     280  an infinity then Decimal('Infinity') is returned.\n\
     281  \n");
     282  
     283  PyDoc_STRVAR(doc_logical_and,
     284  "logical_and($self, /, other, context=None)\n--\n\n\
     285  Return the digit-wise 'and' of the two (logical) operands.\n\
     286  \n");
     287  
     288  PyDoc_STRVAR(doc_logical_invert,
     289  "logical_invert($self, /, context=None)\n--\n\n\
     290  Return the digit-wise inversion of the (logical) operand.\n\
     291  \n");
     292  
     293  PyDoc_STRVAR(doc_logical_or,
     294  "logical_or($self, /, other, context=None)\n--\n\n\
     295  Return the digit-wise 'or' of the two (logical) operands.\n\
     296  \n");
     297  
     298  PyDoc_STRVAR(doc_logical_xor,
     299  "logical_xor($self, /, other, context=None)\n--\n\n\
     300  Return the digit-wise 'exclusive or' of the two (logical) operands.\n\
     301  \n");
     302  
     303  PyDoc_STRVAR(doc_max,
     304  "max($self, /, other, context=None)\n--\n\n\
     305  Maximum of self and other.  If one operand is a quiet NaN and the other is\n\
     306  numeric, the numeric operand is returned.\n\
     307  \n");
     308  
     309  PyDoc_STRVAR(doc_max_mag,
     310  "max_mag($self, /, other, context=None)\n--\n\n\
     311  Similar to the max() method, but the comparison is done using the absolute\n\
     312  values of the operands.\n\
     313  \n");
     314  
     315  PyDoc_STRVAR(doc_min,
     316  "min($self, /, other, context=None)\n--\n\n\
     317  Minimum of self and other. If one operand is a quiet NaN and the other is\n\
     318  numeric, the numeric operand is returned.\n\
     319  \n");
     320  
     321  PyDoc_STRVAR(doc_min_mag,
     322  "min_mag($self, /, other, context=None)\n--\n\n\
     323  Similar to the min() method, but the comparison is done using the absolute\n\
     324  values of the operands.\n\
     325  \n");
     326  
     327  PyDoc_STRVAR(doc_next_minus,
     328  "next_minus($self, /, context=None)\n--\n\n\
     329  Return the largest number representable in the given context (or in the\n\
     330  current default context if no context is given) that is smaller than the\n\
     331  given operand.\n\
     332  \n");
     333  
     334  PyDoc_STRVAR(doc_next_plus,
     335  "next_plus($self, /, context=None)\n--\n\n\
     336  Return the smallest number representable in the given context (or in the\n\
     337  current default context if no context is given) that is larger than the\n\
     338  given operand.\n\
     339  \n");
     340  
     341  PyDoc_STRVAR(doc_next_toward,
     342  "next_toward($self, /, other, context=None)\n--\n\n\
     343  If the two operands are unequal, return the number closest to the first\n\
     344  operand in the direction of the second operand.  If both operands are\n\
     345  numerically equal, return a copy of the first operand with the sign set\n\
     346  to be the same as the sign of the second operand.\n\
     347  \n");
     348  
     349  PyDoc_STRVAR(doc_normalize,
     350  "normalize($self, /, context=None)\n--\n\n\
     351  Normalize the number by stripping the rightmost trailing zeros and\n\
     352  converting any result equal to Decimal('0') to Decimal('0e0').  Used\n\
     353  for producing canonical values for members of an equivalence class.\n\
     354  For example, Decimal('32.100') and Decimal('0.321000e+2') both normalize\n\
     355  to the equivalent value Decimal('32.1').\n\
     356  \n");
     357  
     358  PyDoc_STRVAR(doc_number_class,
     359  "number_class($self, /, context=None)\n--\n\n\
     360  Return a string describing the class of the operand.  The returned value\n\
     361  is one of the following ten strings:\n\
     362  \n\
     363      * '-Infinity', indicating that the operand is negative infinity.\n\
     364      * '-Normal', indicating that the operand is a negative normal number.\n\
     365      * '-Subnormal', indicating that the operand is negative and subnormal.\n\
     366      * '-Zero', indicating that the operand is a negative zero.\n\
     367      * '+Zero', indicating that the operand is a positive zero.\n\
     368      * '+Subnormal', indicating that the operand is positive and subnormal.\n\
     369      * '+Normal', indicating that the operand is a positive normal number.\n\
     370      * '+Infinity', indicating that the operand is positive infinity.\n\
     371      * 'NaN', indicating that the operand is a quiet NaN (Not a Number).\n\
     372      * 'sNaN', indicating that the operand is a signaling NaN.\n\
     373  \n\
     374  \n");
     375  
     376  PyDoc_STRVAR(doc_quantize,
     377  "quantize($self, /, exp, rounding=None, context=None)\n--\n\n\
     378  Return a value equal to the first operand after rounding and having the\n\
     379  exponent of the second operand.\n\
     380  \n\
     381      >>> Decimal('1.41421356').quantize(Decimal('1.000'))\n\
     382      Decimal('1.414')\n\
     383  \n\
     384  Unlike other operations, if the length of the coefficient after the quantize\n\
     385  operation would be greater than precision, then an InvalidOperation is signaled.\n\
     386  This guarantees that, unless there is an error condition, the quantized exponent\n\
     387  is always equal to that of the right-hand operand.\n\
     388  \n\
     389  Also unlike other operations, quantize never signals Underflow, even if the\n\
     390  result is subnormal and inexact.\n\
     391  \n\
     392  If the exponent of the second operand is larger than that of the first, then\n\
     393  rounding may be necessary. In this case, the rounding mode is determined by the\n\
     394  rounding argument if given, else by the given context argument; if neither\n\
     395  argument is given, the rounding mode of the current thread's context is used.\n\
     396  \n");
     397  
     398  PyDoc_STRVAR(doc_radix,
     399  "radix($self, /)\n--\n\n\
     400  Return Decimal(10), the radix (base) in which the Decimal class does\n\
     401  all its arithmetic. Included for compatibility with the specification.\n\
     402  \n");
     403  
     404  PyDoc_STRVAR(doc_remainder_near,
     405  "remainder_near($self, /, other, context=None)\n--\n\n\
     406  Return the remainder from dividing self by other.  This differs from\n\
     407  self % other in that the sign of the remainder is chosen so as to minimize\n\
     408  its absolute value. More precisely, the return value is self - n * other\n\
     409  where n is the integer nearest to the exact value of self / other, and\n\
     410  if two integers are equally near then the even one is chosen.\n\
     411  \n\
     412  If the result is zero then its sign will be the sign of self.\n\
     413  \n");
     414  
     415  PyDoc_STRVAR(doc_rotate,
     416  "rotate($self, /, other, context=None)\n--\n\n\
     417  Return the result of rotating the digits of the first operand by an amount\n\
     418  specified by the second operand.  The second operand must be an integer in\n\
     419  the range -precision through precision. The absolute value of the second\n\
     420  operand gives the number of places to rotate. If the second operand is\n\
     421  positive then rotation is to the left; otherwise rotation is to the right.\n\
     422  The coefficient of the first operand is padded on the left with zeros to\n\
     423  length precision if necessary. The sign and exponent of the first operand are\n\
     424  unchanged.\n\
     425  \n");
     426  
     427  PyDoc_STRVAR(doc_same_quantum,
     428  "same_quantum($self, /, other, context=None)\n--\n\n\
     429  Test whether self and other have the same exponent or whether both are NaN.\n\
     430  \n\
     431  This operation is unaffected by context and is quiet: no flags are changed\n\
     432  and no rounding is performed. As an exception, the C version may raise\n\
     433  InvalidOperation if the second operand cannot be converted exactly.\n\
     434  \n");
     435  
     436  PyDoc_STRVAR(doc_scaleb,
     437  "scaleb($self, /, other, context=None)\n--\n\n\
     438  Return the first operand with the exponent adjusted the second.  Equivalently,\n\
     439  return the first operand multiplied by 10**other. The second operand must be\n\
     440  an integer.\n\
     441  \n");
     442  
     443  PyDoc_STRVAR(doc_shift,
     444  "shift($self, /, other, context=None)\n--\n\n\
     445  Return the result of shifting the digits of the first operand by an amount\n\
     446  specified by the second operand.  The second operand must be an integer in\n\
     447  the range -precision through precision. The absolute value of the second\n\
     448  operand gives the number of places to shift. If the second operand is\n\
     449  positive, then the shift is to the left; otherwise the shift is to the\n\
     450  right. Digits shifted into the coefficient are zeros. The sign and exponent\n\
     451  of the first operand are unchanged.\n\
     452  \n");
     453  
     454  PyDoc_STRVAR(doc_sqrt,
     455  "sqrt($self, /, context=None)\n--\n\n\
     456  Return the square root of the argument to full precision. The result is\n\
     457  correctly rounded using the ROUND_HALF_EVEN rounding mode.\n\
     458  \n");
     459  
     460  PyDoc_STRVAR(doc_to_eng_string,
     461  "to_eng_string($self, /, context=None)\n--\n\n\
     462  Convert to an engineering-type string.  Engineering notation has an exponent\n\
     463  which is a multiple of 3, so there are up to 3 digits left of the decimal\n\
     464  place. For example, Decimal('123E+1') is converted to Decimal('1.23E+3').\n\
     465  \n\
     466  The value of context.capitals determines whether the exponent sign is lower\n\
     467  or upper case. Otherwise, the context does not affect the operation.\n\
     468  \n");
     469  
     470  PyDoc_STRVAR(doc_to_integral,
     471  "to_integral($self, /, rounding=None, context=None)\n--\n\n\
     472  Identical to the to_integral_value() method.  The to_integral() name has been\n\
     473  kept for compatibility with older versions.\n\
     474  \n");
     475  
     476  PyDoc_STRVAR(doc_to_integral_exact,
     477  "to_integral_exact($self, /, rounding=None, context=None)\n--\n\n\
     478  Round to the nearest integer, signaling Inexact or Rounded as appropriate if\n\
     479  rounding occurs.  The rounding mode is determined by the rounding parameter\n\
     480  if given, else by the given context. If neither parameter is given, then the\n\
     481  rounding mode of the current default context is used.\n\
     482  \n");
     483  
     484  PyDoc_STRVAR(doc_to_integral_value,
     485  "to_integral_value($self, /, rounding=None, context=None)\n--\n\n\
     486  Round to the nearest integer without signaling Inexact or Rounded.  The\n\
     487  rounding mode is determined by the rounding parameter if given, else by\n\
     488  the given context. If neither parameter is given, then the rounding mode\n\
     489  of the current default context is used.\n\
     490  \n");
     491  
     492  
     493  /******************************************************************************/
     494  /*                       Context Object and Methods                           */
     495  /******************************************************************************/
     496  
     497  PyDoc_STRVAR(doc_context,
     498  "Context(prec=None, rounding=None, Emin=None, Emax=None, capitals=None, clamp=None, flags=None, traps=None)\n--\n\n\
     499  The context affects almost all operations and controls rounding,\n\
     500  Over/Underflow, raising of exceptions and much more.  A new context\n\
     501  can be constructed as follows:\n\
     502  \n\
     503      >>> c = Context(prec=28, Emin=-425000000, Emax=425000000,\n\
     504      ...             rounding=ROUND_HALF_EVEN, capitals=1, clamp=1,\n\
     505      ...             traps=[InvalidOperation, DivisionByZero, Overflow],\n\
     506      ...             flags=[])\n\
     507      >>>\n\
     508  \n\
     509  \n");
     510  
     511  #ifdef EXTRA_FUNCTIONALITY
     512  PyDoc_STRVAR(doc_ctx_apply,
     513  "apply($self, x, /)\n--\n\n\
     514  Apply self to Decimal x.\n\
     515  \n");
     516  #endif
     517  
     518  PyDoc_STRVAR(doc_ctx_clear_flags,
     519  "clear_flags($self, /)\n--\n\n\
     520  Reset all flags to False.\n\
     521  \n");
     522  
     523  PyDoc_STRVAR(doc_ctx_clear_traps,
     524  "clear_traps($self, /)\n--\n\n\
     525  Set all traps to False.\n\
     526  \n");
     527  
     528  PyDoc_STRVAR(doc_ctx_copy,
     529  "copy($self, /)\n--\n\n\
     530  Return a duplicate of the context with all flags cleared.\n\
     531  \n");
     532  
     533  PyDoc_STRVAR(doc_ctx_copy_decimal,
     534  "copy_decimal($self, x, /)\n--\n\n\
     535  Return a copy of Decimal x.\n\
     536  \n");
     537  
     538  PyDoc_STRVAR(doc_ctx_create_decimal,
     539  "create_decimal($self, num=\"0\", /)\n--\n\n\
     540  Create a new Decimal instance from num, using self as the context. Unlike the\n\
     541  Decimal constructor, this function observes the context limits.\n\
     542  \n");
     543  
     544  PyDoc_STRVAR(doc_ctx_create_decimal_from_float,
     545  "create_decimal_from_float($self, f, /)\n--\n\n\
     546  Create a new Decimal instance from float f.  Unlike the Decimal.from_float()\n\
     547  class method, this function observes the context limits.\n\
     548  \n");
     549  
     550  PyDoc_STRVAR(doc_ctx_Etiny,
     551  "Etiny($self, /)\n--\n\n\
     552  Return a value equal to Emin - prec + 1, which is the minimum exponent value\n\
     553  for subnormal results.  When underflow occurs, the exponent is set to Etiny.\n\
     554  \n");
     555  
     556  PyDoc_STRVAR(doc_ctx_Etop,
     557  "Etop($self, /)\n--\n\n\
     558  Return a value equal to Emax - prec + 1.  This is the maximum exponent\n\
     559  if the _clamp field of the context is set to 1 (IEEE clamp mode).  Etop()\n\
     560  must not be negative.\n\
     561  \n");
     562  
     563  PyDoc_STRVAR(doc_ctx_abs,
     564  "abs($self, x, /)\n--\n\n\
     565  Return the absolute value of x.\n\
     566  \n");
     567  
     568  PyDoc_STRVAR(doc_ctx_add,
     569  "add($self, x, y, /)\n--\n\n\
     570  Return the sum of x and y.\n\
     571  \n");
     572  
     573  PyDoc_STRVAR(doc_ctx_canonical,
     574  "canonical($self, x, /)\n--\n\n\
     575  Return a new instance of x.\n\
     576  \n");
     577  
     578  PyDoc_STRVAR(doc_ctx_compare,
     579  "compare($self, x, y, /)\n--\n\n\
     580  Compare x and y numerically.\n\
     581  \n");
     582  
     583  PyDoc_STRVAR(doc_ctx_compare_signal,
     584  "compare_signal($self, x, y, /)\n--\n\n\
     585  Compare x and y numerically.  All NaNs signal.\n\
     586  \n");
     587  
     588  PyDoc_STRVAR(doc_ctx_compare_total,
     589  "compare_total($self, x, y, /)\n--\n\n\
     590  Compare x and y using their abstract representation.\n\
     591  \n");
     592  
     593  PyDoc_STRVAR(doc_ctx_compare_total_mag,
     594  "compare_total_mag($self, x, y, /)\n--\n\n\
     595  Compare x and y using their abstract representation, ignoring sign.\n\
     596  \n");
     597  
     598  PyDoc_STRVAR(doc_ctx_copy_abs,
     599  "copy_abs($self, x, /)\n--\n\n\
     600  Return a copy of x with the sign set to 0.\n\
     601  \n");
     602  
     603  PyDoc_STRVAR(doc_ctx_copy_negate,
     604  "copy_negate($self, x, /)\n--\n\n\
     605  Return a copy of x with the sign inverted.\n\
     606  \n");
     607  
     608  PyDoc_STRVAR(doc_ctx_copy_sign,
     609  "copy_sign($self, x, y, /)\n--\n\n\
     610  Copy the sign from y to x.\n\
     611  \n");
     612  
     613  PyDoc_STRVAR(doc_ctx_divide,
     614  "divide($self, x, y, /)\n--\n\n\
     615  Return x divided by y.\n\
     616  \n");
     617  
     618  PyDoc_STRVAR(doc_ctx_divide_int,
     619  "divide_int($self, x, y, /)\n--\n\n\
     620  Return x divided by y, truncated to an integer.\n\
     621  \n");
     622  
     623  PyDoc_STRVAR(doc_ctx_divmod,
     624  "divmod($self, x, y, /)\n--\n\n\
     625  Return quotient and remainder of the division x / y.\n\
     626  \n");
     627  
     628  PyDoc_STRVAR(doc_ctx_exp,
     629  "exp($self, x, /)\n--\n\n\
     630  Return e ** x.\n\
     631  \n");
     632  
     633  PyDoc_STRVAR(doc_ctx_fma,
     634  "fma($self, x, y, z, /)\n--\n\n\
     635  Return x multiplied by y, plus z.\n\
     636  \n");
     637  
     638  PyDoc_STRVAR(doc_ctx_is_canonical,
     639  "is_canonical($self, x, /)\n--\n\n\
     640  Return True if x is canonical, False otherwise.\n\
     641  \n");
     642  
     643  PyDoc_STRVAR(doc_ctx_is_finite,
     644  "is_finite($self, x, /)\n--\n\n\
     645  Return True if x is finite, False otherwise.\n\
     646  \n");
     647  
     648  PyDoc_STRVAR(doc_ctx_is_infinite,
     649  "is_infinite($self, x, /)\n--\n\n\
     650  Return True if x is infinite, False otherwise.\n\
     651  \n");
     652  
     653  PyDoc_STRVAR(doc_ctx_is_nan,
     654  "is_nan($self, x, /)\n--\n\n\
     655  Return True if x is a qNaN or sNaN, False otherwise.\n\
     656  \n");
     657  
     658  PyDoc_STRVAR(doc_ctx_is_normal,
     659  "is_normal($self, x, /)\n--\n\n\
     660  Return True if x is a normal number, False otherwise.\n\
     661  \n");
     662  
     663  PyDoc_STRVAR(doc_ctx_is_qnan,
     664  "is_qnan($self, x, /)\n--\n\n\
     665  Return True if x is a quiet NaN, False otherwise.\n\
     666  \n");
     667  
     668  PyDoc_STRVAR(doc_ctx_is_signed,
     669  "is_signed($self, x, /)\n--\n\n\
     670  Return True if x is negative, False otherwise.\n\
     671  \n");
     672  
     673  PyDoc_STRVAR(doc_ctx_is_snan,
     674  "is_snan($self, x, /)\n--\n\n\
     675  Return True if x is a signaling NaN, False otherwise.\n\
     676  \n");
     677  
     678  PyDoc_STRVAR(doc_ctx_is_subnormal,
     679  "is_subnormal($self, x, /)\n--\n\n\
     680  Return True if x is subnormal, False otherwise.\n\
     681  \n");
     682  
     683  PyDoc_STRVAR(doc_ctx_is_zero,
     684  "is_zero($self, x, /)\n--\n\n\
     685  Return True if x is a zero, False otherwise.\n\
     686  \n");
     687  
     688  PyDoc_STRVAR(doc_ctx_ln,
     689  "ln($self, x, /)\n--\n\n\
     690  Return the natural (base e) logarithm of x.\n\
     691  \n");
     692  
     693  PyDoc_STRVAR(doc_ctx_log10,
     694  "log10($self, x, /)\n--\n\n\
     695  Return the base 10 logarithm of x.\n\
     696  \n");
     697  
     698  PyDoc_STRVAR(doc_ctx_logb,
     699  "logb($self, x, /)\n--\n\n\
     700  Return the exponent of the magnitude of the operand's MSD.\n\
     701  \n");
     702  
     703  PyDoc_STRVAR(doc_ctx_logical_and,
     704  "logical_and($self, x, y, /)\n--\n\n\
     705  Digit-wise and of x and y.\n\
     706  \n");
     707  
     708  PyDoc_STRVAR(doc_ctx_logical_invert,
     709  "logical_invert($self, x, /)\n--\n\n\
     710  Invert all digits of x.\n\
     711  \n");
     712  
     713  PyDoc_STRVAR(doc_ctx_logical_or,
     714  "logical_or($self, x, y, /)\n--\n\n\
     715  Digit-wise or of x and y.\n\
     716  \n");
     717  
     718  PyDoc_STRVAR(doc_ctx_logical_xor,
     719  "logical_xor($self, x, y, /)\n--\n\n\
     720  Digit-wise xor of x and y.\n\
     721  \n");
     722  
     723  PyDoc_STRVAR(doc_ctx_max,
     724  "max($self, x, y, /)\n--\n\n\
     725  Compare the values numerically and return the maximum.\n\
     726  \n");
     727  
     728  PyDoc_STRVAR(doc_ctx_max_mag,
     729  "max_mag($self, x, y, /)\n--\n\n\
     730  Compare the values numerically with their sign ignored.\n\
     731  \n");
     732  
     733  PyDoc_STRVAR(doc_ctx_min,
     734  "min($self, x, y, /)\n--\n\n\
     735  Compare the values numerically and return the minimum.\n\
     736  \n");
     737  
     738  PyDoc_STRVAR(doc_ctx_min_mag,
     739  "min_mag($self, x, y, /)\n--\n\n\
     740  Compare the values numerically with their sign ignored.\n\
     741  \n");
     742  
     743  PyDoc_STRVAR(doc_ctx_minus,
     744  "minus($self, x, /)\n--\n\n\
     745  Minus corresponds to the unary prefix minus operator in Python, but applies\n\
     746  the context to the result.\n\
     747  \n");
     748  
     749  PyDoc_STRVAR(doc_ctx_multiply,
     750  "multiply($self, x, y, /)\n--\n\n\
     751  Return the product of x and y.\n\
     752  \n");
     753  
     754  PyDoc_STRVAR(doc_ctx_next_minus,
     755  "next_minus($self, x, /)\n--\n\n\
     756  Return the largest representable number smaller than x.\n\
     757  \n");
     758  
     759  PyDoc_STRVAR(doc_ctx_next_plus,
     760  "next_plus($self, x, /)\n--\n\n\
     761  Return the smallest representable number larger than x.\n\
     762  \n");
     763  
     764  PyDoc_STRVAR(doc_ctx_next_toward,
     765  "next_toward($self, x, y, /)\n--\n\n\
     766  Return the number closest to x, in the direction towards y.\n\
     767  \n");
     768  
     769  PyDoc_STRVAR(doc_ctx_normalize,
     770  "normalize($self, x, /)\n--\n\n\
     771  Reduce x to its simplest form. Alias for reduce(x).\n\
     772  \n");
     773  
     774  PyDoc_STRVAR(doc_ctx_number_class,
     775  "number_class($self, x, /)\n--\n\n\
     776  Return an indication of the class of x.\n\
     777  \n");
     778  
     779  PyDoc_STRVAR(doc_ctx_plus,
     780  "plus($self, x, /)\n--\n\n\
     781  Plus corresponds to the unary prefix plus operator in Python, but applies\n\
     782  the context to the result.\n\
     783  \n");
     784  
     785  PyDoc_STRVAR(doc_ctx_power,
     786  "power($self, /, a, b, modulo=None)\n--\n\n\
     787  Compute a**b. If 'a' is negative, then 'b' must be integral. The result\n\
     788  will be inexact unless 'a' is integral and the result is finite and can\n\
     789  be expressed exactly in 'precision' digits.  In the Python version the\n\
     790  result is always correctly rounded, in the C version the result is almost\n\
     791  always correctly rounded.\n\
     792  \n\
     793  If modulo is given, compute (a**b) % modulo. The following restrictions\n\
     794  hold:\n\
     795  \n\
     796      * all three arguments must be integral\n\
     797      * 'b' must be nonnegative\n\
     798      * at least one of 'a' or 'b' must be nonzero\n\
     799      * modulo must be nonzero and less than 10**prec in absolute value\n\
     800  \n\
     801  \n");
     802  
     803  PyDoc_STRVAR(doc_ctx_quantize,
     804  "quantize($self, x, y, /)\n--\n\n\
     805  Return a value equal to x (rounded), having the exponent of y.\n\
     806  \n");
     807  
     808  PyDoc_STRVAR(doc_ctx_radix,
     809  "radix($self, /)\n--\n\n\
     810  Return 10.\n\
     811  \n");
     812  
     813  PyDoc_STRVAR(doc_ctx_remainder,
     814  "remainder($self, x, y, /)\n--\n\n\
     815  Return the remainder from integer division.  The sign of the result,\n\
     816  if non-zero, is the same as that of the original dividend.\n\
     817  \n");
     818  
     819  PyDoc_STRVAR(doc_ctx_remainder_near,
     820  "remainder_near($self, x, y, /)\n--\n\n\
     821  Return x - y * n, where n is the integer nearest the exact value of x / y\n\
     822  (if the result is 0 then its sign will be the sign of x).\n\
     823  \n");
     824  
     825  PyDoc_STRVAR(doc_ctx_rotate,
     826  "rotate($self, x, y, /)\n--\n\n\
     827  Return a copy of x, rotated by y places.\n\
     828  \n");
     829  
     830  PyDoc_STRVAR(doc_ctx_same_quantum,
     831  "same_quantum($self, x, y, /)\n--\n\n\
     832  Return True if the two operands have the same exponent.\n\
     833  \n");
     834  
     835  PyDoc_STRVAR(doc_ctx_scaleb,
     836  "scaleb($self, x, y, /)\n--\n\n\
     837  Return the first operand after adding the second value to its exp.\n\
     838  \n");
     839  
     840  PyDoc_STRVAR(doc_ctx_shift,
     841  "shift($self, x, y, /)\n--\n\n\
     842  Return a copy of x, shifted by y places.\n\
     843  \n");
     844  
     845  PyDoc_STRVAR(doc_ctx_sqrt,
     846  "sqrt($self, x, /)\n--\n\n\
     847  Square root of a non-negative number to context precision.\n\
     848  \n");
     849  
     850  PyDoc_STRVAR(doc_ctx_subtract,
     851  "subtract($self, x, y, /)\n--\n\n\
     852  Return the difference between x and y.\n\
     853  \n");
     854  
     855  PyDoc_STRVAR(doc_ctx_to_eng_string,
     856  "to_eng_string($self, x, /)\n--\n\n\
     857  Convert a number to a string, using engineering notation.\n\
     858  \n");
     859  
     860  PyDoc_STRVAR(doc_ctx_to_integral,
     861  "to_integral($self, x, /)\n--\n\n\
     862  Identical to to_integral_value(x).\n\
     863  \n");
     864  
     865  PyDoc_STRVAR(doc_ctx_to_integral_exact,
     866  "to_integral_exact($self, x, /)\n--\n\n\
     867  Round to an integer. Signal if the result is rounded or inexact.\n\
     868  \n");
     869  
     870  PyDoc_STRVAR(doc_ctx_to_integral_value,
     871  "to_integral_value($self, x, /)\n--\n\n\
     872  Round to an integer.\n\
     873  \n");
     874  
     875  PyDoc_STRVAR(doc_ctx_to_sci_string,
     876  "to_sci_string($self, x, /)\n--\n\n\
     877  Convert a number to a string using scientific notation.\n\
     878  \n");
     879  
     880  
     881  #endif /* DOCSTRINGS_H */
     882  
     883  
     884