Go to the documentation of this file.00001 #ifndef RKAdaptiveSolver_H
00002 #define RKAdaptiveSolver_H
00003
00004 #include "TrackPropagation/RungeKutta/interface/RKSolver.h"
00005
00006
00007
00008 template <typename T,
00009 template <typename,int> class StepWithPrec,
00010 int N>
00011 class RKAdaptiveSolver : public RKSolver<T,N> {
00012 public:
00013
00014 typedef RKSolver<T,N> Base;
00015 typedef typename Base::Scalar Scalar;
00016 typedef typename Base::Vector Vector;
00017
00018 virtual Vector operator()( Scalar startPar, const Vector& startState,
00019 Scalar step, const RKDerivative<T,N>& deriv,
00020 const RKDistance<T,N>& dist,
00021 Scalar eps);
00022
00023 std::pair< Vector, T>
00024 stepWithAccuracy( Scalar startPar, const Vector& startState,
00025 const RKDerivative<T,N>& deriv,
00026 const RKDistance<T,N>& dist, Scalar step);
00027
00028 protected:
00029
00030 bool verbose() const {
00031 static bool verb = false;
00032 return verb;
00033 }
00034
00035 };
00036
00037 #include "TrackPropagation/RungeKutta/src/RKAdaptiveSolver.icc"
00038
00039 #endif