00001 #include <iostream>
00002 #include "american_option_approximation.h"
00003
00004 const char *american_option_approximation::_error_msg;
00005 int american_option_approximation::_erno;
00006
00007 #ifdef CHECK
00008 #undef CHECK
00009 #endif
00010 #ifdef linux
00011 #define CHECK(y,z,a) if (y) { _error_msg = __STRING(y)" at line "\
00012 __STRING(z)" in " a "::check_attributes"; \
00013 return (_erno = z);}
00014 #else
00015 #define CHECK(y,z,a) if (y) {_error_msg = #y" at line "\
00016 #z" in " #a"::check_attributes"; \
00017 return (_erno = z);}
00018 #endif
00019
00020 int american_option_approximation::check_attributes(
00021 double S,
00022 double K,
00023 double Tau,
00024 double Alpha,
00025 double R,
00026 double Sigma,
00027 double Vega_epsilon,
00028 uint Max_iter)
00029 {
00030 #define Funcname "american_option_approximation::check_attributes"
00031
00032 _error_msg = "";
00033 _erno = 0;
00034
00035 CHECK(S < 0, __LINE__, Funcname);
00036 CHECK(K < 0, __LINE__, Funcname);
00037 CHECK(Tau < 0, __LINE__, Funcname);
00038 CHECK(Alpha < 0, __LINE__, Funcname);
00039 CHECK(R < 0, __LINE__, Funcname);
00040 CHECK(Sigma < 0, __LINE__, Funcname);
00041 CHECK(Vega_epsilon < 0, __LINE__, Funcname);
00042
00043 return 0;
00044 }
00045