MathMore Lorenzo Moneta, Andràs Zsenei ROOT Workshop 30/9/2005.

Slides:



Advertisements
Similar presentations
Inference without the Engine!. What is EZ-Xpert 3.0? EZ-Xpert is a Rapid Application Development (RAD) environment for creating fast and accurate rule-based.
Advertisements

Intro into real world numerical libraries/packages.
Templates in C++. Generic Programming Programming/developing algorithms with the abstraction of types The uses of the abstract type define the necessary.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
MATH 685/ CSI 700/ OR 682 Lecture Notes
Extensible Scalable Monitoring for Clusters of Computers Eric Anderson U.C. Berkeley Summer 1997 NOW Retreat.
CVEN Exam 1 Review. Matlab Basic commands and syntax Basic commands and syntax Creation of functions and programs Creation of functions and programs.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
15th September 2005PHYSTAT 05, Oxford 1 Statistics in ROOT René Brun, Anna Kreshuk, Lorenzo Moneta PH/SFT group, CERN ftp://root.cern.ch/root/phystat05.ppt.
Document Processing Ways to centralize and streamline your Endangered Species Act document processing procedures.
From C++ to C#. Web programming The course is on web programming using ASP.Net and C# The course is on web programming using ASP.Net and C# ASP.Net is.
Concordia University Department of Computer Science and Software Engineering Click to edit Master title style ADVANCED PROGRAMING PRACTICES API documentation.
This chapter is extracted from Sommerville’s slides. Text book chapter
Introductory Meeting. Why are we here? RIP FrontPage Versions prior to 2003 will not work with Windows7 No longer supported by Microsoft You can still.
OCLC Online Computer Library Center CONTENTdm Migration Training Craig Yamashita Vice President, Technology and Product Development DiMeMa, Inc. July 2005.
Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions.
New ROOT Math Libraries W. Brown 1), M. Fischler 1), L. Moneta 2), A. Zsenei 2) 1) Fermi National Accelerator Laboratory, Batavia, Illinois, USA 2) CERN.
Using SD K12 SharePoint ®. What is SharePoint? Microsoft SharePoint Components Web Browser Collaboration functions Process management modules Search modules.
Development of numerical library software in Java Feb 8, 2000 H.Okazawa, Shizuoka Seika College, Japan and T.Sasaki, KEK,Japan.
1 Wikification CSE 6339 (Section 002) Abhijit Tendulkar.
Usability Issues Documentation J. Apostolakis for Geant4 16 January 2009.
Tunis International Centre for Environmental Technologies Small Seminar on Networking Technology Information Centers UNFCCC secretariat offices Bonn, Germany.
Introduction to GSL CS 3414 From GNU Scientific Library Reference Manual at
Review Taylor Series and Error Analysis Roots of Equations
ORBIS & PORTALS E-Journal Workshop Michael Markwith, TDNet Inc. Reed College Library May 9, 2002.
Dudok de Wit David.  Documents management in a deskless company  SharePoint Online as a solution  Redesigning the documentary organization  Interoperability.
1 EPSII 59:006 Spring Real Engineering Problem Solving Analyzing Results of Designs is Paramount Problems are Difficult, Code Writing Exhaustive.
New ROOT Mathematical Libraries SMatrix Package with matrix and vector classes of arbitrary type (initially developed by T. Glebe for HeraB software) complementary.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
Quadrature rules 1Michael Sokolov / Numerical Methods for Chemical Engineers / Numerical Quadrature Michael Sokolov ETH Zurich, Institut für Chemie- und.
Parallelization of likelihood functions for data analysis Alfio Lazzaro CERN openlab Forum on Concurrent Programming Models and Frameworks.
SEAL-ROOT Math Plans for 2005 Math work package Andras Zsenei, Anna Kreshuk, Lorenzo Moneta, Eddy Offermann LCG Application Area Internal Review, 30 March,
BOĞAZİÇİ UNIVERSITY DEPARTMENT OF MANAGEMENT INFORMATION SYSTEMS MATLAB AS A DATA MINING ENVIRONMENT.
Lorenzo Moneta,LHCb Software week, 26 May Proposal for ROOT Math Libraries MathLib work package from ROOT SEAL merge new proposed structure for.
1 Spring 2003 Prof. Tim Warburton MA557/MA578/CS557 Lecture 23.
Progress on Component-Based Subsurface Simulation I: Smooth Particle Hydrodynamics Bruce Palmer Pacific Northwest National Laboratory Richland, WA.
Feedback from LHC Experiments on using CLHEP Lorenzo Moneta CLHEP workshop 28 January 2003.
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
CERN IT Department t LHCb Software Distribution Roberto Santinelli CERN IT/GS.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Chapter 4 Continuous Random Variables and Probability Distributions  Probability Density Functions.2 - Cumulative Distribution Functions and E Expected.
SEAL Project Status SC2 Meeting 16th April 2003 P. Mato / CERN.
Lorenzo Moneta,LHCb Software week, 26 May New ROOT Math Libraries Activities MathLib work package from ROOT SEAL merge new proposed structure for.
MathMore Lorenzo Moneta, Andràs Zsenei ROOT Meeting 19/8/2005.
Database Issues Peter Chochula 7 th DCS Workshop, June 16, 2003.
Building Preservation Environments with Data Grid Technology Reagan W. Moore Presenter: Praveen Namburi.
New approach of Geant4 Low Energy EM models (from version 9.3) Luciano Pandola INFN, Laboratori del Gran Sasso MaGe Joint Workshop, Munich, January 2010.
OpenPegasus Documentation Discussion What should we change, what should we keep? KS OpenPegasus Developers Conference 27 September 2012.
Windows Programming Lecture 03. Pointers and Arrays.
WHO The World Health Survey Data Entry
Advanced Programing practices
Current Status of the Geometry Database for the CBM Experiment
ROOT Mathematical Libraries
LCG Generator Services project
Test and Validation Studies of Mathematical Software Libraries
The University of Texas at Dallas
Introduction to GSL CS 3414 From GNU Scientific Library Reference Manual at
Technical update 05 of April 2017
The Automation of the U.S. Budget Appendix Volume
Advanced Programing practices
Guided Research: Intelligent Contextual Task Support for Mails
A Suite to Compile and Analyze an LSP Corpus
Off-line Direct Disk Access System
Dongwhan Kim Annie Zhao Steven Lawrance
ESS.VIP Validation Item 5.1
Recommending Adaptive Changes for Framework Evolution
PyWBEM Python WBEM Client: Overview #2
CISE-301: Numerical Methods Topic 1: Introduction to Numerical Methods and Taylor Series Lectures 1-4: KFUPM CISE301_Topic1.
Presentation transcript:

MathMore Lorenzo Moneta, Andràs Zsenei ROOT Workshop 30/9/2005

30/09/2005ROOT2005 Workshop, Andràs Zsenei2 MathMore components  Special functions  Statistical functions  Generic interfaces  Derivation  Integration  Interpolation  Root finding  Chebyshev polynomials

30/09/2005ROOT2005 Workshop, Andràs Zsenei3 The Current Implementation  The relevant GSL code extracted into mathmore/src/gsl-xxx and compiled automatically  A GSL tar file is in CVS with the extracted code  Works on all supported platforms (thanks to Bertrand Bellenot for the Windows port)  Easily maintainable and updateable compared to direct copy of the algorithms into ROOT classes

30/09/2005ROOT2005 Workshop, Andràs Zsenei4 Special Functions  Defined in the N1687 Technical Report on Standard Library Extensions   Basic functions in mathcore:  Error functions, gamma functions  The less used and those that use GSL imple- mentation a re i n mathmore  Bessel functions, elliptic integrals, Legendre polynomials etc  Possibility to migrate functions between mathcore and mathmore transparently for the user

30/09/2005ROOT2005 Workshop, Andràs Zsenei5 Special Functions cont’d  Free functions following the C++ standard’s naming convention (N1687)  Trivial use: root [0] gSystem->Load("libMathMore.so"); root [1] ROOT::Math::cyl_bessel_i(1.2, 2.4) (double) e+00

30/09/2005ROOT2005 Workshop, Andràs Zsenei6 Mathematical Functions tests  New functions improve on the precision of TMath  Extensive tests of numerical accuracy, comparisons with other libraries (Mathematica, Nag) ROOT::Math::erfc and relative difference compared to Mathematica (  ≈ ) TMath::Erfc and relative difference compared to Mathematica (  ≈ 10 -7)

30/09/2005ROOT2005 Workshop, Andràs Zsenei7 Statistical Functions  Common functions used in statistics with a coherent naming scheme :  Probability density functions (pdf)  Cumulative distributions (lower tail and upper tail)  Inverse of cumulative distributions  Examples:  chisquared_pdf  chisquared_prob, chisquared_quant  chisquared_prob_inv, chisquared_quant_inv  Naming convention proposed for the C++ standard in N1668, but might change (to be followed closely) 

30/09/2005ROOT2005 Workshop, Andràs Zsenei8 Statistical Functions Tests  =1.0  =2.0  =3.0  Lognormal PDF (left) and its Relative Difference Compared to Mathematica (right)

30/09/2005ROOT2005 Workshop, Andràs Zsenei9 Function Interfaces

30/09/2005ROOT2005 Workshop, Andràs Zsenei10 Function Interface  Minimal interface for functions used by all the numerical algorithms: IGenFunction, ParamFunction, Polynomial (see previous presentations)  class WrappedFunction which wraps any C++ callable object (C free functions, functors, etc...)  Reviewed by C++ experts — several of the recommendations implemented

30/09/2005ROOT2005 Workshop, Andràs Zsenei11 Derivation  Adaptive central difference algorithm using a 5-point rule  Adaptive forward difference algorithm using a 4-point rule  Adaptive backward difference algorithm using a 4-point rule

30/09/2005ROOT2005 Workshop, Andràs Zsenei12 Derivation — an example of the overall design  Usage with function inheriting from IGenFunction: ROOT::Math::Polynomial *f1 = new ROOT::Math::Polynomial(2); … ROOT::Math::Derivator *der = new ROOT::Math::Derivator(*f1); double x0 = 2; double result = der->EvalCentral(x0); double error = der->Error();

30/09/2005ROOT2005 Workshop, Andràs Zsenei13 Derivation — an example of the overall design, cont’d  Usage with a function pointer: double myfunc ( double x, void * ) { return std::pow( x, 1.5); } ROOT::Math::Derivator *der = new ROOT::Math::Derivator(myfunc); double x0 = 2; double result = der->EvalCentral(x0);

30/09/2005ROOT2005 Workshop, Andràs Zsenei14 Integration  Non-adaptive, adaptive and adaptive singular (i.e. taking into account singularities) integration  Different Gauss-Konrod rules can be selected  Possibility to use infinite and semi- infinite ranges

30/09/2005ROOT2005 Workshop, Andràs Zsenei15 Integration Example // user provided free C function double myFunc ( double x) {… } // wrap the function ROOT::Math::WrappedFunction wFunc(myFunc); // create integrator and integrate ROOT::Math::Integrator ig(wFunc); Double result = ig.Integral(a, b); Double error = ig.Error();  WrappedFunction can be replaced with any IGenFunction in the Integrator

30/09/2005ROOT2005 Workshop, Andràs Zsenei16 Interpolation  Linear, polynomial, Akima and Akima periodic interpola- tions

30/09/2005ROOT2005 Workshop, Andràs Zsenei17 Root Finding  Root finding of one dimensional functions  Bracketing algorithms: bisection, false position, Brent-Dekker  Polishing algorithms (derivatives): Newton, secant, Steffenson

30/09/2005ROOT2005 Workshop, Andràs Zsenei18 Next Steps  Eliminate duplication  Other parts of the ROOT should use mathcore/mathmore  Moving functionality from TMath into mathcore/mathmore (TMath will remain for backward compatibility)  Implement incomplete gamma function in mathcore (for  2 )  A more detailed discussion is needed to finalize function interfaces (signatures)  Prototype version of TF1 using algorithms from mathcore and implementing function interface  Add algorithms for multi-dimensional functions  New additions according to user requests (ex. FFT)

30/09/2005ROOT2005 Workshop, Andràs Zsenei19 Conclusions  Mathmore is available in ROOT 5.04/00 ( --enable-mathmore switch in configure)  Works on all supported platforms  Documentation available at 

30/09/2005ROOT2005 Workshop, Andràs Zsenei20 References  Special and Random number C++ extension proposal  link to C++ extension draft   Statistical functions proposal to C++ standard   MathCore reference doc   MathMore reference doc   SEAL Math Web site   New C++ Minuit Web site 