Uncertainty Class Reference

An error value with positive and negative extent, a source type and a normalisation. More...

Inheritance diagram for Uncertainty:

Inheritance graph
[legend]

Collaboration diagram for Uncertainty:

Collaboration graph
[legend]

List of all members.


Public Member Functions

 Uncertainty ()
 Default constructor.
 Uncertainty (Double plus, Double minus, ErrorSource sourcetype, ErrorNorm normtype)
 Constructor for asymmetric errors.
 Uncertainty (Double plusminus, ErrorSource sourcetype, ErrorNorm normtype)
 Constructor for symmetric error.
boolean isSymmetric ()
 Are the plus and minus errors symmetric?
boolean hasZeroSize ()
 Are the plus and minus errors both zero?
Uncertainty getAbsoluteError (Point p) throws HDException
 Calculate the absolute error object for this error and the given Point.
Double getPlus ()
 Get the upward error.
Uncertainty setPlus (Double plus)
 Set the upward error.
Double getMinus ()
 Get the downward error.
Uncertainty setMinus (Double minus)
 Set the downward error.
ErrorSource getSourceType ()
 Get the error source type (stat, sys, etc.
Uncertainty setSourceType (ErrorSource sourcetype)
 Set the error source type (stat, sys, etc.
ErrorNorm getNormType ()
 Get the error normalization type (abs, frac, pct, etc.
Uncertainty setNormType (ErrorNorm normtype)
 Set the error normalization type (abs, frac, pct, etc.
String getComment ()
 Get the modification comment string.
Uncertainty setComment (String comment)
 Set the modification comment string.
int compareTo (Uncertainty other)
String toString ()
 String representation.
String toString (Integer indentBy)
 Indented string representation.

Package Functions

Logger log ()
 Neat method to allow every class to get hold of a custom-named Logger.

Detailed Description

An error value with positive and negative extent, a source type and a normalisation.

Todo:
The indicated error magnitude may be an equality or a limit.
Author:
Andy Buckley
Version:
Date
Revision

Definition at line 18 of file Uncertainty.java.


Constructor & Destructor Documentation

Uncertainty (  ) 

Default constructor.

Definition at line 53 of file Uncertainty.java.

Referenced by Uncertainty.getAbsoluteError().

00053 {}

Uncertainty ( Double  plus,
Double  minus,
ErrorSource  sourcetype,
ErrorNorm  normtype 
)

Constructor for asymmetric errors.

Parameters:
plus input <0 gives -err1
minus input <0 gives +err2
sourcetype : origin of error, i.e. systematic, statistical, etc.
normtype : normalisation of error, i.e. absolute, fractional, percentage, etc.

Definition at line 63 of file Uncertainty.java.

References Uncertainty.setMinus(), Uncertainty.setNormType(), Uncertainty.setPlus(), and Uncertainty.setSourceType().

00063                                                                                               {
00064         setPlus( (plus != null)  ? plus  : 0.0 );
00065         setMinus( (minus != null) ? minus : 0.0 );
00066         setSourceType(sourcetype);
00067         setNormType(normtype);
00068     }

Uncertainty ( Double  plusminus,
ErrorSource  sourcetype,
ErrorNorm  normtype 
)

Constructor for symmetric error.

Parameters:
plusminus : size of symmetric error
sourcetype : origin of error, i.e. systematic, statistical, etc.
normtype : normalisation of error, i.e. absolute, fractional, percentage, etc.

Definition at line 77 of file Uncertainty.java.

00077                                                                                      {
00078         this(plusminus, plusminus, sourcetype, normtype);
00079     }


Member Function Documentation

boolean isSymmetric (  ) 

Are the plus and minus errors symmetric?

Definition at line 88 of file Uncertainty.java.

References Uncertainty.getMinus(), and Uncertainty.getPlus().

Referenced by Uncertainty.toString().

00088                                  {
00089         return (getPlus().equals(getMinus()));
00090     }

boolean hasZeroSize (  ) 

Are the plus and minus errors both zero?

Definition at line 94 of file Uncertainty.java.

References Uncertainty.getMinus(), and Uncertainty.getPlus().

00094                                  {
00095         return (getPlus().equals(0.0) && getMinus().equals(0.0));
00096     }

Uncertainty getAbsoluteError ( Point  p  )  throws HDException

Calculate the absolute error object for this error and the given Point.

Reimplemented in PointError.

Definition at line 105 of file Uncertainty.java.

References Uncertainty.getMinus(), Uncertainty.getNormType(), Uncertainty.getPlus(), Uncertainty.getSourceType(), and Uncertainty.Uncertainty().

Referenced by PointError.getAbsoluteError().

00105                                                                     {
00106         if (getNormType() == ErrorNorm.UNKNOWN) {
00107             throw new HDException("Attempted to get the absolute error from an unknown error type.");
00108         }
00109 
00110         Double absplus = getPlus();
00111         Double absminus = getMinus();
00112         if (getNormType() != ErrorNorm.ABS) {
00113             if (getNormType() == ErrorNorm.FRAC) {
00114                 absplus *= p.getValue();
00115                 absminus *= p.getValue();
00116             } else if (getNormType() == ErrorNorm.PCT) {
00117                 absplus *= (p.getValue() / 100.0);
00118                 absminus *= (p.getValue() / 100.0);
00119             }
00120         }
00121         Uncertainty err = new Uncertainty(absplus, absminus, getSourceType(), ErrorNorm.ABS);
00122         return err;
00123     }

Double getPlus (  ) 

Get the upward error.

Definition at line 132 of file Uncertainty.java.

Referenced by AxisError.equals(), Uncertainty.getAbsoluteError(), PointError.hashCode(), DatasetError.hashCode(), AxisError.hashCode(), Uncertainty.hasZeroSize(), Uncertainty.isSymmetric(), and Uncertainty.toString().

00132                             {
00133         return _plus;
00134     }

Uncertainty setPlus ( Double  plus  ) 

Set the upward error.

Definition at line 137 of file Uncertainty.java.

Referenced by Uncertainty.Uncertainty().

00137                                             {
00138         _plus = plus;
00139         return this;
00140     }

Double getMinus (  ) 

Get the downward error.

Definition at line 145 of file Uncertainty.java.

Referenced by AxisError.equals(), Uncertainty.getAbsoluteError(), PointError.hashCode(), DatasetError.hashCode(), AxisError.hashCode(), Uncertainty.hasZeroSize(), Uncertainty.isSymmetric(), and Uncertainty.toString().

00145                              {
00146         return _minus;
00147     }

Uncertainty setMinus ( Double  minus  ) 

Set the downward error.

Definition at line 150 of file Uncertainty.java.

Referenced by Uncertainty.Uncertainty().

00150                                               {
00151         _minus = minus;
00152         return this;
00153     }

ErrorSource getSourceType (  ) 

Get the error source type (stat, sys, etc.

) as an enum.

Definition at line 158 of file Uncertainty.java.

Referenced by AxisError.equals(), Uncertainty.getAbsoluteError(), PointError.hashCode(), DatasetError.hashCode(), AxisError.hashCode(), and Uncertainty.toString().

00158                                        {
00159         return _sourcetype;
00160     }

Uncertainty setSourceType ( ErrorSource  sourcetype  ) 

Set the error source type (stat, sys, etc.

) from the enum.

Definition at line 163 of file Uncertainty.java.

Referenced by Uncertainty.Uncertainty().

00163                                                              {
00164         _sourcetype = sourcetype;
00165         return this;
00166     }

ErrorNorm getNormType (  ) 

Get the error normalization type (abs, frac, pct, etc.

) as an enum.

Definition at line 170 of file Uncertainty.java.

Referenced by AxisError.equals(), Uncertainty.getAbsoluteError(), PointError.hashCode(), DatasetError.hashCode(), AxisError.hashCode(), and Uncertainty.toString().

00170                                    {
00171         return _normtype;
00172     }

Uncertainty setNormType ( ErrorNorm  normtype  ) 

Set the error normalization type (abs, frac, pct, etc.

) from the enum.

Reimplemented in DatasetError.

Definition at line 174 of file Uncertainty.java.

Referenced by Uncertainty.Uncertainty().

00174                                                        {
00175         _normtype = normtype;
00176         return this;
00177     }

String getComment (  ) 

Get the modification comment string.

Definition at line 181 of file Uncertainty.java.

Referenced by Uncertainty.toString().

00181                                {
00182         return _comment;
00183     }

Uncertainty setComment ( String  comment  ) 

Set the modification comment string.

Definition at line 185 of file Uncertainty.java.

00185                                                   {
00186         _comment = comment;
00187         return this;
00188     }

int compareTo ( Uncertainty  other  ) 

Todo:
Compare otherwise-equals based on stat vs sys

Definition at line 194 of file Uncertainty.java.

References DatasetError.compareTo(), AxisError.compareTo(), PointError.compareTo(), and Storeable.log().

00194                                             {
00195         log().debug("Comparing errors...");
00196 
00197         // For point errors
00198         if (this instanceof PointError) {
00199             if (other instanceof PointError) {
00200                 PointError test = (PointError) this;
00201                 int result = test.compareTo((PointError) other);
00202                 if (result != 0) return result;
00203             } else return 1;
00204         }
00205 
00206         // For axis errors
00207         if (this instanceof AxisError) {
00208             if (other instanceof AxisError) {
00209                 AxisError test = (AxisError) this;
00210                 int result = test.compareTo((AxisError) other);
00211                 if (result != 0) return result;
00212             } else return (other instanceof PointError) ? -1 : 1;
00213         }
00214 
00215         // For dataset errors
00216         if (this instanceof DatasetError) {
00217             if (other instanceof DatasetError) {
00218                 DatasetError test = (DatasetError) this;
00219                 int result = test.compareTo((DatasetError) other);
00220                 if (result != 0) return result;
00221             } else return 1;
00222         }
00223 
00225         return 0;
00226     }

String toString (  ) 

String representation.

Reimplemented from Storeable.

Definition at line 234 of file Uncertainty.java.

Referenced by Uncertainty.toString().

00234                              {
00235         return toString(0);
00236     }

String toString ( Integer  indentBy  ) 

Indented string representation.

Definition at line 240 of file Uncertainty.java.

References Uncertainty.getComment(), Uncertainty.getMinus(), Uncertainty.getNormType(), Uncertainty.getPlus(), Uncertainty.getSourceType(), Uncertainty.isSymmetric(), Storeable.log(), and Uncertainty.toString().

00240                                              {
00241         log().debug("Writing out error as a string");
00242         StringBuffer s = new StringBuffer();
00243         String indent = "";
00244         for (int i  = 0; i < indentBy; ++i) indent += " ";
00245 
00246         //if (! hasZeroSize()) {
00247         s.append(indent);
00248         Double plusval = getPlus();
00249         Double minusval = getMinus();
00250 
00251         String numFormat = "###.##";
00252         // Use the number formatter to recalculate and display everything as a percentage
00253         if (getNormType() == ErrorNorm.PCT) {
00254             plusval /= 100;
00255             minusval /= 100;
00256         }
00257         if (getNormType() == ErrorNorm.FRAC || getNormType() == ErrorNorm.PCT) {
00258             numFormat += "%"; // multiplies by 100 and sticks "%" on the end
00259         }
00260         DecimalFormat numFormatter = new DecimalFormat(numFormat);
00261         if (isSymmetric()) {
00262             s.append("+- " + numFormatter.format(plusval));
00263         } else {
00264             s.append("+ " + numFormatter.format(plusval));
00265             s.append(" - " + numFormatter.format(minusval));
00266         }
00267         s.append(" (");
00268         //s.append(getNormType().toString());
00269         //s.append(", ");
00270         s.append(getSourceType().toString());
00271         s.append(")");
00272         if (getComment() != null && getComment().length() != 0) {
00273             s.append(" [" + getComment() + "]");
00274         }
00275         //}
00276         return s.toString();
00277     }

Logger log (  )  [package, inherited]

Neat method to allow every class to get hold of a custom-named Logger.

Definition at line 14 of file Storeable.java.

Referenced by Uncertainty.compareTo(), Reference.compareTo(), PointError.compareTo(), Modification.compareTo(), Experiment.compareTo(), DatasetError.compareTo(), AxisError.compareTo(), Data.makeExample(), Data.makeExampleDataset(), Data.makeExampleExperiment(), Data.makeExamplePaper(), Data.makeExampleXAxes(), Data.makeExampleYAxes(), DatasetError.setNormType(), and Uncertainty.toString().

00014                  {
00015         return Logger.getLogger(this.getClass());
00016     }


The documentation for this class was generated from the following file:
Generated on Thu Sep 20 11:41:39 2007 by  doxygen 1.5.3