This is libquadmath.info, produced by makeinfo version 7.2 fromlibquadmath.texi. Copyright © 2010-2026 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover Texts being "A GNU Manual," and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled "GNU Free Documentation License." (a) The FSF's Back-Cover Text is: "You have the freedom to copy and modify this GNU manual.INFO-DIR-SECTION GNU LibrariesSTART-INFO-DIR-ENTRY* libquadmath: (libquadmath). GCC Quad-Precision Math LibraryEND-INFO-DIR-ENTRY This manual documents the GCC Quad-Precision Math Library API. Published by the Free Software Foundation 51 Franklin Street, FifthFloor Boston, MA 02110-1301 USA Copyright © 2010-2026 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover Texts being "A GNU Manual," and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled "GNU Free Documentation License." (a) The FSF's Back-Cover Text is: "You have the freedom to copy and modify this GNU manual. File: libquadmath.info, Node: Top, Next: Typedef and constants, Up: (dir) Introduction************ This manual documents the usage of libquadmath, the GCC Quad-PrecisionMath Library Application Programming Interface (API). * Menu: * Typedef and constants:: Defined data types and constants* Math Library Routines:: The Libquadmath math runtime application programming interface.* I/O Library Routines:: The Libquadmath I/O runtime application programming interface.* GNU Free Documentation License:: How you can copy and share this manual.* Reporting Bugs:: How to report bugs in GCC Libquadmath. File: libquadmath.info, Node: Typedef and constants, Next: Math Library Routines, Prev: Top, Up: Top 1 Typedef and constants*********************** The following data type has been defined via ‘typedef’. ‘__complex128’: ‘__float128’-based complex number The following macros are defined, which give the numeric limits ofthe ‘__float128’ data type. ‘FLT128_MAX’: largest finite number‘FLT128_MIN’: smallest positive number with full precision‘FLT128_EPSILON’: difference between 1 and the next larger representable number‘FLT128_DENORM_MIN’: smallest positive denormalized number‘FLT128_MANT_DIG’: number of digits in the mantissa (bit precision)‘FLT128_MIN_EXP’: maximal negative exponent‘FLT128_MAX_EXP’: maximal positive exponent‘FLT128_DIG’: number of decimal digits in the mantissa‘FLT128_MIN_10_EXP’: maximal negative decimal exponent‘FLT128_MAX_10_EXP’: maximal positive decimal exponent The following mathematical constants of type ‘__float128’ aredefined. ‘M_Eq’: the constant e (Euler's number)‘M_LOG2Eq’: base 2 logarithm of e‘M_LOG10Eq’: decimal (base 10) logarithm of e‘M_LN2q’: natural logarithm of 2‘M_LN10q’: natural logarithm of 10‘M_PIq’: pi‘M_PI_2q’: pi divided by two‘M_PI_4q’: pi divided by four‘M_1_PIq’: one divided by pi‘M_2_PIq’: two divided by pi‘M_2_SQRTPIq’: two divided by square root of pi‘M_SQRT2q’: square root of 2‘M_SQRT1_2q’: one divided by square root of 2 File: libquadmath.info, Node: Math Library Routines, Next: I/O Library Routines, Prev: Typedef and constants, Up: Top 2 Math Library Routines*********************** The following mathematical functions are available: ‘acosq’: arc cosine function‘acoshq’: inverse hyperbolic cosine function‘asinq’: arc sine function‘asinhq’: inverse hyperbolic sine function‘atanq’: arc tangent function‘atanhq’: inverse hyperbolic tangent function‘atan2q’: arc tangent function‘cbrtq’: cube root function‘ceilq’: ceiling value function‘copysignq’: copy sign of a number‘coshq’: hyperbolic cosine function‘cosq’: cosine function‘erfq’: error function‘erfcq’: complementary error function‘exp2q’: base 2 exponential function‘expq’: exponential function‘expm1q’: exponential minus 1 function‘fabsq’: absolute value function‘fdimq’: positive difference function‘finiteq’: check finiteness of value‘floorq’: floor value function‘fmaq’: fused multiply and add‘fmaxq’: determine maximum of two values‘fminq’: determine minimum of two values‘fmodq’: remainder value function‘frexpq’: extract mantissa and exponent‘hypotq’: Eucledian distance function‘ilogbq’: get exponent of the value‘isinfq’: check for infinity‘isnanq’: check for not a number‘issignalingq’: check for signaling not a number‘j0q’: Bessel function of the first kind, first order‘j1q’: Bessel function of the first kind, second order‘jnq’: Bessel function of the first kind, N-th order‘ldexpq’: load exponent of the value‘lgammaq’: logarithmic gamma function‘llrintq’: round to nearest integer value‘llroundq’: round to nearest integer value away from zero‘logbq’: get exponent of the value‘logq’: natural logarithm function‘log10q’: base 10 logarithm function‘log1pq’: compute natural logarithm of the value plus one‘log2q’: base 2 logarithm function‘lrintq’: round to nearest integer value‘lroundq’: round to nearest integer value away from zero‘modfq’: decompose the floating-point number‘nanq’: return quiet NaN‘nearbyintq’: round to nearest integer‘nextafterq’: next representable floating-point number‘powq’: power function‘remainderq’: remainder function‘remquoq’: remainder and part of quotient‘rintq’: round-to-nearest integral value‘roundq’: round-to-nearest integral value, return ‘__float128’‘scalblnq’: compute exponent using ‘FLT_RADIX’‘scalbnq’: compute exponent using ‘FLT_RADIX’‘signbitq’: return sign bit‘sincosq’: calculate sine and cosine simultaneously‘sinhq’: hyperbolic sine function‘sinq’: sine function‘sqrtq’: square root function‘tanq’: tangent function‘tanhq’: hyperbolic tangent function‘tgammaq’: true gamma function‘truncq’: round to integer, towards zero‘y0q’: Bessel function of the second kind, first order‘y1q’: Bessel function of the second kind, second order‘ynq’: Bessel function of the second kind, N-th order‘cabsq’ complex absolute value function‘cargq’: calculate the argument‘cimagq’ imaginary part of complex number‘crealq’: real part of complex number‘cacoshq’: complex arc hyperbolic cosine function‘cacosq’: complex arc cosine function‘casinhq’: complex arc hyperbolic sine function‘casinq’: complex arc sine function‘catanhq’: complex arc hyperbolic tangent function‘catanq’: complex arc tangent function‘ccosq’ complex cosine function:‘ccoshq’: complex hyperbolic cosine function‘cexpq’: complex exponential function‘cexpiq’: computes the exponential function of "i" times a real value‘clogq’: complex natural logarithm‘clog10q’: complex base 10 logarithm‘conjq’: complex conjugate function‘cpowq’: complex power function‘cprojq’: project into Riemann Sphere‘csinq’: complex sine function‘csinhq’: complex hyperbolic sine function‘csqrtq’: complex square root‘ctanq’: complex tangent function‘ctanhq’: complex hyperbolic tangent function File: libquadmath.info, Node: I/O Library Routines, Next: GNU Free Documentation License, Prev: Math Library Routines, Up: Top 3 I/O Library Routines********************** * Menu: * ‘strtoflt128’: strtoflt128, Convert from string* ‘quadmath_snprintf’: quadmath_snprintf, Convert to string File: libquadmath.info, Node: strtoflt128, Next: quadmath_snprintf, Up: I/O Library Routines 3.1 ‘strtoflt128’ -- Convert from string======================================== The function ‘strtoflt128’ converts a string into a ‘__float128’ number. Syntax ‘__float128 strtoflt128 (const char *s, char **sp)’ _Arguments_: S input string SP the address of the next character in the string The argument SP contains, if not ‘NULL’, the address of the next character following the parts of the string, which have been read. Example #include <quadmath.h> int main () { __float128 r; r = strtoflt128 ("1.2345678", NULL); return 0; } File: libquadmath.info, Node: quadmath_snprintf, Prev: strtoflt128, Up: I/O Library Routines 3.2 ‘quadmath_snprintf’ -- Convert to string============================================ The function ‘quadmath_snprintf’ converts a ‘__float128’ floating-pointnumber into a string. It is a specialized alternative to ‘snprintf’,where the format string is restricted to a single conversion specifierwith ‘Q’ modifier and conversion specifier ‘e’, ‘E’, ‘f’, ‘F’, ‘g’, ‘G’,‘a’ or ‘A’, with no extra characters before or after the conversionspecifier. The ‘%m$’ or ‘*m$’ style must not be used in the format. Syntax ‘int quadmath_snprintf (char *s, size_t size, const char *format, ...)’ _Arguments_: S output string SIZE byte size of the string, including trailing NUL FORMAT conversion specifier string Note On some targets when supported by the C library hooks are installed for ‘printf’ family of functions, so that ‘printf ("%Qe", 1.2Q);’ etc. works too. Example #include <quadmath.h> #include <stdlib.h> #include <stdio.h> int main () { __float128 r; int prec = 20; int width = 46; char buf[128]; r = 2.0q; r = sqrtq (r); int n = quadmath_snprintf (buf, sizeof buf, "%+-#*.20Qe", width, r); if ((size_t) n < sizeof buf) printf ("%s\n", buf); /* Prints: +1.41421356237309504880e+00 */ quadmath_snprintf (buf, sizeof buf, "%Qa", r); if ((size_t) n < sizeof buf) printf ("%s\n", buf); /* Prints: 0x1.6a09e667f3bcc908b2fb1366ea96p+0 */ n = quadmath_snprintf (NULL, 0, "%+-#46.*Qe", prec, r); if (n > -1) { char *str = malloc (n + 1); if (str) { quadmath_snprintf (str, n + 1, "%+-#46.*Qe", prec, r); printf ("%s\n", str); /* Prints: +1.41421356237309504880e+00 */ } free (str); } return 0; } File: libquadmath.info, Node: GNU Free Documentation License, Next: Reporting Bugs, Prev: I/O Library Routines, Up: Top GNU Free Documentation License****************************** Version 1.3, 3 November 2008 Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <https://www.fsf.org> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document “free” in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The "publisher" means any person or entity that distributes copies of the Document to the public. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:Lines 1–500 of 815. Load more
This is libquadmath.info, produced by makeinfo version 7.2 from libquadmath.texi. Copyright © 2010-2026 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover Texts being "A GNU Manual," and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled "GNU Free Documentation License." (a) The FSF's Back-Cover Text is: "You have the freedom to copy and modify this GNU manual. INFO-DIR-SECTION GNU Libraries START-INFO-DIR-ENTRY * libquadmath: (libquadmath). GCC Quad-Precision Math Library END-INFO-DIR-ENTRY This manual documents the GCC Quad-Precision Math Library API. Published by the Free Software Foundation 51 Franklin Street, Fifth Floor Boston, MA 02110-1301 USA Copyright © 2010-2026 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover Texts being "A GNU Manual," and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled "GNU Free Documentation License." (a) The FSF's Back-Cover Text is: "You have the freedom to copy and modify this GNU manual. File: libquadmath.info, Node: Top, Next: Typedef and constants, Up: (dir) Introduction ************ This manual documents the usage of libquadmath, the GCC Quad-Precision Math Library Application Programming Interface (API). * Menu: * Typedef and constants:: Defined data types and constants * Math Library Routines:: The Libquadmath math runtime application programming interface. * I/O Library Routines:: The Libquadmath I/O runtime application programming interface. * GNU Free Documentation License:: How you can copy and share this manual. * Reporting Bugs:: How to report bugs in GCC Libquadmath. File: libquadmath.info, Node: Typedef and constants, Next: Math Library Routines, Prev: Top, Up: Top 1 Typedef and constants *********************** The following data type has been defined via ‘typedef’. ‘__complex128’: ‘__float128’-based complex number The following macros are defined, which give the numeric limits of the ‘__float128’ data type. ‘FLT128_MAX’: largest finite number ‘FLT128_MIN’: smallest positive number with full precision ‘FLT128_EPSILON’: difference between 1 and the next larger representable number ‘FLT128_DENORM_MIN’: smallest positive denormalized number ‘FLT128_MANT_DIG’: number of digits in the mantissa (bit precision) ‘FLT128_MIN_EXP’: maximal negative exponent ‘FLT128_MAX_EXP’: maximal positive exponent ‘FLT128_DIG’: number of decimal digits in the mantissa ‘FLT128_MIN_10_EXP’: maximal negative decimal exponent ‘FLT128_MAX_10_EXP’: maximal positive decimal exponent The following mathematical constants of type ‘__float128’ are defined. ‘M_Eq’: the constant e (Euler's number) ‘M_LOG2Eq’: base 2 logarithm of e ‘M_LOG10Eq’: decimal (base 10) logarithm of e ‘M_LN2q’: natural logarithm of 2 ‘M_LN10q’: natural logarithm of 10 ‘M_PIq’: pi ‘M_PI_2q’: pi divided by two ‘M_PI_4q’: pi divided by four ‘M_1_PIq’: one divided by pi ‘M_2_PIq’: two divided by pi ‘M_2_SQRTPIq’: two divided by square root of pi ‘M_SQRT2q’: square root of 2 ‘M_SQRT1_2q’: one divided by square root of 2 File: libquadmath.info, Node: Math Library Routines, Next: I/O Library Routines, Prev: Typedef and constants, Up: Top 2 Math Library Routines *********************** The following mathematical functions are available: ‘acosq’: arc cosine function ‘acoshq’: inverse hyperbolic cosine function ‘asinq’: arc sine function ‘asinhq’: inverse hyperbolic sine function ‘atanq’: arc tangent function ‘atanhq’: inverse hyperbolic tangent function ‘atan2q’: arc tangent function ‘cbrtq’: cube root function ‘ceilq’: ceiling value function ‘copysignq’: copy sign of a number ‘coshq’: hyperbolic cosine function ‘cosq’: cosine function ‘erfq’: error function ‘erfcq’: complementary error function ‘exp2q’: base 2 exponential function ‘expq’: exponential function ‘expm1q’: exponential minus 1 function ‘fabsq’: absolute value function ‘fdimq’: positive difference function ‘finiteq’: check finiteness of value ‘floorq’: floor value function ‘fmaq’: fused multiply and add ‘fmaxq’: determine maximum of two values ‘fminq’: determine minimum of two values ‘fmodq’: remainder value function ‘frexpq’: extract mantissa and exponent ‘hypotq’: Eucledian distance function ‘ilogbq’: get exponent of the value ‘isinfq’: check for infinity ‘isnanq’: check for not a number ‘issignalingq’: check for signaling not a number ‘j0q’: Bessel function of the first kind, first order ‘j1q’: Bessel function of the first kind, second order ‘jnq’: Bessel function of the first kind, N-th order ‘ldexpq’: load exponent of the value ‘lgammaq’: logarithmic gamma function ‘llrintq’: round to nearest integer value ‘llroundq’: round to nearest integer value away from zero ‘logbq’: get exponent of the value ‘logq’: natural logarithm function ‘log10q’: base 10 logarithm function ‘log1pq’: compute natural logarithm of the value plus one ‘log2q’: base 2 logarithm function ‘lrintq’: round to nearest integer value ‘lroundq’: round to nearest integer value away from zero ‘modfq’: decompose the floating-point number ‘nanq’: return quiet NaN ‘nearbyintq’: round to nearest integer ‘nextafterq’: next representable floating-point number ‘powq’: power function ‘remainderq’: remainder function ‘remquoq’: remainder and part of quotient ‘rintq’: round-to-nearest integral value ‘roundq’: round-to-nearest integral value, return ‘__float128’ ‘scalblnq’: compute exponent using ‘FLT_RADIX’ ‘scalbnq’: compute exponent using ‘FLT_RADIX’ ‘signbitq’: return sign bit ‘sincosq’: calculate sine and cosine simultaneously ‘sinhq’: hyperbolic sine function ‘sinq’: sine function ‘sqrtq’: square root function ‘tanq’: tangent function ‘tanhq’: hyperbolic tangent function ‘tgammaq’: true gamma function ‘truncq’: round to integer, towards zero ‘y0q’: Bessel function of the second kind, first order ‘y1q’: Bessel function of the second kind, second order ‘ynq’: Bessel function of the second kind, N-th order ‘cabsq’ complex absolute value function ‘cargq’: calculate the argument ‘cimagq’ imaginary part of complex number ‘crealq’: real part of complex number ‘cacoshq’: complex arc hyperbolic cosine function ‘cacosq’: complex arc cosine function ‘casinhq’: complex arc hyperbolic sine function ‘casinq’: complex arc sine function ‘catanhq’: complex arc hyperbolic tangent function ‘catanq’: complex arc tangent function ‘ccosq’ complex cosine function: ‘ccoshq’: complex hyperbolic cosine function ‘cexpq’: complex exponential function ‘cexpiq’: computes the exponential function of "i" times a real value ‘clogq’: complex natural logarithm ‘clog10q’: complex base 10 logarithm ‘conjq’: complex conjugate function ‘cpowq’: complex power function ‘cprojq’: project into Riemann Sphere ‘csinq’: complex sine function ‘csinhq’: complex hyperbolic sine function ‘csqrtq’: complex square root ‘ctanq’: complex tangent function ‘ctanhq’: complex hyperbolic tangent function File: libquadmath.info, Node: I/O Library Routines, Next: GNU Free Documentation License, Prev: Math Library Routines, Up: Top 3 I/O Library Routines ********************** * Menu: * ‘strtoflt128’: strtoflt128, Convert from string * ‘quadmath_snprintf’: quadmath_snprintf, Convert to string File: libquadmath.info, Node: strtoflt128, Next: quadmath_snprintf, Up: I/O Library Routines 3.1 ‘strtoflt128’ -- Convert from string ======================================== The function ‘strtoflt128’ converts a string into a ‘__float128’ number. Syntax ‘__float128 strtoflt128 (const char *s, char **sp)’ _Arguments_: S input string SP the address of the next character in the string The argument SP contains, if not ‘NULL’, the address of the next character following the parts of the string, which have been read. Example #include <quadmath.h> int main () { __float128 r; r = strtoflt128 ("1.2345678", NULL); return 0; } File: libquadmath.info, Node: quadmath_snprintf, Prev: strtoflt128, Up: I/O Library Routines 3.2 ‘quadmath_snprintf’ -- Convert to string ============================================ The function ‘quadmath_snprintf’ converts a ‘__float128’ floating-point number into a string. It is a specialized alternative to ‘snprintf’, where the format string is restricted to a single conversion specifier with ‘Q’ modifier and conversion specifier ‘e’, ‘E’, ‘f’, ‘F’, ‘g’, ‘G’, ‘a’ or ‘A’, with no extra characters before or after the conversion specifier. The ‘%m$’ or ‘*m$’ style must not be used in the format. Syntax ‘int quadmath_snprintf (char *s, size_t size, const char *format, ...)’ _Arguments_: S output string SIZE byte size of the string, including trailing NUL FORMAT conversion specifier string Note On some targets when supported by the C library hooks are installed for ‘printf’ family of functions, so that ‘printf ("%Qe", 1.2Q);’ etc. works too. Example #include <quadmath.h> #include <stdlib.h> #include <stdio.h> int main () { __float128 r; int prec = 20; int width = 46; char buf[128]; r = 2.0q; r = sqrtq (r); int n = quadmath_snprintf (buf, sizeof buf, "%+-#*.20Qe", width, r); if ((size_t) n < sizeof buf) printf ("%s\n", buf); /* Prints: +1.41421356237309504880e+00 */ quadmath_snprintf (buf, sizeof buf, "%Qa", r); if ((size_t) n < sizeof buf) printf ("%s\n", buf); /* Prints: 0x1.6a09e667f3bcc908b2fb1366ea96p+0 */ n = quadmath_snprintf (NULL, 0, "%+-#46.*Qe", prec, r); if (n > -1) { char *str = malloc (n + 1); if (str) { quadmath_snprintf (str, n + 1, "%+-#46.*Qe", prec, r); printf ("%s\n", str); /* Prints: +1.41421356237309504880e+00 */ } free (str); } return 0; } File: libquadmath.info, Node: GNU Free Documentation License, Next: Reporting Bugs, Prev: I/O Library Routines, Up: Top GNU Free Documentation License ****************************** Version 1.3, 3 November 2008 Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <https://www.fsf.org> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document “free” in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The "publisher" means any person or entity that distributes copies of the Document to the public. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: