32 const std::string &data_column_key,
33 const std::string &reference_column_key,
35 const unsigned int dim)
41 if (rate_mode ==
none)
48 const std::vector<internal::TableEntry> &entries =
49 columns[data_column_key].entries;
50 const std::vector<internal::TableEntry> &ref_entries =
51 columns[reference_column_key].entries;
52 std::string rate_key = data_column_key +
"...";
54 const unsigned int n = entries.size();
55 const unsigned int n_ref = ref_entries.size();
58 std::vector<double> values(n);
59 std::vector<double> ref_values(n_ref);
61 for (
unsigned int i = 0; i < n; ++i)
63 values[i] = entries[i].get_numeric_value();
64 ref_values[i] = ref_entries[i].get_numeric_value();
67 unsigned int no_rate_entries = 0;
73 rate_key +=
"red.rate";
74 no_rate_entries =
columns[rate_key].entries.size();
76 for (
unsigned int i = no_rate_entries; i < n; ++i)
86 values[i - 1] / values[i] * ref_values[i] /
92 rate_key +=
"red.rate.log2";
93 no_rate_entries =
columns[rate_key].entries.size();
95 for (
unsigned int i = no_rate_entries; i < n; ++i)
105 dim *
std::log(std::fabs(values[i - 1] / values[i])) /
107 std::fabs(ref_values[i] / ref_values[i - 1])));
119 const std::string &superkey = data_column_key;
127 if (no_rate_entries == 0)
145 const std::vector<internal::TableEntry> &entries =
146 columns[data_column_key].entries;
147 std::string rate_key = data_column_key +
"...";
149 const unsigned int n = entries.size();
151 std::vector<double> values(n);
152 for (
unsigned int i = 0; i < n; ++i)
153 values[i] = entries[i].get_numeric_value();
155 unsigned int no_rate_entries = 0;
163 rate_key +=
"red.rate";
164 no_rate_entries =
columns[rate_key].entries.size();
166 for (
unsigned int i = no_rate_entries; i < n; ++i)
175 add_value(rate_key, values[i - 1] / values[i]);
181 rate_key +=
"red.rate.log2";
182 no_rate_entries =
columns[rate_key].entries.size();
184 for (
unsigned int i = no_rate_entries; i < n; ++i)
194 std::log(std::fabs(values[i - 1] / values[i])) /
209 const std::string &superkey = data_column_key;
219 if (no_rate_entries == 0)