Highpoint.Sage.Mathematics Namespace
Classes
Class  Description  

BinomialDistribution 
A Binomial distribution gives the discrete probability distribution P_p(nN) of obtaining
exactly n successes out of N Bernoulli trials (where the result of each Bernoulli trial
is true with probability p and false with probability q==1p).


CauchyDistribution 
The Cauchy distribution is important
as an example of a pathological case. Cauchy distributions look similar
to a normal distribution. However, they have much heavier tails. When
studying hypothesis tests that assume normality, seeing how the tests
perform on data from a Cauchy distribution is a good indicator of how
sensitive the tests are to heavytail departures from normality.
Likewise, it is a good check for robust techniques that are designed to
work well under a wide variety of distributional assumptions.


ConstantDoubleDistribution 
A ConstantDoubleDistribution serves a constant value.


CosineDoubleInterpolator 
Implemented by an object that performs cosine interpolations on two arrays of doubles (an x and a y array).


DistributionCatalog 
The DistributionCatalog provides a catalog of known distributions, enabling the caller to enumerate all known
distributions, or all known distributions that implement a specific interface. It reads from a section in the
app config file so that it can import all distributions, or just specific distributions, from any assemblies
the user desires to have included in the catalog.
The general config section impact is as follows: <configSections> <section name="Distributions" type="Highpoint.Sage.Mathematics.DistributionSectionHandler, VR_Sim" /> </configSections> <Distributions> <Library libName="VR_Sim"> <InterfaceType typeName="Highpoint.Sage.Mathematics.IDoubleDistribution" autoImportAllImplementers="true"/> <InterfaceType typeName="Highpoint.Sage.Mathematics.ITimeSpanDistribution" autoImportAllImplementers="true"/> </Library> </Distributions> If there is no config section in the config file, it initializes with all of the Sage® distributions and interfaces. 

EmpiricalDistribution 
An Empirical distribution is a distribution that is formed from a Probability Density Function (PDF) that
is provided by an external entity. The PDF is provided as a pair of xvalue and yvalue arrays. Likeindexed
elements in these arrays are assumed to correspond to each other to form an (x,y) value that is a point on
the PDF being described. Additionally, an Interpolator may be specified to smooth the otherwise piecewise
linear PDF "curve."


ExponentialCDF 
Implements an exponential CDF mapped across a table with a specified number of entries or bins.
Y values will range from (0.01.0], and the xvalues at the given Y value will be stored in the
corresponding bin.


ExponentialDistribution 
Produces an exponential distribution. The exponential distribution
is primarily used in reliability applications. The exponential
distribution is used to model data with a constant failure rate.


Extensions  
Histogram1D_Base 
A Base class for a 1dimensional histogram. Since this derives from a baselevel interface
that is intended for all histograms, indices are specified as an array of integers. So for
a 1D histogram, bin #3 would be referred to as having index int[]{3}. For a 2D histogram,
bin 4,2 would be referred to as having index int[]{4,2}. In addition, bins are separated into
three categories, None, OffScaleLow, InRange, OffScaleHigh, and All. These are flags that can
be and'ed together. Most queries can be applied to a range of bins, or to a full category or
set of categories.


Histogram1D_DateTime 
Histogram1D_DateTime is not yet implemented. Histogram1D_DateTime creates a one dimensional histogram from an array of DateTime data.


Histogram1D_Double 
Summary description for Histogram1D.


Histogram1D_TimeSpan 
Summary description for Histogram1D.


LinearDoubleInterpolator 
Implemented by an object that performs linear interpolations on two arrays of doubles (an x and a y array).


LinearRegression 
Not originally written by Highpoint Software Systems, LLC. Written by Walt Fair, obtained
from the CodeProject site below on 5/17/2009, and used per the Code Project Open License
at the site below. Several .NET / C# semantic improvements added.
http://www.codeproject.com/KB/recipes/LinReg.aspx ( Walt's excellent article. )
http://www.codeproject.com/info/cpol10.aspx ( CodeProject Open License 1.02 )


LognormalDistribution 
According to http://www.itl.nist.gov/div898/handbook/eda/section3/eda3669.htm,
the lognormal distribution is used extensively in reliability applications to
model failure times. The lognormal and Weibull distributions are probably the
most commonly used distributions in reliability applications.


NormalDistribution 
For both theoretical and practical reasons, the normal distribution is
probably the most important distribution in statistics. For example,
Many classical statistical tests are based on the assumption that the data follow a normal distribution. This assumption should be tested before applying these tests. In modeling applications, such as linear and nonlinear regression, the error term is often assumed to follow a normal distribution with fixed location and scale. The normal distribution is used to find significance levels in many hypothesis tests and confidence intervals. The mathematics for this distribution come from http://home.online.no/~pjacklam/notes/invnorm/impl/misra/normsinv.html ...derived from http://www.netlib.org/specfun/erf 

PoissonDistribution 
Creates a Poisson Distribution. The Poisson distribution is a discrete
distribution that is used to model the number of events occurring within
a given time interval.
http://www.itl.nist.gov/div898/handbook/eda/section3/eda366j.htm


Rationalizer 
This class returns the "correct" representation of a number from a set of fractions,
identified by the first N digits in the mantissa. So, if this class is instantiated with fractions
up to ninths (halves to ninths), and five digits, 5.333382 will return 5.333382, but 5.3333382 will
return 5.333333333333333. 5.999996 will return 6.0, and 7.000001 will return 7.0. This is useful for
performing corrections when values are arrived at through computation where it is possible that the
value could be a loworder rational number such as 5 1/3, or 6, but the computation results in
5.3333391 or 6.000000215, or 5.99999938.


RMSErrorCalculator  
SmallDoubleInterpolable 
This class provides an interpolable data set that uses a linear interpolation
with slope discontinuities at each data point, if the preceding and following
line segments are differentlysloped.


SupportsDistributionsAttribute 
An attribute that decorates any class that can have a distribution as a member.


TimeSpanDistribution 
A distribution that uses an underlying IDoubleDistribution to
generate a distribution of TimeSpans.


TriangularDistribution 
A triangular distribution is a distribution defined on x in [a,b], where its Probability Density Function is
P(x) = 2(xa)/((ba)(ca)) for x on [a,c] P(x) = 2(bx)/((ba)(bc)) for x on [c,b] 

UniformDistribution 
Creates a Uniform Distribution with a specified minimum and maximum.
The uniform distribution defines equal probability over a given range
for a continuous distribution. For this reason, it is important as a
reference distribution.
One of the most important applications of the uniform distribution is in the generation of random numbers. That is, almost all random number generators generate random numbers on the (0,1) interval. For other distributions, some transformation is applied to the uniform random numbers. 

UniversalDistribution 
An Empirical distribution is a distribution that is formed from a Probability Density Function (PDF) that
is provided by an external entity. The PDF is provided as a pair of xvalue and yvalue arrays. Likeindexed
elements in these arrays are assumed to correspond to each other to form an (x,y) value that is a point on
the PDF being described. Additionally, an Interpolator may be specified to smooth the otherwise piecewise
linear PDF "curve."


WeibullDistribution 
The Weibull distribution is used extensively in reliability applications to model failure times.

Interfaces
Interface  Description  

ICDF 
With the value of 'linear' in the Yvalue range of (0.01.0], this
will return the Xvalue variate from the implementing CDF.


IDoubleDistribution 
The IDoubleDistribution interface produces a sequence of values. They are
generated by a class that ensures that the values that are generated
conform to a particular distribution.


IDoubleInterpolator 
Implemented by an object that performs interpolations on two arrays of doubles (an x and a y array).


IHistogram 
Implemented by an object that processes raw data items into bins and presents some
basic statistics on those bins.


IInterpolable 
Implemented by an object that provides an interpolatable Y value for some set of X values, where the specific requested x may not be known to the object.


ITimeSpanDistribution 
The ITimeSpanDistribution interface produces a sequence of TimeSpan values.
They are generated by a class that ensures that the values that are generated
conform to a particular distribution.


IWriteableInterpolable 
Implemented by an object that provides an interpolatable Y value for some set of X values, where the specific requested x may not be known to the object  in addition, at run time, additional known (x,y) values can be provided.

Delegates
Delegate  Description  

HistogramDataFilter 
Returns true if the data in a certain Histogram bin meet a certain criteria.


LabelProvider 
Returns a string that characterizes a bin in a Histogram located at the given dimensional coordinates.

Enumerations
Enumeration  Description  

HistogramBinCategory 
A flag enumerator that specifies which bins in a histogram the caller is referring to.


TimeSpanDistribution..::..Units 
The units of a TimeSpanDistribution. The values are according to the underlying IDoubleDistribution, and
the units are according to the selected element of this enumeration.
