1
0
mirror of https://github.com/aportelli/LatAnalyze.git synced 2025-04-11 03:20:46 +01:00

vector version of setUnidimData

This commit is contained in:
Antonin Portelli 2016-12-13 10:37:37 +00:00
parent d80b160521
commit 4576d73379
2 changed files with 18 additions and 10 deletions

View File

@ -171,6 +171,20 @@ const DSample & XYSampleData::y(const Index k, const Index j) const
return yData_[j].at(k); return yData_[j].at(k);
} }
void XYSampleData::setUnidimData(const DMatSample &xData,
const vector<const DMatSample *> &v)
{
FOR_STAT_ARRAY(xData, s)
FOR_VEC(xData[central], r)
{
x(r, 0)[s] = xData[s](r);
for (unsigned int j = 0; j < v.size(); ++j)
{
y(r, j)[s] = (*(v[j]))[s](r);
}
}
}
const DMat & XYSampleData::getXXVar(const Index i1, const Index i2) const DMat & XYSampleData::getXXVar(const Index i1, const Index i2)
{ {
checkXDim(i1); checkXDim(i1);

View File

@ -80,6 +80,8 @@ public:
const DMatSample & x(const Index k); const DMatSample & x(const Index k);
DSample & y(const Index k, const Index j); DSample & y(const Index k, const Index j);
const DSample & y(const Index k, const Index j) const; const DSample & y(const Index k, const Index j) const;
void setUnidimData(const DMatSample &xData,
const std::vector<const DMatSample *> &v);
template <typename... Ts> template <typename... Ts>
void setUnidimData(const DMatSample &xData, void setUnidimData(const DMatSample &xData,
const Ts & ...yDatas); const Ts & ...yDatas);
@ -141,17 +143,9 @@ void XYSampleData::setUnidimData(const DMatSample &xData, const Ts & ...yDatas)
static_assert(static_or<std::is_assignable<DMatSample, Ts>::value...>::value, static_assert(static_or<std::is_assignable<DMatSample, Ts>::value...>::value,
"y data arguments are not compatible with DMatSample"); "y data arguments are not compatible with DMatSample");
std::vector<const DMatSample *> yData{&yDatas...}; std::vector<const DMatSample *> v{&yDatas...};
FOR_STAT_ARRAY(xData, s) setUnidimData(xData, v);
FOR_VEC(xData[central], r)
{
x(r, 0)[s] = xData[s](r);
for (unsigned int j = 0; j < yData.size(); ++j)
{
y(r, j)[s] = (*(yData[j]))[s](r);
}
}
} }
template <typename... Ts> template <typename... Ts>