Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:44

0001 #ifndef RKSolverTempl_H
0002 #define RKSolverTempl_H
0003 
0004 #include "FWCore/Utilities/interface/Visibility.h"
0005 #include "RKSmallVector.h"
0006 #include "RKDerivative.h"
0007 #include "RKDistance.h"
0008 
0009 /// ABC for Runge-Kutta solvers
0010 
0011 template <typename T, 
0012       template class Deriv<typename, int>, 
0013       template class Dist<typename, int>,
0014       template class StepWithPrec<typename, class, class, int>,
0015       int N>
0016 class dso_internal RKSolverTempl {
0017 public:
0018 
0019     typedef T                                   Scalar;
0020     typedef RKSmallVector<T,N>                  Vector;
0021 
0022 
0023 /** Advance starting state (startPar,startState) by step.
0024  *  The accuracy of the result should be better than eps.
0025  *  The accuracy is computed as the distance (using the "dist" argument)
0026  *  between different internal estimates of the resulting state.
0027  *  The "deriv" argument computes the derivatives.
0028  */
0029     virtual Vector operator()( Scalar startPar, const Vector& startState,
0030                    Scalar step, const Deriv<T,N>& deriv,
0031                    const Dist<T,N>& dist,
0032                    Scalar eps) = 0;
0033 
0034 
0035 };
0036 
0037 #endif