@Override
 public double calcDerivative(final double dblVariate, final int iOrder)
     throws java.lang.Exception {
   return iOrder > _iExponent
       ? 0.
       : java.lang.Math.pow(dblVariate, _iExponent - iOrder)
           / org.drip.quant.common.NumberUtil.Factorial(_iExponent - iOrder);
 }
  @Override
  public double integrate(final double dblBegin, final double dblEnd) throws java.lang.Exception {
    if (!org.drip.quant.common.NumberUtil.IsValid(dblBegin)
        || !org.drip.quant.common.NumberUtil.IsValid(dblEnd))
      throw new java.lang.Exception("NaturalLogSeriesElement::integrate => Invalid Inputs");

    return (java.lang.Math.pow(dblEnd, _iExponent) - java.lang.Math.pow(dblBegin, _iExponent))
        / org.drip.quant.common.NumberUtil.Factorial(_iExponent + 1);
  }
 @Override
 public double evaluate(final double dblVariate) throws java.lang.Exception {
   return java.lang.Math.pow(dblVariate, _iExponent)
       / org.drip.quant.common.NumberUtil.Factorial(_iExponent);
 }