Commit 748c827b authored by Joseph Boudreau's avatar Joseph Boudreau
Browse files

Merged another year of work on Generic Functions into this repository. ...

Merged another year of work on Generic Functions into this repository.  Probably the most important additions are a function accumulator, and also Runge-Kutta Integrators.  These latter take symbolic expressions as input--they specifyone or more differential equations governing the time development of some system--and give back a function which is the solution of these differential equations.
parent effb0535
// -*- C++ -*-
// $Id: ACos.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: ACos.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
//---------------------ACos-------------------------------------------------//
// //
// Class ACos //
......
// -*- C++ -*-
// $Id: ASin.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: ASin.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
//---------------------ASin-------------------------------------------------//
// //
// Class ASin //
......
// -*- C++ -*-
// $Id: ATan.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: ATan.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
//---------------------ATan-------------------------------------------------//
// //
// Class ATan //
......
// $Id:
// -*- C++ -*-
//
// $Id:
// -*- C++ -*-
//
//----------------------Abs---------- --------------------------------------//
// //
// Class Abs //
......
// -*- C++ -*-
// $Id: AbsFunction.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: AbsFunction.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
//------------------------AbsFunction-----------------------------------//
// //
// AbsFunction, base class for function objects //
......@@ -51,6 +51,9 @@ namespace Genfun {
// Default Constructor
AbsFunction();
// Copy Constructor:
AbsFunction(const AbsFunction &right);
// Destructor
virtual ~AbsFunction();
......@@ -83,11 +86,6 @@ namespace Genfun {
virtual AbsFunction *_clone() const=0;
public: // was private:
// It is illegal to copy a Function
AbsFunction(const AbsFunction &right);
private:
// It is illegal to assign a function.
const AbsFunction & operator=(const AbsFunction &right);
......
// -*- C++ -*-
// $Id: AbsFunctional.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: AbsFunctional.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
// A functional is a mapping from functions to real numbers.
// Here is their base class:
#ifndef _AbsFunctional_h_
......
// -*- C++ -*-
// $Id: AbsParameter.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: AbsParameter.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
#ifndef _AbsParameter_h_
#define _AbsParameter_h_
......@@ -26,6 +26,9 @@ namespace Genfun {
// Default Constructor
AbsParameter();
// Copy constructor:
AbsParameter(const AbsParameter &);
// Destructor
virtual ~AbsParameter();
......@@ -39,11 +42,6 @@ namespace Genfun {
virtual Parameter *parameter() {return 0;}
virtual const Parameter *parameter() const {return 0;}
public: // was private:
// Cannot copy an AbsParameter:
AbsParameter(const AbsParameter &);
private:
// Cannot assign an AbsParameter:
......
// -*- C++ -*-
// $Id: AnalyticConvolution.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: AnalyticConvolution.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
// ---------------------------------------------------------------------------//
// This function-object makes analytic convolutions of a gaussian plus either //
// an exponential, or else the function exp * (1+/-cos) //
......@@ -35,8 +35,8 @@ namespace Genfun {
UNMIXED =1, // PDF for unmixed events
SMEARED_EXP =2, // Exponential (convolve) Gaussian
SMEARED_COS_EXP=3, // Exponential * Cosine (convolve) Gaussian
SMEARED_SIN_EXP=4}; // Exponential * Sine (convolve) Gaussian
SMEARED_SIN_EXP=4, // Exponential * Sine (convolve) Gaussian
SMEARED_NEG_EXP=5}; // Negative exponential (convolve) Gaussian
// Constructor
AnalyticConvolution(Type=SMEARED_EXP);
......
// -*- C++ -*-
// $Id: Argument.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: Argument.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
#ifndef __ARGUMENT_H_
#define __ARGUMENT_H_
#include <iostream>
......
// -*- C++ -*-
// $Id: ArgumentList.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: ArgumentList.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
#ifndef __ARGUMENT_LIST__
#define __ARGUMENT_LIST__
#include "CLHEP/GenericFunctions/Argument.hh"
......
// -*- C++ -*-
// $Id:
#ifndef _ArrayFunction_h_
#define _ArrayFunction_h_
//-------------------------------------------------------//
// This one dimensional function takes its values from //
// an array..which it copies in. //
//-------------------------------------------------------//
#include "CLHEP/GenericFunctions/AbsFunction.hh"
#include <vector>
namespace Genfun {
class ArrayFunction : public AbsFunction {
FUNCTION_OBJECT_DEF(ArrayFunction)
public:
// Constructor
ArrayFunction(const double *begin, const double *end);
// Destructor
virtual ~ArrayFunction();
// Copy constructor
ArrayFunction(const ArrayFunction &right);
// Retreive function value
virtual double operator ()(double argument) const;
virtual double operator ()(const Argument & a) const {return operator() (a[0]);}
private:
// It is illegal to assign a ArrayFunction
const ArrayFunction & operator=(const ArrayFunction &right);
std::vector<double> _values;
};
}
#endif
// -*- C++ -*-
// $Id: AssociatedLaguerre.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: AssociatedLaguerre.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
//---------------------AssociatedLaguerre-----------------------------------//
// //
// Class AssociatedLaguerre. An associated laguerre polynomial L_n^k(x) //
......
// -*- C++ -*-
// $Id: AssociatedLegendre.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: AssociatedLegendre.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
//---------------------AssociatedLegendre-----------------------------------//
// //
// Class AssociatedLegendre. An associated legendre polynomial //
......
// -*- C++ -*-
// $Id: Bessel.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: Bessel.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
//---------------------Bessel-------------------------------------------------//
// //
// Class Bessel, providing Bessel Functions The Namespace "FractionalORder" //
......
// -*- C++ -*-
// $Id: BivariateGaussian.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: BivariateGaussian.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
//---------------------BivariateGaussian------------------------------------//
// //
// Class BivariateGaussian //
......
// -*- C++ -*-
// $Id: ConstMinusFunction.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: ConstMinusFunction.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
//--------------------------ConstMinusFunction------------------------------//
// //
// ConstMinusFunction, result of subtracting a function from constant //
......
// -*- C++ -*-
// $Id: ConstMinusParameter.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: ConstMinusParameter.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
//--------------------------ConstMinusParameter-----------------------------//
// //
// ConstMinusParameter, result of subtracting a parameter from a constant. //
......
// -*- C++ -*-
// $Id: ConstOverFunction.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: ConstOverFunction.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
//--------------------------ConstOverFunction-------------------------------//
// //
// ConstOverFunction, result of dividing a constant by a function //
......
// -*- C++ -*-
// $Id: ConstOverParameter.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: ConstOverParameter.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
//--------------------------ConstOverParameter------------------------------//
// //
// ConstOverParameter, result of multiplying a parameter with a constant. //
......
// -*- C++ -*-
// $Id: ConstPlusFunction.hh,v 1.1.1.1 2003/07/15 20:15:05 garren Exp $
// $Id: ConstPlusFunction.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
//--------------------------ConstPlusFunction-------------------------------//
// //
// ConstPlusFunction, result of adding a function and a constant //
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment