Sage Modeling and Simulation Library

Highpoint.Sage.Mathematics Namespace

Classes


  Class Description
Public class BinomialCDF
A Binomial Cumulative Density Function.
Public class BinomialDistribution
A Binomial distribution gives the discrete probability distribution P_p(n|N) 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==1-p).
Public class CauchyCDF
A Cauchy Cumulative Density Function.
Public class 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 heavy-tail 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.
Public class ConstantDoubleDistribution
A ConstantDoubleDistribution serves a constant value.
Public class CosineDoubleInterpolator
Implemented by an object that performs cosine interpolations on two arrays of doubles (an x and a y array).
Public class 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.

Public class EmpiricalCDF
Implements an empirical CDF. The xValues passed in will be in the interval of [0.0,1.0), and the yValues passed in will be empirically-determined data points.
Public class 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 x-value and y-value arrays. Like-indexed 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."
Public class ExponentialCDF
Implements an exponential CDF mapped across a table with a specified number of entries or bins. Y values will range from (0.0-1.0], and the x-values at the given Y value will be stored in the corresponding bin.
Public class 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.
Public class Extensions
Public class Histogram1D_Base
A Base class for a 1-dimensional histogram. Since this derives from a base-level interface that is intended for all histograms, indices are specified as an array of integers. So for a 1-D histogram, bin #3 would be referred to as having index int[]{3}. For a 2-D 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.
Public class Histogram1D_DateTime
Histogram1D_DateTime is not yet implemented. Histogram1D_DateTime creates a one dimensional histogram from an array of DateTime data.
Public class Histogram1D_Double
Summary description for Histogram1D.
Public class Histogram1D_TimeSpan
Summary description for Histogram1D.
Public class Linear
Implements a linear CDF with an X-range of (0.0-1.0]
Public class LinearDoubleInterpolator
Implemented by an object that performs linear interpolations on two arrays of doubles (an x and a y array).
Public class 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 )
Public class 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.
Public class 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 non-linear 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

Public class PoissonCDF
A Poisson Cumulative Density Function.
Public class 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
Public class 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 low-order rational number such as 5 1/3, or 6, but the computation results in 5.3333391 or 6.000000215, or 5.99999938.
Public class RMSErrorCalculator
Public class 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 differently-sloped.
Public class SupportsDistributionsAttribute
An attribute that decorates any class that can have a distribution as a member.
Public class TimeSpanDistribution
A distribution that uses an underlying IDoubleDistribution to generate a distribution of TimeSpans.
Public class TriangularCDF
A Triangular Cumulative Density Function.
Public class TriangularDistribution
A triangular distribution is a distribution defined on x in [a,b], where its Probability Density Function is

P(x) = 2(x-a)/((b-a)(c-a)) for x on [a,c]

P(x) = 2(b-x)/((b-a)(b-c)) for x on [c,b]

Public class UniformCDF
A Uniform Cumulative Density Function.
Public class 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.

Public class 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 x-value and y-value arrays. Like-indexed 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."
Public class WeibullCDF
A Weibull Cumulative Density Function. See http://www.itl.nist.gov/div898/handbook/eda/section3/eda366.htm
Public class WeibullDistribution
The Weibull distribution is used extensively in reliability applications to model failure times.

Interfaces


  Interface Description
Public interface ICDF
With the value of 'linear' in the Y-value range of (0.0-1.0], this will return the X-value variate from the implementing CDF.
Public interface 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.
Public interface IDoubleInterpolator
Implemented by an object that performs interpolations on two arrays of doubles (an x and a y array).
Public interface IHistogram
Implemented by an object that processes raw data items into bins and presents some basic statistics on those bins.
Public interface 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.
Public interface 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.
Public interface 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
Public delegate HistogramDataFilter
Returns true if the data in a certain Histogram bin meet a certain criteria.
Public delegate LabelProvider
Returns a string that characterizes a bin in a Histogram located at the given dimensional coordinates.

Enumerations


  Enumeration Description
Public enumeration HistogramBinCategory
A flag enumerator that specifies which bins in a histogram the caller is referring to.
Public enumeration 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.