7 #include "GeoGenericFunctions/Variable.h" 8 #include "GeoGenericFunctions/KVector.h" 11 FUNCTION_OBJECT_IMP(Variable)
13 Variable::Variable(
unsigned int selectionIndex,
unsigned int dmsnlty):
14 _selectionIndex(selectionIndex),
15 _dimensionality(dmsnlty)
18 Variable::Variable(
const Variable & right):
20 _selectionIndex(right._selectionIndex),
21 _dimensionality(right._dimensionality)
25 Variable::~Variable() {
28 double Variable::operator() (
double x)
const {
29 if (_selectionIndex!=0)
throw std::runtime_error(
"GeoGenfun::Variable: selection index !=0") ;
33 double Variable::operator () (
const Argument & a)
const {
34 if (!(_selectionIndex<a.dimension()))
throw std::runtime_error(
"GeoGenfun::Varaible selection index out of bounds");
35 return a[_selectionIndex];
38 unsigned int Variable::index()
const {
39 return _selectionIndex;
43 Derivative Variable::partial(
unsigned int mindex)
const {
44 double kroneckerDelta = mindex==_selectionIndex ? 1.0 : 0.0;
45 KVector vec(_dimensionality,kroneckerDelta);
46 return Derivative(&vec);
49 unsigned int Variable::dimensionality()
const {
50 return _dimensionality;