The Solver SDK Platform includes complete facilities for creating models in C++, C#, VB.NET, Visual Basic, Java, and MATLAB with uncertain variables and functions, running Monte Carlo simulations, and collecting statistics from the Monte Carlo samples. You could pay $1,200 or more for other software libraries that provide only probability distribution modeling and Monte Carlo simulation  but in the Solver SDK Platform, all this power is included at no extra cost.
 Sampling Methods
 Probability Distributions
 Distribution Fitting
 Correlated Distributions
 Statistical Results
 Risk Measures
 Example Source Code
Sampling Methods
The Solver SDK Platform includes four different, high quality random number generators, covering the full spectrum of tradeoffs between long periods and statistical independence of the samples:
 ParkMiller 'Minimal' Generator with BayesDurham shuffle and safeguards. This generator has a period of 2^{31}2, and very good statistical independence of samples.
 Combined Multiple Recursive Generator (CMRG) of L'Ecuyer. This generator has a period of 2^{191}, and excellent statistical independence of samples within its period.
 Well Equidistributed Longperiod Linear (WELL1024) generator of Panneton, L'Ecuyer and Matsumoto. This very new generator combines a long period of 2^{1024} with very good statistical independence.
 Mersenne Twister generator of Matsumoto and Nishimura. This generator has the longest period of 2^{19937}1, but the samples are not as 'equidistributed' as for the WELL1024 and CMRG generators.
Monte Carlo samples are generated from a wide range of probability distributions, using any of three methods:
 Standard Monte Carlo
 Latin Hypercube
 Sobol Numbers
Sobol numbers are an innovation in the Solver SDK Platform that's not found in other software for Monte Carlo simulation. They are widely used by application developers in quantitative finance. For low to moderate dimensional problems, Sobol numbers offer the "best of both worlds"  the speed of Standard Monte Carlo with the "coverage" of Latin Hypercube sampling.
Probability Distributions
The Solver SDK Platform provides a complete set of analytic probability distributions. And you can specify shifting and truncation to customize your probability distributions.
Bernoulli  Integer Uniform  Pareto 
Beta  Inverse Gaussian  Pareto2 
BetaGeneral  Laplace  Pearson5 
BetaSubjective  Logarithmic  Pearson6 
Binomial  Logistic  Pert 
Cauchy  LogLogistic  Poisson 
Chi Squared  Lognormal  Rayleigh 
Erf  Lognorm2  Student 
Erlang  MaxExtreme  Triangular 
Exponential  MinExtreme  TriGeneral 
Gamma  Myerson  Uniform 
Geometric  Neg. Binomial  Weibull 
Hypergeometic  Normal 

You can easily create an instance of a Distribution object, with the properties of any of these probability distributions. By simply accessing properties of this object, you can obtain the probability density (PDF) or cumulative density (CDF) function, or analytic values for the moments of the distribution, based on its type and parameters.
Distribution Fitting
The Solver SDK Platform makes it easy to fit an analytic distribution and its parameters to sample data. You can specify the distribution type and ask the SDK to find the bestfitting parameters, or you can just supply the sample data, specify continuous or discrete, and let the SDK automatically choose the bestfitting distribution type and the best parameters. This is illustrated in the Example Source Code. The SDK can fit 22 different distributions (from the list of 38 above), including both continuous and discrete distributions.
Correlated Distributions
The Solver SDK Platform makes it easy to create correlated input distributions, by creating a DoubleMatrix object that specifies rank correlations between two or more distributions. You simply assign this correlation matrix to the appropriate property of the Model object. This is illustrated in the Example Source Code.
To consistently specify correlations among multiple distributions, a rank correlation matrix must be positive semidefinite (PSD). Users often have "desired correlations" among the key distributions, but insufficient information to fill out the matrix. The Solver SDK Platform includes methods to test a DoubleMatrix for positive semidefiniteness (IsPSD) and to transform a nonPSD matrix into a "nearest" matrix that is positive semidefinite (MakePSD). Unlike other software, the SDK can find a PSD matrix that leaves your "desired correlations" among key distributions nearly unchanged.
Statistical Results
In the Solver SDK Platform, you can obtain any of the statistics listed below for both uncertain variables and uncertain functions, by simply accessing the appropriate property or method of a Statistics object embedded in each Variable and Function object. You can obtain confidence intervals (CI) for the mean or standard deviation, or the number of Monte Carlo trials required to obtain a result within your specified confidence interval.
Number of Values  Standard Deviation  Target 
Number of Errors  Variance  Mean CI 
Minimum  Skewness  Std Dev CI 
Maximum  Kurtosis  Trials for CI 
Mean  Mode  Percentiles 
100 percentile values (0 to 99) are computed for each variable and function. In addition, you can obtain the observed correlation in the Monte Carlo sample between any two uncertain functions, or between an uncertain function and an uncertain variable, by accessing a property of the Function object.
Risk Measures
The Solver SDK Platform goes beyond computation of "standard moments" to compute several risk measures popular in quantitative finance applications. Again you can obtain these values by simply accessing the appropriate property or method of a Statistics object embedded in each Variable and Function object.
 Mean Absolute Deviation
 Semivariance or Lower Partial Moment
 Semideviation (square root or pth root)
 Value at Risk
 Conditional Value at Risk