Implemented project structure
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
Main authors:
|
||||
Andreas Enge
|
||||
Philippe Théveny
|
||||
Paul Zimmermann
|
||||
|
||||
Mickaël Gastineau has contributed the now defunct file Makefile.vc.
|
||||
@@ -0,0 +1,165 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
@@ -0,0 +1,206 @@
|
||||
Changes in version 1.3.1, released in December 2022:
|
||||
- Bug fix: It is again possible to include mpc.h without including
|
||||
stdio.h.
|
||||
|
||||
Changes in version 1.3.0 ("Ipomoea batatas"), released in December 2022:
|
||||
- New function: mpc_agm
|
||||
- New rounding modes "away from zero", indicated by the letter "A" and
|
||||
corresponding to MPFR_RNDA on the designated real or imaginary part.
|
||||
- New experimental ball arithmetic.
|
||||
- New experimental function: mpc_eta_fund
|
||||
- Bug fixes:
|
||||
- mpc_asin for asin(z) with small |Re(z)| and tiny |Im(z)|
|
||||
- mpc_pow_fr: sign of zero part of result when the base has up to sign
|
||||
the same real and imaginary part, and the exponent is an even
|
||||
positive integer
|
||||
- mpc_fma: the returned 'int' value was incorrect in some cases (indicating
|
||||
whether the rounded real/imaginary parts were smaller/equal/greater
|
||||
than the exact values), but the computed complex value was correct.
|
||||
- Remove the unmaintained Makefile.vc; build files for Visual Studio
|
||||
can be found at https://github.com/BrianGladman/mpc .
|
||||
|
||||
Changes in version 1.2.1, released in October 2020:
|
||||
- Bug fixes:
|
||||
- Fix an incompatibility problem with GMP 6.0 and before.
|
||||
- Fix an intermediate overflow in asin.
|
||||
|
||||
Changes in version 1.2.0 ("Hyacinthus orientalis"), released in August 2020:
|
||||
- Minimally required library version: MPFR 4.1.0
|
||||
- New functions: mpc_sum, mpc_dot
|
||||
- Several functions are more robust with a reduced exponent range
|
||||
(for example corresponding to IEEE 754 binary formats)
|
||||
- New tool mpcheck.
|
||||
|
||||
Changes in version 1.1.0 ("Gladiolus palustris"), released in January 2018:
|
||||
- Minimally required library versions: GMP 5.0.0 and MPFR 3.0.0
|
||||
- Fixed issues with MPFR 4.0.0
|
||||
- New functions: mpc_cmp_abs, mpc_rootofunity
|
||||
- Improved speed for corner cases of mpc_asin, mpc_sin, see
|
||||
https://sympa.inria.fr/sympa/arc/mpc-discuss/2013-12/msg00001.html
|
||||
- Rewrite of the testing framework
|
||||
- New mpcbench tool, used with "make bench"
|
||||
- Fixed handling of over- and underflows with directed rounding in the
|
||||
"other direction" for mpc_cos, mpc_sin, mpc_exp and mpc_pow, see
|
||||
https://sympa.inria.fr/sympa/arc/mpc-discuss/2015-03/msg00003.html
|
||||
- Fixed a bug in mpc_atan(0,y) with |y| near 1, see
|
||||
https://sympa.inria.fr/sympa/arc/mpc-discuss/2017-03/msg00000.html
|
||||
|
||||
Changes in version 1.0.3, released in February 2015:
|
||||
- Fixed mpc_pow, see
|
||||
https://sympa.inria.fr/sympa/arc/mpc-discuss/2014-10/msg00005.html
|
||||
- #18257: Switched to libtool 2.4.5.
|
||||
|
||||
Changes in version 1.0.2, released in January 2014:
|
||||
- Fixed mpc_atan, mpc_atanh for (+-0, +-1), see
|
||||
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57994#c7
|
||||
- Fixed mpc_log10 for purely imaginary argument, see
|
||||
https://sympa.inria.fr/sympa/arc/mpc-discuss/2012-09/msg00001.html
|
||||
|
||||
Changes in version 1.0.1, released in September 2012:
|
||||
- Switched to automake 1.11.6, see
|
||||
https://lists.gnu.org/archive/html/automake/2012-07/msg00023.html
|
||||
- #14669: Fixed extraction of CC from gmp.h
|
||||
- Fixed case of intermediate zero real or imaginary part in mpc_fma,
|
||||
found by hydra with GMP_CHECK_RANDOMIZE=1346362345
|
||||
|
||||
Changes in version 1.0 ("Fagus silvatica"), released in July 2012:
|
||||
- First release as a GNU package
|
||||
- License change: LGPLv3+ for code, GFDLv1.3+ (with no invariant sections)
|
||||
for documentation
|
||||
- 100% of all lines are covered by tests
|
||||
- Functions renamed:
|
||||
mpc_mul_2exp to mpc_mul_2ui, mpc_div_2exp to mpc_div_2ui
|
||||
- 0^0, which returned (NaN,NaN) previously, now returns (1,+0)
|
||||
- Removed compatibility with K&R compilers, untestable due to lack of
|
||||
such compilers
|
||||
- New functions: mpc_log10, mpc_mul_2si, mpc_div_2si
|
||||
- Speed-ups:
|
||||
- mpc_fma
|
||||
- Bug fixes:
|
||||
- mpc_div and mpc_norm now return a value indicating the effective
|
||||
rounding direction, as the other functions
|
||||
- mpc_mul, mpc_sqr and mpc_norm now return correct results even if there
|
||||
are over- or underflows during the computation
|
||||
- mpc_asin, mpc_proj, mpc_sqr: Wrong result when input variable has
|
||||
infinite part and equals output variable is corrected
|
||||
- mpc_fr_sub: Wrong return value for imaginary part is corrected
|
||||
|
||||
Changes in version 0.9 ("Epilobium montanum"), released in February 2011:
|
||||
- New functions:
|
||||
- mpc_set_dc, mpc_set_ldc, mpc_get_dc, mpc_get_ldc for converting
|
||||
between mpc type variables and C variables of type double _Complex
|
||||
or long double _Complex
|
||||
- mpc_sin_cos, computing simultaneously the sine and cosine
|
||||
- Speed-ups:
|
||||
- mpc_pow_si through binary exponentiation
|
||||
- mpc_pow_z when the exponent fits in a long
|
||||
- mpc_tan through the use of mpc_sin_cos
|
||||
- Bug fixes:
|
||||
- trigonometric functions: infinite loop due to overflow for large
|
||||
arguments
|
||||
- mpc_exp: close to infinite loop for argument close to 0
|
||||
- mpc_sqrt: close to infinite loop for argument close to 1
|
||||
- mpc_add_si: replaced macro by function, since the macro evaluated the
|
||||
same expression twice
|
||||
- Logging feature for debugging:
|
||||
./configure --enable-logging
|
||||
#include "mpc-log.h" instead of #include "mpc.h"
|
||||
- Minimally required library versions: gmp 4.3.2, mpfr 2.4.2
|
||||
|
||||
Changes in version 0.8.2, released in May 2010:
|
||||
- Speed-up of mpc_pow_ui through binary exponentiation
|
||||
|
||||
Changes in version 0.8.1, released in December 2009:
|
||||
- Bug fixes:
|
||||
- mpc_acosh, mpc_asinh, mpc_atanh: swap of precisions between real and
|
||||
imaginary parts
|
||||
- mpc_atan: memory leak
|
||||
- mpc_log: wrong ternary value in data file; masked by bug in mpfr-2.4.1
|
||||
|
||||
Changes in version 0.8 ("Dianthus deltoides"), released in November 2009:
|
||||
- New functions:
|
||||
- mpc_asin, mpc_acos, mpc_atan, mpc_asinh, mpc_acosh, mpc_atanh,
|
||||
mpc_pow_d, mpc_pow_ld, mpc_pow_si, mpc_pow_ui, mpc_pow_z, mpc_pow_fr
|
||||
- Bug fixes:
|
||||
- mpc_ui_div: real divisor
|
||||
|
||||
Changes in version 0.7 ("Campanula uniflora"), released in September 2009:
|
||||
- New functions: mpc_pow, mpc_set_nan, mpc_swap
|
||||
- Bug fixes:
|
||||
- mpc_log: along branch cut
|
||||
- mpc_norm: infinite loop in case of overflow
|
||||
- mpc_ui_div, mpc_div, mpc_fr_div: handling of division by 0 and
|
||||
infinities following the example code of the C99 standard
|
||||
- compilation with g++
|
||||
- Makefile.vc updated (thanks to Mickael Gastineau)
|
||||
- Minimal gmp version is 4.2
|
||||
- Changed MPC_SET_X_Y macro
|
||||
- Functions mpc_random and mpc_random2 removed
|
||||
|
||||
Changes in version 0.6 ("Bellis perennis"), released in April 2009:
|
||||
- New functions: mpc_get_str, mpc_set_str, mpc_strtoc, mpc_set_uj,
|
||||
mpc_set_sj, mpc_set_ld, mpc_set_ld_ld, mpc_set_si_si, mpc_set_uj_uj,
|
||||
mpc_set_sj_sj, mpc_set_f, mpc_set_f_f, mpc_set_q, mpc_set_q_q, mpc_set_z,
|
||||
mpc_set_z_z and mpc_free_str
|
||||
- New macro: MPC_SET_X_Y
|
||||
- mpc_set_ui_fr removed
|
||||
- Default precision removed, as well as mpc_init and all mpc_init_set*
|
||||
combinations; use mpc_init2 or mpc_init3, followed by mpc_set, instead
|
||||
- mpc_exp, mpc_log, mpc_cos, mpc_sin, mpc_tan, mpc_cosh, mpc_sinh,
|
||||
mpc_tanh and mpc_sqrt return inexact value
|
||||
- inp_str returns inexact value and the number of read characters
|
||||
in an additional parameter
|
||||
- Get default $CC and $CFLAGS from gmp.h (__GMP_CC / __GMP_CFLAGS,
|
||||
which are available as of GMP 4.2.3)
|
||||
- Bug fixes:
|
||||
- mpc_get_version and MPC_VERSION_STRING agree
|
||||
- Compilation on i686-pc-cygwin and i686-pc-mingw32 fixed
|
||||
|
||||
Changes in version 0.5.2, released in December 2008:
|
||||
- New macros:
|
||||
- version number: MPC_VERSION_NUM, MPC_VERSION
|
||||
- Makefile.vc updated (thanks to Mickael Gastineau)
|
||||
- Compilation on Debian-Gnu-Linux-PowerPC and MacOsX
|
||||
fixed (thanks to Laurent Fousse and Mickael Gastineau)
|
||||
|
||||
Changes in version 0.5.1, released in November 2008:
|
||||
- New functions:
|
||||
- mpc_set_fr_fr
|
||||
- mpc_real, mpc_imag
|
||||
- mpc_arg, mpc_proj
|
||||
- New macros:
|
||||
- version number: MPC_VERSION_MAJOR, MPC_VERSION_MINOR,
|
||||
MPC_VERSION_PATCHLEVEL, MPC_VERSION_STRING
|
||||
- references to number parts: mpc_realref and mpc_imagref
|
||||
- Test framework rewritten
|
||||
- Configure checks for recent gmp (>= 4.2) and mpfr (>= 2.3.1)
|
||||
libraries
|
||||
- New configure options: --with-gmp-lib, --with-gmp-include,
|
||||
--with-mpfr-lib, and --with-mpfr-include
|
||||
- Export declarations for MSWindows, makefile.vc updated (thanks to
|
||||
Mickael Gastineau)
|
||||
- Optimisations:
|
||||
- cmp_mul_fr, cmp_sin, cmp_cos
|
||||
- Bug fixes:
|
||||
- configure looks for gmp first, then for mpfr
|
||||
- mpc_cos, mpc_div, mpc_div_fr, mpc_fr_sub, mpc_mul_fr, mpc_set_fr,
|
||||
mpc_sqr
|
||||
- fix handling of special values: mpc_exp, mpc_log, mpc_mul, mpc_norm,
|
||||
mpc_sqr, mpc_sqrt
|
||||
|
||||
Changes in version 0.5 ("Aconitum neomontanum"), released in September 2008:
|
||||
- Support for autotools
|
||||
- New functions:
|
||||
- logarithm
|
||||
- trigonometric functions: mpc_cos, mpc_tan
|
||||
- hyperbolic functions: mpc_cosh, mpc_sinh, mpc_tanh
|
||||
- Bug fixes:
|
||||
- mpc_sqrt with directed rounding
|
||||
|
||||
|
||||
Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020, 2022 INRIA
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. This file is offered as-is,
|
||||
without any warranty.
|
||||
@@ -0,0 +1,104 @@
|
||||
Copyright (C) INRIA 2003, 2005, 2007, 2008, 2009, 2010, 2011, 2012, 2014, 2015, 2018, 2020, 2022
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. This file is offered as-is,
|
||||
without any warranty.
|
||||
|
||||
|
||||
GNU MPC is a complex floating-point library with exact rounding.
|
||||
It is based on the GNU MPFR floating-point library (http://www.mpfr.org/),
|
||||
which is itself based on the GNU MP library (http://gmplib.org/).
|
||||
|
||||
|
||||
Installing GNU MPC
|
||||
==================
|
||||
|
||||
This is for the impatient, for deeper explanations see the chapter
|
||||
"Installing GNU MPC" in the Texinfo documentation (type 'info mpc.info').
|
||||
|
||||
0. You first need to install GMP, the GNU Multiprecision Arithmetic Library,
|
||||
see <http://gmplib.org/>, and GNU MPFR, see <http://www.mpfr.org>.
|
||||
GNU MPC requires GMP version 5.0.0 or later
|
||||
and GNU MPFR version 4.1.0 or later.
|
||||
|
||||
1. In the directory of the GNU MPC archive, type
|
||||
|
||||
tar xzf mpc-1.3.1.tar.gz
|
||||
cd mpc-1.3.1
|
||||
./configure
|
||||
make
|
||||
|
||||
This assumes that GMP and GNU MPFR are installed in a directory searched
|
||||
by default by the compiler. Otherwise, use --with-gmp=DIR or
|
||||
--with-mpfr=DIR with ./configure (see the Texinfo documentation).
|
||||
|
||||
2. You should run the test suite, type
|
||||
|
||||
make check
|
||||
|
||||
If any error occurs, please report it on the mailing list
|
||||
<mpc-discuss@inria.fr>.
|
||||
|
||||
3. To install the GNU MPC library, type
|
||||
|
||||
make install
|
||||
|
||||
By default, the files are copied into subdirectories of /usr/local.
|
||||
You need write permissions on these directories, or pass an alternative
|
||||
installation directory using the --prefix option to ./configure.
|
||||
|
||||
4. You can optionally create documentation, type
|
||||
|
||||
make dvi
|
||||
|
||||
or
|
||||
|
||||
make ps
|
||||
|
||||
This requires the Texinfo package (version 4.2 at least).
|
||||
|
||||
In case of difficulties, please send a description of the problem to
|
||||
<mpc-discuss@inria.fr>.
|
||||
|
||||
##############################################################################
|
||||
|
||||
Known problems:
|
||||
===============
|
||||
|
||||
When LD_LIBRARY_PATH is set to various paths, it might confuse the configure
|
||||
script, even with --with-gmp and --with-mpfr options. Then try to unset
|
||||
LD_LIBRARY_PATH.
|
||||
|
||||
##############################################################################
|
||||
|
||||
Note for AIX users:
|
||||
===================
|
||||
|
||||
If GMP was built with the 64-bit ABI, before building and testing GNU MPC,
|
||||
it might be necessary to set the OBJECT_MODE environment variable to 64
|
||||
by, e.g.,
|
||||
export OBJECT_MODE=64
|
||||
This has been tested with the C compiler IBM XL C/C++ Enterprise Edition
|
||||
V8.0 for AIX, version: 08.00.0000.0021, GMP 4.2.4 and GNU MPFR 2.4.1.
|
||||
|
||||
##############################################################################
|
||||
|
||||
Note for Windows users:
|
||||
=======================
|
||||
|
||||
If you want to compile mpc with mingw in the msys shell, you might need to
|
||||
add the following to the configure command (or in your environment):
|
||||
|
||||
LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include
|
||||
|
||||
In addition, you might need to give the following additional argument to
|
||||
configure (reported for mpc-0.9):
|
||||
|
||||
CPP="x86_64-w64-mingw32-gcc -E"
|
||||
|
||||
(reported by Sisyphus)
|
||||
|
||||
A project for Visual Studio is maintained independently by Brian Gladman at
|
||||
https://github.com/BrianGladman/mpc
|
||||
|
||||
Reference in New Issue
Block a user