exflib - extend precision floating-point arithmetic library


 
Exflib Top
 
System Requirements
Download
Documents & Tutorial
Exflib is a simple software for scientific multiple-precision arithmetic for C++ and Fortran 90/95.

  • Basic arithmetic and comparisons
  • Input/Output in decimal
  • Basic mathematical functions
  • Parallel computation with MPI, OpenMP

  • C++ class implementation

    • Overloaded operators, functions
    • Rounding Control, Interval Arithmetic (experimental, not available in Alpha version)
    • Numerical routines (Bessel, LU, QR, etc).

  • Fortran90 Module implementation

    • Operators, functions with INTERFACE
    • Complex number interface
    • Array operations

  • MATLAB implementation



News

  • 2023/08/05 : bug fix of BOZ expressions for gfortran-13 (Linux, MacOSX, Solaris)
  • 2020/10/16 : bugs fixed (Linux, MacOSX, Solaris)
  • 2020/09/23 : bugs fixed (Linux, MacOSX, Solaris)
  • 2018/09/02 : bugs fixed (MATLAB, Octave)
  • 2018/08/16 : Octave versions are available
  • 2018/06/20 : OpenMP available (Linux and MacOSX)
  • 2018/02/10 : 20180210 released, modification to MATLAB samples
  • 2018/01/03 : 20180103 released, bugs fixed (MATLAB)
  • 2017/10/18 : 20171018 released, bugs fixed (MATLAB)
  • 2017/09/24 : 20170924 released, bugs fixed (Linux/MacOSX/Solaris/Windows 32bit/MATLAB) in multiplication and pow
  • 2017/09/23 : 20170923 released, bug fixed (Linux/MacOSX/Solaris/Windows 32bit)
  • 2017/09/22 : 20170922 released, bug fixed in atan2 (Linux/MacOSX/Solaris/Windows 32bit), float_div.S (Windows 32bit)
  • 2017/09/12 : 20170912 released, bug fixed in atan2 (Linux/MacOSX/Solaris/Windows 32bit)
  • 2017/09/06 : Windows (32bit) Fortran bug fix
  • 2017/06/04 : Windows (32bit) DLL bug fix
  • 2017/05/07 : MATLAB version released (Linux, MacOSX, and Windows 64-bit)
  • 2017/02/04 : 20170204 released, bugs fixed sqrt (in linux)
  • 2016/10/03 : 20161003 released, bugs fixed pow
  • 2016/10/01 : 20161001 released, bugs fixed in cosh/sinh/pow
  • 2016/08/08 : 20160808 released, bugs fixed in cosh/sinh
  • 2016/08/01 : 20160801 released, bugs fixed in cosh/sinh
    • bugs fixed in sinh, cosh (in C++ exfloat.h)
      (sinh, cosh in FORTRAN90 are not affected)
    • new implementation of atan2 (in C++ exfloat.h)
      (atan2 is not implemented in FORTRAN90)
  • 2009/12/30 : 20091230 released
    • FORTRAN array operation module
    • FORTRAN floating-point number manipulation
    • FORTRAN, bug fix of zero determination
  • 2009/10/17 : Modification in Makefiles
  • 2009/10/01 : FORTRAN Complex Number Interface and samples, other bug fixes
  • 2008/12/28 : Including FORTRAN files in Windows DLL package
  • 2008/11/20 : Bug fix for x86_64-linux
  • 2008/11/01 : New version released (performance improvements, bug fixes)
  • 2007/11/20 : release for in Intel MacOS X
  • 2007/09/13 : Tutorial Seminar of Multiple-Precision Arithmetic (9/26,9/27)
  • 2006/10/11 : 20061011 released
    • Comparison rule with an integer is changed
    • g95 in cygwin/mingw works well
    • Fortran90's bug in linking compiled_date is fixed
  • 2006/08/08 : Source Code 20060801 released
  • 2006/08/01 : Checking Visual C++ 2005 Express Edition
  • 2006/08/01 : English documents
  • 2006/04/17 : 20060417 released (SPARC V9 and Fortran90 Module are available)
  • 2005/05/10 : TNT and JAMA are now working with exflib (patche is needed).
    TNT, JAMA contain useful linear algebra routines, and are promising.
  • 2005/05/05 : New top page
  • 2005/03/01 : 20050301 released


Known Bugs

  • Some Fortran compilers do not support DBLE() and CMPLX().
    Supported:
    • Sun Studio 12
    • gfortran (4.4.1)
    • g95 (Feb 27 2008, Jun 24 2009)
    • Intel Fortran (11.0 20081105, 10.1 20080602)
    • pgf95 6.2-5
    Not Supported
    • pgf95 9.0-1
  • PGI Fortran compiler does not support linking static libraries. (with '.a' suffix)
  • Some version of g95/cygwin does not compile a sample program sample-f90/gauss.f90.

Bugs, requests, and so on.

E-mail address : fujiwara *at mark* acs.i.kyoto-u.ac.jp
Replace *at mark* by @.

TODO

  • Parallel LU decomposition
  • Bessel Functions

  • Interval Arithmetic
  • Dynamical management of computation precision
  • Implementation on POWER, Itanium2
  • Mathematical functions (Gamma, sind, atan2, ldexp, etc.)


System Requirements

ProcessorOSCompiler (Examples)Mode

Athlon64, Opteron
Core, Xeon EM64T
 
Solaris 10
Linux (x86_64)
MacOS X
 
GCC 2.95, 2.96, 3.*, 4.*, gfortran, g95
Sun Studio 10,11,12
Intel Compiler 9,10,11
PGI Compiler 5--9
 
64-bit
Core, Pentium3, Pentium4,
Pentium M, Xeon
Windows  
Cygwin (g++, gfortran, g95)
MinGW (g++, g95)
Visual C++.net 2003
Visual C++ Toolkit 2003
Visual C++ 2005 Express Edition
Visual C++ 2008 Express Edition
Borland C++

g95-MinGW.exe
 
32-bit
  • UltraSPARC III, SPARC64V, FreeBSD are also available.

Download


Intel/AMD architecture:


Documents



All contents Copyright (C) 1999-- FUJIWARA,Hiroshi. All rights reserved.

Permission to use, copy and modify this software and its documentation for academic or noncommercial purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies, that both the copyright notice and this permission notice appear in supporting documentation, and that the name of copyright holder not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Copyright holder makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

THE COPYRIGHT HOLDERS AND RELATED ENTITIES DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL COPYRIGHT HOLDERS AND RELATED ENTITIES BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.