ultimatepp/uppsrc/ScatterDraw/DataSource.cpp
koldo 799256ce41 ScatterDraw: Added trend lines and doc
git-svn-id: svn://ultimatepp.org/upp/trunk@6009 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2013-05-01 06:40:29 +00:00

50 lines
No EOL
991 B
C++

#include "ScatterDraw.h"
NAMESPACE_UPP
#define Membercall(fun) (this->*fun)
double DataSource::Min(Getdatafun getdata)
{
double minVal = -DOUBLE_NULL;
for (int64 i = 0; i < GetCount(); ++i) {
double d = Membercall(getdata)(i);
if (!IsNull(d) && minVal > d)
minVal = d;
}
return minVal;
}
double DataSource::Max(Getdatafun getdata)
{
double maxVal = DOUBLE_NULL;
for (int64 i = 0; i < GetCount(); ++i) {
double d = Membercall(getdata)(i);
if (!IsNull(d) && maxVal < d)
maxVal = d;
}
return maxVal;
}
double DataSource::Avg(Getdatafun getdata)
{
double ret = 0;
for (int64 i = 0; i < GetCount(); ++i)
ret += Membercall(getdata)(i);
return ret/GetCount();
}
double CArray::xn(int n, int64 id) {
switch (n) {
case 0: ASSERT(yData);
return yData[id];
case 1: ASSERT(x1Data);
return x1Data[id];
case 2: ASSERT(x2Data);
return x2Data[id];
}
NEVER();
return Null;
}
END_UPP_NAMESPACE