rote_simpleoption.cpp

00001 #include <iostream>
00002 #include "simpleoption.h"
00003 
00004 const char *european_option_pair::_error_msg;
00005 int european_option_pair::_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 european_option_pair::check_attributes(
00021       double S,
00022       double K,
00023       double Tau,
00024       double Alpha,
00025       double R,
00026       double Sigma)
00027 {
00028   #define Funcname  "european_option_pair::check_attributes"
00029 
00030   _error_msg = "";
00031   _erno = 0;
00032 
00033   CHECK(S <  0, __LINE__, Funcname);
00034   CHECK(K <  0, __LINE__, Funcname);
00035   CHECK(Tau <  0, __LINE__, Funcname);
00036   CHECK(Alpha <  0, __LINE__, Funcname);
00037   CHECK(R <  0, __LINE__, Funcname);
00038   CHECK(Sigma <  0, __LINE__, Funcname);
00039 
00040   return 0;
00041 }
00042 
00043 void european_option_pair::init_call_values( const european_option_pair& rhs)
00044 {
00045   _C            = rhs._C;
00046   _dC_dS        = rhs._dC_dS;
00047   _d2C_dS_dtau  = rhs._d2C_dS_dtau;
00048   _d2C_dS2      = rhs._d2C_dS2;
00049   _d3C_dS2_dtau = rhs._d3C_dS2_dtau;
00050   _dC_dsigma    = rhs._dC_dsigma;
00051   _d2C_dsigma2  = rhs._d2C_dsigma2;
00052   _dC_dtau      = rhs._dC_dtau;
00053   _d2C_dtau2    = rhs._d2C_dtau2;
00054 }
00055 
00056 void european_option_pair::init_put_values( const european_option_pair& rhs)
00057 {
00058   _P            = rhs._P;
00059   _dP_dS        = rhs._dP_dS;
00060   _d2P_dS_dtau  = rhs._d2P_dS_dtau;
00061   _d2P_dS2      = rhs._d2P_dS2;
00062   _d3P_dS2_dtau = rhs._d3P_dS2_dtau;
00063   _dP_dsigma    = rhs._dP_dsigma;
00064   _d2P_dsigma2  = rhs._d2P_dsigma2;
00065   _dP_dtau      = rhs._dP_dtau;
00066   _d2P_dtau2    = rhs._d2P_dtau2;
00067 }

Generated on Fri Jan 7 12:36:18 2011 for public_options by  doxygen 1.5.1