From patchwork Tue Dec 7 21:26:07 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tobias Burnus X-Patchwork-Id: 74598 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id D3D4EB70A4 for ; Wed, 8 Dec 2010 08:26:29 +1100 (EST) Received: (qmail 20010 invoked by alias); 7 Dec 2010 21:26:23 -0000 Received: (qmail 19970 invoked by uid 22791); 7 Dec 2010 21:26:17 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, TW_IB X-Spam-Check-By: sourceware.org Received: from mx01.qsc.de (HELO mx01.qsc.de) (213.148.129.14) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 07 Dec 2010 21:26:09 +0000 Received: from [192.168.178.22] (port-92-204-53-80.dynamic.qsc.de [92.204.53.80]) by mx01.qsc.de (Postfix) with ESMTP id 9861C3D768; Tue, 7 Dec 2010 22:26:06 +0100 (CET) Message-ID: <4CFEA66F.8060901@net-b.de> Date: Tue, 07 Dec 2010 22:26:07 +0100 From: Tobias Burnus User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.12) Gecko/20101026 SUSE/3.1.6 Thunderbird/3.1.6 MIME-Version: 1.0 To: "Joseph S. Myers" CC: gcc patches , gfortran , Ralf Wildenhues Subject: Re: [Patch,quadmath] PR 46543: Add first documentation References: <4CF55592.9050004@net-b.de> <4CFBF661.6070005@net-b.de> In-Reply-To: <4CFBF661.6070005@net-b.de> Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Tobias Burnus wrote: > Updated patch attached. Other changes: Support --with-bugurl, fixed > AC_ARG_ENABLE usage and remove LICENSES from this patch (into a > separate patch). Changes relative to http://gcc.gnu.org/ml/gcc/2010-12/msg00162.html - Use AS_HELP_STRING as suggested by Andreas - Use gcc-patches@ instead of gcc@ OK for trunk? Tobias 2010-12-07 Tobias Burnus PR fortran/46543 * configure.ac: Add texinfo checks. * Makefile.am: Handle .texi documentation. * libquadmath.texi: New. * configure: Regenerated. * Makefile.in: Regenerated. Index: libquadmath/Makefile.am =================================================================== --- libquadmath/Makefile.am (Revision 167556) +++ libquadmath/Makefile.am (Arbeitskopie) @@ -105,4 +105,46 @@ MAKEOVERRIDES= +# AM_CONDITIONAL on configure option --generated-files-in-srcdir +if GENINSRC +STAMP_GENINSRC = stamp-geninsrc +else +STAMP_GENINSRC = endif + +# AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO]) +if BUILD_INFO +STAMP_BUILD_INFO = stamp-build-info +else +STAMP_BUILD_INFO = +endif + + +all-local: $(STAMP_GENINSRC) + +stamp-geninsrc: libquadmath.info + cp -p $(top_builddir)/libquadmath.info $(srcdir)/libquadmath.info + @touch $@ + +libquadmath.info: $(STAMP_BUILD_INFO) + +stamp-build-info: libquadmath.texi + $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libquadmath.info $(srcdir)/libquadmath.texi + @touch $@ + +CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libquadmath.info +MAINTAINERCLEANFILES = $(srcdir)/libquadmath.info + +endif + + +# Automake Documentation: +# If your package has Texinfo files in many directories, you can use the +# variable TEXINFO_TEX to tell Automake where to find the canonical +# `texinfo.tex' for your package. The value of this variable should be +# the relative path from the current `Makefile.am' to `texinfo.tex'. +TEXINFO_TEX = ../gcc/doc/include/texinfo.tex + +# Defines info, dvi, pdf and html targets +MAKEINFOFLAGS = -I $(srcdir)/../gcc/doc/include +info_TEXINFOS = libquadmath.texi Index: libquadmath/configure.ac =================================================================== --- libquadmath/configure.ac (Revision 167556) +++ libquadmath/configure.ac (Arbeitskopie) @@ -30,7 +30,8 @@ AC_MSG_CHECKING([for --enable-version-specific-runtime-libs]) AC_ARG_ENABLE(version-specific-runtime-libs, -[ --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory ], +AS_HELP_STRING([--enable-version-specific-runtime-libs], + [specify that runtime libraries should be installed in a compiler-specific directory]), [case "$enableval" in yes) version_specific_libs=yes ;; no) version_specific_libs=no ;; @@ -41,6 +42,14 @@ GCC_NO_EXECUTABLES +# See if makeinfo has been installed and is modern enough +# that we can use it. +ACX_CHECK_PROG_VER([MAKEINFO], [makeinfo], [--version], + [GNU texinfo.* \([0-9][0-9.]*\)], + [4.[4-9]*|4.[1-9][0-9]*|[5-9]*|[1-9][0-9]*]) +AM_CONDITIONAL(BUILD_INFO, test $gcc_cv_prog_makeinfo_modern = "yes") + + # Configure libtool AM_PROG_LIBTOOL ACX_LT_HOST_FLAGS @@ -187,5 +196,25 @@ multilib_arg= fi + +# We would like our source tree to be readonly. However when releases or +# pre-releases are generated, the flex/bison generated files as well as the +# various formats of manuals need to be included along with the rest of the +# sources. Therefore we have --enable-generated-files-in-srcdir to do +# just that. +AC_MSG_CHECKING(generated-files-in-srcdir) +AC_ARG_ENABLE(generated-files-in-srcdir, +AS_HELP_STRING([--enable-generated-files-in-srcdir], + [put copies of generated files in source dir intended for creating source tarballs for users without texinfo bison or flex]), +[case "$enableval" in + yes) enable_generated_files_in_srcdir=yes ;; + no) enable_generated_files_in_srcdir=no ;; + *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);; + esac], +[enable_generated_files_in_srcdir=no]) +AC_MSG_RESULT($enable_generated_files_in_srcdir) +AM_CONDITIONAL(GENINSRC, test "$enable_generated_files_in_srcdir" = yes) + + AC_CONFIG_FILES(Makefile) AC_OUTPUT Index: libquadmath/libquadmath.texi =================================================================== --- libquadmath/libquadmath.texi (Revision 0) +++ libquadmath/libquadmath.texi (Revision 0) @@ -0,0 +1,291 @@ +\input texinfo @c -*-texinfo-*- + +@c %**start of header +@setfilename libquadmath.info +@settitle GCC libquadmath +@c %**end of header + +@copying +Copyright @copyright{} 2011 Free Software Foundation, Inc. + +@quotation +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. +@end quotation +@end copying + +@ifinfo +@dircategory GNU Libraries +@direntry +* libquadmath: (libquadmath). GCC Quad-Precision Math Library +@end direntry + +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 + +@insertcopying +@end ifinfo + + +@setchapternewpage odd + +@titlepage +@title The GCC Quad-Precision Math Library +@page +@vskip 0pt plus 1filll +@comment For the @value{version-GCC} Version* +@sp 1 +Published by the Free Software Foundation @* +51 Franklin Street, Fifth Floor@* +Boston, MA 02110-1301, USA@* +@sp 1 +@insertcopying +@end titlepage + +@summarycontents +@contents +@page + + +@node Top +@top Introduction +@cindex Introduction + +This manual documents the usage of libquadmath, the GCC Quad-Precision +Math Library Application Programming Interface (API). + + +@comment +@comment When you add a new menu item, please keep the right hand +@comment aligned to the same column. Do not use tabs. This provides +@comment better formatting. +@comment +@menu +* 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. +@c * Index:: Index of this documentation. +@end menu + + +@c --------------------------------------------------------------------- +@c Math routines +@c --------------------------------------------------------------------- + +@node Math Library Routines +@chapter Math Library Routines + +The following mathematical functions are available: + +@table @asis +@item @code{acosq}: arc cosine function +@item @code{acoshq}: inverse hyperbolic cosine function +@item @code{asinq}: arc sine function +@item @code{asinhq}: inverse hyperbolic sine function +@item @code{atanq}: arc tangent function +@item @code{atanhq}: inverse hyperbolic tangent function +@item @code{atan2q}: arc tangent function +@item @code{cbrtq}: cube root function +@item @code{ceilq}: ceiling value function +@item @code{copysignq}: copy sign of a number +@item @code{coshq}: hyperbolic cosine function +@item @code{cosq}: cosine function +@item @code{erfq}: error function +@item @code{erfcq}: complementary error function +@item @code{expq}: exponential function +@item @code{expm1q}: exponential minus 1 function +@need 800 +@item @code{fabsq}: absolute value function +@item @code{finiteq}: check finiteness of value +@item @code{floorq}: floor value function +@item @code{fmodq}: remainder value function +@item @code{frexpq}: extract mantissa and exponent +@item @code{hypotq}: Eucledian distance function +@item @code{isinfq}: check for infinity +@item @code{isnanq}: check for not a number +@item @code{j0q}: Bessel function of the first kind, first order +@item @code{j1q}: Bessel function of the first kind, second order +@item @code{jnq}: Bessel function of the first kind, @var{n}-th order +@item @code{ldexpq}: load exponent of the value +@item @code{lgammaq}: logarithmic gamma function +@item @code{llroundq}: round to nearest integer value away from zero +@item @code{logq}: natural logarithm function +@item @code{log10q}: base 10 logarithm function +@item @code{log1pq}: compute natural logarithm of the value plus one +@need 800 +@item @code{lroundq}: round to nearest integer value away from zero +@item @code{modfq}: decompose the floating-point number +@item @code{nanq}: return quiet NaN +@item @code{nextafterq}: next representable floating-point number +@item @code{powq}: power function +@item @code{remainderq}: remainder function +@item @code{rintq}: round-to-nearest integral value +@item @code{roundq}: round-to-nearest integral value, return @code{__float128} +@item @code{scalblnq}: compute exponent using @code{FLT_RADIX} +@item @code{scalbnq}: compute exponent using @code{FLT_RADIX} +@item @code{signbitq}: return sign bit +@item @code{sincosq}: calculate sine and cosine simulataneously +@item @code{sinhq}: hyperbolic sine function +@item @code{sinq}: sine function +@item @code{sqrtq}: square root function +@item @code{tanq}: tangent function +@item @code{tanhq}: hyperbolic tangent function +@need 800 +@item @code{tgammaq}: true gamma function +@item @code{truncq}: round to integer, towards zero +@item @code{y0q}: Bessel function of the second kind, first order +@item @code{y1q}: Bessel function of the second kind, second order +@item @code{ynq}: Bessel function of the second kind, @var{n}-th order +@item @code{cabsq} complex absolute value function: +@item @code{cargq}: calculate the argument +@item @code{ccosq} complex cosine function: +@item @code{ccoshq}: complex hyperbolic cosine function +@item @code{cexpq}: complex exponential function +@item @code{cexpiq}: computes the exponential function of ``i'' times a + real value +@item @code{clogq}: complex natural logarithm +@item @code{clog10q}: complex base 10 logarithm +@item @code{cpowq}: complex power function +@item @code{csinq}: complex sine function +@item @code{csinhq}: complex hyperbolic sine function +@need 800 +@item @code{csqrtq}: complex square root +@item @code{ctanq}: complex tangent function +@item @code{ctanhq}: complex hyperbolic tangent function +@end table + + +@c --------------------------------------------------------------------- +@c I/O routines +@c --------------------------------------------------------------------- + +@node I/O Library Routines +@chapter I/O Library Routines + +@menu +* @code{quadmath_strtopQ}: quadmath_strtopQ, Convert from string +* @code{quadmath_dtoaq}: quadmath_dtoaq, Convert to string +@end menu + + +@node quadmath_strtopQ +@section @code{quadmath_strtopQ} --- Convert from string + +The function @code{dmath_strtopQ} converts a string into a +@code{__float128} number. + +@table @asis +@item Syntax +@code{int quadmath_strtopQ (const char *s, char **sp, void *V)} + +@c The return values are defined in gdtoa/gdtoa.h STRTOG_* +@c However, the values are currently not exported - thus we +@c do not define them here, either. + +@item @emph{Arguments}: +@multitable @columnfractions .15 .70 +@item @var{s} @tab input string +@item @var{sp} @tab the address of the next character in the string +@item @var{V} @tab @code{__float128} containing the converted number +@end multitable + +The argument @var{sp} contains, if not @code{NULL}, the address of the +next character following the parts of the string, which have been read. + +@item Example +@smallexample +#include + +int main () +@{ + __float128 r; + char str[200]; + + quadmath_strtopQ ("1.2345678", NULL, &r); + + return 0; +@} +@end smallexample +@end table + + +@node quadmath_dtoaq +@section @code{quadmath_dtoaq} --- Convert to string + +The function @code{quadmath_dtoaq} converts a @code{__float128} floating-point +number into a string. + +@table @asis +@item Syntax +@code{void quadmath_dtoaq (char *s, size_t size, size_t n, __float128 x)} + +@item @emph{Arguments}: +@multitable @columnfractions .15 .70 +@item @var{s} @tab output string +@item @var{size} @tab byte size of the string, including tailing NUL +@item @var{n} @tab number of digits after the decimal point +@item @var{x} @tab the number to be converted +@end multitable + +@item Example +@smallexample +#include + +int main () +@{ + __float128 r; + char str[200]; + + r = 2.0q; + r = sqrtq(r); + quadmath_dtoaq (str, sizeof (str), 20, r); + printf("%s\n", str); + /* Prints: +1.41421356237309504880e+00 */ + return 0; +@} +@end smallexample +@end table + + +@c --------------------------------------------------------------------- +@c GNU Free Documentation License +@c --------------------------------------------------------------------- + +@include fdl.texi + +@c --------------------------------------------------------------------- +@c Reporting Bugs +@c --------------------------------------------------------------------- + +@node Reporting Bugs +@chapter Reporting Bugs + +Bugs in the GCC Quad-Precision Math Library implementation should be +reported via @value{BUGURL}. + + +@c --------------------------------------------------------------------- +@c Index +@c --------------------------------------------------------------------- + +@c @node Index +@c @unnumbered Index +@c +@c @printindex cp + +@bye