All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions | Protected Member Functions
QGpCoreTools::StatisticalPoint< numberType > Class Template Reference

Brief description of class still missing. More...

#include <StatisticalPoint.h>

Inheritance diagram for QGpCoreTools::StatisticalPoint< numberType >:
QGpCoreTools::StatisticalValue< numberType > QGpCoreTools::XMLClass

List of all members.

Public Member Functions

bool fromString (const StringSection &str)
void interpole (double valX, const StatisticalPoint< numberType > &p1, const StatisticalPoint< numberType > &p2)
bool operator< (const StatisticalPoint< numberType > &p) const
void operator= (const StatisticalPoint< numberType > &o)
void operator= (const StatisticalValue< numberType > &o)
bool operator== (const StatisticalPoint< numberType > &p) const
void setX (double v)
 StatisticalPoint ()
 StatisticalPoint (double x, const numberType &y)
QString toString (int precision=6, char format='g') const
double x () const

Protected Member Functions

XMLMember xml_member (XML_MEMBER_ARGS)
bool xml_setProperty (XML_SETPROPERTY_ARGS)
void xml_writeProperties (XML_WRITEPROPERTIES_ARGS) const

Detailed Description

template<class numberType>
class QGpCoreTools::StatisticalPoint< numberType >

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

template<class numberType>
QGpCoreTools::StatisticalPoint< numberType >::StatisticalPoint ( ) [inline]

Description of constructor still missing

{}
template<class numberType>
QGpCoreTools::StatisticalPoint< numberType >::StatisticalPoint ( double  x,
const numberType &  y 
) [inline]
    : StatisticalValue<numberType>(y), _x(x) {}

Member Function Documentation

template<class numberType >
bool QGpCoreTools::StatisticalPoint< numberType >::fromString ( const StringSection str)

References QGpCoreTools::StringSection::isValid(), QGpCoreTools::StringSection::nextField(), QGpCoreTools::StringSection::nextNumber(), QGpCoreTools::StatisticalValue< numberType >::setMean(), QGpCoreTools::StatisticalValue< numberType >::setValid(), QGpCoreTools::StatisticalValue< numberType >::setWeight(), QGpCoreTools::StringSection::toDouble(), TRACE, and w.

{
  TRACE;
  const QChar * ptr=0;
  StringSection f;
  f=str.nextField(ptr);
  if(f.isValid()) _x=f.toDouble(); else return false;
  numberType tmp;
  if(str.nextNumber(tmp, ptr)) {
    StatisticalValue<numberType>::setMean(tmp);
  } else return false;
  f=str.nextField(ptr);
  if(f.isValid()) StatisticalValue<numberType>::setStddev(f.toDouble()); else return false;
  f=str.nextField(ptr);
  if(f.isValid()) {
    double w=f.toDouble();
    if(w==0.0) {
      StatisticalValue<numberType>::setValid(false);
      StatisticalValue<numberType>::setWeight(1.0);
    } else {
      StatisticalValue<numberType>::setValid(true);
      StatisticalValue<numberType>::setWeight(w);
    }
  } else return false;
  return true;
}
template<class numberType>
void QGpCoreTools::StatisticalPoint< numberType >::interpole ( double  valX,
const StatisticalPoint< numberType > &  p1,
const StatisticalPoint< numberType > &  p2 
) [inline]

References QGpCoreTools::StatisticalValue< numberType >::mean(), QGpCoreTools::StatisticalValue< numberType >::stddev(), TRACE, QGpCoreTools::StatisticalValue< numberType >::weight(), and QGpCoreTools::StatisticalPoint< numberType >::x().

{
  TRACE;
  double factor=(valX-p1.x())/(p2.x()-p1.x());
  setX(valX);
  this->setMean(p1.mean()+(p2.mean()-p1.mean())*factor);
  this->setStddev(p1.stddev()+(p2.stddev()-p1.stddev())*factor);
  this->setWeight(p1.weight()+(p2.weight()-p1.weight())*factor);
}
template<class numberType>
bool QGpCoreTools::StatisticalPoint< numberType >::operator< ( const StatisticalPoint< numberType > &  p) const [inline]

References QGpCoreTools::StatisticalValue< numberType >::mean().

{
  return _x < p._x || (_x==p._x && StatisticalValue<numberType>::mean()<p.mean());
}
template<class numberType>
void QGpCoreTools::StatisticalPoint< numberType >::operator= ( const StatisticalPoint< numberType > &  o) [inline]
template<class numberType>
void QGpCoreTools::StatisticalPoint< numberType >::operator= ( const StatisticalValue< numberType > &  o) [inline]
template<class numberType>
bool QGpCoreTools::StatisticalPoint< numberType >::operator== ( const StatisticalPoint< numberType > &  p) const [inline]
template<class numberType>
void QGpCoreTools::StatisticalPoint< numberType >::setX ( double  v) [inline]
template<class numberType >
QString QGpCoreTools::StatisticalPoint< numberType >::toString ( int  precision = 6,
char  format = 'g' 
) const

References TRACE.

{
  TRACE;
  QString tmp;
  tmp+=QString::number(_x, format, precision);
  tmp+=" ";
  tmp+=QString::number(StatisticalValue<numberType>::mean(), format, precision);
  tmp+=" ";
  tmp+=QString::number(StatisticalValue<numberType>::stddev(), format, precision);
  if(StatisticalValue<numberType>::isValid()) {
    tmp+=" ";
    tmp+=QString::number(StatisticalValue<numberType>::weight(), format, precision);
  } else {
    tmp+=" 0";
  }
  return tmp;
}
template<class numberType>
double QGpCoreTools::StatisticalPoint< numberType >::x ( ) const [inline]
template<class numberType >
XMLMember QGpCoreTools::StatisticalPoint< numberType >::xml_member ( XML_MEMBER_ARGS  ) [protected, virtual]

Re-implement this function to offer XML restore (children and properties) support to your class.

From tag and map (with contains the attibute value) return a unique identifier under the format of a XMLMember. XMLMember is initialized with 3 types of contructors:

  • An integer: id number of a property
  • A XMLClass * : a child of this object identified by tag
  • Default constructor: error, unknow child or property

Map of attributes can be inspected in this way (can be achived also in xml_setProperty()):

    static const QString tmp("childrenName");
    XMLRestoreAttributeIterator it=map.find(tmp);
    if(it!=map.end()) {
      // found attribute "childrenName"
    }

If the map of attributes is not used:

    Q_UNUSED(attributes);
    if(tag=="x1") return XMLMember(0);
    else if(tag=="y1") return XMLMember(1);
    else if(tag=="x2") return XMLMember(2);
    else if(tag=="y2") return XMLMember(3);
    else return XMLMember(XMLMember::Unknown);

Arithmetic operations + and - apply to XMLMember to avoid confusion of property id numbers between inherited objects. Offset 3 corresponds to the number of properties defined in this object.

    if(tag=="anInteger") return XMLMember(0);
    else if(tag=="aString") return XMLMember(1);
    else if(tag=="aDouble") return XMLMember(2);
    return AbstractLine::xml_member(tag, attributes, context)+3;

For the arguments of this function use Macro XML_MEMBER_ARGS.

Reimplemented from QGpCoreTools::StatisticalValue< numberType >.

References TRACE, and QGpCoreTools::StatisticalValue< numberType >::xml_member().

{
  TRACE;
  Q_UNUSED(context);
  if(tag=="x") return XMLMember(0);
  else return StatisticalValue<numberType>::xml_member(tag, attributes, context)+1;
}
template<class numberType >
bool QGpCoreTools::StatisticalPoint< numberType >::xml_setProperty ( XML_SETPROPERTY_ARGS  ) [protected, virtual]

Re-implement this function to offer XML restore properties support to your class.

From memberID set the corresponding property with value content. The map of attributes is given as a supplementary information (not useful in all cases).

For a general case:

  Q_UNUSED(attributes);
  double val=content.toDouble();
  switch (memberID) {
  case 0:
    _x1=val;
    return true;
  case 1:
    _y1=val;
    return true;
  case 2:
    _x2=val;
    return true;
  case 3:
    _y2=val;
    return true;
  default:
    return false;
  }

For classes inheriting other classes (see also xml_member())

  switch (memberID) {
  case 0:
    _anInteger=content.toString();
    return true;
  case 1:
    _aString=content.toInt();
    return true;
  case 2:
    _aDouble=content.toDouble();
    return true;
  default:
    return AbstractLine::xml_setProperty(memberID-3, map, content);

For the arguments of this function use Macro XML_SETPROPERTY_ARGS.

Reimplemented from QGpCoreTools::StatisticalValue< numberType >.

References TRACE, and QGpCoreTools::StatisticalValue< numberType >::xml_setProperty().

{
  TRACE;
  Q_UNUSED(context);
  switch (memberID) {
  case 0: _x=content.toDouble(); return true;
  default: return StatisticalValue<numberType>::xml_setProperty(memberID-1, tag, attributes, content, context);
  }
}
template<class numberType >
void QGpCoreTools::StatisticalPoint< numberType >::xml_writeProperties ( XML_WRITEPROPERTIES_ARGS  ) const [protected, virtual]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines