diff --git a/docs/source/complex.rst b/docs/source/complex.rst index e96cc1b..8ff24a2 100644 --- a/docs/source/complex.rst +++ b/docs/source/complex.rst @@ -4,11 +4,6 @@ Complex Numbers *************** -The functions described in this chapter provide support for complex -numbers. The algorithms take care to avoid unnecessary intermediate -underflows and overflows, allowing the functions to be evaluated over -as much of the complex plane as possible. - .. FIXME: this still needs to be .. done for the csc, sec, cot, csch, sech, coth functions @@ -436,35 +431,3 @@ Inverse Complex Hyperbolic Functions This function returns the complex hyperbolic arccotangent of the complex number :data:`z`, :math:`\arccoth(z) = \arctanh(1/z)`. - -References and Further Reading -============================== - -The implementations of the elementary and trigonometric functions are -based on the following papers, - -* T. E. Hull, Thomas F. Fairgrieve, Ping Tak Peter Tang, - "Implementing Complex Elementary Functions Using Exception - Handling", ACM Transactions on Mathematical Software, Volume 20 - (1994), pp 215--244, Corrigenda, p553 - -* T. E. Hull, Thomas F. Fairgrieve, Ping Tak Peter Tang, - "Implementing the complex arcsin and arccosine functions using exception - handling", ACM Transactions on Mathematical Software, Volume 23 - (1997) pp 299--335 - -The general formulas and details of branch cuts can be found in the -following books, - -* Abramowitz and Stegun, Handbook of Mathematical Functions, - "Circular Functions in Terms of Real and Imaginary Parts", Formulas - 4.3.55--58, - "Inverse Circular Functions in Terms of Real and Imaginary Parts", - Formulas 4.4.37--39, - "Hyperbolic Functions in Terms of Real and Imaginary Parts", - Formulas 4.5.49--52, - "Inverse Hyperbolic Functions---relation to Inverse Circular Functions", - Formulas 4.6.14--19. - -* Dave Gillespie, Calc Manual, Free Software Foundation, ISBN - 1-882114-18-3 diff --git a/docs/source/const.rst b/docs/source/const.rst index 1bcabea..c7e358b 100644 --- a/docs/source/const.rst +++ b/docs/source/const.rst @@ -8,12 +8,7 @@ Physical Constants ****************** -This chapter describes macros for the values of physical constants, such -as the speed of light, :math:`c`, and gravitational constant, :math:`G`. -The values are available in different unit systems, including the -standard MKSA system (meters, kilograms, seconds, amperes) and the CGSM -system (centimeters, grams, seconds, gauss), which is commonly used in -Astronomy. +This module is inspired by the constants module present in GSL. The full list of constants is described briefly below. Consult the header files themselves for the values of the constants used in the @@ -634,7 +629,3 @@ the NIST website. * P.J. Mohr, B.N. Taylor, D.B. Newell, "CODATA Recommended Values of the Fundamental Physical Constants: 2006", Reviews of Modern Physics, 80(2), pp. 633--730 (2008). - -* http://www.physics.nist.gov/cuu/Constants/index.html - -* http://physics.nist.gov/Pubs/SP811/appenB9.html diff --git a/docs/source/diff.rst b/docs/source/diff.rst index c3a1764..db415bb 100644 --- a/docs/source/diff.rst +++ b/docs/source/diff.rst @@ -10,9 +10,12 @@ Numerical Differentiation ************************* The functions described in this chapter compute numerical derivatives by -finite differencing. An adaptive algorithm is used to find the best +finite differencing. An adaptive algorithm is used to find the best choice of finite difference and to estimate the error in the derivative. +Again, the development of this module is inspired by the same present in GSL +looking to adapt it completely to the practices and tools present in CML. + The functions described in this chapter are declared in the header file :file:`cml/deriv.h`. @@ -88,10 +91,4 @@ Here is the output of the program, References and Further Reading ============================== -The algorithms used by these functions are described in the following sources: - -* Abramowitz and Stegun, *Handbook of Mathematical Functions*, - Section 25.3.4, and Table 25.5 (Coefficients for Differentiation). - -* S.D. Conte and Carl de Boor, *Elementary Numerical Analysis: An - Algorithmic Approach*, McGraw-Hill, 1972. +This work is a spiritual descendent of the Differentiation module in GSL. diff --git a/docs/source/ieee754.rst b/docs/source/ieee754.rst index 7151a86..06b3081 100644 --- a/docs/source/ieee754.rst +++ b/docs/source/ieee754.rst @@ -6,9 +6,7 @@ IEEE floating-point arithmetic ****************************** -This chapter describes functions for examining the representation of -floating point numbers and controlling the floating point environment of -your program. The functions described in this chapter are declared in +The functions described in this chapter are declared in the header file :file:`cml/ieee.h`. .. index:: @@ -218,22 +216,3 @@ References and Further Reading The reference for the IEEE standard is, * ANSI/IEEE Std 754-1985, IEEE Standard for Binary Floating-Point Arithmetic. - -A more pedagogical introduction to the standard can be found in the -following paper, - -* David Goldberg: What Every Computer Scientist Should Know About - Floating-Point Arithmetic. *ACM Computing Surveys*, Vol.: 23, No.: 1 - (March 1991), pages 5--48. - -* Corrigendum: *ACM Computing Surveys*, Vol.: 23, No.: 3 (September - 1991), page 413. and see also the sections by B. A. Wichmann and Charles - B. Dunham in Surveyor's Forum: "What Every Computer Scientist Should - Know About Floating-Point Arithmetic". *ACM Computing Surveys*, - Vol.: 24, No.: 3 (September 1992), page 319. - -A detailed textbook on IEEE arithmetic and its practical use is -available from SIAM Press, - -* Michael L. Overton, *Numerical Computing with IEEE Floating Point Arithmetic*, - SIAM Press, ISBN 0898715717. diff --git a/docs/source/intro.rst b/docs/source/intro.rst index 65f05fc..82b431b 100644 --- a/docs/source/intro.rst +++ b/docs/source/intro.rst @@ -6,20 +6,16 @@ Introduction ************ -The C Math Library (CML) is a collection of routines for -numerical computing. The routines have been written from scratch in C, -and present a modern Applications Programming Interface -(API) for C programmers, allowing wrappers to be written for very -high level languages. The source code is distributed under the MIT License. - -In summary, CML is a pure mathematical C library with a wide variety of +The C Math Library (CML) is a pure mathematical C library with a wide variety of mathematical functions that seeks to be close to complying with -ANSI C for portability. It is free software under the MIT License. +ANSI C for portability. It's a collection of routines for +numerical computing written from scratch in C. The routines +present a modern API for C programmers, allowing wrappers to be written for very +high level languages. It is free software under the MIT License. Routines available in CML ========================= -The library covers a wide range of topics in numerical computing. Routines are available for the following areas, =========================== =========================== =========================== @@ -29,27 +25,7 @@ IEEE Floating-Point Physical Constants Easing Functions Statistics Blocks Vectors and Matrices =========================== =========================== =========================== -The use of these routines is described in this manual. Each chapter -provides detailed definitions of the functions, followed by example -programs and references to the articles on which the algorithms are -based. - -Conventions used in this manual -=============================== - -.. index:: - single: dollar sign $, shell prompt - -This manual contains many examples which can be typed at the keyboard. -A command entered at the terminal is shown like this:: - - $ command - -The first character on the line is the terminal prompt, and should not -be typed. The dollar sign $ is used as the standard prompt in -this manual, although some systems may use a different character. - -The examples assume the use of the GNU operating system. There may be -minor differences in the output on other systems. The commands for -setting environment variables use the Bourne shell syntax of the -standard GNU shell (:code:`bash`). +Each chapter of this manual +provides detailed definitions of the functions, followed by examples +and references to the articles and other resources on which the +algorithms are based. diff --git a/docs/source/math.rst b/docs/source/math.rst index ca38002..584b648 100644 --- a/docs/source/math.rst +++ b/docs/source/math.rst @@ -6,10 +6,11 @@ Mathematical Functions ********************** -This chapter describes basic mathematical functions. Some of these -functions are present in system libraries, but the alternative versions -given here can be used as a substitute when the system functions are not -available. +For the development of this module, the functions present in many of the system +libraries are taken as reference with the idea of offering them in CML as an +option for when they are not present. + +This chapter describes basic mathematical functions. The functions and macros described in this chapter are defined in the header file :file:`cml/math.h`. @@ -235,7 +236,7 @@ application (see :ref:`portability-functions`). .. index:: trigonometric functions Trigonometric Functions -=============================== +======================= .. index:: single: sine