6 #include "GeoGenericFunctions/Power.h" 10 FUNCTION_OBJECT_IMP(Power)
17 Power::Power(
unsigned int n):
22 Power::Power(
double n):
27 Power::Power(
const Power & right)
29 _doublePower(right._doublePower),
30 _intPower(right._intPower),
31 _asInteger(right._asInteger)
37 double Power::operator() (
double x)
const {
42 else if (_intPower>0) {
44 for (
int i=0;i<_intPower;i++) {
51 for (
int i=0;i<-_intPower;i++) {
58 return std::pow(x,_doublePower);
65 Derivative Power::partial(
unsigned int index)
const {
66 if (index!=0)
throw std::range_error(
"Power: partial derivative index out of range");
68 const AbsFunction & fPrime = _intPower*Power(_intPower-1);
69 return Derivative(&fPrime);
72 const AbsFunction & fPrime = _doublePower*Power(_doublePower-1);
73 return Derivative(&fPrime);