25 std::map<int, float>
ER;
26 std::map<int, std::map<int, float> >
covar;
27 void load_ER (
int person = 0,
char person_type =
'i');
28 void save_ER (
int person = 0,
char person_type =
'i');
29 void load_covar(
int person,
char person_type =
'i');
30 void save_covar(
int person,
char person_type =
'i');
35 void reload_ER (
int person,
char person_type =
'i');
36 void reload_covar(
int person,
char what2do,
char person_type =
'i');
70 s =
"SELECT * FROM " +
oConfig.
tbl_prefix +
"_ER_person WHERE person = " + to_string(person) +
" AND person_type = 'i';";
73 while (
db.
res->next())
84 while (
db.
res->next())
96 while (
db.
res->next())
113 s =
"DELETE FROM " +
oConfig.
tbl_prefix +
"_ER_person WHERE person = " + to_string(person) +
" AND person_type = 'i';";
115 s =
"INSERT INTO " +
oConfig.
tbl_prefix +
"_ER_person (asset_class, E_R, person, person_type) VALUES ";
118 if (ac > 1) s = s +
", ";
119 s = s +
"(" + to_string(ac) +
", " + to_string(
ER[ac]) +
", "
120 + to_string(person) +
", \"i\")";
137 int ac_i, ac_j, count = 0;
141 string s =
"SELECT * FROM " +
oConfig.
tbl_prefix +
"_covar_person WHERE person = " + to_string(person) +
" AND person_type = 'i';";
144 while (
db.
res->next())
159 while (
db.
res->next())
176 s =
"DELETE FROM " +
oConfig.
tbl_prefix +
"_covar_person WHERE person = " + to_string(person) +
" AND person_type = 'i';";
178 s =
"INSERT INTO " +
oConfig.
tbl_prefix +
"_covar_person (asset_class_i, asset_class_j, covar, person, person_type) VALUES ";
183 if ((ac_i > 1) || (ac_j > 1)) s = s +
", ";
184 s = s +
"(" + to_string(ac_i) +
", " + to_string(ac_j) +
", " + to_string(
covar[ac_i][ac_j]) +
", "
185 + to_string(person) +
", \"i\")";
254 s =
"DELETE FROM " +
oConfig.
tbl_prefix +
"_ER_person WHERE person = " + to_string(person) +
" AND person_type = '" + string(1,person_type) +
"';";
259 catch (sql::SQLException &e)
263 cout << endl <<
"SQL STATEMENT: " << s << endl;
264 cout <<
"# ERR: SQLException in " << __FILE__;
265 cout <<
"(" << __FUNCTION__ <<
") on line " << __LINE__ << endl;
266 cout <<
"# ERR: " << e.what();
267 cout <<
" (MySQL error code: " << e.getErrorCode();
268 cout <<
", SQLState: " << e.getSQLState() <<
" )" << endl;
283 std::map<int, std::map<int, float> > default_covar;
305 covar[ac_i][ac_j] = default_covar[ac_i][ac_j];
308 covar[ac_i][ac_j] =
covar[ac_i][ac_j] / sqrt (
covar[ac_i][ac_i] *
covar[ac_j][ac_j]) * sqrt (default_covar[ac_i][ac_i] * default_covar[ac_j][ac_j]);
311 if (ac_i != ac_j)
covar[ac_i][ac_j] = default_covar[ac_i][ac_j] / sqrt (default_covar[ac_i][ac_i] * default_covar[ac_j][ac_j]) * sqrt (
covar[ac_i][ac_i] *
covar[ac_j][ac_j]);
void load_covar(int person, char person_type= 'i')
void reload_ER(int person, char person_type= 'i')
TODO: the ER and assetClass_mu as well as the covar and assetClass_covar are redundant ==> eliminate ...
void reload_covar(int person, char what2do, char person_type= 'i')
void save_ER(int person=0, char person_type= 'i')
#define NBR_ASSET_CLASSES
the nunmber of asset classes (not dynamically updated!)
string error_message
global message variables
const string tbl_prefix
tables start with "" + oConfig.tbl_prefix + "_" if the prefix is eg. "tbl" then we have "tbl_invesotr...
void load_ER(int person=0, char person_type= 'i')
float assetClass_mu[(NBR_ASSET_CLASSES+1)]
note: index 0 not used
std::map< int, std::map< int, float > > covar
std::map< int, string > assetClass_name
note: index 0 not used
std::map< int, float > ER
#define INDEX(x, y)
this macro allows to address int cell = array[INDEX(2,3)]; in stead of array[2+NBR_ASSET_CLASSES*3]; ...
void save_covar(int person, char person_type= 'i')
config oConfig
mysql connection mysql connector from dev.mysql.com