// -*- C++ -*- // $Id: Variable.cc,v 1.3 2003/09/06 14:04:14 boudreau Exp $ #include "CLHEP/GenericFunctions/Variable.hh" #include "CLHEP/GenericFunctions/FixedConstant.hh" #include <assert.h> namespace Genfun { FUNCTION_OBJECT_IMP(Variable) Variable::Variable(unsigned int selectionIndex, unsigned int dimensionality): _selectionIndex(selectionIndex), _dimensionality(dimensionality) {} Variable::Variable(const Variable & right): _selectionIndex(right._selectionIndex), _dimensionality(right._dimensionality) { } Variable::~Variable() { } double Variable::operator() (double x) const { assert (_selectionIndex==0); return x; } double Variable::operator () (const Argument & a) const { assert (_selectionIndex<a.dimension()); return a[_selectionIndex]; } unsigned int Variable::index() const { return _selectionIndex; } Derivative Variable::partial(unsigned int index) const { int kroneckerDelta = index==_selectionIndex ? 1 : 0; const AbsFunction & fPrime = FixedConstant(kroneckerDelta); return Derivative(&fPrime); } unsigned int Variable::dimensionality() const { return _dimensionality; } } // namespace Genfun