From 6006579de8814eb1f2bb33aa065ef2badd5a48ba Mon Sep 17 00:00:00 2001 From: Houtan Bastani Date: Tue, 3 Apr 2012 12:59:56 +0200 Subject: [PATCH] bug fix: output not correct for corr(a,b).prior statement --- ComputingTasks.cc | 10 +++++----- ComputingTasks.hh | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ComputingTasks.cc b/ComputingTasks.cc index 835a1596..d80e4d55 100644 --- a/ComputingTasks.cc +++ b/ComputingTasks.cc @@ -1864,13 +1864,13 @@ BasicPriorStatement::writeCommonOutputHelper(ostream &output, const string &fiel } void -BasicPriorStatement::writePriorOutput(ostream &output, string &lhs_field) const +BasicPriorStatement::writePriorOutput(ostream &output, string &lhs_field, const string &name2) const { if (subsample_name.empty()) lhs_field += ".prior(1)"; else { - output << "subsamples_indx = get_existing_subsamples_indx('" << name << "','');" << endl + output << "subsamples_indx = get_existing_subsamples_indx('" << name << "','" << name2 << "');" << endl << "eisind = get_subsamples_range_indx(subsamples_indx, '" << subsample_name << "');" << endl; lhs_field += ".subsample_prior(eisind)"; } @@ -1893,7 +1893,7 @@ PriorStatement::writeOutput(ostream &output, const string &basename) const output << "eifind = get_new_or_existing_ei_index('parameter_prior_index', '" << name << "', '');" << endl << "estimation_info.parameter_prior_index(eifind) = {'" << name << "'};" << endl; - writePriorOutput(output, lhs_field); + writePriorOutput(output, lhs_field, ""); } StdPriorStatement::StdPriorStatement(const string &name_arg, @@ -1917,7 +1917,7 @@ StdPriorStatement::writeOutput(ostream &output, const string &basename) const << "estimation_info." << lhs_field << "_prior_index(eifind) = {'" << name << "'};" << endl; lhs_field = "estimation_info." + lhs_field + "(eifind)"; - writePriorOutput(output, lhs_field); + writePriorOutput(output, lhs_field, ""); } CorrPriorStatement::CorrPriorStatement(const string &name_arg1, const string &name_arg2, @@ -1957,7 +1957,7 @@ CorrPriorStatement::writeOutput(ostream &output, const string &basename) const << name << ":" << name1 << "'};" << endl; lhs_field = "estimation_info." + lhs_field + "_corr(eifind)"; - writePriorOutput(output, lhs_field); + writePriorOutput(output, lhs_field, name1); } PriorEqualStatement::PriorEqualStatement(const string &to_declaration_type_arg, diff --git a/ComputingTasks.hh b/ComputingTasks.hh index 3d7f5ad9..802392b5 100644 --- a/ComputingTasks.hh +++ b/ComputingTasks.hh @@ -634,7 +634,7 @@ protected: void get_base_name(const SymbolType symb_type, string &lhs_field) const; void writeCommonOutput(ostream &output, const string &lhs_field) const; void writeCommonOutputHelper(ostream &output, const string &field, const string &lhs_field) const; - void writePriorOutput(ostream &output, string &lhs_field) const; + void writePriorOutput(ostream &output, string &lhs_field, const string &name2) const; }; class PriorStatement : public BasicPriorStatement