Subject: Program has been extended (See new payment calculations)

From: Mortgage Loan Department <[email-masked]>
Date: Fri, 18 Jul 2014 09:50:22 -0700

July 18, 2014

Your 2014 H.A.R.P Eligibility Verification

Announced by Obama (July 2014)

Verifying your eligibility you could reduce your payment significantly.

Your exact monthly savings can be seen: (1 minute check)

http://www.counteronly.com/administration/housing/program-office-fah.html

======

Obama's | HARP 2.0

Current Low Rate: 2.99% Fixed

=======

note: As of July 18, 2014 you have not completed calculation of your new payment. Your exact savings can be determined with the calculator.
http://www.counteronly.com/administration/housing/program-office-fah.html

Regards,

U.S. Housing

Loan Officer

This message was sent on 07-18-2014 08:09:09 | US Housing Partners RTR - 521 Fox CV Haughton LA 71037 -- Exit/prefs to forgo uodates. If you have any questions regarding your update please let us know. http://portal.hud.gov/hudportal/HUD?src=/program_offices/housing/fhahistory

he below code calculates Fibonacci numbers by an exponentially slow algorithm:

#include
#include

#define DEBUG(var) { std::cout << #var << ": " << (var) << std::endl; }

constexpr auto fib(const size_t n) -> long long
{
return n < 2 ? 1: fib(n - 1) + fib(n - 2);
}

int main(int argc, char *argv[])
{
const long long fib91 = fib(91);

DEBUG( fib91 );
DEBUG( fib(45) );

return;
}
And I am calculating the 45th Fibonacci number at run-time, and the 91st one at compile time.

The interesting fact is that GCC 4.9 compiles the code and computes fib91 in a fraction of a second, but it takes a while to spit out fib(45).

My question: If GCC is smart enough to optimize fib(91) computation and not to take the exponentially slow path, what stops it to do the same for fib(45)?