48 views

Uploaded by KhemPrasadKhanal

hu

- Tutorial tensorlab
- Using STAAD Pro 2007 Courseware for US Design
- Matlab 14
- Rugh W.J. Linear System Theory (2ed., PH 1995)(ISBN 0134412052)(T)(596s).pdf
- UT Dallas Syllabus for engr2300.002.11f taught by Naofal Al-Dhahir (nxa028000)
- Matlab Scilab Equivalents
- linear algebra.pdf
- Perfil Psicologico de Un Adolescente de 15 Años
- OJCE20120200002_92292448
- UT Dallas Syllabus for math2418.501.10s taught by Istvan Ozsvath (ozsvath)
- Mesh Import API
- Finite Element Modelling of Castings
- Coding Ques
- 124902056 Advanced Algebra II Teacher s Guide 2009
- Ahp Matrix Template
- Matlab Basics
- Lecture 25
- deret
- Bessel 2
- Assignment 1

You are on page 1of 25

Rene Brun

November 21, 2003

Introduction

Following the discussions at the Architects Forum in October and our meeting of November

14, this paper is an attempt to come with a more concrete proposal for the implementation

of a Math Library in C++. This proposal does not exclude in any way the support for

existing libraries such as clhep [3], gsl [2] or cernlib [1]. Whatever decision is taken,

these libraries will have to be maintained (at least for clhep) for some time in the future to

guarantee a smooth transition to the new system. Note that the title says Math Library

in C++ and not in C. A C++ library that would be just a simple wrapper to C functions

is not appropriate in most cases. The wrapper does not introduce new functionality, but it

introduces a performance overhead. The main reasons to have a true C++ library are:

1. We want to interact with real objects (data and algorithms), not just algorithms.

2. We want to provide higher level interfaces hidding the implementation details (algorithms). A true Object-Oriented API should remain stable if internal storage or

algorithms change. One can imagine the Mathlib classes being improved over time,

or adapted to standard algorithms that could come with the new C++ versions.

3. Many classes require a good graphics interface. A large subset of cernlib or gsl has

to do with functions. Visualising a function requires to know some of its properties, eg

singularities or asymptotic behaviours. This does not mean that the function classes

must have built-in graphics. But they must be able to call graphics service classes

able to exploit the algorithms in the functions library.

4. Many objects need operators (matrices, vectors, physics vectors, etc).

5. We want to embed these objects in a data model. Users start to request that the

math library takes care of memory management and/or persistence of the object .

See for instance the lhc-feedback [5], where persistence of the clhep was requested.

The user would like to save and restore random-generator seeds etc .

6. We want to have an interactive interface from our interpreters, hence a dictionary.

1

gsl is a rich library, but with a user interface very similar to a Fortran library. The data

have to be specified via arrays or special C-structs in all the algorithms. The gsl functions

do not carry an internal state. They are at a very low level. gsl++ has been an attempt

to implement a true C++ interface to gsl. gsl++ is stalled because of a limited interest if

points 3, 4, 5 and 6 above are not implemented. clhep has been an attempt to implement

a mini true C++ library fulfilling also conditions 1 and 2, but not the essential conditions

3 and 4. The current clhep is also a very small subset of what is required.

Object-Oriented API vs Procedural API

gsl style

: double gsl_sf_gamma(double x)

int gsl_sf_gamma_e(double x, gsl_sf_result* result)

gamma.Draw()

gamma.Eval(x)

gamma.Derivative(x)

gamma.Integral(0.1,0.3)

Proposal

The library could be structured in 3 logical groups:

A : a set of often used algorithms (like TMath) grouped into a few classes with static

functions only. The corresponding shared lib libMathlib will be required by all applications and could in turn be embedded into the core libraries (like the root libCore)

to minimize the number of libraries that a user has to specify on the link command

line.

B : a set of classes for frequently used objects like the clhep Physics vectors classes,

random generators or matrices (or the root equivalent), the parametric functions,

the minimization classes. Each set of these classes will have its own shared library,

eg libRandom, libMatrix, libPhysics, libMinuit, libGMinuit, libFumili, etc. These

libraries are typically dynamically linked by the plugin manager.

C : a set of algorithms, like in case A, but less frequently used. Again, mostly static

functions in a restricted number of utility classes. These classes could be grouped into

a large library libMathlib2.

Each shared library above must include the class dictionaries to minimize dependencies

on parallel libraries or possible mismatches. The dictionary is anyway essential for all the

shared libraries in the group B. The CVS structure should reflect the proposed structure

with a directory for A, a directory for each main component of B and one or a few directories

for C. Following a detailed analysis of the tables in the following sections, we estimate that

2

a large subset (more than 60 per cent) is already in the ROOT libraries. We estimate the

work to implement A and B to be of the order of a few weeks. Eddy Offermann is currently

polishing an upgraded Matrix package including a nice test suite. Implementation of C will

take more time and could be gradually implemented in the coming year. We are therefore

proposing to host the Mathlib structure as a component of the root project. This will

have immediate advantages, large user base, infrastructure, ready solution for I/O and

interactivity.

This proposal suggests the implementation of a true C++ library fulfilling all the conditions

above and reusing existing code or algorithms. Reusing existing code may be achieved by

importing and adapting C code in gsl, C++ code from clhep, or translating Fortran code

from cernlib. Like the old cernlib, the mathematical library should be a compact set

of functions that will run on all supported platforms. It should provide the mathematical

backbone for all phases of data analysis from large batch jobs to interactive sessions on a

personal computer . The advantages of consistent use of the same mathematical library

throughout the analysis are obvious . However, the choice of the functions inside this

package are less obvious. At a first glance, it would seem preferable to start from the

gsl code. However, the current cernlib does reflect the Readers Digest of mathematical

functionality in High-Energy Physics. For many years cern staff and users have added the

necessary functionality.

Obviously, not all functionality is available in the cernlib . But future lhc and past lep

analysis-methodology are not that far apart, that it is safe to say that it did and will cover

95% of the necessary functionality. Therefore, we decided to take the current cernlib as a

benchmark for completeness. When considering whether to endorse a package from outside,

we should carefully analyze its contents. It is not desirable to end up in a situation where

the ratio between useful routines and missing ones becomes unfavorable . In the next few

sections we list the functionality of the cernlib, gsl, clhep and root [4] . In the tables

there will be several columns, labeled Available . It is supposed to indicate whether the

functionality of the library under consideration is available in the other contenders. The

symbols in these columns have the following meaning:

C : cernlib

G : gsl

H : clhep

R : root basic Root (mainly TMath)

R* : root as a framework

As indicated above, two types of entry (R and R* ) exist for the root library. The functions

tagged with R* have been embedded in the root framework, thereby providing persistence,

graphing etc.

cernlib

In the table below the availability column has for cern (which has by definition an entry

for every routine) sometimes an entry c instead of the C . This indicates that its priority

is low and could be taken on request.

B - Elementary Functions

routine

PRMFCT (B002)

RBINOM (B100)

RPLNML (B105)

Available

c

C

C

R*

description

Prime Numbers Factor Decomposition

Binomial Coefficient

Value of a Polynomial

#

222

19

50

routine

RSNLEQ (C201)

RMULLZ (C202)

RZERO (C205)

RRTEQ3 (C207)

RRTEQ4 (C208)

CPOLYZ (C209)

NZERFZ (C210)

ERF (C300)

FREQ (C301)

GAMMA (C302)

GAMMF (C303)

ALGAMA (C304)

CGAMMA (C305)

CLGAMA (C306)

CCLBES (C309)

BESJ0 (C312)

BESI0 (C313)

RRIZET (C315)

RPSIPG (C316)

CPSIPG (C317)

RELFUN (C318)

CELFUN (C320)

CGPLG (C321)

Available

G

G

C

G

R* R* G

C

G

C

c

c

R

R G

R

R G

R

R G

R

R G

R

R G

c

G

R

R G

c

G

R

R G

R

R G

c

G

c

G

c

G

c

G

c

G

c

description

Systems of Nonlinear Equations

Zeros of a Real Polynomial

Zero of a Function of One Real Variable

Roots of a Cubic Equation

Roots of a Quartic Equation

Zeros of a Complex Polynomial

Number of Zeros of a Complex Function

Error Function and Complementary Error

Normal Frequency Function

Gamma Function for Positive Argument

Gamma Function for Real Argument

Logarithm of the Gamma Function

Gamma Function for Complex Argument

Logarithm of the Gamma Function

Coulomb Wave, Bessel, and Sphe Bessel

Bessel Funct J and Y Orders 0 and 1

Modified Bessel Funct I and K 0 and 1

Riemann Zeta Function

Psi (Digamma) and Polygamma Functions

Psi (Digamma) and Polygamma Functions

Jacobian Elliptic Functions real

Jacobian Elliptic Functions complex

Nielsens Generalized Polylogarithm

#

248

159

138

110

137

264

93

80

52

81

81

122

98

31

820

331

351

164

312

20

23

126

410

routine

RFRSIN (C322)

RFERDR (C323)

DATANI (C324)

RCLAUS (C326)

BSIR4 (C327)

CWHITM (C328)

RASLGF (C330)

RFCONC (C331)

RDILOG (C332)

RGAPNC (C334)

CWERF (C335)

RSININ (C336)

REXPIN (C337)

CEXPIN (C338)

RDAWSN (C339)

BSIR3 (C340)

BSKA (C341)

RSTRH0 (C342)

BSJA (C343)

CBSJA (C344)

RBZEJY (C345)

RELI1 (C346)

RELI1C (C347)

CELINT (C348)

RTHETA (C349)

Available

c

c

c

c

c

c

c

c

R

c

c

c

c

c

C

c

R

R

R

c

c

c

c

c

c

G

G

G

G

R

R

R

G

G

G

G

G

G

G

G

G

G

G

G

G

G

G

G

G

description

Fresnel Integrals

Fermi-Dirac Function

Arctangent integral

Clausen Function

Modified Bessel F I and K 1/4,1/2,3/4

Whittaker Funct M of Complex Argument

Legendre,Associated Legendre Functions

Conical Functions of the First Kind

Dilogarithm Function

Incomplete Gamma Functions

Complex Error Function

Sine and Cosine Integrals

Exponential Integral

Exponential Integral Complex Argument

Dawsons Integral

Modified Bessel Functions I,K 1/3, 2/3

Modified Bessel Functions K

Struve Funct of Orders 0 and 1

Bessel Funct J and I with Pos Arg

Bessel Funct J with Complex Argument

Zeros of Bessel Functions J and Y

Elliptic Integrals of 1st, 2nd, 3rd

Elliptic Integrals 1st, 2nd, 3rd

Elliptic Integral for Complex Argument

Jacobian Theta Functions

#

196

148

19

86

360

125

25

26

25

33

74

196

27

27

96

343

130

195

181

60

223

67

140

151

289

routine

SIMPS (D101)

RADAPT (D102)

GAUSS (D103)

RCAUCH (D104)

RTRINT (D105)

RGS56P (D106)

RGQUAD (D107)

TRAPER (D108)

RGMLT (D110)

Available

C

R*

R*

c

c

R*

R*

C

C

R*

R*

G

G

G

R*

R*

R*

description

Integration by Simpsons Rule

Adaptive Gaussian Quadrature

Adaptive Gaussian Quadrature

Cauchy Principal Value Integration

Integration over a Triangle

Gauss Quadrature with 5 and 6 Points

N-Point Gaussian Quadrature

Trapezoidal Rule Integration

Gauss Quad for Multiple Integrals

#

20

95

18

24

24

42

18

56

26

routine

CGAUSS (D113)

RIWIAD (D114)

RADMUL (D120)

DIVON4 (D151)

RRKSTP (D200)

RDEQBS (D201)

RDEQMR (D202)

RRKNYS (D203)

EPDE1 (D300)

ELPAHY (D302)

RDERIV (D401)

LEAMAX (D501)

RMINFC (D503)

RFRDH1 (D601)

RFT (D700)

CFT (D702)

CFSTFT (D706)

Available

c

c

c

R*

c

c

c

c

c

c

c

c

R*

c

c

c

c

G

R*

G

G

G

G

G

G

G

G

G

G

G

description

Complex Integ Along a Line Segment

Multidim Monte-Carlo Integration

Quadrature for Multiple Integrals

Multidim Integration/Random Numbers

1st-ord D Eq (RungeKutta)

1st-ord D Eq (GraggBulirschStoer)

1st-ord D Eq (RungeKuttaMerson)

2nd-ord D Eq (RungeKuttaNystrm)

Elliptic Partial D Equation

Fast Partial D Eq Solver

Numerical Differentiation

Non-Lin Least Sq & Max Likelihood

Mini of a Function of One Variable

Lin Fredholm Integ Eq of 2nd Kind

Real Fast Fourier Transform

Complex Fast Fourier Transform

Complex Fast Fourier Transform

#

18

374

224

?

12

22

23

12

134

125

19

2084

73

25

551

576

67

routine

POLINT (E100)

MAXIZE (E102)

AMAXMU (E103)

FINT (E104)

DIVDIF (E105)

LOCATR (E106)

RLSQPM (E201)

LSQ (E208)

NORBAS (E210)

RCSPLN (E211)

LFIT (E250)

PARLSQ (E255)

RCHECF (E406)

RCHSUM (E407)

RTRGSM (E409)

C

R

R

c

C

R

R*

R*

C

C

R*

R*

c

c

c

Available

G

R G

R G

G

G

R G

R* G

R* G

G

R* G

R* G

R* G

G

G

G

description

Polynomial Interpolation

Maximum/Minimum Elements of Arrays

Largest Number in Scattered Vector

Multidim Linear Interpolation

Function Interpolation

Binary Search in Ord Array

Least Squares Polynomial Fit

Least Squares Polynomial Fit

Polynom Splines / Norm B-Splines

Cubic Splines and their Integrals

Least-Squar Fit to Straight Line

Least-Squar Fit to Parabola

Chebyshev Coeff of a Function

Summation of Chebyshev Series

Summation of Trig Series

#

?

61

?

?

?

?

76

?

3417

20

60

132

40

?

42

routine

LAPACK (F001)

RVADD (F002)

RMADD (F003)

RMMLT (F004)

RINV (F010)

RSINV (F012)

POLROT (F105)

MXPACK (F110)

TR (F112)

DOTI (F116)

CROSS (F117)

ROT (F118)

VECMAN (F121)

BVSL (F123)

MXDIPR (F150)

RBEQN (F406)

RLHOIN (F500)

R*

R*

R*

R*

R*

R*

c

R*

R*

R*

R*

R*

R*

R*

c

c

c

Available

R* G

R* G

R* G

R* G

R* G

R* G

R*

R*

R*

R*

R*

R*

R*

H

H

H

H

H

H

H

H

H

H

H

H

G

G

G

G

G

description

Linear Algebra Package

Elementary Vector Processing

Elementary Matrix Processing

Matrix Multiplication

Linear Equations, Matrix Inversion

Symmetric Pos-Def Linear Systems

Rotate a 3-Dim Polar Coord System

TC Matrix Manipulation Package

Triangular and Symmetric Matrices

Scalar Prod of 2 Space-Time Vectors

Vector Prod of 2 3-Vectors

Rotating a 3-Vector

Vector Algebra

Bit Vector Manipulation Package

Direct or Tensor Matrix Product

Banded Linear Equations

Linear Homogeneous Inequalities

routine

PROB (G100)

CHISIN (G101)

PROBKL (G102)

TKOLMO (G103)

STUDIS (G104)

GAUSIN (G105)

GAMDIS (G106)

LANDAU (G110)

VAVLOV (G115)

VVILOV (G116)

R

R

R

R

C

C

R

R

c

c

Available

R G H

R G H

R

R

R

R

G

G

H

H

description

Upper Tail Prob of Chi-Squared Dist

Inverse of Chi-Square Distribution

Kolmogorov Distribution

Kolmogorov Test

Student Dist and Its Inverse

Inverse of Normal Freq Function

Gamma Distribution

Landau Distribution

Vavilov Dist and its Inverse

Vavilov Density & Dist Functions

#

108

81

51

66

46

41

128

92

920

150

M - Data Handling

routine

SORTZV (M101)

FLPSOR (M103)

SORCHA (M104)

SORTR (M107)

SORTRQ (M109)

LOCBYT (M428)

NUMBIT (M429)

GETBIT (M437)

BTMOVE (M438)

GETBYT (M439)

BITPAK (M441)

UBITS (M503)

R

R

R

R*

R*

R*

R*

R*

R*

R*

R*

R*

Available

R G

R G

R G

R* G

R* G

R*

R*

R*

R*

R*

R*

R*

description

Sort One-Dim Array

Sort One-Dim Array into Itself

Sort One-Dim Character Array

Sort Rows of a Matrix

Sort Rows of a Matrix

Search for Byte-Content

Number of One-Bits in a Word

Set or Retrieve a Bit in a String

Move Bit String

Set or Retrieve a Bit String

Handling Bits and Bytes

Locate the One-Bits of a Word

routine

LOREN4 (U101)

LORENF (U102)

RWIG3J (U111)

RTCLGN (U112)

RDJMNB (U501)

Available

R* R*

H

R* R*

H

c

G

c

c

description

Lorentz Transformation

Lorentz Transformations

Wigner 3-j, 6-j, 9-j Symbols

Clebsch-Gordan Coeff

Beta-Term in Wigners D-Function

routine

RNDM (V104)

NRAN (V105)

RANMAR (V113)

RANECU (V114)

RANLUX (V115)

RNORML (V120)

CORSET (V122)

RAN3D (V130)

RN3DIM (V131)

R*

R*

c

R*

R*

R*

R*

c

c

Available

R* G

R* G

G

R* G

R* G

R* G

R* G

H

H

H

H

H

H

H

description

Uniform Random Numbers

Arrays of Uniform Random Numbers

Fast Uniform Random Number Generator

Uniform Random Number Generator

Uniform Random Numbers of Quality

Gauss-dist Random Numbers

Corr Gauss-dist Random Numbers

Random 3-Dimensional Vectors

Random 2 and 3-Dimensional Vectors

routine

RNGAMA (V135)

RNPSSN (V136)

RNBNML (V137)

RNMNML (V138)

RNHRAN (V149)

HISRAN (V150)

FUNRAN (V151)

FUNLUX (V152)

PERMU (V202)

PROXIM (V306)

GRAPH (V401)

c

R*

R*

C

R*

R*

R*

R*

c

c

c

Available

G

R* G H

R* G H

G

R* G

R* G

R* G

R* G

G

description

Gamma or Chi-Square Random Numbers

Poisson Random Numbers

Binomial Random Numbers

Multinomial Random Numbers

Rand Numbers Acc to Any Histogram

Rand Numbers Acc to Any Histogram

Rand Numbers Acc to Any Function

Rand Numbers Acc to Any Function

Permutations and Combinations

Adjusting an Angle to Another Angle

Find Compatible Node-Nets in Graph

routine

GENBOD (W515)

Available

R* R*

description

N-Body Monte-Carlo Event Generator

routine

DATIME (Z007)

CALDAT (Z009)

Available

R* R*

R* R*

description

Job Time and Date

Calendar Date Conversion

gsl

In the gsl table a new column action is introduced . The symbols in this column have the

following meaning:

> we need this functionality (but already provided elsewhere)

+ we could take it from gsl source

Mathematical Functions

action

>

>

>

>

description

Mathematical Constants

Infinities and Not-a-number

Elementary Functions

Small integer powers

Testing the Sign of Numbers

Testing for Odd and Even Numbers

Maximum and Minimum functions

Approximate Comparison of Floating Point Numbers

Available

R

R

R

Complex Numbers

+

+

+

+

+

+

Elementary Complex Functions

Complex Trigonometric Functions

Inverse Complex Trigonometric Functions

Complex Hyperbolic Functions

Inverse Complex Hyperbolic Functions

Polynomials

>

>

>

+

Polynomial Evaluation

Divided Difference Representation of Polynomials

Quadratic Equations

Cubic Equations

General Polynomial Equations

C

C

C

Special Functions

Usage

The gsl sf result struct

Modes

continued on next page

10

action

description

Airy Functions

Derivatives of Airy Functions

Zeros of Airy Functions

Zeros of Derivatives of Airy Functions

Available

Bessel Functions

>

>

>

>

>

>

>

>

>

Irregular Cylindrical Bessel Functions

Regular Modified Cylindrical Bessel Functions

Irregular Modified Cylindrical Bessel Functions

Regular Spherical Bessel Functions

Irregular Spherical Bessel Functions

Regular Modified Spherical Bessel Functions

Irregular Modified Spherical Bessel Functions

Regular Bessel Function - Fractional Order

Irregular Bessel Functions - Fractional Order

Regular Modified Bessel Functions - Fractional Order

Irregular Modified Bessel Functions - Fractional Order

Zeros of Regular Bessel Functions

Clausen Functions

R

R

R

C

C

C

C

C

C

C

Coulomb Functions

Normalized Hydrogenic Bound States

Coulomb Wave Functions

Coulomb Wave Function Normalization Constant

Coupling Coefficients

3-j Symbols

6-j Symbols

9-j Symbols

Dawson Function

Debye Functions

C

C

C

Dilogarithm

>

>

Real Argument

Complex Argument

Elementary Operations

R

C

Elliptic Integrals

>

>

Definition of Carlson Forms

Legendre Form of Complete Elliptic Integrals

C

C

C

continued on next page

11

action

+

description

Legendre Form of Incomplete Elliptic Integrals

Carlson Forms

Elliptic Functions (Jacobi)

Available

C

C

Error Functions

>

>

>

>

Error Function

Complementary Error Function

Log Complementary Error Function

Probability functions

R

R

R

R

C

C

C

Exponential Functions

>

>

+

Exponential Function

Relative Exponential Functions

Exponentiation With Error Estimate

R

R

Exponential Integrals

>

>

>

>

Exponential Integral

Ei(x)

Hyperbolic Integrals

Ei 3(x)

Trigonometric Integrals

Arctangent Integral

R*

R*

R*

Fermi-Dirac Function

>

>

>

>

Incomplete Fermi-Dirac Integrals

Gamma Function

Gegenbauer Functions

Hypergeometric Functions

Laguerre Functions

Lambert W Functions

C

C

>

>

>

>

Legendre Polynomials

Associated Legendre Polynomials and Spherical Harmonics

Conical Functions

Radial Functions for Hyperbolic Space

Logarithm and Related Functions

Power Function

C

C

C

>

Digamma Function

12

action

description

Available

Trigamma Function

Polygamma Function

Synchrotron Functions

Transport Functions

Trigonometric Functions

Circular Trigonometric Functions

Trigonometric Functions for Complex Arguments

Hyperbolic Trigonometric Functions

Conversion Functions

Restriction Functions

Trigonometric Functions With Error Estimates

Zeta Functions

Riemann Zeta Function

Hurwitz Zeta Function

Eta Function

Data types

Blocks

Block allocation

Reading and writing blocks

Vectors

>

>

>

>

>

>

>

>

>

Vector allocation

Accessing vector elements

Initializing vector elements

Reading and writing vectors

Vector views

Copying vectors

Exchanging elements

Vector operations

Finding maximum and minimum elements of vectors

Vector properties

R*

R*

R*

R*

R*

R*

R*

R*

R*

Matrices

>

>

>

Matrix allocation

Accessing matrix elements

Initializing matrix elements

Reading and writing matrices

R*

R*

R*

continued on next page

13

action

>

>

>

>

>

>

>

description

Matrix views

Creating row and column views

Copying matrices

Copying rows and columns

Exchanging rows and columns

Matrix operations

Finding maximum and minimum elements of matrices

Matrix properties

Available

R*

R*

R*

R*

R*

R*

Permutations

The Permutation struct

Permutation allocation

Accessing permutation elements

Permutation properties

Permutation functions

Applying Permutations

Reading and writing permutations

Permutations in Cyclic Form

Combinations

The Combination struct

Combination allocation

Accessing combination elements

Combination properties

Combination functions

Reading and writing combinations

Sorting

>

>

>

>

Sorting objects

Sorting vectors

Selecting the k smallest or largest elements

Computing the rank

R*

R*

R*

R*

C

C

BLAS Support

GSL BLAS Interface

Level 1

Level 2

Level 3

continued on next page

14

action

description

Available

Linear Algebra

>

>

>

>

>

>

>

>

>

LU Decomposition

QR Decomposition

QR Decomposition with Column Pivoting

Singular Value Decomposition

Cholesky Decomposition

Tridiagonal Decomposition of Real Symmetric Matrices

Tridiagonal Decomposition of Hermitian Matrices

Bidiagonalization

Householder Transformations

Householder solver for linear systems

Tridiagonal Systems

R*

R*

R*

R*

R*

R*

R*

R*

R*

C

C

C

C

C

C

C

C

C

C

C

R*

C

C

C

Eigensystems

>

>

Complex Hermitian Matrices

Sorting Eigenvalues and Eigenvectors

R*

>

+

>

+

Mixed-radix FFT routines for complex data

Overview of real data FFTs

Radix-2 FFT routines for real data

Mixed-radix FFT routines for real data

Numerical Integration

>

>

>

+

+

>

+

+

+

QAG adaptive integration

QAGS adaptive integration with singularities

QAGP adaptive integration with known singular points

QAGI adaptive integration on infinite intervals

QAWC adaptive integration for Cauchy principal values

QAWS adaptive integration for singular functions

QAWO adaptive integration for oscillatory functions

QAWF adaptive integration for Fourier integrals

R*

R*

R*

C

C

C

R*

R*

R*

C

C

>

>

Sampling from a random number generator

15

action

>

>

description

Auxiliary random number generator functions

Random number environment variables

Copying random number generator state

Reading and writing random number generator state

Random number generator algorithms

Unix random number generators

Other random number generators

Available

R* C H

R*

Quasi-Random Sequences

Quasi-random number generator initialization

Sampling from a quasi-random number generator

Auxiliary quasi-random number generator functions

Saving and resorting quasi-random number generator state

Quasi-random number generator algorithms

>

>

>

>

>

>

>

>

>

The

The

The

The

The

The

The

The

The

The

The

The

The

The

The

The

The

The

The

The

The

The

The

The

Gaussian Distribution

Gaussian Tail Distribution

Bivariate Gaussian Distribution

Exponential Distribution

Laplace Distribution

Exponential Power Distribution

Cauchy Distribution

Rayleigh Distribution

Rayleigh Tail Distribution

Landau Distribution

Levy alpha-Stable Distributions

Levy skew alpha-Stable Distribution

Gamma Distribution

Flat (Uniform) Distribution

Lognormal Distribution

Chi-squared Distribution

F-distribution

t-distribution

Beta Distribution

Logistic Distribution

Pareto Distribution

Spherical Distribution (2D & 3D)

Weibull Distribution

Type-1 Gumbel Distribution

R*

R*

R*

R*

C

C

C

H

H

H

H

R*

R*

R*

R*

R*

C

C

H

H

H

16

action

>

>

>

description

The Type-2 Gumbel Distribution

The Dirichlet Distribution

General Discrete Distributions

The Poisson Distribution

The Bernoulli Distribution

The Binomial Distribution

The Multinomial Distribution

The Negative Binomial Distribution

The Pascal Distribution

The Geometric Distribution

The Hypergeometric Distribution

The Logarithmic Distribution

Shuffling and Sampling

Available

R*

R*

R*

H

H

H

Statistics

>

>

+

+

>

>

Absolute deviation

Higher moments (skewness and kurtosis)

Autocorrelation

Covariance

Weighted Samples

Maximum and Minimum values

Median and Percentiles

R

R

R

R*

Simulated Annealing

Simulated Annealing algorithm

Simulated Annealing functions

+

+

Stepping Functions

Adaptive Step-size Control

Evolution

Interpolation

>

Interpolation Functions

Interpolation Types

Index Look-up and Acceleration

Evaluation of Interpolating Functions

Higher-level Interface

C

C

17

action

description

Available

Numerical Differentiation

Functions

Chebyshev Approximations

>

>

>

Creation and Calculation of Chebyshev Series

Chebyshev Series Evaluation

Derivatives and Integrals

C

C

C

Series Acceleration

Acceleration functions

Acceleration functions without error estimation

Definitions

Functions

>

>

+

+

>

Providing the function to solve

Search Bounds and Guesses

Iteration

Search Stopping Parameters

Root Bracketing Algorithms

Root Finding Algorithms using Derivatives

R*

R*

R*

R*

R*

R*

R*

C

C

C

C

C

Initializing the Minimizer

Providing the function to minimize

Iteration

Stopping Parameters

Minimization Algorithms

Multidimensional Root-Finding

+

+

+

Providing the function to solve

Iteration

Search Stopping Parameters

Algorithms using Derivatives

continued on next page

18

action

+

description

Algorithms without Derivatives

Available

Multidimensional Minimization

Initializing the Multidimensional Minimizer

Providing a function to minimize

Iteration

Stopping Criteria

Algorithms

Computing the covariance matrix of best fit parameters

R*

R*

R*

R*

R*

R*

C

C

C

C

C

C

R*

R*

R*

C

C

C

R*

R*

R*

R*

R*

R*

C

C

C

C

C

C

Least-Squares Fitting

>

>

>

Linear regression

Linear fitting without a constant term

Multi-parameter fitting

Initializing the Solver

Providing the Function to be Minimized

Iteration

Search Stopping Parameters

Minimization Algorithms using Derivatives

Minimization Algorithms without Derivatives

Computing the covariance matrix of best fit parameters

Physical Constants

>

>

>

>

Fundamental Constants

Astronomy and Astrophysics

Atomic and Nuclear Physics

Measurement of Time

Imperial Units

Nautical Units

Printers Units

Volume

Mass and Weight

Thermal Energy and Power

Pressure

Viscosity

Light and Illumination

Radioactivity

Force and Energy

R

R

R

R

19

20

clhep

vector (more functionality in TVector2, TVector3)

matrix (poor package compared to ROOT TMatrix package)

random (Most classes in TRandom/TRandom3). Missing functions trivial to implement

via TF1. marked with + could be taken)

Vector

action

description

Hep2Vector

Hep3RotationInterface

Hep3Vector

Hep4RotationInterface

HepAxisAngle

HepBoost

HepBoostX

HepBoostY

HepBoostZ

HepEulerAngles

HepLorentzRotation

HepLorentzVector

HepRotation

HepRotationX

HepRotationY

HepRotationZ

Available

R*

R*

R*

R*

R*

R*

R*

R*

R*

R*

R*

R*

R*

R*

R*

R*

Matrix

HepDiagMatrix

HepGenMatrix

HepMatrix

HepPile

HepSymMatrix

HepVector

R*

R*

R*

R*

R*

R*

Random

continued on next page

21

action

+

+

+

+

+

+

+

+

+

+

description

DRand48Engine

DualRand

HepJamesRandom

HepRandom

HepRandomEngine

HepStat

Hurd160Engine

Hurd288Engine

MTwistEngine

NonRandomEngine

RandBinomial

RandBit

RandBreitWigner

RandChiSquare

RandEngine

RandExponential

RandFlat

RandGamma

RandGauss

RandGaussQ

RandGaussT

RandGeneral

RandLandau

RandPoisson

RandPoissonQ

RandPoissonT

RandStudentT

RanecuEngine

Ranlux64Engine

RanluxEngine

RanshiEngine

TripleRand

HepRandomVector

RandMultiGauss

Available

R*

R*

R*

R*

R*

R*

R*

R*

22

root

R* A set of classes using the framework (I/O, visualisation) The following classes can be

used via CINT, they are persistent-capable. They hidde low-level math functions in

high level objects.

class

TMath

functionality

only static functions, not depending on the framework

Fundamental constants

Trigo (Sin, Cos, CosH, ..)

Misc (Factorial, Nint, IsFinite, IsNaN, etc)

Abs, Even, Odd, NextPrime, Sign

Min, Max, LocMin, LocMax

Range, BinarySearch

Hash, IsInside

CrossProduct, Normal2Plane, etc

Erf, Erfc,Freq, Prob,

Gaus, Gamma, BreitWigner,Landau,LnGamma,Poisson

KolmogorovProb, Voigt

Bessel functions I0,K0,I1,K1,J0,J1,Y0,Y1

Struve functions H0,H1,L0,L1

TFormula

parametric expression evaluator (1,2,3,4-dim)

TF1

1-dim parametric function

Any analytic & parametric expressions

Any interpreted function

Any compiled function with a dictionary

Derivatives

Integrals

Zero Finding

Min/Max Finding

Random number generation

The main interface for histogram/graph fitting

Visualisation

TF2

continued on next page

23

class

functionality

same as TF1 for 2-d parametric functions

TF12

Projection of a TF2 along x or y

TF3

same as TF1 for 3-d parametric functions

TRandom

Flat, Uniform, Binomial, Exp, Landau, Poisson

TRandom3

same with Mersenne Twister

Random numbers from TF1, TF2 and TF3

Random numbers from histograms TH1, TH2, TH3 or TProfile

TGraph

Drawing, smoothing, fitting, interpolation of n,x[i],y[i]

TGraph2D

same for n,x[i],y[i],z[i]

Delaunay triangulation & interpolation

TSpline3

Cubic spline interpolation, smoothing, visualisation

TSpline5

same with quintic splines

TMatrix ++

Performant linear algebra package

supporting many matrix types

Decomposition, SVD

Eigenvalues, etc

TVector

All operations on vectors or vectors with matrices

TCL

A translation in C++ of frequently used routines from Cernlib packages F110, F112

TLorentzVector

continued on next page

24

class

TLorentzRotation

TRotation

TVector2

TVector3

functionality

TFumili

Fitting histograms and graphs with Fumili

TMinuit

same with Minuit

TMultiDimFit

Multi-dim parametrisation and fitting

TMultiLayerPerceptron

Neural network (clustering & fit)

TPrincipal

Principal component analysis

References

[1] cernlib http://cernlib.web.cern.ch/cernlib/kernlib.html

[2] gnu Scientific Library, http://www.gnu.org/software/gsl/

[3] clhep A Class Library for High-Energy Physics,

http://wwwasd.web.cern.ch/wwwasd/lhc++/clhep/ .

[4] root An Object-Oriented Data Analysis Framework,

http://root.cern.ch/

[5] Lorenzo Moneta, Feedback from LHC experiments, http://proj-clhep.web.cern.ch/projclhep/Workshop-2003/

25

- Tutorial tensorlabUploaded bykeesenpiet
- Using STAAD Pro 2007 Courseware for US DesignUploaded byBeenah Sheila Khushiram
- Matlab 14Uploaded byadnan
- Rugh W.J. Linear System Theory (2ed., PH 1995)(ISBN 0134412052)(T)(596s).pdfUploaded bySathi Sikdar
- UT Dallas Syllabus for engr2300.002.11f taught by Naofal Al-Dhahir (nxa028000)Uploaded byUT Dallas Provost's Technology Group
- Matlab Scilab EquivalentsUploaded byZan Layle
- linear algebra.pdfUploaded byshankar khanal
- Perfil Psicologico de Un Adolescente de 15 AñosUploaded bydavidtellezlandin
- OJCE20120200002_92292448Uploaded byJetmir Kurti
- UT Dallas Syllabus for math2418.501.10s taught by Istvan Ozsvath (ozsvath)Uploaded byUT Dallas Provost's Technology Group
- Mesh Import APIUploaded bycomysia
- Finite Element Modelling of CastingsUploaded byVikas Garg
- Coding QuesUploaded byAnsh Jindal
- 124902056 Advanced Algebra II Teacher s Guide 2009Uploaded bybratista
- Ahp Matrix TemplateUploaded byronald
- Matlab BasicsUploaded bySigurbjörnBárðarson
- Lecture 25Uploaded byDonald Ng Jer Yi
- deretUploaded byravarae
- Bessel 2Uploaded byEdgar Calva
- Assignment 1Uploaded byBun
- Part 03Uploaded byrodi10
- ErrataUploaded byNamal Wanninayake
- 8. SILABUS.docxUploaded bysuhayanaaa
- Math 3 Week 4 Lecture Slides [Compatibility Mode]Uploaded byReeve Seah
- Defining Custom Concurrent Managers.docxUploaded byPraveen Kumar
- 05 SlideUploaded bypitchrks19841
- Lecture Notes Sta Margherita 1976Uploaded byorock22
- 141Uploaded byMary Feliciano
- EOTM Round 1 - Instruction Sheet.pdfUploaded bySohan Choudhuri
- lec17Uploaded byetan

- School Management System AbtractUploaded byKhemPrasadKhanal
- Project Proposal on C-programming {Library Management System}Uploaded byRabindra Jung
- SagarUploaded byKhemPrasadKhanal
- 5975 Load SheddingUploaded byनृपेश घिमिरे
- Phys Page 11 to 20Uploaded byKhemPrasadKhanal
- Phys Page 21Uploaded byKhemPrasadKhanal
- Phys-Page 1 to 10Uploaded byKhemPrasadKhanal

- Edexcel 2009 Jun FP1 Mark SchemeUploaded byTreshan Stayn
- taxi-circlesUploaded byapi-255059274
- MatlabUploaded byGabriel Lima
- nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnUploaded byNor Aishah
- H. Araki, On an Inequality of Lieb and Thirring, Lett. Math. Phys. 19, 167-170 (1990)Uploaded bybibbiblos
- The MRS and the Cobb-DouglasUploaded byReal Live
- Mathematics Mar 2009 EngUploaded byPrasad C M
- R and OctaveUploaded byHugoAlexanderTorresMantilla
- Boas SolutionsUploaded byRavi Roy
- Number TheoryUploaded bypanchasaradipak
- Lead_and_Lag_Compensators_with_Complex_Poles_and_ZerosUploaded byMert Yilmaz
- Elliott Spinning Top ReportUploaded bysdffd
- indxUploaded bymasterrk
- Grade 7 Math Learning Module Q3Uploaded byeustoque2668
- A Remarkable InequalityUploaded bykousiksett
- CHAPTER 4 - Special Products & FactoringUploaded byLen Alair
- SAT Level 2 Practice Test 17Uploaded byLeonardo Florenzi
- ELEMENTARY SIGNALSUploaded bycenita009
- Isometries of the Plane - BoswellUploaded byGuido 125 Lavespa
- Dhaka Bank (ঢ_ক_ ব_য__ক) MTO - 29.09.2017Uploaded bysahadat
- ij-2012-91Uploaded byJaredRojas
- ON FIXED POINT THEOREM IN WEAK CONTRACTION PRINCIPLE.Uploaded byIJAR Journal
- 1429 Business Math b Com AiouUploaded byMuhammad Salim Ullah Khan
- FunctionUploaded bythanongs
- La PlaceUploaded byArun Prasaad Gunasekaran
- Finite Element Analysis NotesUploaded byvishnuvikasd
- Calculust 7th edition_Ch09Uploaded byيقين عبدالرحمن
- Chapter 2 of Discrete MathematicsUploaded bySergey Kojoian
- MoessnerUploaded byCharlie Pinedo
- linearUploaded byMFong Thong