int sq_sum (int n)
{
  if (n == 0)
    return 0;

  return n * n + sq_sum (n - 1);
}
Beispiel #2
0
double AmericanPut::megan_fox_(double z, double x, double y) const
{
  const double log_term = log_factor_(z);
  check_nz(a_, "AmericanPut::a_");
  const double arc_tan = atan(z / a_);
  const double top = x * log_term + y * arc_tan;
  const double bottom = sq_sum(b_, z);
  check_nz(bottom, "AmericanPut::megan_fox_()::bottom");
  const double retVal = top / bottom;
  return retVal;
}
int main(void)
{
  if (sum (5) != 15)
    abort ();

  if (fac (5) != 120)
    abort ();

  if (sq_sum (5) != 55)
    abort ();

  if (pow2m1 (5) != 31)
    abort ();

  if (fib (5) != 8)
    abort ();

  exit (0);
}
Beispiel #4
0
double AmericanPut::finite_time_price_integrand_(double x) const
{
  const double retVal = exp_factor_(x) * sholay_(S_/K_, x) / sq_sum(a_, x) / sq_sum(b_, x);
  return retVal;
}
Beispiel #5
0
double AmericanPut::log_factor_(double x) const
{
  const double retVal = log( sqrt(sq_sum(a_, x)) / gamma_ );
  return retVal;
}
Beispiel #6
0
double AmericanPut::optimal_exercise_integrand_(double x) const
{
  const double retVal = x * exp_factor_(x) * exp(-f1_(x)) * sin(f2_(x)) / sq_sum(a_, x);
  return retVal;
}