C-XSC: A C++ Class Library for Enhanced Scientific Computing with Predefined Data Types and Operator
- giovalfiltpronin
- Aug 12, 2023
- 4 min read
When computing dot product expressions using the dotprecision classes, the precision used in each call of the accumulate-function can be set via the member function set_dotprec of the dotprecision classes. The meaning of the setting is the same as for the operators.
c-xsc a c class library for extended scientific computing
The Object-Oriented Numerics PageQuick IndexMailing lists
Freely available libraries
Freely available tools
Commercial libraries and software
Related Projects
Reference material
Conferences
Related Web Indices
Bibliography
Mailing lists The Object-Oriented NumericsList is a forum for discussing scientificcomputing in object-oriented environments.An archive isavailable.
Arrays and Images
FreePOOMAframework for scientific computing on sequential and parallel computers. C++.
The Blitz++class library: Array and Vector classes which rival Fortran'sperformance. C++.
The AIPS++ Array and Image Classes(Astronomical Information Processing System). C++.
Daixtrose, ageneral-purpose expression template engine.
PETE,an expression templates library -- add expression templates to your own arrayclass.
SCTL (BlueSail), C++,arrays, matrics, vectors, sparse, rotations.
NumPy, Numerical extensions to Python.
VIGRA,generic computer vision/image processing library.
CPPIMAA C++ image processing library
LIMP, Large ImageManipulation Program
Image Restoration and Inpainting, C++ library for image restoration.
valarray [ftp only], approximation of thevalarrayclass described in Ch. 26 of the ANSI/ISO C++ Standard.Uses expression templates for efficient evaluation.
Image UnderstandingEnvironment (IUE), a DARPA project. C++.
WAILI,a wavelet transform library in C++.
Neural Networks, genetic algorithms, machine learning, data mining
PDP++,a neural-network simulation system written in C++
EO --Evolutionary Computation Framework
CONICAL,C++ classes for building Neural Networks
GALib, a C++ libraryfor genetic algorithms
Xelopesdata mining library (Java, C++, C#)
MLC++, Machinelearning algorithms and data mining.
High-Energy Physics and Quantum Chemistry
QC++,quantum chemistry software in C++, supporting MNDO, AM1 and PM3models.
FTensor, C++ class libraryfor tensors.
GluCat, Clifford algebratemplate library.
ComputationalThermodynamics Library
Tech-X has made availableC++ libraries related to particle accelerator design.
Multiprecision, arbitrary precision data types
NTL, arbitrary lengthintegers, vectors/matrices/polynomials over integers and over finitefields.
EXTNUM,version of double which has the same number of mantissa bitsas IEEE 754, but extends the exponent to have range from10^-646456993 to 10^646456992.
CLN,an extensive number library. Arbitrary precision integer, float,rational, polynomials, complex, modular integers, transcendentalfunctions, assembly language kernels for some CPUs.
MUNTL,Multiprecision unsigned number template library (C++).
MPFUN++, a multiple precision floating point computationpackage in C++.
LiDIA,A library for computational number theory. Provides a collection of highlyoptimized implementations of various multiprecision data types and time-intensive algorithms.
Apfloat, a C++High Performance Arbitrary Precision Arithmetic Package
hfloat,An arbitrary precision package, optimized for very large (> 1000)(decimal) digit numbers.
fPoint, a C++ class which helps convert floating-point arithmetic tofixed-point arithmetic by recommending range and precisionrequirements.
doubledouble, a quad-precision (approximately 30 decimal place) floating point arithmetic class.
Differential Equations
Rheoolef,finite element environment in C++.
EXPDE,a C++ library for solving partial differential equations onsemi-unstructured grids. Parallel.
PZ,a C++ library for finite elements. 1-3 dimensions with hp-adaptivity,continuous or discontinuous, variety of matrix formats.
MBDyn,multibody dynamics analysis in C++. Built-in parallelizationvia MPI/Metis.
P2MESH,2D finite volume/finite elements, C++ library designed for fastprototyping of high-performance PDE solvers.
Femlisp, a Common Lisp framework forFinite Element Methods.
GETFEM++,a C++ finite element library, generic, arbitrary dimensions.
MOUSE, aC++ library for finite volume computations on unstructuredgrids.
DEAL,a C++ library for adaptive finite elements and error estimation. Supports SMPs.
ODE++, a class library for ordinary differential equations. Explicit and linear-implicit ODE systems, IVP and BVP parameters,various solvers (Runge-Kutta, multistep, BDF).[English][Deutsch]
PETSc,object-oriented software for partial differential equations(programmed in C)
Diffpack,partial differential equations in C++. ($)
TIDE:Classes for Ordinary Differential Equations. Provides vectorsand matrices, extrapolation integrator for ODEs, sparse matrixclasses, eigenvalues, shooting for two point BVPs, nonlinearsolver, continuation
BoxLib/CCSE Applications Suite(docs), a class library supporting adaptive mesh refinement (AMR)schemes for computational fluid dynamics.
OVERTURE, a C++ class library for solving PDEs in complicateddomains. Includes adaptive mesh refinement and overlapping grids.
FEMLIB (ftp,www)A Finite Element package [ftp only] by Michael Tiller(BROKEN LINK, no longer supported)
Automatic differentiation and interval arithmetic
Gaol, C++library for interval arithmetic. Includes methods for intervalconstraint solvers.
FADBAD-TADIFF,a C++ package for automatic differentiation usingany arithmetic (double or interval) by operator overloading.
PROFIL/BIAS [English][Deutsch],a C++ interval arithmetic class library.
Visualization
The Visualization Toolkit (vtk), an extensive, free C++ library for scientific visualization.
VisAD, aJava library for interactive and collaborative visualization and analysis of numerical data
Java 2DGraph package. Includes contour plots, animation.
Ptplot,a 2D data plotter in Java
Graph Theory/Combinatorics
Boost GraphLibrary, a general purpose, generic C++ library for graph datastructures and graph algorithms.
GTL,the Graph Template Library (C++).
LEDA, a C++ libraryfor graph theory and combinatorial computing.
Language interoperability/scripting
CPPF77(cppf77.zip),a utility for interfacing C++ and Fortran 77 programs.
Paul Dubois's code forinterfacing Python and C++
SWIG, generates Perl, Python, Tcl,Java, Eiffel and Guile wrappers for C++ libraries.
SILOON(Scripting Interface Languages for Object-Oriented Numerics),toolkits and run-time support for building scripting interfacesto existing numerical codes in C, C++, and Fortran. Generatesscript bindings for Perl, Tcl, and Python.
Matwrap, a tool which generates C++ wrapper code formatrix-oriented scripting languages such as Matlab 5, Octave, and tela.
An interval can also be defined as a locus of points at a given distance from the center,[clarification needed] and this definition can be extended from real numbers to complex numbers.[3] As it is the case with computing with real numbers, computing with complex numbers involves uncertain data. So, given the fact that an interval number is a real closed interval and a complex number is an ordered pair of real numbers, there is no reason to limit the application of interval arithmetic to the measure of uncertainties in computations with real numbers.[4] Interval arithmetic can thus be extended, via complex interval numbers, to determine regions of uncertainty in computing with complex numbers.[4]
Since 1967, Extensions for Scientific Computation (XSC) have been developed in the University of Karlsruhe for various programming languages, such as C++, Fortran and Pascal.[23] The first platform was a Zuse Z23, for which a new interval data type with appropriate elementary operators was made available. There followed in 1976, Pascal-SC, a Pascal variant on a Zilog Z80 that it made possible to create fast, complicated routines for automated result verification. Then came the Fortran 77-based ACRITH-XSC for the System/370 architecture (FORTRAN-SC), which was later delivered by IBM. Starting from 1991 one could produce code for C compilers with Pascal-XSC; a year later the C++ class library supported C-XSC on many different computer systems. In 1997, all XSC variants were made available under the GNU General Public License. At the beginning of 2000 C-XSC 2.0 was released under the leadership of the working group for scientific computation at the Bergische University of Wuppertal to correspond to the improved C++ standard.
Another C++-class library was created in 1993 at the Hamburg University of Technology called Profil/BIAS (Programmer's Runtime Optimized Fast Interval Library, Basic Interval Arithmetic), which made the usual interval operations more user friendly. It emphasized the efficient use of hardware, portability and independence of a particular presentation of intervals. 2ff7e9595c
Comentarios