summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/math/dot_net_example
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/math/dot_net_example')
-rw-r--r--src/boost/libs/math/dot_net_example/boost_math/AssemblyInfo.cpp44
-rw-r--r--src/boost/libs/math/dot_net_example/boost_math/ReadMe.txt38
-rw-r--r--src/boost/libs/math/dot_net_example/boost_math/Stdafx.cpp11
-rw-r--r--src/boost/libs/math/dot_net_example/boost_math/Stdafx.h54
-rw-r--r--src/boost/libs/math/dot_net_example/boost_math/app.icobin0 -> 1078 bytes
-rw-r--r--src/boost/libs/math/dot_net_example/boost_math/app.rc63
-rw-r--r--src/boost/libs/math/dot_net_example/boost_math/boost_math.cpp255
-rw-r--r--src/boost/libs/math/dot_net_example/boost_math/boost_math.h331
-rw-r--r--src/boost/libs/math/dot_net_example/boost_math/boost_math.sln31
-rw-r--r--src/boost/libs/math/dot_net_example/boost_math/boost_math.vcxproj142
-rw-r--r--src/boost/libs/math/dot_net_example/boost_math/boost_math.vcxproj.filters44
-rw-r--r--src/boost/libs/math/dot_net_example/boost_math/resource.h9
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistEx.resx322
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistributionExplorer.Designer.cs193
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistributionExplorer.cs115
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistributionExplorer.resx781
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/App.config3
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/ClassDiagram1.cd11
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/ClassDiagram2.cd1
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/DistexForm.Designer.cs1094
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/DistexForm.cs610
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/DistexForm.resx294
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/DistexSplash.Designer.cs141
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/DistexSplash.cs126
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/DistexSplash.resx384
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/IconToolkit.icobin0 -> 1078 bytes
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/Program.cs20
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/Properties/AssemblyInfo.cs34
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Resources.Designer.cs70
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Resources.resx124
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Settings.Designer.cs26
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Settings.settings7
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/Properties/app.manifest11
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/Settings.cs28
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/ToolkitLogo.bmpbin0 -> 25398 bytes
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/boost.pngbin0 -> 11789 bytes
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/distexAboutBox.Designer.cs190
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/distexAboutBox.cs116
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/distexAboutBox.resx120
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/distribution.txt10
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.csproj216
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.csproj.user21
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.sln50
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.suobin0 -> 74240 bytes
-rw-r--r--src/boost/libs/math/dot_net_example/distribution_explorer/readme.txt86
45 files changed, 6226 insertions, 0 deletions
diff --git a/src/boost/libs/math/dot_net_example/boost_math/AssemblyInfo.cpp b/src/boost/libs/math/dot_net_example/boost_math/AssemblyInfo.cpp
new file mode 100644
index 000000000..f8bcf1743
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/boost_math/AssemblyInfo.cpp
@@ -0,0 +1,44 @@
+#include "stdafx.h"
+
+// Copyright Paul A. Bristow & John Maddock 2009, 2010
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt
+// or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+using namespace System;
+using namespace System::Reflection;
+using namespace System::Runtime::CompilerServices;
+using namespace System::Runtime::InteropServices;
+using namespace System::Security::Permissions;
+
+// General Information about an assembly is controlled through the following set of attributes.
+// Change these attribute values to modify the information associated with an assembly.
+
+[assembly:AssemblyTitleAttribute("boost_math")];
+[assembly:AssemblyDescriptionAttribute("Math Toolkit")];
+[assembly:AssemblyConfigurationAttribute("")];
+[assembly:AssemblyCompanyAttribute("jmc")];
+[assembly:AssemblyProductAttribute("boost_math")];
+[assembly:AssemblyCopyrightAttribute("Copyright (c) jmc 2007 - 2010")];
+[assembly:AssemblyTrademarkAttribute("")];
+[assembly:AssemblyCultureAttribute("")];
+
+//
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the value or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly:AssemblyVersionAttribute("1.1.*")];
+
+[assembly:ComVisible(false)];
+
+[assembly:CLSCompliantAttribute(true)];
+// Deprecated:
+//[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];
diff --git a/src/boost/libs/math/dot_net_example/boost_math/ReadMe.txt b/src/boost/libs/math/dot_net_example/boost_math/ReadMe.txt
new file mode 100644
index 000000000..a7a5a5d73
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/boost_math/ReadMe.txt
@@ -0,0 +1,38 @@
+========================================================================
+ DYNAMIC LINK LIBRARY : boost_math Project Overview
+========================================================================
+
+AppWizard has created this boost_math DLL for you.
+
+// Copyright Paul A. Bristow & John Maddock 2009
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt
+// or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+This file contains a summary of what you will find in each of the files that
+make up your boost_math application.
+
+boost_math.vcproj
+ This is the main project file for VC++ projects generated using an Application Wizard.
+ It contains information about the version of Visual C++ that generated the file, and
+ information about the platforms, configurations, and project features selected with the
+ Application Wizard.
+
+boost_math.cpp
+ This is the main DLL source file.
+
+boost_math.h
+ This file contains a class declaration.
+
+AssemblyInfo.cpp
+ Contains custom attributes for modifying assembly metadata.
+
+/////////////////////////////////////////////////////////////////////////////
+Other notes:
+
+AppWizard uses "TODO:" to indicate parts of the source code you
+should add to or customize.
+
+/////////////////////////////////////////////////////////////////////////////
+
diff --git a/src/boost/libs/math/dot_net_example/boost_math/Stdafx.cpp b/src/boost/libs/math/dot_net_example/boost_math/Stdafx.cpp
new file mode 100644
index 000000000..f65a89a57
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/boost_math/Stdafx.cpp
@@ -0,0 +1,11 @@
+// stdafx.cpp : source file that includes just the standard includes
+// boost_math.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+// Copyright Paul A. Bristow & John Maddock 2009
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt
+// or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include "stdafx.h"
diff --git a/src/boost/libs/math/dot_net_example/boost_math/Stdafx.h b/src/boost/libs/math/dot_net_example/boost_math/Stdafx.h
new file mode 100644
index 000000000..f463f27f6
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/boost_math/Stdafx.h
@@ -0,0 +1,54 @@
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently,
+// but are changed infrequently.
+
+// Copyright John Maddock 2007.
+// Copyright Paul A. Bristow 2007, 2009, 2010, 2012
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt
+// or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// Laplace added Aug 2009 PAB, and several others Nov 2010,
+// added skew_normal 2012.
+
+#ifdef _MSC_VER
+# pragma once
+# pragma warning (disable : 4127)
+#endif
+
+#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY errno_on_error
+
+#include <boost/math/distributions/bernoulli.hpp>
+#include <boost/math/distributions/beta.hpp>
+#include <boost/math/distributions/binomial.hpp>
+#include <boost/math/distributions/cauchy.hpp>
+#include <boost/math/distributions/chi_squared.hpp>
+#include <boost/math/distributions/exponential.hpp>
+#include <boost/math/distributions/extreme_value.hpp>
+#include <boost/math/distributions/fisher_f.hpp>
+#include <boost/math/distributions/gamma.hpp>
+#include <boost/math/distributions/geometric.hpp>
+#include <boost/math/distributions/hypergeometric.hpp>
+#include <boost/math/distributions/inverse_chi_squared.hpp>
+#include <boost/math/distributions/inverse_gamma.hpp>
+#include <boost/math/distributions/inverse_gaussian.hpp>
+#include <boost/math/distributions/laplace.hpp>
+#include <boost/math/distributions/logistic.hpp>
+#include <boost/math/distributions/lognormal.hpp>
+#include <boost/math/distributions/negative_binomial.hpp>
+#include <boost/math/distributions/non_central_beta.hpp>
+#include <boost/math/distributions/non_central_chi_squared.hpp>
+#include <boost/math/distributions/non_central_f.hpp>
+#include <boost/math/distributions/non_central_t.hpp>
+#include <boost/math/distributions/normal.hpp>
+#include <boost/math/distributions/pareto.hpp>
+#include <boost/math/distributions/poisson.hpp>
+#include <boost/math/distributions/rayleigh.hpp>
+#include <boost/math/distributions/students_t.hpp>
+#include <boost/math/distributions/skew_normal.hpp>
+#include <boost/math/distributions/triangular.hpp>
+#include <boost/math/distributions/uniform.hpp>
+#include <boost/math/distributions/weibull.hpp>
diff --git a/src/boost/libs/math/dot_net_example/boost_math/app.ico b/src/boost/libs/math/dot_net_example/boost_math/app.ico
new file mode 100644
index 000000000..3a5525fd7
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/boost_math/app.ico
Binary files differ
diff --git a/src/boost/libs/math/dot_net_example/boost_math/app.rc b/src/boost/libs/math/dot_net_example/boost_math/app.rc
new file mode 100644
index 000000000..0bc391bdc
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/boost_math/app.rc
@@ -0,0 +1,63 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon placed first or with lowest ID value becomes application icon
+
+LANGUAGE 9, 2
+#pragma code_page(1252)
+1 ICON "app.ico"
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+ "\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/src/boost/libs/math/dot_net_example/boost_math/boost_math.cpp b/src/boost/libs/math/dot_net_example/boost_math/boost_math.cpp
new file mode 100644
index 000000000..a7fabade9
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/boost_math/boost_math.cpp
@@ -0,0 +1,255 @@
+// Copyright John Maddock 2007.
+// Copyright Paul A. Bristow 2007, 2009, 2012.
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt
+// or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// boost_math.cpp This is the main DLL file.
+
+//#define BOOST_MATH_OVERFLOW_ERROR_POLICY errno_on_error
+//#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
+// These are now defined in project properties
+// to avoid complications with pre-compiled headers:
+// "BOOST_MATH_ASSERT_UNDEFINED_POLICY=0"
+// "BOOST_MATH_OVERFLOW_ERROR_POLICY="errno_on_error""
+// so command line shows:
+// /D "BOOST_MATH_ASSERT_UNDEFINED_POLICY=0"
+// /D "BOOST_MATH_OVERFLOW_ERROR_POLICY="errno_on_error""
+
+#include "stdafx.h"
+
+#ifdef _MSC_VER
+# pragma warning(disable: 4400) // 'const boost_math::any_distribution ^' : const/volatile qualifiers on this type are not supported
+# pragma warning(disable: 4244) // 'argument' : conversion from 'double' to 'unsigned int', possible loss of data
+# pragma warning(disable: 4512) // assignment operator could not be generated
+// hypergeometric expects integer parameters.
+# pragma warning(disable: 4127) // constant
+#endif
+
+#include "boost_math.h"
+
+namespace boost_math
+{
+
+any_distribution::any_distribution(int t, double arg1, double arg2, double arg3)
+{
+ TRANSLATE_EXCEPTIONS_BEGIN
+ // This is where all the work gets done:
+ switch(t) // index of distribution to distribution_info distributions[]
+ { // New entries must match distribution names, parameter name(s) and defaults defined below.
+ case 0:
+ this->reset(new concrete_distribution<boost::math::bernoulli>(boost::math::bernoulli(arg1)));
+ break;
+ case 1:
+ this->reset(new concrete_distribution<boost::math::beta_distribution<> >(boost::math::beta_distribution<>(arg1, arg2)));
+ break; // Note - no typedef, so need explicit type <> but rely on default = double.
+ case 2:
+ this->reset(new concrete_distribution<boost::math::binomial_distribution<> >(boost::math::binomial_distribution<>(arg1, arg2)));
+ break; // Note - no typedef, so need explicit type <> but rely on default = double.
+ case 3:
+ this->reset(new concrete_distribution<boost::math::cauchy>(boost::math::cauchy(arg1, arg2)));
+ break;
+ case 4:
+ this->reset(new concrete_distribution<boost::math::chi_squared>(boost::math::chi_squared(arg1)));
+ break;
+ case 5:
+ this->reset(new concrete_distribution<boost::math::exponential>(boost::math::exponential(arg1)));
+ break;
+ case 6:
+ this->reset(new concrete_distribution<boost::math::extreme_value>(boost::math::extreme_value(arg1)));
+ break;
+ case 7:
+ this->reset(new concrete_distribution<boost::math::fisher_f >(boost::math::fisher_f(arg1, arg2)));
+ break;
+ case 8:
+ this->reset(new concrete_distribution<boost::math::gamma_distribution<> >(boost::math::gamma_distribution<>(arg1, arg2)));
+ break;
+ case 9:
+ this->reset(new concrete_distribution<boost::math::geometric_distribution<> >(boost::math::geometric_distribution<>(arg1)));
+ break;
+ case 10:
+ this->reset(new concrete_distribution<boost::math::hypergeometric_distribution<> >(boost::math::hypergeometric_distribution<>(arg1, arg2, arg3)));
+ break;
+ case 11:
+ this->reset(new concrete_distribution<boost::math::inverse_chi_squared_distribution<> >(boost::math::inverse_chi_squared_distribution<>(arg1, arg2)));
+ break;
+ case 12:
+ this->reset(new concrete_distribution<boost::math::inverse_gamma_distribution<> >(boost::math::inverse_gamma_distribution<>(arg1, arg2)));
+ break;
+ case 13:
+ this->reset(new concrete_distribution<boost::math::inverse_gaussian_distribution<> >(boost::math::inverse_gaussian_distribution<>(arg1, arg2)));
+ break;
+ case 14:
+ this->reset(new concrete_distribution<boost::math::laplace_distribution<> >(boost::math::laplace_distribution<>(arg1, arg2)));
+ break;
+ case 15:
+ this->reset(new concrete_distribution<boost::math::logistic_distribution<> >(boost::math::logistic_distribution<>(arg1, arg2)));
+ break;
+ case 16:
+ this->reset(new concrete_distribution<boost::math::lognormal_distribution<> >(boost::math::lognormal_distribution<>(arg1, arg2)));
+ break;
+ case 17:
+ this->reset(new concrete_distribution<boost::math::negative_binomial_distribution<> >(boost::math::negative_binomial_distribution<>(arg1, arg2)));
+ break;
+ case 18:
+ this->reset(new concrete_distribution<boost::math::non_central_beta_distribution<> >(boost::math::non_central_beta_distribution<>(arg1, arg2, arg3)));
+ break;
+ case 19:
+ this->reset(new concrete_distribution<boost::math::non_central_chi_squared_distribution<> >(boost::math::non_central_chi_squared_distribution<>(arg1, arg2)));
+ break;
+ case 20:
+ this->reset(new concrete_distribution<boost::math::non_central_f_distribution<> >(boost::math::non_central_f_distribution<>(arg1, arg2, arg3)));
+ break;
+ case 21:
+ this->reset(new concrete_distribution<boost::math::non_central_t_distribution<> >(boost::math::non_central_t_distribution<>(arg1, arg2)));
+ break;
+ case 22:
+ this->reset(new concrete_distribution<boost::math::normal_distribution<> >(boost::math::normal_distribution<>(arg1, arg2)));
+ break;
+ case 23:
+ this->reset(new concrete_distribution<boost::math::pareto>(boost::math::pareto(arg1, arg2)));
+ break;
+ case 24:
+ this->reset(new concrete_distribution<boost::math::poisson>(boost::math::poisson(arg1)));
+ break;
+ case 25:
+ this->reset(new concrete_distribution<boost::math::rayleigh>(boost::math::rayleigh(arg1)));
+ break;
+ case 26:
+ this->reset(new concrete_distribution<boost::math::skew_normal>(boost::math::skew_normal(arg1, arg2, arg3)));
+ break;
+ case 27:
+ this->reset(new concrete_distribution<boost::math::students_t>(boost::math::students_t(arg1)));
+ break;
+ case 28:
+ this->reset(new concrete_distribution<boost::math::triangular>(boost::math::triangular(arg1, arg2, arg3)));
+ break;
+ case 29:
+ this->reset(new concrete_distribution<boost::math::uniform>(boost::math::uniform(arg1, arg2)));
+ break;
+ case 30:
+ this->reset(new concrete_distribution<boost::math::weibull>(boost::math::weibull(arg1, arg2)));
+ break;
+
+
+ default:
+ // TODO Need some proper error handling here?
+ BOOST_ASSERT(0);
+ }
+ TRANSLATE_EXCEPTIONS_END
+} // any_distribution constructor.
+
+struct distribution_info
+{
+ const char* name; // of distribution.
+ const char* first_param; // Parameters' name like "degrees of freedom",
+ const char* second_param; // if required, else "",
+ const char* third_param; // if required, else "".
+ // triangular and non-centrals need 3 parameters.
+ // (Only the Bi-Weibull would need 5 parameters?)
+ double first_default; // distribution parameter value, often 0, 0.5 or 1.
+ double second_default; // 0 if there isn't a second argument.
+ // Note that defaults below follow default argument in constructors,
+ // if any, but need not be the same.
+ double third_default; // 0 if there isn't a third argument.
+};
+
+distribution_info distributions[] =
+{ // distribution name, parameter name(s) and default(s)
+ // Order must match any_distribution constructor above!
+ // Null string "" and zero default for un-used arguments.
+ { "Bernoulli", "Probability", "", "",0.5, 0, 0}, // case 0
+ { "Beta", "Alpha", "Beta", "", 1, 1, 0}, // case 1
+ { "Binomial", "Trials", "Probability of success", "", 1, 0.5, 0}, // case 2
+ { "Cauchy", "Location", "Scale", "", 0, 1, 0}, // case 3
+ { "Chi_squared", "Degrees of freedom", "", "", 1, 0, 0}, // case 4
+ { "Exponential", "lambda", "", "", 1, 0, 0}, // case 5
+ { "Extreme value", "Location", "Scale", "", 0, 1, 0}, // case 6
+ { "Fisher-F", "Degrees of freedom 1", "Degrees of freedom 2", "", 1, 1, 0}, // case 7
+ { "Gamma (Erlang)", "Shape", "Scale", "", 1, 1, 0}, // case 8
+ { "Geometric", "Probability", "", "", 1, 0, 0}, // case 9
+ { "HyperGeometric", "Defects", "Samples", "Objects", 1, 0, 1}, // case 10
+ { "InverseChiSq", "Degrees of Freedom", "Scale", "", 1, 1, 0}, // case 11
+ { "InverseGamma", "Shape", "Scale", "", 1, 1, 0}, // case 12
+ { "InverseGaussian", "Mean", "Scale", "", 1, 1, 0}, // case 13
+ { "Laplace", "Location", "Scale", "", 0, 1, 0}, // case 14
+ { "Logistic", "Location", "Scale", "", 0, 1, 0}, // case 15
+ { "LogNormal", "Location", "Scale", "", 0, 1, 0}, // case 16
+ { "Negative Binomial", "Successes", "Probability of success", "", 1, 0.5, 0}, // case 17
+ { "Noncentral Beta", "Shape alpha", "Shape beta", "Non-centrality", 1, 1, 0}, // case 18
+ { "Noncentral ChiSquare", "Degrees of Freedom", "Non-centrality", "", 1, 0, 0}, // case 19
+ { "Noncentral F", "Degrees of Freedom 1", "Degrees of Freedom 2", "Non-centrality", 1, 1, 0}, // case 20
+ { "Noncentral t", "Degrees of Freedom", "Non-centrality", "", 1, 0, 0}, // case 21
+ { "Normal (Gaussian)", "Mean", "Standard Deviation", "", 0, 1, 0}, // case 22
+ { "Pareto", "Location", "Shape","", 1, 1, 0}, // case 23
+ { "Poisson", "Mean", "", "", 1, 0, 0}, // case 24
+ { "Rayleigh", "Shape", "", "", 1, 0, 0}, // case 25
+ { "Skew Normal", "Location", "Shape", "Skew", 0, 1, 0}, // case 27 (defaults to Gaussian).
+ { "Student's t", "Degrees of Freedom", "", "", 1, 0, 0}, // case 28
+ { "Triangular", "Lower", "Mode", "Upper", -1, 0, +1 }, // case 29 3rd parameter!
+ // 0, 0.5, 1 also said to be 'standard' but this is most like an approximation to Gaussian distribution.
+ { "Uniform", "Lower", "Upper", "", 0, 1, 0}, // case 30
+ { "Weibull", "Shape", "Scale", "", 1, 1, 0}, // case 31
+};
+
+// How many distributions are supported:
+int any_distribution::size()
+{
+ return sizeof(distributions) / sizeof(distributions[0]);
+}
+
+// Display name of i'th distribution:
+System::String^ any_distribution::distribution_name(int i)
+{
+ if(i >= size())
+ return "";
+ return gcnew System::String(distributions[i].name);
+}
+// Name of first distribution parameter, or null if not supported:
+System::String^ any_distribution::first_param_name(int i)
+{
+ if(i >= size())
+ return "";
+ return gcnew System::String(distributions[i].first_param);
+}
+// Name of second distribution parameter, or null if not supported:
+System::String^ any_distribution::second_param_name(int i)
+{
+ if(i >= size())
+ return "";
+ return gcnew System::String(distributions[i].second_param);
+}
+// Name of third distribution parameter, or null if not supported:
+System::String^ any_distribution::third_param_name(int i)
+{
+ if(i >= size())
+ return "";
+ return gcnew System::String(distributions[i].third_param);
+}
+// default value for first parameter:
+double any_distribution::first_param_default(int i)
+{
+ if(i >= size())
+ return 0;
+ return distributions[i].first_default;
+}
+// default value for second parameter:
+double any_distribution::second_param_default(int i)
+{
+ if(i >= size())
+ return 0;
+ return distributions[i].second_default;
+}
+// default value for third parameter:
+double any_distribution::third_param_default(int i)
+{
+ if(i >= size())
+ return 0;
+ return distributions[i].third_default;
+}
+
+} // namespace boost_math
+
+
diff --git a/src/boost/libs/math/dot_net_example/boost_math/boost_math.h b/src/boost/libs/math/dot_net_example/boost_math/boost_math.h
new file mode 100644
index 000000000..f8132adbd
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/boost_math/boost_math.h
@@ -0,0 +1,331 @@
+// boost_math.h
+
+// Copyright John Maddock 2007.
+// Copyright Paul A. Bristow 2007.
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt
+// or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+//#define BOOST_MATH_OVERFLOW_ERROR_POLICY errno_on_error
+//#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
+// These are now defined in project properties
+// "BOOST_MATH_ASSERT_UNDEFINED_POLICY=0"
+// "BOOST_MATH_OVERFLOW_ERROR_POLICY=errno_on_error"
+// to avoid complications with pre-compiled headers.
+
+#ifdef _MSC_VER
+# pragma once
+# pragma warning (disable : 4127)
+#endif
+
+using namespace System;
+
+#define TRANSLATE_EXCEPTIONS_BEGIN try{
+
+#define TRANSLATE_EXCEPTIONS_END \
+ }catch(const std::exception& e){ \
+ System::String^ s = gcnew System::String(e.what());\
+ InvalidOperationException^ se = gcnew InvalidOperationException(s);\
+ throw se; \
+ }
+
+namespace boost_math {
+
+ class any_imp
+ {
+ public:
+ // Distribution properties.
+ virtual double mean()const = 0;
+ virtual double mode()const = 0;
+ virtual double median()const = 0;
+ virtual double variance()const = 0;
+ virtual double standard_deviation()const = 0;
+ virtual double skewness()const = 0;
+ virtual double kurtosis()const = 0;
+ virtual double kurtosis_excess()const = 0;
+ virtual double coefficient_of_variation()const = 0;
+ // Values computed from random variate x.
+ virtual double hazard(double x)const = 0;
+ virtual double chf(double x)const = 0;
+ virtual double cdf(double x)const = 0;
+ virtual double ccdf(double x)const = 0;
+ virtual double pdf(double x)const = 0;
+ virtual double quantile(double x)const = 0;
+ virtual double quantile_c(double x)const = 0;
+ // Range & support of x
+ virtual double lowest()const = 0;
+ virtual double uppermost()const = 0;
+ virtual double lower()const = 0;
+ virtual double upper()const = 0;
+ };
+
+ template <class Distribution>
+ class concrete_distribution : public any_imp
+ {
+ public:
+ concrete_distribution(const Distribution& d) : m_dist(d) {}
+ // Distribution properties.
+ virtual double mean()const
+ {
+ return boost::math::mean(m_dist);
+ }
+ virtual double median()const
+ {
+ return boost::math::median(m_dist);
+ }
+ virtual double mode()const
+ {
+ return boost::math::mode(m_dist);
+ }
+ virtual double variance()const
+ {
+ return boost::math::variance(m_dist);
+ }
+ virtual double skewness()const
+ {
+ return boost::math::skewness(m_dist);
+ }
+ virtual double standard_deviation()const
+ {
+ return boost::math::standard_deviation(m_dist);
+ }
+ virtual double coefficient_of_variation()const
+ {
+ return boost::math::coefficient_of_variation(m_dist);
+ }
+ virtual double kurtosis()const
+ {
+ return boost::math::kurtosis(m_dist);
+ }
+ virtual double kurtosis_excess()const
+ {
+ return boost::math::kurtosis_excess(m_dist);
+ }
+ // Range of x for the distribution.
+ virtual double lowest()const
+ {
+ return boost::math::range(m_dist).first;
+ }
+ virtual double uppermost()const
+ {
+ return boost::math::range(m_dist).second;
+ }
+ // Support of x for the distribution.
+ virtual double lower()const
+ {
+ return boost::math::support(m_dist).first;
+ }
+ virtual double upper()const
+ {
+ return boost::math::support(m_dist).second;
+ }
+
+ // Values computed from random variate x.
+ virtual double hazard(double x)const
+ {
+ return boost::math::hazard(m_dist, x);
+ }
+ virtual double chf(double x)const
+ {
+ return boost::math::chf(m_dist, x);
+ }
+ virtual double cdf(double x)const
+ {
+ return boost::math::cdf(m_dist, x);
+ }
+ virtual double ccdf(double x)const
+ {
+ return boost::math::cdf(complement(m_dist, x));
+ }
+ virtual double pdf(double x)const
+ {
+ return boost::math::pdf(m_dist, x);
+ }
+ virtual double quantile(double x)const
+ {
+ return boost::math::quantile(m_dist, x);
+ }
+ virtual double quantile_c(double x)const
+ {
+ return boost::math::quantile(complement(m_dist, x));
+ }
+ private:
+ Distribution m_dist;
+ };
+
+ public ref class any_distribution
+ {
+ public:
+ // Added methods for this class here.
+ any_distribution(int t, double arg1, double arg2, double arg3);
+ ~any_distribution()
+ {
+ reset(0);
+ }
+ // Is it OK for these to be inline?
+ // Distribution properties as 'pointer-to-implementations'.
+ double mean()
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->mean();
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double median()
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->median();
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double mode()
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->mode();
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double variance()
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->variance();
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double standard_deviation()
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->standard_deviation();
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double coefficient_of_variation()
+ { // aka Relative Standard deviation.
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->coefficient_of_variation();
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double skewness()
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->skewness();
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double kurtosis()
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->kurtosis();
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double kurtosis_excess()
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->kurtosis_excess();
+ TRANSLATE_EXCEPTIONS_END
+ }
+ // Values computed from random variate x.
+ double hazard(double x)
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->hazard(x);
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double chf(double x)
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->chf(x);
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double cdf(double x)
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->cdf(x);
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double ccdf(double x)
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->ccdf(x);
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double pdf(double x)
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->pdf(x);
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double quantile(double x)
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->quantile(x);
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double quantile_c(double x)
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->quantile_c(x);
+ TRANSLATE_EXCEPTIONS_END
+ }
+
+ double lowest()
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->lowest();
+ TRANSLATE_EXCEPTIONS_END
+ }
+
+ double uppermost()
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->uppermost();
+ TRANSLATE_EXCEPTIONS_END
+ }
+
+ double lower()
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->lower();
+ TRANSLATE_EXCEPTIONS_END
+ }
+ double upper()
+ {
+ TRANSLATE_EXCEPTIONS_BEGIN
+ return pimpl->upper();
+ TRANSLATE_EXCEPTIONS_END
+ }
+
+ // How many distributions are supported:
+ static int size();
+ // Display name of i'th distribution:
+ static System::String^ distribution_name(int i);
+ // Name of first distribution parameter, or null if not supported:
+ static System::String^ first_param_name(int i);
+ // Name of second distribution parameter, or null if not supported:
+ static System::String^ second_param_name(int i);
+ // Name of third distribution parameter, or null if not supported:
+ static System::String^ third_param_name(int i);
+ // Default value for first parameter:
+ static double first_param_default(int i);
+ // Default value for second parameter:
+ static double second_param_default(int i);
+ // Default value for third parameter:
+ static double third_param_default(int i);
+
+ private:
+ any_distribution(const any_distribution^)
+ { // Constructor is private.
+ }
+ const any_distribution^ operator=(const any_distribution^ d)
+ { // Copy Constructor is private too.
+ return d;
+ }
+ // We really should use a shared_ptr here,
+ // but apparently it's not allowed in a managed class like this :-(
+ void reset(any_imp* p)
+ {
+ if(pimpl)
+ { // Exists already, so
+ delete pimpl;
+ }
+ pimpl = p;
+ }
+ any_imp* pimpl;
+ };
+}
diff --git a/src/boost/libs/math/dot_net_example/boost_math/boost_math.sln b/src/boost/libs/math/dot_net_example/boost_math/boost_math.sln
new file mode 100644
index 000000000..4730d9ef9
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/boost_math/boost_math.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27130.2024
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "boost_math", "boost_math.vcxproj", "{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x64.ActiveCfg = Debug|x64
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x64.Build.0 = Debug|x64
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x86.ActiveCfg = Debug|Win32
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x86.Build.0 = Debug|Win32
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x64.ActiveCfg = Release|x64
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x64.Build.0 = Release|x64
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x86.ActiveCfg = Release|Win32
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {3ECDFDBF-9C5F-4C39-B5E5-581C15299AD1}
+ EndGlobalSection
+EndGlobal
diff --git a/src/boost/libs/math/dot_net_example/boost_math/boost_math.vcxproj b/src/boost/libs/math/dot_net_example/boost_math/boost_math.vcxproj
new file mode 100644
index 000000000..65b7679a7
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/boost_math/boost_math.vcxproj
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>15.0</VCProjectVersion>
+ <ProjectGuid>{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}</ProjectGuid>
+ <Keyword>ManagedCProj</Keyword>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CLRSupport>true</CLRSupport>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CLRSupport>true</CLRSupport>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CLRSupport>true</CLRSupport>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CLRSupport>true</CLRSupport>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;BOOST_MATH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../..</AdditionalIncludeDirectories>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ </ClCompile>
+ <Link>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BOOST_MATH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <AdditionalIncludeDirectories>../../../..</AdditionalIncludeDirectories>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ </ClCompile>
+ <Link>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../..</AdditionalIncludeDirectories>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../..</AdditionalIncludeDirectories>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="AssemblyInfo.cpp" />
+ <ClCompile Include="boost_math.cpp" />
+ <ClCompile Include="Stdafx.cpp">
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="boost_math.h" />
+ <ClInclude Include="resource.h" />
+ <ClInclude Include="Stdafx.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="app.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/boost_math/boost_math.vcxproj.filters b/src/boost/libs/math/dot_net_example/boost_math/boost_math.vcxproj.filters
new file mode 100644
index 000000000..001f2489b
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/boost_math/boost_math.vcxproj.filters
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="AssemblyInfo.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="boost_math.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="Stdafx.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="boost_math.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="resource.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="Stdafx.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="app.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/boost_math/resource.h b/src/boost/libs/math/dot_net_example/boost_math/resource.h
new file mode 100644
index 000000000..c775cb924
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/boost_math/resource.h
@@ -0,0 +1,9 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by app.rc
+
+// Copyright Paul A. Bristow & John Maddock 2009
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt
+// or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistEx.resx b/src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistEx.resx
new file mode 100644
index 000000000..804e65e01
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistEx.resx
@@ -0,0 +1,322 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <data name="logoPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ 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
+ FgAAAABJRU5ErkJggg==
+</value>
+ </data>
+</root> \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistributionExplorer.Designer.cs b/src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistributionExplorer.Designer.cs
new file mode 100644
index 000000000..dc2740ae5
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistributionExplorer.Designer.cs
@@ -0,0 +1,193 @@
+namespace distribution_explorer
+{
+ partial class AboutDistributionExplorer
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutDistributionExplorer));
+ this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
+ this.logoPictureBox = new System.Windows.Forms.PictureBox();
+ this.labelProductName = new System.Windows.Forms.Label();
+ this.labelVersion = new System.Windows.Forms.Label();
+ this.labelCopyright = new System.Windows.Forms.Label();
+ this.labelCompanyName = new System.Windows.Forms.Label();
+ this.textBoxDescription = new System.Windows.Forms.TextBox();
+ this.okButton = new System.Windows.Forms.Button();
+ this.tableLayoutPanel.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit();
+ this.SuspendLayout();
+ //
+ // tableLayoutPanel
+ //
+ this.tableLayoutPanel.ColumnCount = 2;
+ this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F));
+ this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F));
+ this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0);
+ this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0);
+ this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1);
+ this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2);
+ this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3);
+ this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4);
+ this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5);
+ this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel.Location = new System.Drawing.Point(12, 11);
+ this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.tableLayoutPanel.Name = "tableLayoutPanel";
+ this.tableLayoutPanel.RowCount = 6;
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.Size = new System.Drawing.Size(556, 326);
+ this.tableLayoutPanel.TabIndex = 0;
+ //
+ // logoPictureBox
+ //
+ this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image")));
+ this.logoPictureBox.InitialImage = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.InitialImage")));
+ this.logoPictureBox.Location = new System.Drawing.Point(4, 4);
+ this.logoPictureBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.logoPictureBox.Name = "logoPictureBox";
+ this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6);
+ this.logoPictureBox.Size = new System.Drawing.Size(175, 318);
+ this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.logoPictureBox.TabIndex = 12;
+ this.logoPictureBox.TabStop = false;
+ //
+ // labelProductName
+ //
+ this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelProductName.Location = new System.Drawing.Point(191, 0);
+ this.labelProductName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
+ this.labelProductName.MaximumSize = new System.Drawing.Size(0, 21);
+ this.labelProductName.Name = "labelProductName";
+ this.labelProductName.Size = new System.Drawing.Size(361, 21);
+ this.labelProductName.TabIndex = 19;
+ this.labelProductName.Text = "Product Name Distribution Explorer";
+ this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // labelVersion
+ //
+ this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelVersion.Location = new System.Drawing.Point(191, 32);
+ this.labelVersion.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
+ this.labelVersion.MaximumSize = new System.Drawing.Size(0, 21);
+ this.labelVersion.Name = "labelVersion";
+ this.labelVersion.Size = new System.Drawing.Size(361, 21);
+ this.labelVersion.TabIndex = 0;
+ this.labelVersion.Text = "Version 1.1";
+ this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // labelCopyright
+ //
+ this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelCopyright.Location = new System.Drawing.Point(191, 64);
+ this.labelCopyright.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
+ this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 21);
+ this.labelCopyright.Name = "labelCopyright";
+ this.labelCopyright.Size = new System.Drawing.Size(361, 21);
+ this.labelCopyright.TabIndex = 21;
+ this.labelCopyright.Text = "Copyright John Maddock and Paul A. Bristow 2007";
+ this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // labelCompanyName
+ //
+ this.labelCompanyName.AutoSize = true;
+ this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.labelCompanyName.Location = new System.Drawing.Point(191, 111);
+ this.labelCompanyName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
+ this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 21);
+ this.labelCompanyName.Name = "labelCompanyName";
+ this.labelCompanyName.Size = new System.Drawing.Size(361, 17);
+ this.labelCompanyName.TabIndex = 22;
+ this.labelCompanyName.Text = "Company Name";
+ this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // textBoxDescription
+ //
+ this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.textBoxDescription.Location = new System.Drawing.Point(191, 132);
+ this.textBoxDescription.Margin = new System.Windows.Forms.Padding(8, 4, 4, 4);
+ this.textBoxDescription.Multiline = true;
+ this.textBoxDescription.Name = "textBoxDescription";
+ this.textBoxDescription.ReadOnly = true;
+ this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both;
+ this.textBoxDescription.Size = new System.Drawing.Size(361, 155);
+ this.textBoxDescription.TabIndex = 23;
+ this.textBoxDescription.TabStop = false;
+ this.textBoxDescription.Text = resources.GetString("textBoxDescription.Text");
+ //
+ // okButton
+ //
+ this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.okButton.Location = new System.Drawing.Point(452, 295);
+ this.okButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.okButton.Name = "okButton";
+ this.okButton.Size = new System.Drawing.Size(100, 27);
+ this.okButton.TabIndex = 24;
+ this.okButton.Text = "&OK";
+ //
+ // AboutDistributionExplorer
+ //
+ this.AcceptButton = this.okButton;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(580, 348);
+ this.Controls.Add(this.tableLayoutPanel);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "AboutDistributionExplorer";
+ this.Padding = new System.Windows.Forms.Padding(12, 11, 12, 11);
+ this.ShowIcon = false;
+ this.ShowInTaskbar = false;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "AboutDistributionExplorer";
+ this.tableLayoutPanel.ResumeLayout(false);
+ this.tableLayoutPanel.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;
+ private System.Windows.Forms.PictureBox logoPictureBox;
+ private System.Windows.Forms.Label labelProductName;
+ private System.Windows.Forms.Label labelVersion;
+ private System.Windows.Forms.Label labelCopyright;
+ private System.Windows.Forms.Label labelCompanyName;
+ private System.Windows.Forms.TextBox textBoxDescription;
+ private System.Windows.Forms.Button okButton;
+ }
+}
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistributionExplorer.cs b/src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistributionExplorer.cs
new file mode 100644
index 000000000..3db49d9fb
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistributionExplorer.cs
@@ -0,0 +1,115 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Windows.Forms;
+using System.Reflection;
+
+namespace distribution_explorer
+{
+ partial class AboutDistributionExplorer : Form
+ {
+ public AboutDistributionExplorer()
+ {
+ InitializeComponent();
+
+ // Initialize the AboutBox to display the product information from the assembly information.
+ // Change assembly information settings for your application through either:
+ // - Project->Properties->Application->Assembly Information
+ // - AssemblyInfo.cs
+ this.Text = String.Format("About {0}", AssemblyTitle);
+ this.labelProductName.Text = AssemblyProduct;
+ this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion);
+ this.labelCopyright.Text = AssemblyCopyright;
+ this.labelCompanyName.Text = AssemblyCompany;
+ this.textBoxDescription.Text = AssemblyDescription;
+ }
+
+ #region Assembly Attribute Accessors
+
+ public string AssemblyTitle
+ {
+ get
+ {
+ // Get all Title attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
+ // If there is at least one Title attribute
+ if (attributes.Length > 0)
+ {
+ // Select the first one
+ AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
+ // If it is not an empty string, return it
+ if (titleAttribute.Title != "")
+ return titleAttribute.Title;
+ }
+ // If there was no Title attribute, or if the Title attribute was the empty string, return the .exe name
+ return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
+ }
+ }
+
+ public string AssemblyVersion
+ {
+ get
+ {
+ return Assembly.GetExecutingAssembly().GetName().Version.ToString();
+ }
+ }
+
+ public string AssemblyDescription
+ {
+ get
+ {
+ // Get all Description attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
+ // If there aren't any Description attributes, return an empty string
+ if (attributes.Length == 0)
+ return "";
+ // If there is a Description attribute, return its value
+ return ((AssemblyDescriptionAttribute)attributes[0]).Description;
+ }
+ }
+
+ public string AssemblyProduct
+ {
+ get
+ {
+ // Get all Product attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
+ // If there aren't any Product attributes, return an empty string
+ if (attributes.Length == 0)
+ return "";
+ // If there is a Product attribute, return its value
+ return ((AssemblyProductAttribute)attributes[0]).Product;
+ }
+ }
+
+ public string AssemblyCopyright
+ {
+ get
+ {
+ // Get all Copyright attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
+ // If there aren't any Copyright attributes, return an empty string
+ if (attributes.Length == 0)
+ return "";
+ // If there is a Copyright attribute, return its value
+ return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
+ }
+ }
+
+ public string AssemblyCompany
+ {
+ get
+ {
+ // Get all Company attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
+ // If there aren't any Company attributes, return an empty string
+ if (attributes.Length == 0)
+ return "";
+ // If there is a Company attribute, return its value
+ return ((AssemblyCompanyAttribute)attributes[0]).Company;
+ }
+ }
+ #endregion
+ }
+}
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistributionExplorer.resx b/src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistributionExplorer.resx
new file mode 100644
index 000000000..8642ec382
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/AboutDistributionExplorer.resx
@@ -0,0 +1,781 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <data name="logoPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ Qk02YwAAAAAAADYAAAAoAAAAYAAAAFgAAAABABgAAAAAAAAAAAB0EgAAdBIAAAAAAAAAAAAA////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////N/X0NvbzNvXyNvbzNvXzNvXzNvTyNvbzNvXzNvXz
+ NvTzNvXzNvbzNvXzNvXzNvXzNvX0Nvb0N/X0NvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvX0NvXzN/X0Nvb0NvX0NvXzNvXzNvXzNvbzNvXzNvTzNvXzNvXzNvbzNvTyNvXzNvXzNvbz
+ NvXyNvbzN/X0NvXzN/b0R/b0NvTzNvXzNvX0NvXyNvX0NvXzNvbzNvX0NvXzNvXzNvXzNvTyNvXzNvXz
+ Nvb0NvXzNvX0N/XzNvXzNvb0NvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvb0
+ NvXzN/XzNvX0NvXzNvb0NvXzNvXzNvTyNvXzNvXzNvXzNvX0NvbzNvXzNvb0NvXyNvX0NvXzNvTzNfbz
+ NvTyNfXzNvXyNvXyNfbzNvXyNvXzNvTyNvX0NvXzNvXzNvXzNvTzNvXyNvb0NvXzNvXzNvXzNvXzNvXz
+ NvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXz
+ NvXzNvXzNvb0NvXyNvTzNvXzNvXzNvXzNvX0NvTyNvXzNvXyNfbzNvXyNvXyNvTyNfXzNvb0NvXzN/X0
+ NfXzNfXzNvTzNfXyNvXzNvXzNvTzNvTzNvbzNvb0NfXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNfXzNvb0
+ NvbzNvTzNvTzNvXzNvXzNfXyNvTzNfXzNfXzN/X0NvXzNvbzNfXzNvbyNfTyNvTyN/XyNvXzNvTyNvX0
+ NfXzNvXzNvXzNvTzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4ODg4NvXzNvXz
+ NvXzNvXzNvXzNvXzODg4NvXzNvXzNvb0NvXzNvXzODg4NvXzNvXzNvXzODg4Nvb0NvXzNvTzODg4NvXz
+ NfXzNvX0NvTyNvXzN/XyNvTyNfTyNvXzN/X0NfXzN/XzN/XzNfXzNvXzNfbzNvXzNvXzNvTzNvTyNvXy
+ Nvb0Nvb0NvXzNvb0N/XzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzN/XzNvb0NvXzNvb0Nvb0NvXyNvTyNvTzNvXzNvXzNfbzNvXz
+ NfXzN/XzN/XzNvXyNvTzNfXzNfTzNvX0NvXzNvTzNvXyNfTzNvTzNfTzNvbzNvb0NfXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzODg4ODg4ODg4ODg4ODg4ODg4ODg4
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNfXzNvb0NvbzNfTzNvTzNfTzNvXyNvTzNvXzNfXyNfTzNvXy
+ NvXzNfX0NvXzNvX0NvX0NfXzNvb0NvXzNvXzNvTyNvXyNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvb0NvXzNvXzNvXyNvTyNvXzNvXzNvb0NfXzNvX0NvX0NvXzNvXzNvXzN/TyNvXzNvXz
+ NvTzNvXyNfXzNvXzNfTzNvbzNvb0NfXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNfXzNvb0NvbzNfTzNvXzNfXzNvXyNvTzNvXzNvXzNvbzNvXyNfbzNvX0NvXzNvXzNvb0NvX0NvXz
+ NvXzNvXyNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXy
+ NvXzNvXzNvX0Nvb0NvXzNvXzNvX0NvTzNvTyNfXyNfXzNvXzNvbzNvXzNvX0NvXzNvTzNvX0NfXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNfXzNvX0NvTzNvXzNvX0NvXz
+ NvbzNvXzNfXzN/bzNfXzNvXzNvTzNvTyNvXyNvXzNvXzNvTyNvbzNvb0NvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzODg4NvXzNvXzNvXzNvXzNvXzODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvbzNvTyNvXzNvXzNvXyNvTyNvTzNvTy
+ NvTzNvTyNvXzNvXzNvXzNvTzNvTzNvTzNvb0NvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvb0NvTzNvTzNvTzNvXzNvXzNvXzNvX0Nvb0NfX0NvXzNvXz
+ NvXzNvXzNvXzNvbzNvb0NfXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNfXzNvb0NvbzNvXzNvXzNvXzNvXzNvTyNfXzNvXzNvTzNfTyNvXyN/XzNvTzNvTyNvbz
+ Nvb0NvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzODg4NvXzNvXzNvXzNvXzODg4ODg4ODg4ODg4ODg4ODg4ODg4NvXzODg4ODg4ODg4ODg4ODg4ODg4
+ ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
+ Nvb0NvbzNvTyNvTzN/X0NvX0NvTzNvX0NvXzNfX0NvbzNvb0NvXzNvXzNvTyNvX0NvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvTyNvXz
+ NvXzN/b0NvbzNvXzNvXyNvTzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvX0N/b0NvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzN/b0NvX0NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXyNfTzNfbzNvX0NvXzNvXzNvbzNvb0NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4ODg4NvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvb0NvbzNvXzNvXzNvX0NvbzNvXzNvX0NvbzNvXyNvXz
+ NvXzNvTzNvXyNvXzNvb0NvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvX0Nvb0NvXzNvXyNvTzNvXzNvXzNvXyNvTzNfXzNvXzNvb0NfXzNvXzNvXzN/bzNvb0
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ ODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvb0N/bzNvXzNvXzNfXzNvb0NfTzNvXzN/bzNvb0NvXzNvXzNvXzNvXyNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXyNvXz
+ NvXzNvXzNvb0NvTzNvXzNvbzNvXyNvXzNvXzNvXzNvb0NvXzNvb0NvXzNvb0NvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvb0NvXzNvb0NvXzNvXzNvXzNvXyNvbz
+ NvXzNvXzNvX0NvXzNvXzNvTyNvb0Nvb0Nvb0NvX0N/b0Nvb0NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvb0NvXzNvb0N/b0NvX0Nvb0Nvb0Nvb0NvTyNvXzNvXzN/X0NvTzNvXzNvXyNvXzNvXz
+ NvXzNvTyNvXzNfXzNvXzNvb0NvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0
+ NvXzNvXzNvXzNvb0NvXzNfXzNvXzNvTyNvXzNvXzNvXzNvbzNvXzNvXzNvXzNvXzNvX0NvTzNvXzNfXz
+ NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0
+ NvXzNfXzNvXzNvTzNvX0NvXzNvXzNvbzNvXzNvbzNvXzNvXzNvXzNvTyNvXzNfXzNvXzNvb0NvXzNvXz
+ NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ ODg4ODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvb0NvXzNfXzNvXzNvTy
+ NvXzNvXzNvXzNvbzNvXzNvXzNvX0NvXzNvXzNvTyNvb0Nvb0Nvb0NvX0N/b0Nvb0NvXzNvb0NvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvb0N/b0NvX0Nvb0Nvb0Nvb0NvTyNvXzNvXzNvX0NvTz
+ NvXzNvXyNvXyNvXzNvXzNvXzNvb0NvXzNvb0NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzODg4ODg4
+ ODg4ODg4ODg4ODg4ODg4NvXzNvXzODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
+ ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
+ ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4Nvb0NvXzNvXzNvXzNvXyNvbzNvXzNvXzNvb0NvXz
+ NvXzNvXzNvXyNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXyNvXzNvXzNvXzNvb0NvTzNvXzNvbzNvb0NfXzNvXzNvXzN/bzNvb0
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvb0N/bzNvXzNvXzNfXzNvb0NfTzNvXzNfbzNvXyNvXzNvXzNvTzNvXyNvXzNvb0NvX0NvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4ODg4NvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0Nvb0NvXzNvXyNvTz
+ NvXzNvXzNvXyNvTzNfXzNvXzNfbzNvX0NvXzNvXzNvbzNvb0NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvb0NvbzNvXzNvXzNvX0NfbzNvXz
+ NvX0NvbzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvX0N/b0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzN/b0NvX0NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNfTzNvXyNfTzNvbzNvb0
+ NvXzNvXzNvTyNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvX0NvTyNvXzNvXzNvb0NvbzNvXzNvXyNvTzNfTyNvXyN/XzNvTzNvTyNvbz
+ Nvb0NvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXz
+ Nvb0NvbzNvTyNvTzN/XzNvXyNfTyNvX0NvXzNfX0NvXzNvXzNvXzNvXzNvXzNvbzNvb0NfXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNfXzNvb0NvbzNvXzNvXz
+ NvXzNvXzNvXzNfXzNvXzNvTzNfXzNvXzNvXzNvTzNvTzNvTzNvb0ODg4ODg4ODg4NvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvb0NvTzNvTzNvTzNvXzNvXzNfXzNvX0
+ Nvb0NfX0NvTzNvTyNvXyNvXzNvXzNvTyNvbzNvb0ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvbzNvTyNvXzNvXzNvXyNvTyNvTzNvTyNvTzNvTyNfXzNvXz
+ NvbzNvXzNvX0NvXzNvTzNvX0ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNfXzNvX0NvTzNvXzNvX0NvXzNvbzNvXzNfXzN/bzNfXzNvXzNvX0NvXzNvXyNvb0NvX0NvXz
+ NvXzNvXyODg4NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXy
+ NvXzNvXzNvX0Nvb0NvXzNvXzNvX0NvTzNvTyNfXyNvXzNvXzNvTzNvXyNfXzNvXzNfTzNvbzODg4NfXz
+ NvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4NvXzNvXzNvXzNvXzODg4
+ ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
+ ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
+ ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4NfXzNvXy
+ NvTzNvXzNvXzNvbzNvXyNfbzNvXzNvX0NvX0NfXzNvb0NvXzNvXzNvTyODg4NvXzNvXzNvb0NvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXyNvTyNvXzNvXzNvb0NfXzNvX0NvX0NvXzNvXz
+ NvXzN/TyNfTzNvX0NvXzNvTzNvb0NfX0NvX0NfTzODg4Nvb0NfXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNfXzNvb0NvbzNfTzNvX0NfX0Nvb0NvTzNvXzNvX0NfTzNvTyNvb0NfX0N/XzN/Xz
+ NfXzNvXzNfbzNvXzNvXzNvTzODg4NvXyNvb0Nvb0NvXzNvb0N/XzNvXzNvXzNvXzNvXzNvXzODg4NvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4ODg4NvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzN/XzNvb0NvXzNvb0
+ Nvb0NvXyNvTyNvTzNvXzNvXzNfbzNvXzNfXzN/XzN/XzNvXyNvTzNfXzNfTyNvTyN/XyNvXzNvTyNvX0
+ NfXzNvXzODg4NvTzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0ODg4NvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvTzNvXzNvXz
+ NfXzNvX0NvTyNvXzN/XyNvTyNfTyNvXzN/X0NfXzNvXzN/X0NfXzNfXzNvTzNfXyODg4ODg4ODg4NvTz
+ NvbzNvb0NfXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNfXzNvb0NvbzNvTzNvTzNvXzNvXzNfXyNvTzNfXz
+ NfXzN/X0NvXzNvbzNfXzNvTyNvXyNvXyNfTzNvXyNvXzNvTyNvX0NvXzODg4NvXzNvTzNvXyNvb0NvXz
+ NvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvX0NvXzNvXzNvXzNvXzNvXzNvb0NvXyNvTzNvXzNvXzNvXzNvX0NvTyNvXzNvXyNfbzNvXyNvXyNvTy
+ NfXzNvb0NvTzNvXzNvX0NvXyNvX0NvXzNvbzNvX0NvXzNvXzNvXzNvTyNvXzNvXzNvb0NvXzNvX0N/Xz
+ NvXzNvb0NvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvb0NvXzN/XzNvX0NvXz
+ Nvb0NvXzNvXzNvTyNvXzNvXzNvXzNvX0NvbzNvXzNvX0NvXyNvX0NvXzNvTzNfXzNvTyNfXzN/X0NvTz
+ NvX0NvbzNvXzNvXzNvTyNvbzNvXzNvXzNvTzNvXzNvbzNvXzNvXzNvXzNvX0Nvb0N/XzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzN/XzNvb0NvX0NvXzNvXzNvXzNvbzNvXz
+ NvTzNvXzNvXzNvbzNvTyNvXzNvXzNvbzNvb0NvbzN/X0NvXzN/b0Sfb0NvXyNfTyN/XzNvXyNvbzNfXy
+ NvXzNvTyNvXyNvXzNvXzNvXzNvTyNvXyNvb0Nvb0NvXzNvb0Nvb0N/XzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzN/XzNvb0Nvb0NvXzNvb0Nvb0NvXyNvTyNvXzNvXzNvXzNvXyNvTy
+ NvXzNfXyNvbzNvXyN/XzNfTyNvXyN/b0NfXzgvn4N/TzNvXyNvb0NvXzNfXzNvXzNvXyNvTzNvbzNvX0
+ NfTzNvXzNvXzNvXzN/XyNvb0N/b0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzN/b0Nvb0N/XyNvXzNvXzNvXzNfTzNvX0NvbzNvTzNvXyNvXzNfXzNvXz
+ Nvb0NvXyN/TzNvXzWff0p/r5Nvb0NfXzN/X0NvXzNvX0NvTzNvXzNfXzNvXzNvXyN/X0N/XzN/XzNvXz
+ NvXzN/XzNvb0Nvb0NvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXz
+ NvXzNvb0Nvb0N/XzNvXzNvXzN/XzN/XzN/X0NvXyNvXzNfXzNvXzNvTzNvX0NvXzN/X0NfXzNvb0PvXz
+ mPn4rfv6N/XzNvTyNvXzNvb0NfbzNfXyNfTzNvXyNvX0NvXzNvbzNvXzNvXzNvTzNvXzNvXzN/XyNvb0
+ NvXzNvb0NvXzNvXzNvXzN/XzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzN/XzNvXzNvXzNvXzNvb0NvXzNvb0N/XyNvXz
+ NvXzNvTzNvXzNvXzNvbzNvXzNvX0NvXyNfTzNfXyNfbzNvb0NvXzNvTyN/Xzd/j2qvr6svv6UPf0NvXz
+ NfTzNvXyNvTzNvbzNvTzNvbzNvX0NvX0NvTzNvXyNvXzNvXzNvTzNvXzNvXzNvXyNvXzNvXzNvXzNvb0
+ NvXzNvb0NvXzN/b0NvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXz
+ NvXzNvXzNvXzNvXzNvXzN/b0NvXzNvb0NvXzNvb0NvXzNvXzNvXzNvXyNvXzNvXzNvTzNvXzNvXzNvXy
+ NvTzNvX0NvX0NvbzNvTzNvbzNvTzNvXyNfTzNvXzUPf1qPv6r/v6uPv7mfr5QPb0Nvb0NvXzODg4ODg4
+ ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
+ ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
+ ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
+ ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
+ ODg4ODg4ODg4NvXzNvb0QPb0mfr5rfv6tvz7vfz7q/v6ivr5OPXzNvb0NfXzN/TyN/bzN/XzNfTzNvTz
+ N/X0NvXzNvXzNvXyNvXzN/XzNvXzNvXzNvXzNvTyNvXyNvb0NvX0Nvb0NvXzNvb0NvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvb0
+ NvX0Nvb0NvXyNvTyNvXzNvXzNvXzN/XzNvXzNvXyNvXzNvXzN/X0NvTzNfTzN/XzN/bzN/TyNfXzNvb0
+ OPXzivr5q/v6s/z7u/z7w/z8sfv6qfv6c/n3N/XzN/byNvXzNvXyNvTzNvXyN/XzNvTzN/X0NvXzNvTz
+ NvbzN/X0NfTzNvXzNvTyNvXzNvTyNvXzNvXzNvb0NfXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXz
+ Nvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNfXzNvb0NvXzNvXzNvTyNvXz
+ NvTyNvXzNfTzN/X0NvbzNvTzNvXzN/X0NvTzN/XzNvX0NvTzNvXyNvXzN/byN/Xzc/n3qfv6sfv6ufv6
+ wfz7yPz7t/v6r/v6qPv6Xfb0N/XzNvb0NvXzNvX0NvXzNvX0N/XzNvTzN/XyNvX0NvXzNvXyNvX0NvX0
+ NvXzNvXzNvXzNvTyNvTzNvXyNvb0NvXzNfXzNvXzNvXzNvb0NvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvb0NvXzNvXzNvXzNvb0NvXzNvXzNfXzNvXzNvb0NvXyNvTzNvTyNvXzNvXzNvXzNvX0NvX0NvXy
+ NvXzNvX0N/XyNvTzN/XzNvX0NvXzNvX0NvXzNvb0N/XzXfb2qPv6r/v6t/v6v/z7xvz7zfz8vvz7tvv6
+ r/v6pfv6VPf0NvXzNvTyNvb0NvTyNvXzNvXyNfTzNvbzNvX0NvX0NvXzNvTzNvXyNvXzNvTzNvXzNvTz
+ NvXzNvTyNvbzNvX0Nvb0NvXzNfXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
+ NvXzNvXzNfXzNvXzNvb0NvX0NvbzNvTyNvXzNvTzNvXzNvTzNvXzNvXyNvTzNvXzNvX0NvX0NvbzNfTz
+ NvXyNvXzNvTyNvb0NvTyNvXzVPf2pfv6r/v7tvv6vvz7xfz7zPz80vz8w/v7vPv6tfv6rvv7ovv6UPb1
+ NvXzNvb0Nvb0NvX0NvTzN/XzNvXzNvTzNvbzNfXzN/XzN/bzNvXzNvX0NvXzNvXzNvXzNvTzNfTzNvTy
+ NvbzNvX0Nvb0NvXzNvb0Nvb0NvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXz
+ NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvb0Nvb0NvXzNvb0NvX0
+ NvbzNvTyNfTzNvTzNvXzNvXzNvXzNvX0NvXzN/bzN/XzNfXzNvbzNvTzNvXzN/XzNvTzNvX0Nvb0Nvb0
+ NvXzUPb1ovv6rvv7tfv6vPv6w/v7yvz80Pz81/38yfz8wvv7u/v6tPv6rfv6ofr5Tvb0NvXzNvTyNvXz
+ NvTyN/TzNvXzNvX0NvbzNvXzNvXyNvX0NvTyNvTzNvX0NvXzNfX0NvXzNvTzNvXzNvXzNvTyNvbzNvXy
+ NvXzNvb0NvXzNvb0Nvb0NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvX0Nvb0NvXzNvXzNvXzNvb0NvX0
+ NvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvb0Nvb0NvXzNvb0NvXzNvXyNvbzNvTyNvXzNvXzNvTzNvXz
+ NfX0NvXzNvX0NvTzNvTyNvX0NvXyNvXzNvbzNvX0NvXzN/TzNvTyNvXzNvTyNvXzTvb0oPr5rfv6tPv6
+ u/v6wvv7yfz80Pz81v392/39z/z8yPz8wvz8u/z7tPv7rfv6n/r5TPb0NvXzNvb0NvXzN/X0NfTzNvXz
+ NfTyNvbzNvXzNfXyNvXzNvXzNvTyNfXyNvb0NvXzNvXzNvXzNvX0NvTzNfTyNvXzNvTyNvbzNvb0Nvb0
+ NvXzNvXzNvXzNfXzNvXzNvb0NvXzNvXzNvb0NvXzNvXzNvXzODg4ODg4ODg4NvXzNvb0NvXzNvXzNvb0
+ NvXzNfXzNvXzNvXzNvXzNvb0Nvb0NvbzNvTyNvXzNfTyNvTzNvX0NvXzNvXzNvXzNvb0NfXyNvTyNvXz
+ NvXzNfXyNvXzNvbzNfTyNvXzNfTzN/X0NvXzNvb0NvXzTPb0n/r5rfv6tPv7u/z7wvz8yPz8z/z81f39
+ 2/394P7+1P39z/39yf38wfz7u/z7tPv7rfv6ovv6Wff0N/XzN/TyNfbzNvTyNvTzNfXzNvX0NfTzNvbz
+ NvXzNvX0NvXzNvTzNvTzNvbzNvXyNvXzNfX0NvXzNvXzNvXzNvTyNvXzNvXzNvTzNvXyNfXyNvb0NvXz
+ Nvb0NvXzNvb0NvXzNvX0Nvb0NfXzNfXzNfXzODg4NfXzNvb0NvX0NvXzNvb0NvXzNvb0NvXzNvb0NfXy
+ NvXyNvTzNvXzNvXzNvTyNvXzNvXzNvXzNfX0NvXzNvXyNvbzNvTzNvTzNvXzNvX0NvXzNvbzNfTzNvX0
+ NfXzNvTzNvTyNfb0N/TyN/XzWff0ovv6rfv6tPv7u/z7wfz7yf38z/391P392v393/7+5P7+2f381f39
+ zvz8yPz7wfz7u/z7tPv6rvv6p/v6Zvf1NfXzNvb0Nvb0N/XzNvbyNvbzNvXzNvXyNvTzNvXyNvXyNfXz
+ NvXzNvXzNvTzNvbzNvb0NvX0NfXzNvXzNvXzNvTzNvXzNvTzNfXzNvXzNvTzNvTyNvbzNvXyN/bzNvXy
+ Nvb0Nvb0NvXzNvXzNvXzODg4NvXzNvb0Nvb0NvXyN/bzNvXyNvbzNvTyNvTzNvXzNfXzNvTzNvXzNvTz
+ NvXzNvXzNfXzNvX0Nvb0NvbzNvTzNvXzNvXzNfXzNvXyNvXyNvTzNvXyNvXzNvbzNvbyN/XzNvb0Nvb0
+ NfXzZvf1p/v6rvv6tPv6u/z7wfz7yPz7zvz81f392f383/794/7+5/793v382f381Pz8zvz8yf38wvz8
+ vPz7tfv6r/v6p/r6c/n3N/XzNvTyNfTzNvXyNfX0NvbzNfXzNvX0NvX0NfTzNfbzN/XyNfX0NvX0NvXz
+ NvTzNfXyNvb0NvXzNvX0NfX0NvXzNvTzNfXzNvXzNvX0NvTyNvXzNvXzNvXzNvXzNvXzNvTyNvTzNvXz
+ NvXzODg4NvTzNvTyNvXzNvXzNvXzNvXzNvXzNvTyNvX0NvXzNfXzNvTzNvXzNfX0NvX0NvXzNvb0NfXy
+ NvTzNvXzNfTzNfX0N/XyNfbzNfTzNvX0NvX0NfXzNvbzNfX0NvXyNfTzNvTyN/Xzc/n3p/r6r/v6tfv6
+ vPz7wvz8yf38zvz81Pz82f393v394v395v396v794v393v382f381P39z/39yPz7w/z8vfz7t/z7r/v6
+ qfv6ivn5Qvb0NvXzNvTyNfXzNvTyNfTyNvTzNvXzNvXyN/TzNvTzN/bzN/X0NfXzNvXzNvXzN/bzNvTz
+ NvXyNvXyNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvTzNvXzODg4NvXzNvXz
+ NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvX0NvXyNvTzN/bzNvXzNvXzNfXzN/X0N/bz
+ NvTzN/TzNvXyNvXzNvTzNfTyNvTyNfXzNvTyNvXzQvb0ivn5qfv6r/v6t/z7vfz7w/z8yPz8z/391P39
+ 2f393v394v395v396v7+7f7+5v394v393v382v791P38z/z8yfz8xPz8vvz7t/v6svz7rPv6oPv6W/f0
+ NfXzNvb0NfTzNvTyNfX0NvTzNvXzNvXzNfXyN/XzN/b0NfXzNvX0NvXzNvXzNfXzNvXzNfbzNvTzNfXz
+ NvXyNvb0NfXzNvb0NvTzNvX0NfXzNvXzNvXzNvXzNvXzNvX0Nvb0ODg4NvXzNvXzNvX0NvXzNfX0NvX0
+ NvTzNvb0NfXzNvb0NvXyNfXzNvTzNfbzNvXzNfXzNvXzNvXzNvX0NfXzN/b0N/XzNfXyNvXzNvXzNvTz
+ NfX0NvTyNfTzNvb0NfXzW/f0oPv6rPv6svz7t/v6vvz7xPz8yfz8z/z81P382v793v394v395v396v7+
+ 7f7+8f/+6v7+5v394v393v792v391f380Pz8y/38xfz7v/z7uvz7s/v6rvv7p/v6ffj3PfXzNvXzN/b0
+ NvXzNfTyNvXyNvTzNvXzNvXzNvX0NfXzNvb0NvbzNvXzN/X0Nvb0NvXzNfXzNvXzNvXzNvbzNvTyNvbz
+ NfXyNvXyNvb0Nvb0NvXyN/X0NvXzNvX0Nvb0ODg4NvXzN/X0NvXyNvb0Nvb0NvXyNfXyNvbzNvTyNvbz
+ NvXzNvXzNfXzNvXzNvb0N/X0NvXzNvbzNvb0NfXzNvX0NvXzNvXzNvTzNvXyNfTyNvXzN/b0NvXzPfXz
+ ffj3p/v6rvv7s/v6uvz7v/z7xfz7y/380Pz81f392v393v794v395v396v7+7v7+8f/+8//+7f7+6v7+
+ 5/7+4/793/792/391v380f38zPz8xvz7wfv7u/v7tvv7sPv7qvr5mvn4X/f1NfXzNvTyNvTyNfXzNfXz
+ NvX0Nvb0Nvb0NvXzNvX0NvXzNvbzNfbzNvXzNvXyNfXyNvX0NfTzNvXzNfTyNfXzNvX0NvTzNfTzNvTz
+ NvbzNvTzNvbzNvb0NvTzODg4NvbzNvTzNvbzNvTzNfTzNvTzNvX0NfXzNfTyNvXzNfTzNvX0NfXyNvXy
+ NvXzNfbzNvbzNvXzNvX0NvXzNvb0Nvb0NvX0NfXzNfXzNvTyNvTyNfXzX/f1mvn4qvr5sPv7tvv7u/v7
+ wfv7xvz7zPz80f391v382/393/794/7+5/7+6v7+7f7+8f/+8//+9f//8f/+7f7+6v795/795P7+4P79
+ 2/391/380vz8zfz8yfz8w/z7vfv7uPv7svv6rfr6p/r5jvr5S/b0NfXzNvTyNfTzNfbzNfXzN/X0Nvbz
+ NvTzN/XzNfXzNvXyNvX0NvTzNfTzNvbzNfXzNvbzNvX0NvX0Nvb0NfXzNvXzNvXzNvXzNvX0NvXzNvX0
+ NvX0ODg4NvXzNvX0NvXzNvX0NvXzNfXzNvb0NvX0NvX0NvbzNfXzNvbzNfTzNvTzNvX0NvXyNfXzN/Xz
+ NvTzNvbzN/X0NfXzNfbzNfTzNvTyNfXzS/b0jvr5p/r5rfr6svv6uPv7vfv7w/z8yfz8zfz80vz81/38
+ 2/394P7+5P7+5/796v797f7+8f/+8//+9f//9///8/7+8f7+7v7+6/7+6P7+5f7+4f793f792P390/z8
+ z/z8yvz8xfz7wPv7u/z7tfv6sfv7q/v6p/v6e/j2Q/b0NfTzNvb0NvTyNvbzNvXzNvX0NvTyNvTzNvXz
+ NfbzNfXyNvX0NvXyNvX0NvbzNvbzNfTzNvb0NvXzNfbzNvbzNvbzNvXzNvbzODg4ODg4ODg4NvbzNvXz
+ NvbzNvbzNfbzNvXzNvb0NfTzNvbzNvbzNvX0NvXyNvX0NfXyNfbzNvXzNvTzNvTyNvX0NvXzNvbzNvTy
+ Nvb0NfTzQ/b0e/j2p/v6q/v6sfv7tfv6u/z7wPv7xfz8yvz8z/z80/z82P393f794f7+5f7+6P7+6/7+
+ 7v7+8f7+8/7+9f//9///+f//9f/+8/7+8P7+7v7+7P7+6f7+5v7+4v793v392v391v390f38zPz8yPz7
+ w/z7vvz7uvz7tfz7r/v6qvv6pvr6fvj3TPb1NfXzNfb0N/byN/TzN/bzNfXzNfXyNvTyNvbzNfb0NfXy
+ NvXzNfXyNvX0NvX0NvXyNvX0NfTzNfXzNvbzNvb0NvbzNvb0Nvb0ODg4NvbzNvb0NvbzNfXzNfTzNvX0
+ NvXyNvX0NvX0NfXyNvXzNfXyNfb0NvbzNvTyNfXyNfXzN/bzN/TzN/byNfb0NfXzTPb1fvj3pvr6qvv6
+ r/v6tfz7uvz7vvz7w/z7yPz8zPz80f381v392v393v394v795v7+6f7+7P7+7v7+8P7+8/7+9f//9///
+ +f//+v//9/7+9f7+9P//8f7+7/7+7f7+6v7+5v7+4/7+3/392/391/381P38z/z8y/38xvz7wfz7vfv7
+ ufz7tPv7r/v6qvr6p/v6ivr5V/f1NvXzNvXzNvb0Nvb0NvXzNfXzNfXzNvX0NvTyNvb0NvTzNfbzNvb0
+ NvXzNfXzNvXzNvbzNvbzNfXzNvXyNvX0NvX0NvX0NvXyNfXzNvbzNvbzNvXzNfXzNvXzNvb0NfbzNvTz
+ Nvb0NvTyNvX0NfXzNfbzNvXzNvb0Nvb0NvXzNvXzV/f1ivr5p/v6qvr6r/v6tPv7ufz7vfv7wfz7xvz7
+ y/38z/z81P381/382/393/394/7+5v7+6v7+7f7+7/7+8f7+9P//9f7+9/7++P//+v//+///+P7++P//
+ 9v//9P7+8v7+8P7+7v7+6v795/395f7+4f393v792v391v390v38zv38yfz7xfz8wPv7vfz7ufz7tPv6
+ sPv6rPv6qPv6mvv6cff2Tvb0NfXzNvXzNvTyN/b0NfTzNvXzNvXzNvXzNvXzNvX0N/X0NvX0Nvb0Nfb0
+ Nvb0NvbzNvTzNvTzNvb0NvTzNvTzNvbzNvb0Nfb0Nvb0NvX0N/X0NvX0NvXzNvXzNvXzNvXzNfTzN/b0
+ NvTyNvXzNfXzTvb0cff2mvv6qPv6rPv6sPv6tPv6ufz7vfz7wPv7xfz8yfz8zv380v381v392v393v79
+ 4f395f7+5/396v797v7+8P7+8v7+9P7+9v//+P//+P7++v//+////P//+v//+f//+P//9v7+9f7+8///
+ 8f7+7v7+7P7+6f7+5v394v393/393P392P381Pz80f39zf38yf38xfz8wfz8vfv7ufv6tvz7svv7rvv6
+ qvr6p/v6l/r5b/f2UPb1OPTyN/XzNfX0NvTyNfTyNvTyNfb0NvXzNfXzN/XzNvXzNvXzNvXzNfXzNfXz
+ N/b0NfXzNfXzNvXzNvXzNvXzN/XzNfXzNvXzNfb0NvTyNfTyNvTyNfX0N/XzOPTzUPb1bfn3l/r5p/v6
+ qvr6rvv6svv7tvz7ufv6vfv7wfz8xfz8yf38zf380f391Pz82P383P393/394v395v396f7+7P7+7v7+
+ 8f7+8///9f7+9v7++P//+f//+v//+////P///P//+/7++v7++f//+P7+9///9v//9P//8f7+7/7+7f7+
+ 6v7+6P7+5f7+4v793v392/791/381P390P38zf38yfz8xfz8wfv7vvz7u/z8t/v7tPz7sPv6rfv6q/v6
+ p/v6ovr5hvj3a/f1Ufb1OvXzNfXzN/XzNvXzNfTyNvb0Nvb0NfTyNfb0N/TyN/b0N/b0N/b0N/TyNfb0
+ NfTyNvb0Nvb0NfT0NvXzN/XzNfXzOvXzUfb1a/f1hvj3ovr5p/v6q/v6rfv6sPv6s/v6t/v7uvv7vvz7
+ wfv7xfz8yfz8zf380P381P391/392/793v394v795f7+6P7+6v7+7f7+7/7+8f7+9P//9v//9///+P7+
+ +f//+v7++/7+/P///P///f///P7+/P//+///+f7++f//9/7+9v//9P7+8v7+8P7+7v7+7P7+6v7+5v39
+ 5P7+4f393v392v391/391P390f39zfz8yvz8x/z8xPz8wPv7vPv7ufv6t/z7tPv7sfv6rvv6rPv6qvv6
+ p/v6pfr5l/n4ivn3dff2Zvf1Wff1Svb0S/b0S/b0Qvb0NvXzNvXzNvXzQvb0S/b0S/b0Svb1Wff1Zvf1
+ dff2ivn3l/n4pfr5p/v6qvv6rPv6rvv6sfv6tPv7t/z7ufv6vPv7wPv7w/v7x/z8yvz8zfz80f391P39
+ 1/392v393v394f395P7+5v396v7+7P7+7v7+8P7+8v7+9P7+9v//9/7++f//+f7++////P///P7+/P7+
+ /f///f7+/f///f///P//+///+v//+P7++P/+9v7+9f7+8/7+8f7+8P//7v7+6/7+6f7+5v7+4/394f7+
+ 3v392v382P391f390v39z/z8zPz8yPz8xv38w/z7wPz7vfz7uvv6uPv6tvv6s/v6svv7r/v6rvv6rPv6
+ q/v6qfr5qPv6qPv6p/v6pvr6pvv6pfr5pfr6pfr5pvv6pvr6p/v6qPv6qPv6qfr6q/v6rPv6rvv6r/v6
+ svv7s/v6tvv6uPv6uvv6vfz7wPz7w/z7xfz7yPz8zPz8z/380v391f392P392v383v394f7+4/395v7+
+ 6f7+6/7+7v7+8P//8f7+8/7+9f7+9v7++P//+P7++v//+////P///f///f///f///v///v///f///f//
+ /P///P//+/7++v7++f/++f//9/7+9v//9f//8///8f7+7/7+7f7+6v796f7+5/7+4/394f393/792/39
+ 2f391vz81P390Pz8zv38zP38yPz7xvz7xPz7wfz7v/z7vvz7u/v7uvz7uPz7t/z7tfv7s/v6s/v7svv7
+ sfv7sPv6sPv7r/v6r/v6r/v6sPv7sPv6sfv7svv7s/v7s/v6tfv7t/z7uPz7uvz7u/z7vvz7v/z7wfz7
+ xPz7xvz7yPz7zP38zv380Pz81P391v382f392/393/794f394/395/7+6f7+6v797f7+7/7+8f7+8///
+ 9f//9v//9/7++f//+f//+v7++/7+/P///P///f///f///v///v///v///v///f///f///P///f///P//
+ +///+v//+P7++P7+9///9f//9P7+8v7+8f7+7///7f7+6/7+6f7+5v7+5P794v393/393f392/392P39
+ 1v391P390f39z/38zP38yvz8yf38xvz7xfz8w/z8wvz8wPz7vvz7vvz7vPv7u/v7uvv7uvz7ufv7uvz7
+ uvz7uvz7ufv7uvz7uvv7u/v7vPv7vvz7vvz7wPz7wvz8w/z8xfz8xvz7yf38yvz8zP38z/380f391P39
+ 1v392P392/393f393/394v395P795v7+6f7+6/7+7f7+7///8f7+8v7+9P7+9f//9///+P7++P7++v//
+ +////P///f///P///f///f///v///v///v///////v///v///f7+/f///f///P///P//+/7++v7++f7+
+ +P//+P//9v7+9v//9P//8v/+8f7+7///7f7+6/7+6f395/7+5f394v394f793v393P392/392P391v38
+ 1P390vz80P38z/38zf38zP38yvz8yPz8yP38xvz7xfz7xPz8xPz7xPz8w/z7w/z8w/z8w/z8w/z7xPz8
+ xPz7xPz8xfz7xvz7yP38yPz8yvz8zP38zf38z/380P380vz81P391v382P392/393P393v394f794v39
+ 5f395/7+6f396/7+7f7+7///8f7+8v/+9P//9v//9v7++P//+P//+f7++v7++/7+/P///P///f///f//
+ /f7+/v///v///v///////////v7+/v///v///v///f///f///P///f///P//+///+v//+f//+f//+P//
+ 9v//9f7+9P//8v7+8f7+7/7+7v7+7P7+6f396P795v7+5P394v394f793v393f392/392v392P391/39
+ 1f391P380vz80f38z/z8z/z8zvz8zfz8zPz8zP38zPz8zPz8zPz8zPz8zPz8zP38zPz8zfz8zvz8z/z8
+ z/z80f380vz81P381f391/392P392v392/393f393v394f794v395P395v7+6P796f397P7+7v7+7/7+
+ 8f7+8v7+9P//9f7+9v//+P//+f//+f//+v//+////P///f///P///f///f///v///v///v///v7+////
+ /////////////////v///v///v///f7+/f///f///P///P7+/P//+///+v//+f//+f//9/7+9v//9v//
+ 9P7+8v7+8v//8P7+7v7+7f7+6/7+6f7+6P795v795f794/394v394P393/393v7+3P392/392v392f79
+ 1/381/391v381f381f391P391P391f391Pz81f391P391P391f391f381v381/391/382f792v392/39
+ 3P393v7+3/394P394v394/395f795v796P7+6f7+6/7+7f7+7v7+8P7+8v//8v7+9P7+9v//9v//9/7+
+ +f//+f//+v//+////P///P7+/P///f///f///f7+/v///v///v//////////////////////////////
+ /////v7+/v///v///v///f///f///P7+/P///P///P//+///+v//+f//+f//+P//9v7+9f//9f//8/7+
+ 8f7+8f7+7/7+7v/+7f7+6/796f396f7+5/795/7+5f7+5P7+4/794v794P393/393/393v393f393f79
+ 3P392/392/393P393P393P392/392/393P393f793f393v393/393/394P394v7+4/795P7+5f7+5/7+
+ 5/796f7+6f396/797f7+7v/+7/7+8f7+8f7+8/7+9f//9f//9v7++P//+f//+f//+v//+////P///P//
+ /P///P7+/f///f///v///v///v///v7+/////////////////////////////////////////////v//
+ /v///v///v///f///f///P///P///P///P//+///+v//+f//+P//+P//9///9v//9f7+9P7+8///8f7+
+ 8f7+7/797v7+7v7+7P796/7+6v7+6f796P795/795v795v7+5f7+5P794/394/7+4v794/7+4v394v39
+ 4v394v394v394/7+4v794/7+4/395P795f7+5v7+5v7+5/7+6P796f796v7+6/7+7P797v7+7v7+7/79
+ 8f7+8f7+8///9P7+9f7+9v//9///+P//+P//+f//+v//+////P///P///P///P///f///f///v///v//
+ /v///v///////////////////////////////////////////////////////////////v///v///v//
+ /f7+/f///f///P///P///P///P//+///+v//+f//+P7++f//+P//9v7+9f7+9f7+9P7+8/7+8v7+8v/+
+ 8f/+7/7+7v7+7f7+7f7+7P796/796v796v7+6v7+6f796f7+6P796P7+6P7+6P7+5/396P7+6P7+6P7+
+ 6P796f7+6f796v7+6v7+6v796/797P7+7f7+7f7+7v7+7/7+8f/+8v/+8v7+8/7+9P7+9f7+9f7+9v7+
+ +P//+f//+P7++f//+v//+////P///P///P///P///f///f///f7+/v///v///v//////////////////
+ ////////////////////////
+</value>
+ </data>
+ <data name="logoPictureBox.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ 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
+ FgAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="textBoxDescription.Text" xml:space="preserve">
+ <value>Description: Statistical Distribution Explorer.
+Allows calculation, display and save to file
+of a wide variety of statistical distributions
+with given parameters and values of random variate,
+Probability Density, Cumulative Distribution, complement,
+and quantiles and critical values.
+</value>
+ </data>
+ <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ AAABAAIAEBAQAAAABAAoAQAAJgAAACAgEAAAAAQA6AIAAE4BAAAoAAAAEAAAACAAAAABAAQAAAAAAMAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
+ AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAH//j/j/jwAAf/+P+P+PAAB4iIiIiIgAAH93h3h3
+ jwAAf3eHeHePAAB4iIiIiIgAAH93h3h3jwAAf3eHeHePAAB4iIiIiIgAAH93h3h3jwAAf3eHeHePAAB4
+ iIiIgAAAAH//j/j39wAAf/+P+PdwAAB3d3d3dwAAwAEAAMABAADAAQAAwAEAAMABAADAAQAAwAEAAMAB
+ AADAAQAAwAEAAMABAADAAQAAwAEAAMADAADABwAAwA8AACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAA
+ AAAAAAAAEAAAABAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/
+ /wD/AAAA/wD/AP//AAD///8Au7u7u7u7u7u7u7u7RLREu7u7u7u7u7u7u7u7u7S7S7u7u7u7u7u7u7u7
+ u7u7u7u7u7u7u7u7u7u7u7u0RERES7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7u0RLu7u7u7u7u7
+ u7u0u7S7u0u7u7u7u7u7u7u7RLtES7RLu7u7u7u7u7u7u7S7tLu7S7u7u7u7u7u7u7u7u7u7u7u7u7u7
+ u7u7u7u0REREREREREu7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7u7u7u0RLu7u7u7u7u0u7S7u7u7u0u7
+ u7u7u7u7RLtES7u7u7RLu7u7u7u7u7S7tLu7u7u7S7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7RERERERE
+ RERERERLu0u7u7u7u7u7u7u7u7u7u7tLu0u7u7u7u0RLu7u7u7u7S7REu7u7u7u0u7u7u7u7tEu7S7u7
+ u7u7RLu7u7u7u7tLu7u7u7u7u7S7u7u7u7u7u7u7u7u7u7u7u7u7u7u7tERERERERERERERERERES7u7
+ u7u7u7u7u7u7u7u7u7u7u7u7u7u7REu7u7u7u7u7u7u7u7u7u7S7u7u7u7u7u7u7u7u7u7u0u7u7u7u7
+ u7u7u7u7u7u7tLu7u7u7u7u7u7u7u7u7u0S7u7u7u7u7u7u7u7u7u7u0u7u7u7u7u7sAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+</value>
+ </data>
+</root> \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/App.config b/src/boost/libs/math/dot_net_example/distribution_explorer/App.config
new file mode 100644
index 000000000..49cc43e1d
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/App.config
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+</configuration> \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/ClassDiagram1.cd b/src/boost/libs/math/dot_net_example/distribution_explorer/ClassDiagram1.cd
new file mode 100644
index 000000000..b6a6fb0dc
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/ClassDiagram1.cd
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ClassDiagram MajorVersion="1" MinorVersion="1">
+ <Font Name="Tahoma" Size="8.4" />
+ <Class Name="distribution_explorer.distexSplash" Collapsed="true">
+ <Position X="0.5" Y="0.5" Width="1.5" />
+ <TypeIdentifier>
+ <FileName>DistexSplash.cs</FileName>
+ <HashCode>AAAAAACAACAAABQAAACAAAACAAAAAAAAAAAAAAAAAIA=</HashCode>
+ </TypeIdentifier>
+ </Class>
+</ClassDiagram> \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/ClassDiagram2.cd b/src/boost/libs/math/dot_net_example/distribution_explorer/ClassDiagram2.cd
new file mode 100644
index 000000000..0519ecba6
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/ClassDiagram2.cd
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/DistexForm.Designer.cs b/src/boost/libs/math/dot_net_example/distribution_explorer/DistexForm.Designer.cs
new file mode 100644
index 000000000..ca25d18e2
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/DistexForm.Designer.cs
@@ -0,0 +1,1094 @@
+namespace distribution_explorer
+{
+ partial class DistexForm
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DistexForm));
+ this.modeLabel = new System.Windows.Forms.Label();
+ this.propertiesTab = new System.Windows.Forms.TabControl();
+ this.DistributionTab = new System.Windows.Forms.TabPage();
+ this.parameter3 = new System.Windows.Forms.TextBox();
+ this.parameter3Label = new System.Windows.Forms.Label();
+ this.distributionNameLabel = new System.Windows.Forms.Label();
+ this.parameter2Label = new System.Windows.Forms.Label();
+ this.parameter1Label = new System.Windows.Forms.Label();
+ this.parameter2 = new System.Windows.Forms.TextBox();
+ this.parameter1 = new System.Windows.Forms.TextBox();
+ this.distribution = new System.Windows.Forms.ComboBox();
+ this.PropertiesTabPage = new System.Windows.Forms.TabPage();
+ this.toLabel2 = new System.Windows.Forms.Label();
+ this.toLabel1 = new System.Windows.Forms.Label();
+ this.supportUpperLabel = new System.Windows.Forms.Label();
+ this.supportLowerLabel = new System.Windows.Forms.Label();
+ this.supportLabel = new System.Windows.Forms.Label();
+ this.rangeGreatestLabel = new System.Windows.Forms.Label();
+ this.rangeLowestLabel = new System.Windows.Forms.Label();
+ this.rangeLabel = new System.Windows.Forms.Label();
+ this.parameter3ValueLabel = new System.Windows.Forms.Label();
+ this.parameter2ValueLabel = new System.Windows.Forms.Label();
+ this.parameter1ValueLabel = new System.Windows.Forms.Label();
+ this.distributionValueLabel = new System.Windows.Forms.Label();
+ this.parameterLabel3 = new System.Windows.Forms.Label();
+ this.parameterLabel2 = new System.Windows.Forms.Label();
+ this.parameterLabel1 = new System.Windows.Forms.Label();
+ this.DistributionLabel = new System.Windows.Forms.Label();
+ this.coefficient_of_variation = new System.Windows.Forms.Label();
+ this.CVlabel = new System.Windows.Forms.Label();
+ this.kurtosis_excess = new System.Windows.Forms.Label();
+ this.kurtosisExcessLabel = new System.Windows.Forms.Label();
+ this.kurtosis = new System.Windows.Forms.Label();
+ this.kurtosisLabel = new System.Windows.Forms.Label();
+ this.skewness = new System.Windows.Forms.Label();
+ this.skewnessLabel = new System.Windows.Forms.Label();
+ this.median = new System.Windows.Forms.Label();
+ this.standard_deviation = new System.Windows.Forms.Label();
+ this.stddevLabel = new System.Windows.Forms.Label();
+ this.variance = new System.Windows.Forms.Label();
+ this.varianceLabel = new System.Windows.Forms.Label();
+ this.medianLabel = new System.Windows.Forms.Label();
+ this.mode = new System.Windows.Forms.Label();
+ this.mean = new System.Windows.Forms.Label();
+ this.meanLabel = new System.Windows.Forms.Label();
+ this.cdfTabPage = new System.Windows.Forms.TabPage();
+ this.CDF_data = new System.Windows.Forms.DataGridView();
+ this.RandomVariable = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.PDF = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.CDF = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.CCDF = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.QuantileTabPage = new System.Windows.Forms.TabPage();
+ this.QuantileData = new System.Windows.Forms.DataGridView();
+ this.RiskLevel = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.LowerCriticalValue = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.UpperCriticalValue = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.menuStrip1 = new System.Windows.Forms.MenuStrip();
+ this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator = new System.Windows.Forms.ToolStripSeparator();
+ this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
+ this.printToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.printPreviewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
+ this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.undoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.redoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
+ this.cutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.pasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
+ this.selectAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.contentsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
+ this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.customizeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
+ this.saveFileDialog = new System.Windows.Forms.SaveFileDialog();
+ this.propertiesTab.SuspendLayout();
+ this.DistributionTab.SuspendLayout();
+ this.PropertiesTabPage.SuspendLayout();
+ this.cdfTabPage.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.CDF_data)).BeginInit();
+ this.QuantileTabPage.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.QuantileData)).BeginInit();
+ this.menuStrip1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // modeLabel
+ //
+ this.modeLabel.AutoSize = true;
+ this.modeLabel.Location = new System.Drawing.Point(45, 197);
+ this.modeLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.modeLabel.Name = "modeLabel";
+ this.modeLabel.Size = new System.Drawing.Size(44, 18);
+ this.modeLabel.TabIndex = 0;
+ this.modeLabel.Text = "Mode";
+ //
+ // propertiesTab
+ //
+ this.propertiesTab.AccessibleDescription = "Statistical distribution properties tab";
+ this.propertiesTab.AccessibleName = "Properties tab";
+ this.propertiesTab.Controls.Add(this.DistributionTab);
+ this.propertiesTab.Controls.Add(this.PropertiesTabPage);
+ this.propertiesTab.Controls.Add(this.cdfTabPage);
+ this.propertiesTab.Controls.Add(this.QuantileTabPage);
+ this.propertiesTab.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.propertiesTab.Font = new System.Drawing.Font("Tahoma", 8.400001F);
+ this.propertiesTab.Location = new System.Drawing.Point(0, 26);
+ this.propertiesTab.Margin = new System.Windows.Forms.Padding(4);
+ this.propertiesTab.Name = "propertiesTab";
+ this.propertiesTab.SelectedIndex = 0;
+ this.propertiesTab.ShowToolTips = true;
+ this.propertiesTab.Size = new System.Drawing.Size(642, 585);
+ this.propertiesTab.TabIndex = 0;
+ this.propertiesTab.Deselecting += new System.Windows.Forms.TabControlCancelEventHandler(this.properties_tab_Deselecting);
+ this.propertiesTab.SelectedIndexChanged += new System.EventHandler(this.properties_tab_SelectedIndexChanged);
+ //
+ // DistributionTab
+ //
+ this.DistributionTab.AccessibleDescription = "Distribution Tab";
+ this.DistributionTab.AccessibleName = "DistributionTab";
+ this.DistributionTab.BackColor = System.Drawing.SystemColors.Control;
+ this.DistributionTab.Controls.Add(this.parameter3);
+ this.DistributionTab.Controls.Add(this.parameter3Label);
+ this.DistributionTab.Controls.Add(this.distributionNameLabel);
+ this.DistributionTab.Controls.Add(this.parameter2Label);
+ this.DistributionTab.Controls.Add(this.parameter1Label);
+ this.DistributionTab.Controls.Add(this.parameter2);
+ this.DistributionTab.Controls.Add(this.parameter1);
+ this.DistributionTab.Controls.Add(this.distribution);
+ this.DistributionTab.Location = new System.Drawing.Point(4, 26);
+ this.DistributionTab.Margin = new System.Windows.Forms.Padding(700, 4, 4, 4);
+ this.DistributionTab.Name = "DistributionTab";
+ this.DistributionTab.Padding = new System.Windows.Forms.Padding(4);
+ this.DistributionTab.Size = new System.Drawing.Size(634, 555);
+ this.DistributionTab.TabIndex = 0;
+ this.DistributionTab.Text = "Distribution";
+ this.DistributionTab.ToolTipText = "Choose the Statistical Distribution and provide parameter(s)";
+ this.DistributionTab.UseVisualStyleBackColor = true;
+ this.DistributionTab.Click += new System.EventHandler(this.tabPage1_Click);
+ //
+ // parameter3
+ //
+ this.parameter3.Location = new System.Drawing.Point(200, 232);
+ this.parameter3.Name = "parameter3";
+ this.parameter3.Size = new System.Drawing.Size(341, 24);
+ this.parameter3.TabIndex = 6;
+ //
+ // parameter3Label
+ //
+ this.parameter3Label.AutoSize = true;
+ this.parameter3Label.Location = new System.Drawing.Point(31, 232);
+ this.parameter3Label.Name = "parameter3Label";
+ this.parameter3Label.Size = new System.Drawing.Size(170, 18);
+ this.parameter3Label.TabIndex = 5;
+ this.parameter3Label.Text = "Parameter 3 (if required)";
+ this.parameter3Label.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ this.toolTip1.SetToolTip(this.parameter3Label, "Enter value of 3nd Parameter of the chosen distribution");
+ //
+ // distributionNameLabel
+ //
+ this.distributionNameLabel.AutoSize = true;
+ this.distributionNameLabel.Location = new System.Drawing.Point(31, 58);
+ this.distributionNameLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.distributionNameLabel.Name = "distributionNameLabel";
+ this.distributionNameLabel.Size = new System.Drawing.Size(78, 18);
+ this.distributionNameLabel.TabIndex = 2;
+ this.distributionNameLabel.Text = "Distribution";
+ this.distributionNameLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // parameter2Label
+ //
+ this.parameter2Label.AutoSize = true;
+ this.parameter2Label.Location = new System.Drawing.Point(28, 174);
+ this.parameter2Label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.parameter2Label.Name = "parameter2Label";
+ this.parameter2Label.Size = new System.Drawing.Size(170, 18);
+ this.parameter2Label.TabIndex = 4;
+ this.parameter2Label.Text = "Parameter 2 (if required)";
+ this.parameter2Label.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ this.toolTip1.SetToolTip(this.parameter2Label, "Enter value of 2nd Parameter of the chosen distribution");
+ //
+ // parameter1Label
+ //
+ this.parameter1Label.AutoSize = true;
+ this.parameter1Label.ForeColor = System.Drawing.Color.Black;
+ this.parameter1Label.Location = new System.Drawing.Point(28, 116);
+ this.parameter1Label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.parameter1Label.Name = "parameter1Label";
+ this.parameter1Label.Size = new System.Drawing.Size(89, 18);
+ this.parameter1Label.TabIndex = 3;
+ this.parameter1Label.Text = "Parameter 1";
+ this.parameter1Label.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // parameter2
+ //
+ this.parameter2.Location = new System.Drawing.Point(200, 171);
+ this.parameter2.Margin = new System.Windows.Forms.Padding(4);
+ this.parameter2.Name = "parameter2";
+ this.parameter2.Size = new System.Drawing.Size(341, 24);
+ this.parameter2.TabIndex = 2;
+ //
+ // parameter1
+ //
+ this.parameter1.Location = new System.Drawing.Point(200, 110);
+ this.parameter1.Margin = new System.Windows.Forms.Padding(4);
+ this.parameter1.Name = "parameter1";
+ this.parameter1.Size = new System.Drawing.Size(341, 24);
+ this.parameter1.TabIndex = 1;
+ //
+ // distribution
+ //
+ this.distribution.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.distribution.FormattingEnabled = true;
+ this.distribution.Location = new System.Drawing.Point(200, 51);
+ this.distribution.Margin = new System.Windows.Forms.Padding(4);
+ this.distribution.MaxDropDownItems = 20;
+ this.distribution.Name = "distribution";
+ this.distribution.Size = new System.Drawing.Size(341, 25);
+ this.distribution.TabIndex = 0;
+ this.distribution.SelectedIndexChanged += new System.EventHandler(this.distribution_SelectedIndexChanged);
+ //
+ // PropertiesTabPage
+ //
+ this.PropertiesTabPage.AccessibleDescription = "Show properties of distribution ";
+ this.PropertiesTabPage.AccessibleName = "PropertiesTabPage";
+ this.PropertiesTabPage.AccessibleRole = System.Windows.Forms.AccessibleRole.None;
+ this.PropertiesTabPage.BackColor = System.Drawing.SystemColors.Control;
+ this.PropertiesTabPage.Controls.Add(this.toLabel2);
+ this.PropertiesTabPage.Controls.Add(this.toLabel1);
+ this.PropertiesTabPage.Controls.Add(this.supportUpperLabel);
+ this.PropertiesTabPage.Controls.Add(this.supportLowerLabel);
+ this.PropertiesTabPage.Controls.Add(this.supportLabel);
+ this.PropertiesTabPage.Controls.Add(this.rangeGreatestLabel);
+ this.PropertiesTabPage.Controls.Add(this.rangeLowestLabel);
+ this.PropertiesTabPage.Controls.Add(this.rangeLabel);
+ this.PropertiesTabPage.Controls.Add(this.parameter3ValueLabel);
+ this.PropertiesTabPage.Controls.Add(this.parameter2ValueLabel);
+ this.PropertiesTabPage.Controls.Add(this.parameter1ValueLabel);
+ this.PropertiesTabPage.Controls.Add(this.distributionValueLabel);
+ this.PropertiesTabPage.Controls.Add(this.parameterLabel3);
+ this.PropertiesTabPage.Controls.Add(this.parameterLabel2);
+ this.PropertiesTabPage.Controls.Add(this.parameterLabel1);
+ this.PropertiesTabPage.Controls.Add(this.DistributionLabel);
+ this.PropertiesTabPage.Controls.Add(this.coefficient_of_variation);
+ this.PropertiesTabPage.Controls.Add(this.CVlabel);
+ this.PropertiesTabPage.Controls.Add(this.kurtosis_excess);
+ this.PropertiesTabPage.Controls.Add(this.kurtosisExcessLabel);
+ this.PropertiesTabPage.Controls.Add(this.kurtosis);
+ this.PropertiesTabPage.Controls.Add(this.kurtosisLabel);
+ this.PropertiesTabPage.Controls.Add(this.skewness);
+ this.PropertiesTabPage.Controls.Add(this.skewnessLabel);
+ this.PropertiesTabPage.Controls.Add(this.median);
+ this.PropertiesTabPage.Controls.Add(this.standard_deviation);
+ this.PropertiesTabPage.Controls.Add(this.stddevLabel);
+ this.PropertiesTabPage.Controls.Add(this.variance);
+ this.PropertiesTabPage.Controls.Add(this.varianceLabel);
+ this.PropertiesTabPage.Controls.Add(this.medianLabel);
+ this.PropertiesTabPage.Controls.Add(this.mode);
+ this.PropertiesTabPage.Controls.Add(this.modeLabel);
+ this.PropertiesTabPage.Controls.Add(this.mean);
+ this.PropertiesTabPage.Controls.Add(this.meanLabel);
+ this.PropertiesTabPage.ForeColor = System.Drawing.SystemColors.WindowText;
+ this.PropertiesTabPage.Location = new System.Drawing.Point(4, 26);
+ this.PropertiesTabPage.Margin = new System.Windows.Forms.Padding(4);
+ this.PropertiesTabPage.Name = "PropertiesTabPage";
+ this.PropertiesTabPage.Padding = new System.Windows.Forms.Padding(4);
+ this.PropertiesTabPage.Size = new System.Drawing.Size(634, 555);
+ this.PropertiesTabPage.TabIndex = 1;
+ this.PropertiesTabPage.Text = "Properties";
+ this.PropertiesTabPage.ToolTipText = "Shows properties of chosen distribution.";
+ this.PropertiesTabPage.UseVisualStyleBackColor = true;
+ this.PropertiesTabPage.Enter += new System.EventHandler(this.tabPage2_Enter);
+ //
+ // toLabel2
+ //
+ this.toLabel2.AutoSize = true;
+ this.toLabel2.Location = new System.Drawing.Point(384, 483);
+ this.toLabel2.Name = "toLabel2";
+ this.toLabel2.Size = new System.Drawing.Size(21, 18);
+ this.toLabel2.TabIndex = 25;
+ this.toLabel2.Text = "to";
+ //
+ // toLabel1
+ //
+ this.toLabel1.AutoSize = true;
+ this.toLabel1.Location = new System.Drawing.Point(384, 449);
+ this.toLabel1.Name = "toLabel1";
+ this.toLabel1.Size = new System.Drawing.Size(21, 18);
+ this.toLabel1.TabIndex = 24;
+ this.toLabel1.Text = "to";
+ //
+ // supportUpperLabel
+ //
+ this.supportUpperLabel.AutoSize = true;
+ this.supportUpperLabel.Location = new System.Drawing.Point(411, 483);
+ this.supportUpperLabel.Name = "supportUpperLabel";
+ this.supportUpperLabel.Size = new System.Drawing.Size(131, 18);
+ this.supportUpperLabel.TabIndex = 23;
+ this.supportUpperLabel.Text = "supportUpperValue";
+ this.toolTip1.SetToolTip(this.supportUpperLabel, "PDF and CDF are unity for x argument values greater than this value.");
+ //
+ // supportLowerLabel
+ //
+ this.supportLowerLabel.AutoSize = true;
+ this.supportLowerLabel.Location = new System.Drawing.Point(207, 483);
+ this.supportLowerLabel.Name = "supportLowerLabel";
+ this.supportLowerLabel.Size = new System.Drawing.Size(130, 18);
+ this.supportLowerLabel.TabIndex = 22;
+ this.supportLowerLabel.Text = "supportLowerValue";
+ this.toolTip1.SetToolTip(this.supportLowerLabel, "PDF and CDF are zero for values of argument X less than this value.");
+ //
+ // supportLabel
+ //
+ this.supportLabel.AutoSize = true;
+ this.supportLabel.Location = new System.Drawing.Point(45, 483);
+ this.supportLabel.Name = "supportLabel";
+ this.supportLabel.Size = new System.Drawing.Size(74, 18);
+ this.supportLabel.TabIndex = 21;
+ this.supportLabel.Text = "Supported";
+ this.toolTip1.SetToolTip(this.supportLabel, "Range over which pdf is >0 but not yet =1");
+ //
+ // rangeGreatestLabel
+ //
+ this.rangeGreatestLabel.AutoSize = true;
+ this.rangeGreatestLabel.Location = new System.Drawing.Point(411, 449);
+ this.rangeGreatestLabel.Name = "rangeGreatestLabel";
+ this.rangeGreatestLabel.Size = new System.Drawing.Size(136, 18);
+ this.rangeGreatestLabel.TabIndex = 20;
+ this.rangeGreatestLabel.Text = "rangeGreatestValue";
+ this.toolTip1.SetToolTip(this.rangeGreatestLabel, "Greatest argument X for calculating PDF and CDF.");
+ //
+ // rangeLowestLabel
+ //
+ this.rangeLowestLabel.AllowDrop = true;
+ this.rangeLowestLabel.AutoSize = true;
+ this.rangeLowestLabel.Location = new System.Drawing.Point(207, 449);
+ this.rangeLowestLabel.Name = "rangeLowestLabel";
+ this.rangeLowestLabel.Size = new System.Drawing.Size(125, 18);
+ this.rangeLowestLabel.TabIndex = 19;
+ this.rangeLowestLabel.Text = "rangeLowestValue";
+ this.toolTip1.SetToolTip(this.rangeLowestLabel, "Lowest argument X for calculating PDF and CDF.");
+ //
+ // rangeLabel
+ //
+ this.rangeLabel.AutoSize = true;
+ this.rangeLabel.Location = new System.Drawing.Point(45, 449);
+ this.rangeLabel.Name = "rangeLabel";
+ this.rangeLabel.Size = new System.Drawing.Size(49, 18);
+ this.rangeLabel.TabIndex = 18;
+ this.rangeLabel.Text = "Range";
+ this.toolTip1.SetToolTip(this.rangeLabel, "Lowest and greatest possible value of x argument for PDF & CDF.");
+ //
+ // parameter3ValueLabel
+ //
+ this.parameter3ValueLabel.AutoSize = true;
+ this.parameter3ValueLabel.Location = new System.Drawing.Point(204, 118);
+ this.parameter3ValueLabel.Name = "parameter3ValueLabel";
+ this.parameter3ValueLabel.Size = new System.Drawing.Size(128, 18);
+ this.parameter3ValueLabel.TabIndex = 17;
+ this.parameter3ValueLabel.Text = "parameter 3 value";
+ this.toolTip1.SetToolTip(this.parameter3ValueLabel, "Show 3rd parameter provided (if any).");
+ //
+ // parameter2ValueLabel
+ //
+ this.parameter2ValueLabel.AutoSize = true;
+ this.parameter2ValueLabel.Location = new System.Drawing.Point(204, 87);
+ this.parameter2ValueLabel.Name = "parameter2ValueLabel";
+ this.parameter2ValueLabel.Size = new System.Drawing.Size(128, 18);
+ this.parameter2ValueLabel.TabIndex = 16;
+ this.parameter2ValueLabel.Text = "parameter 2 value";
+ this.toolTip1.SetToolTip(this.parameter2ValueLabel, "Show 2nd parameter provided (if any).");
+ //
+ // parameter1ValueLabel
+ //
+ this.parameter1ValueLabel.AutoSize = true;
+ this.parameter1ValueLabel.Location = new System.Drawing.Point(204, 54);
+ this.parameter1ValueLabel.Name = "parameter1ValueLabel";
+ this.parameter1ValueLabel.Size = new System.Drawing.Size(128, 18);
+ this.parameter1ValueLabel.TabIndex = 15;
+ this.parameter1ValueLabel.Text = "parameter 1 value";
+ this.toolTip1.SetToolTip(this.parameter1ValueLabel, "Show 1st parameter provided.");
+ //
+ // distributionValueLabel
+ //
+ this.distributionValueLabel.AutoSize = true;
+ this.distributionValueLabel.Location = new System.Drawing.Point(204, 24);
+ this.distributionValueLabel.Name = "distributionValueLabel";
+ this.distributionValueLabel.Size = new System.Drawing.Size(118, 18);
+ this.distributionValueLabel.TabIndex = 14;
+ this.distributionValueLabel.Text = "distribution name";
+ this.toolTip1.SetToolTip(this.distributionValueLabel, "Show name of chosen distribution");
+ //
+ // parameterLabel3
+ //
+ this.parameterLabel3.AutoSize = true;
+ this.parameterLabel3.Location = new System.Drawing.Point(45, 118);
+ this.parameterLabel3.Name = "parameterLabel3";
+ this.parameterLabel3.Size = new System.Drawing.Size(142, 18);
+ this.parameterLabel3.TabIndex = 13;
+ this.parameterLabel3.Text = "Parameter 3 (if any)";
+ //
+ // parameterLabel2
+ //
+ this.parameterLabel2.AutoSize = true;
+ this.parameterLabel2.Location = new System.Drawing.Point(45, 87);
+ this.parameterLabel2.Name = "parameterLabel2";
+ this.parameterLabel2.Size = new System.Drawing.Size(142, 18);
+ this.parameterLabel2.TabIndex = 12;
+ this.parameterLabel2.Text = "Parameter 2 (if any)";
+ //
+ // parameterLabel1
+ //
+ this.parameterLabel1.AutoSize = true;
+ this.parameterLabel1.Location = new System.Drawing.Point(45, 54);
+ this.parameterLabel1.Name = "parameterLabel1";
+ this.parameterLabel1.Size = new System.Drawing.Size(89, 18);
+ this.parameterLabel1.TabIndex = 11;
+ this.parameterLabel1.Text = "Parameter 1";
+ //
+ // DistributionLabel
+ //
+ this.DistributionLabel.AutoSize = true;
+ this.DistributionLabel.Location = new System.Drawing.Point(45, 24);
+ this.DistributionLabel.Name = "DistributionLabel";
+ this.DistributionLabel.Size = new System.Drawing.Size(78, 18);
+ this.DistributionLabel.TabIndex = 10;
+ this.DistributionLabel.Text = "Distribution";
+ //
+ // coefficient_of_variation
+ //
+ this.coefficient_of_variation.AutoSize = true;
+ this.coefficient_of_variation.Location = new System.Drawing.Point(204, 318);
+ this.coefficient_of_variation.Name = "coefficient_of_variation";
+ this.coefficient_of_variation.Size = new System.Drawing.Size(65, 18);
+ this.coefficient_of_variation.TabIndex = 9;
+ this.coefficient_of_variation.Text = "CV value";
+ //
+ // CVlabel
+ //
+ this.CVlabel.AutoSize = true;
+ this.CVlabel.Location = new System.Drawing.Point(45, 318);
+ this.CVlabel.Name = "CVlabel";
+ this.CVlabel.Size = new System.Drawing.Size(152, 18);
+ this.CVlabel.TabIndex = 8;
+ this.CVlabel.Text = "Coefficient of variation";
+ this.toolTip1.SetToolTip(this.CVlabel, "or relative standard deviation that is standard deviation/mean");
+ //
+ // kurtosis_excess
+ //
+ this.kurtosis_excess.AutoSize = true;
+ this.kurtosis_excess.Location = new System.Drawing.Point(204, 414);
+ this.kurtosis_excess.Name = "kurtosis_excess";
+ this.kurtosis_excess.Size = new System.Drawing.Size(146, 18);
+ this.kurtosis_excess.TabIndex = 7;
+ this.kurtosis_excess.Text = "kurtosis excess value";
+ //
+ // kurtosisExcessLabel
+ //
+ this.kurtosisExcessLabel.AutoSize = true;
+ this.kurtosisExcessLabel.Location = new System.Drawing.Point(45, 414);
+ this.kurtosisExcessLabel.Name = "kurtosisExcessLabel";
+ this.kurtosisExcessLabel.Size = new System.Drawing.Size(109, 18);
+ this.kurtosisExcessLabel.TabIndex = 6;
+ this.kurtosisExcessLabel.Text = "Kurtosis excess";
+ //
+ // kurtosis
+ //
+ this.kurtosis.AutoSize = true;
+ this.kurtosis.Location = new System.Drawing.Point(204, 383);
+ this.kurtosis.Name = "kurtosis";
+ this.kurtosis.Size = new System.Drawing.Size(96, 18);
+ this.kurtosis.TabIndex = 5;
+ this.kurtosis.Text = "kurtosis value";
+ //
+ // kurtosisLabel
+ //
+ this.kurtosisLabel.AutoSize = true;
+ this.kurtosisLabel.Location = new System.Drawing.Point(45, 383);
+ this.kurtosisLabel.Name = "kurtosisLabel";
+ this.kurtosisLabel.Size = new System.Drawing.Size(59, 18);
+ this.kurtosisLabel.TabIndex = 4;
+ this.kurtosisLabel.Text = "Kurtosis";
+ //
+ // skewness
+ //
+ this.skewness.AutoSize = true;
+ this.skewness.Location = new System.Drawing.Point(204, 351);
+ this.skewness.Name = "skewness";
+ this.skewness.Size = new System.Drawing.Size(109, 18);
+ this.skewness.TabIndex = 3;
+ this.skewness.Text = "skewness value";
+ //
+ // skewnessLabel
+ //
+ this.skewnessLabel.AutoSize = true;
+ this.skewnessLabel.Location = new System.Drawing.Point(45, 351);
+ this.skewnessLabel.Name = "skewnessLabel";
+ this.skewnessLabel.Size = new System.Drawing.Size(71, 18);
+ this.skewnessLabel.TabIndex = 0;
+ this.skewnessLabel.Text = "Skewness";
+ //
+ // median
+ //
+ this.median.AutoSize = true;
+ this.median.Location = new System.Drawing.Point(204, 228);
+ this.median.Name = "median";
+ this.median.Size = new System.Drawing.Size(94, 18);
+ this.median.TabIndex = 1;
+ this.median.Text = "median value";
+ //
+ // standard_deviation
+ //
+ this.standard_deviation.AutoSize = true;
+ this.standard_deviation.Location = new System.Drawing.Point(204, 286);
+ this.standard_deviation.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.standard_deviation.Name = "standard_deviation";
+ this.standard_deviation.Size = new System.Drawing.Size(94, 18);
+ this.standard_deviation.TabIndex = 0;
+ this.standard_deviation.Text = "StdDev value";
+ //
+ // stddevLabel
+ //
+ this.stddevLabel.AutoSize = true;
+ this.stddevLabel.Location = new System.Drawing.Point(45, 286);
+ this.stddevLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.stddevLabel.Name = "stddevLabel";
+ this.stddevLabel.Size = new System.Drawing.Size(130, 18);
+ this.stddevLabel.TabIndex = 0;
+ this.stddevLabel.Text = "Standard Deviation";
+ this.toolTip1.SetToolTip(this.stddevLabel, "sqrt(");
+ //
+ // variance
+ //
+ this.variance.AutoSize = true;
+ this.variance.Location = new System.Drawing.Point(204, 257);
+ this.variance.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.variance.Name = "variance";
+ this.variance.Size = new System.Drawing.Size(101, 18);
+ this.variance.TabIndex = 0;
+ this.variance.Text = "variance value";
+ //
+ // varianceLabel
+ //
+ this.varianceLabel.AutoSize = true;
+ this.varianceLabel.Location = new System.Drawing.Point(45, 257);
+ this.varianceLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.varianceLabel.Name = "varianceLabel";
+ this.varianceLabel.Size = new System.Drawing.Size(63, 18);
+ this.varianceLabel.TabIndex = 0;
+ this.varianceLabel.Text = "Variance";
+ this.toolTip1.SetToolTip(this.varianceLabel, "standard deviation squared");
+ //
+ // medianLabel
+ //
+ this.medianLabel.AutoSize = true;
+ this.medianLabel.Location = new System.Drawing.Point(45, 228);
+ this.medianLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.medianLabel.Name = "medianLabel";
+ this.medianLabel.Size = new System.Drawing.Size(54, 18);
+ this.medianLabel.TabIndex = 0;
+ this.medianLabel.Text = "Median";
+ this.toolTip1.SetToolTip(this.medianLabel, "media is quantile(0.5)");
+ //
+ // mode
+ //
+ this.mode.AutoSize = true;
+ this.mode.Location = new System.Drawing.Point(204, 197);
+ this.mode.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.mode.Name = "mode";
+ this.mode.Size = new System.Drawing.Size(84, 18);
+ this.mode.TabIndex = 0;
+ this.mode.Text = "mode value";
+ //
+ // mean
+ //
+ this.mean.AutoSize = true;
+ this.mean.Location = new System.Drawing.Point(204, 169);
+ this.mean.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.mean.Name = "mean";
+ this.mean.Size = new System.Drawing.Size(84, 18);
+ this.mean.TabIndex = 0;
+ this.mean.Text = "mean value";
+ //
+ // meanLabel
+ //
+ this.meanLabel.AutoSize = true;
+ this.meanLabel.Location = new System.Drawing.Point(45, 169);
+ this.meanLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.meanLabel.Name = "meanLabel";
+ this.meanLabel.Size = new System.Drawing.Size(44, 18);
+ this.meanLabel.TabIndex = 0;
+ this.meanLabel.Text = "Mean";
+ //
+ // cdfTabPage
+ //
+ this.cdfTabPage.Controls.Add(this.CDF_data);
+ this.cdfTabPage.Location = new System.Drawing.Point(4, 26);
+ this.cdfTabPage.Margin = new System.Windows.Forms.Padding(4);
+ this.cdfTabPage.Name = "cdfTabPage";
+ this.cdfTabPage.Padding = new System.Windows.Forms.Padding(4);
+ this.cdfTabPage.Size = new System.Drawing.Size(634, 555);
+ this.cdfTabPage.TabIndex = 2;
+ this.cdfTabPage.Text = "PDF and CDF";
+ this.cdfTabPage.ToolTipText = "Probability Density and Cumulative Distribution Function (and complement) for ran" +
+ "dom variate x";
+ this.cdfTabPage.UseVisualStyleBackColor = true;
+ //
+ // CDF_data
+ //
+ this.CDF_data.AccessibleDescription = "PDF, CDF & complement Data Page";
+ this.CDF_data.AccessibleName = "CDF Tab";
+ this.CDF_data.AccessibleRole = System.Windows.Forms.AccessibleRole.PageTab;
+ this.CDF_data.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.CDF_data.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+ this.RandomVariable,
+ this.PDF,
+ this.CDF,
+ this.CCDF});
+ this.CDF_data.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.CDF_data.Location = new System.Drawing.Point(4, 4);
+ this.CDF_data.Margin = new System.Windows.Forms.Padding(4);
+ this.CDF_data.Name = "CDF_data";
+ this.CDF_data.RowTemplate.Height = 24;
+ this.CDF_data.Size = new System.Drawing.Size(626, 547);
+ this.CDF_data.TabIndex = 0;
+ this.CDF_data.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellEndEdit);
+ this.CDF_data.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.CDF_data_CellContentClick);
+ //
+ // RandomVariable
+ //
+ this.RandomVariable.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+ this.RandomVariable.HeaderText = "Random Variable";
+ this.RandomVariable.Name = "RandomVariable";
+ //
+ // PDF
+ //
+ this.PDF.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+ this.PDF.HeaderText = "PDF";
+ this.PDF.Name = "PDF";
+ this.PDF.ReadOnly = true;
+ //
+ // CDF
+ //
+ this.CDF.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+ this.CDF.HeaderText = "CDF";
+ this.CDF.Name = "CDF";
+ this.CDF.ReadOnly = true;
+ //
+ // CCDF
+ //
+ this.CCDF.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+ this.CCDF.HeaderText = "1-CDF";
+ this.CCDF.Name = "CCDF";
+ this.CCDF.ReadOnly = true;
+ //
+ // QuantileTabPage
+ //
+ this.QuantileTabPage.Controls.Add(this.QuantileData);
+ this.QuantileTabPage.Location = new System.Drawing.Point(4, 26);
+ this.QuantileTabPage.Margin = new System.Windows.Forms.Padding(4);
+ this.QuantileTabPage.Name = "QuantileTabPage";
+ this.QuantileTabPage.Padding = new System.Windows.Forms.Padding(4);
+ this.QuantileTabPage.Size = new System.Drawing.Size(634, 555);
+ this.QuantileTabPage.TabIndex = 3;
+ this.QuantileTabPage.Text = "Critical Values";
+ this.QuantileTabPage.ToolTipText = "Critical values (quantiles or percentiles of probability 1 - alpha)";
+ this.QuantileTabPage.UseVisualStyleBackColor = true;
+ this.QuantileTabPage.Enter += new System.EventHandler(this.QuantileTab_Enter);
+ //
+ // QuantileData
+ //
+ this.QuantileData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.QuantileData.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+ this.RiskLevel,
+ this.LowerCriticalValue,
+ this.UpperCriticalValue});
+ this.QuantileData.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.QuantileData.Location = new System.Drawing.Point(4, 4);
+ this.QuantileData.Margin = new System.Windows.Forms.Padding(4);
+ this.QuantileData.Name = "QuantileData";
+ this.QuantileData.RowTemplate.Height = 24;
+ this.QuantileData.Size = new System.Drawing.Size(626, 547);
+ this.QuantileData.TabIndex = 0;
+ this.QuantileData.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.QuantileData_CellEndEdit);
+ //
+ // RiskLevel
+ //
+ this.RiskLevel.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+ this.RiskLevel.HeaderText = "Risk Level (alpha)";
+ this.RiskLevel.Name = "RiskLevel";
+ //
+ // LowerCriticalValue
+ //
+ this.LowerCriticalValue.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+ this.LowerCriticalValue.HeaderText = "Lower Critical Value";
+ this.LowerCriticalValue.Name = "LowerCriticalValue";
+ this.LowerCriticalValue.ReadOnly = true;
+ //
+ // UpperCriticalValue
+ //
+ this.UpperCriticalValue.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+ this.UpperCriticalValue.HeaderText = "Upper Critical Value";
+ this.UpperCriticalValue.Name = "UpperCriticalValue";
+ this.UpperCriticalValue.ReadOnly = true;
+ //
+ // menuStrip1
+ //
+ this.menuStrip1.BackColor = System.Drawing.SystemColors.Control;
+ this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.fileToolStripMenuItem,
+ this.editToolStripMenuItem,
+ this.helpToolStripMenuItem});
+ this.menuStrip1.Location = new System.Drawing.Point(0, 0);
+ this.menuStrip1.Name = "menuStrip1";
+ this.menuStrip1.Size = new System.Drawing.Size(642, 26);
+ this.menuStrip1.TabIndex = 1;
+ this.menuStrip1.Text = "menuStrip1";
+ //
+ // fileToolStripMenuItem
+ //
+ this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.newToolStripMenuItem,
+ this.openToolStripMenuItem,
+ this.toolStripSeparator,
+ this.saveToolStripMenuItem,
+ this.toolStripSeparator1,
+ this.printToolStripMenuItem,
+ this.printPreviewToolStripMenuItem,
+ this.toolStripSeparator2,
+ this.exitToolStripMenuItem});
+ this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
+ this.fileToolStripMenuItem.Size = new System.Drawing.Size(40, 22);
+ this.fileToolStripMenuItem.Text = "&File";
+ //
+ // newToolStripMenuItem
+ //
+ this.newToolStripMenuItem.Enabled = false;
+ this.newToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("newToolStripMenuItem.Image")));
+ this.newToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.newToolStripMenuItem.Name = "newToolStripMenuItem";
+ this.newToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)));
+ this.newToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
+ this.newToolStripMenuItem.Text = "&New";
+ this.newToolStripMenuItem.ToolTipText = "New is not yet implemented. Enter data into dialog boxes.";
+ this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click);
+ //
+ // openToolStripMenuItem
+ //
+ this.openToolStripMenuItem.Enabled = false;
+ this.openToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("openToolStripMenuItem.Image")));
+ this.openToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.openToolStripMenuItem.Name = "openToolStripMenuItem";
+ this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
+ this.openToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
+ this.openToolStripMenuItem.Text = "&Open";
+ this.openToolStripMenuItem.ToolTipText = "Open is not yet implemented. Enter data into dialog boxes.";
+ this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
+ //
+ // toolStripSeparator
+ //
+ this.toolStripSeparator.Name = "toolStripSeparator";
+ this.toolStripSeparator.Size = new System.Drawing.Size(174, 6);
+ //
+ // saveToolStripMenuItem
+ //
+ this.saveToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("saveToolStripMenuItem.Image")));
+ this.saveToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
+ this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
+ this.saveToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
+ this.saveToolStripMenuItem.Text = "&Save";
+ this.saveToolStripMenuItem.ToolTipText = "Save all values, input and output, to a file.";
+ this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
+ //
+ // toolStripSeparator1
+ //
+ this.toolStripSeparator1.Name = "toolStripSeparator1";
+ this.toolStripSeparator1.Size = new System.Drawing.Size(174, 6);
+ //
+ // printToolStripMenuItem
+ //
+ this.printToolStripMenuItem.Enabled = false;
+ this.printToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("printToolStripMenuItem.Image")));
+ this.printToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.printToolStripMenuItem.Name = "printToolStripMenuItem";
+ this.printToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.P)));
+ this.printToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
+ this.printToolStripMenuItem.Text = "&Print";
+ this.printToolStripMenuItem.ToolTipText = "Printing not yet available. Output to a file and print that instead.";
+ this.printToolStripMenuItem.Click += new System.EventHandler(this.printToolStripMenuItem_Click);
+ //
+ // printPreviewToolStripMenuItem
+ //
+ this.printPreviewToolStripMenuItem.Enabled = false;
+ this.printPreviewToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("printPreviewToolStripMenuItem.Image")));
+ this.printPreviewToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.printPreviewToolStripMenuItem.Name = "printPreviewToolStripMenuItem";
+ this.printPreviewToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
+ this.printPreviewToolStripMenuItem.Text = "Print Pre&view";
+ this.printPreviewToolStripMenuItem.ToolTipText = "Printing not yet available. Output to a file and print that instead.";
+ this.printPreviewToolStripMenuItem.Visible = false;
+ this.printPreviewToolStripMenuItem.Click += new System.EventHandler(this.printPreviewToolStripMenuItem_Click);
+ //
+ // toolStripSeparator2
+ //
+ this.toolStripSeparator2.Name = "toolStripSeparator2";
+ this.toolStripSeparator2.Size = new System.Drawing.Size(174, 6);
+ //
+ // exitToolStripMenuItem
+ //
+ this.exitToolStripMenuItem.AutoToolTip = true;
+ this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
+ this.exitToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
+ this.exitToolStripMenuItem.Text = "E&xit";
+ this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
+ //
+ // editToolStripMenuItem
+ //
+ this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.undoToolStripMenuItem,
+ this.redoToolStripMenuItem,
+ this.toolStripSeparator3,
+ this.cutToolStripMenuItem,
+ this.copyToolStripMenuItem,
+ this.pasteToolStripMenuItem,
+ this.toolStripSeparator4,
+ this.selectAllToolStripMenuItem});
+ this.editToolStripMenuItem.Enabled = false;
+ this.editToolStripMenuItem.Name = "editToolStripMenuItem";
+ this.editToolStripMenuItem.Size = new System.Drawing.Size(43, 22);
+ this.editToolStripMenuItem.Text = "&Edit";
+ this.editToolStripMenuItem.Visible = false;
+ //
+ // undoToolStripMenuItem
+ //
+ this.undoToolStripMenuItem.Name = "undoToolStripMenuItem";
+ this.undoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z)));
+ this.undoToolStripMenuItem.Size = new System.Drawing.Size(176, 22);
+ this.undoToolStripMenuItem.Text = "&Undo";
+ //
+ // redoToolStripMenuItem
+ //
+ this.redoToolStripMenuItem.Name = "redoToolStripMenuItem";
+ this.redoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y)));
+ this.redoToolStripMenuItem.Size = new System.Drawing.Size(176, 22);
+ this.redoToolStripMenuItem.Text = "&Redo";
+ //
+ // toolStripSeparator3
+ //
+ this.toolStripSeparator3.Name = "toolStripSeparator3";
+ this.toolStripSeparator3.Size = new System.Drawing.Size(173, 6);
+ //
+ // cutToolStripMenuItem
+ //
+ this.cutToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("cutToolStripMenuItem.Image")));
+ this.cutToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.cutToolStripMenuItem.Name = "cutToolStripMenuItem";
+ this.cutToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.X)));
+ this.cutToolStripMenuItem.Size = new System.Drawing.Size(176, 22);
+ this.cutToolStripMenuItem.Text = "Cu&t";
+ //
+ // copyToolStripMenuItem
+ //
+ this.copyToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("copyToolStripMenuItem.Image")));
+ this.copyToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.copyToolStripMenuItem.Name = "copyToolStripMenuItem";
+ this.copyToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
+ this.copyToolStripMenuItem.Size = new System.Drawing.Size(176, 22);
+ this.copyToolStripMenuItem.Text = "&Copy";
+ //
+ // pasteToolStripMenuItem
+ //
+ this.pasteToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("pasteToolStripMenuItem.Image")));
+ this.pasteToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";
+ this.pasteToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V)));
+ this.pasteToolStripMenuItem.Size = new System.Drawing.Size(176, 22);
+ this.pasteToolStripMenuItem.Text = "&Paste";
+ //
+ // toolStripSeparator4
+ //
+ this.toolStripSeparator4.Name = "toolStripSeparator4";
+ this.toolStripSeparator4.Size = new System.Drawing.Size(173, 6);
+ //
+ // selectAllToolStripMenuItem
+ //
+ this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem";
+ this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(176, 22);
+ this.selectAllToolStripMenuItem.Text = "Select &All";
+ //
+ // helpToolStripMenuItem
+ //
+ this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.contentsToolStripMenuItem,
+ this.toolStripSeparator5,
+ this.aboutToolStripMenuItem});
+ this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
+ this.helpToolStripMenuItem.Size = new System.Drawing.Size(48, 22);
+ this.helpToolStripMenuItem.Text = "&Help";
+ //
+ // contentsToolStripMenuItem
+ //
+ this.contentsToolStripMenuItem.AutoToolTip = true;
+ this.contentsToolStripMenuItem.Name = "contentsToolStripMenuItem";
+ this.contentsToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
+ this.contentsToolStripMenuItem.Text = "&Contents";
+ this.contentsToolStripMenuItem.Click += new System.EventHandler(this.contentsToolStripMenuItem_Click);
+ //
+ // toolStripSeparator5
+ //
+ this.toolStripSeparator5.Name = "toolStripSeparator5";
+ this.toolStripSeparator5.Size = new System.Drawing.Size(146, 6);
+ //
+ // aboutToolStripMenuItem
+ //
+ this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
+ this.aboutToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
+ this.aboutToolStripMenuItem.Text = "&About...";
+ this.aboutToolStripMenuItem.ToolTipText = "About this program";
+ this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
+ //
+ // customizeToolStripMenuItem
+ //
+ this.customizeToolStripMenuItem.Name = "customizeToolStripMenuItem";
+ this.customizeToolStripMenuItem.Size = new System.Drawing.Size(32, 19);
+ this.customizeToolStripMenuItem.Text = "&Customize";
+ //
+ // saveFileDialog
+ //
+ this.saveFileDialog.FileOk += new System.ComponentModel.CancelEventHandler(this.saveFileDialog1_FileOk);
+ //
+ // DistexForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 17F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.SystemColors.ControlLight;
+ this.ClientSize = new System.Drawing.Size(642, 611);
+ this.Controls.Add(this.propertiesTab);
+ this.Controls.Add(this.menuStrip1);
+ this.Font = new System.Drawing.Font("Tahoma", 8.400001F);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MainMenuStrip = this.menuStrip1;
+ this.Margin = new System.Windows.Forms.Padding(4);
+ this.MaximizeBox = false;
+ this.MinimumSize = new System.Drawing.Size(650, 645);
+ this.Name = "DistexForm";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Statistical Distribution Explorer";
+ this.toolTip1.SetToolTip(this, "Statistical Distribution Explorer main form");
+ this.Activated += new System.EventHandler(this.DistexForm_Activated);
+ this.Load += new System.EventHandler(this.Form_Load);
+ this.propertiesTab.ResumeLayout(false);
+ this.DistributionTab.ResumeLayout(false);
+ this.DistributionTab.PerformLayout();
+ this.PropertiesTabPage.ResumeLayout(false);
+ this.PropertiesTabPage.PerformLayout();
+ this.cdfTabPage.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.CDF_data)).EndInit();
+ this.QuantileTabPage.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.QuantileData)).EndInit();
+ this.menuStrip1.ResumeLayout(false);
+ this.menuStrip1.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TabControl propertiesTab;
+ private System.Windows.Forms.TabPage DistributionTab;
+ private System.Windows.Forms.TabPage PropertiesTabPage;
+ private System.Windows.Forms.Label distributionNameLabel;
+ private System.Windows.Forms.Label parameter2Label;
+ private System.Windows.Forms.Label parameter1Label;
+ private System.Windows.Forms.TextBox parameter2;
+ private System.Windows.Forms.TextBox parameter1;
+ private System.Windows.Forms.ComboBox distribution;
+ private System.Windows.Forms.Label standard_deviation;
+ private System.Windows.Forms.Label stddevLabel;
+ private System.Windows.Forms.Label variance;
+ private System.Windows.Forms.Label varianceLabel;
+ private System.Windows.Forms.Label medianLabel;
+ private System.Windows.Forms.Label mode;
+ private System.Windows.Forms.Label mean;
+ private System.Windows.Forms.Label meanLabel;
+ private System.Windows.Forms.TabPage cdfTabPage;
+ private System.Windows.Forms.DataGridView CDF_data;
+ private System.Windows.Forms.DataGridViewTextBoxColumn RandomVariable;
+ private System.Windows.Forms.DataGridViewTextBoxColumn PDF;
+ private System.Windows.Forms.DataGridViewTextBoxColumn CDF;
+ private System.Windows.Forms.DataGridViewTextBoxColumn CCDF;
+ private System.Windows.Forms.TabPage QuantileTabPage;
+ private System.Windows.Forms.DataGridView QuantileData;
+ private System.Windows.Forms.DataGridViewTextBoxColumn RiskLevel;
+ private System.Windows.Forms.DataGridViewTextBoxColumn LowerCriticalValue;
+ private System.Windows.Forms.DataGridViewTextBoxColumn UpperCriticalValue;
+ private System.Windows.Forms.MenuStrip menuStrip1;
+ private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator;
+ private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
+ private System.Windows.Forms.ToolStripMenuItem printToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem printPreviewToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
+ private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem undoToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem redoToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
+ private System.Windows.Forms.ToolStripMenuItem cutToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem copyToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem pasteToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
+ private System.Windows.Forms.ToolStripMenuItem selectAllToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem customizeToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem contentsToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
+ private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem;
+ private System.Windows.Forms.Label median;
+ private System.Windows.Forms.Label skewness;
+ private System.Windows.Forms.Label skewnessLabel;
+ private System.Windows.Forms.Label kurtosis;
+ private System.Windows.Forms.Label kurtosisLabel;
+ private System.Windows.Forms.Label kurtosis_excess;
+ private System.Windows.Forms.Label kurtosisExcessLabel;
+ private System.Windows.Forms.Label modeLabel;
+ private System.Windows.Forms.ToolTip toolTip1;
+ private System.Windows.Forms.Label CVlabel;
+ private System.Windows.Forms.Label coefficient_of_variation;
+ private System.Windows.Forms.Label parameter3Label;
+ private System.Windows.Forms.TextBox parameter3;
+ private System.Windows.Forms.Label parameterLabel3;
+ private System.Windows.Forms.Label parameterLabel2;
+ private System.Windows.Forms.Label parameterLabel1;
+ private System.Windows.Forms.Label DistributionLabel;
+ private System.Windows.Forms.Label parameter3ValueLabel;
+ private System.Windows.Forms.Label parameter2ValueLabel;
+ private System.Windows.Forms.Label parameter1ValueLabel;
+ private System.Windows.Forms.Label distributionValueLabel;
+ private System.Windows.Forms.SaveFileDialog saveFileDialog;
+ private System.Windows.Forms.Label supportLabel;
+ private System.Windows.Forms.Label rangeGreatestLabel;
+ private System.Windows.Forms.Label rangeLowestLabel;
+ private System.Windows.Forms.Label rangeLabel;
+ private System.Windows.Forms.Label supportUpperLabel;
+ private System.Windows.Forms.Label supportLowerLabel;
+ private System.Windows.Forms.Label toLabel2;
+ private System.Windows.Forms.Label toLabel1;
+ }
+}
+
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/DistexForm.cs b/src/boost/libs/math/dot_net_example/distribution_explorer/DistexForm.cs
new file mode 100644
index 000000000..8123b8ac3
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/DistexForm.cs
@@ -0,0 +1,610 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using System.Threading;
+using System.Diagnostics;
+using System.IO;
+using System.Reflection;
+
+namespace distribution_explorer
+{
+ /// <summary>
+ /// Main distribution explorer.
+ /// </summary>
+ public partial class DistexForm : Form
+ {
+
+ EventLog log = new EventLog();
+ /// <summary>
+ /// Main form
+ /// </summary>
+ public DistexForm()
+ {
+ if (!EventLog.SourceExists("EventLogDistex"))
+ {
+ EventLog.CreateEventSource("EventLogDistex", "Application");
+ }
+ log.Source = "EventLogDistex";
+ log.WriteEntry("DistexForm");
+
+ InitializeComponent();
+
+ Application.DoEvents();
+ }
+
+ private void Form_Load(object sender, EventArgs e)
+ { // Load distribution & parameters names, and default values.
+ try
+ {
+ // Create and show splash screen:
+ this.Hide();
+ distexSplash frmSplash = new distexSplash();
+ frmSplash.Show();
+ frmSplash.Update();
+ // Now load our data while the splash is showing:
+ if (boost_math.any_distribution.size() <= 0)
+ {
+ MessageBox.Show("Problem loading any distributions, size = " + boost_math.any_distribution.size().ToString());
+ }
+ for (int i = 0; i < boost_math.any_distribution.size(); ++i)
+ {
+ distribution.Items.Add(boost_math.any_distribution.distribution_name(i));
+ }
+ distribution.SelectedIndex = 0; // 1st in array, but could be any other.
+ // All parameters are made zero by default, but updated from chosen distribution.
+ parameter1.Text = boost_math.any_distribution.first_param_default(0).ToString();
+ parameter2.Text = boost_math.any_distribution.second_param_default(0).ToString();
+ parameter3.Text = boost_math.any_distribution.third_param_default(0).ToString();
+ //
+ // Sleep and then close splash;
+ Thread.Sleep(3000);
+ frmSplash.Close();
+ this.Visible = true;
+ }
+ catch
+ { //
+ log.WriteEntry("DistexForm_load exception!");
+ MessageBox.Show("Problem loading distributions, size = " + boost_math.any_distribution.size().ToString());
+ }
+ }
+
+ private void distribution_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ int i = distribution.SelectedIndex; // distribution tab.
+ parameter1Label.Text = boost_math.any_distribution.first_param_name(i);
+ parameterLabel1.Text = boost_math.any_distribution.first_param_name(i); // properties tab.
+ parameter2Label.Text = boost_math.any_distribution.second_param_name(i);
+ parameter3Label.Text = boost_math.any_distribution.third_param_name(i);
+ if (boost_math.any_distribution.first_param_name(i).Length.CompareTo(0) != 0)
+ { // Actually all the distributions have at least one parameters,
+ parameter1.Visible = true; // so should always be true.
+ parameterLabel1.Visible = true;
+ }
+ else
+ { // If distribution chosen has no parameter name(s) then hide.
+ parameter1.Visible = false;
+ parameterLabel1.Visible = false;
+ }
+ parameter1.Text = boost_math.any_distribution.first_param_default(i).ToString();
+ // Update parameter default to match distribution.
+ if (boost_math.any_distribution.second_param_name(i).Length.CompareTo(0) != 0)
+ {
+ parameter2.Visible = true;
+ parameterLabel2.Visible = true;
+ parameter2ValueLabel.Visible = true;
+ }
+ else
+ { // hide
+ parameter2.Visible = false;
+ parameterLabel2.Visible = false;
+ parameter2ValueLabel.Visible = false;
+
+ }
+ parameter2.Text = boost_math.any_distribution.second_param_default(i).ToString();
+ if (boost_math.any_distribution.third_param_name(i).Length.CompareTo(0) != 0)
+ {
+ parameter3.Visible = true;
+ parameterLabel3.Visible = true;
+ parameter3ValueLabel.Visible = true;
+ }
+ else
+ { // hide
+ parameter3.Visible = false;
+ parameterLabel3.Visible = false;
+ parameter3ValueLabel.Visible = false;
+ }
+ parameter3.Text = boost_math.any_distribution.third_param_default(i).ToString();
+ // Update tool tips to show total and supported ranges.
+ PropertiesTabPage.ToolTipText = "Shows properties and ranges of chosen distribution.";
+ }
+
+ private boost_math.any_distribution dist;
+
+ private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
+ { // Display a grid of pdf, cdf... values from user's random variate x value.
+ try
+ {
+ if (e.ColumnIndex == 0)
+ { // Clicked on left-most random variate x column to enter a value.
+ int i = e.RowIndex;
+ string s = CDF_data.Rows[i].Cells[0].Value.ToString();
+ double x = double.Parse(s); // Get value of users random variate x.
+ double pdf = dist.pdf(x); // Compute pdf values from x
+ double cdf = dist.cdf(x); // & cdf
+ double ccdf = dist.ccdf(x); // & complements.
+ CDF_data.Rows[i].Cells[1].Value = pdf; // and display values.
+ CDF_data.Rows[i].Cells[2].Value = cdf;
+ CDF_data.Rows[i].Cells[3].Value = ccdf;
+ }
+ }
+ catch (SystemException se)
+ {
+ MessageBox.Show("Error in random variable value: " + se.Message, "Calculation Error");
+ }
+ }
+
+ private void tabPage2_Enter(object sender, EventArgs e)
+ { // Properties tab shows distribution's mean, mode, median...
+ try
+ { // Show chosen distribution name, and parameter names & values.
+ int i = distribution.SelectedIndex;
+ distributionValueLabel.Text = boost_math.any_distribution.distribution_name(i).ToString();
+ parameterLabel1.Text = boost_math.any_distribution.first_param_name(i).ToString();
+ parameter1ValueLabel.Text = double.Parse(parameter1.Text).ToString();
+ parameterLabel2.Text = boost_math.any_distribution.second_param_name(i).ToString();
+ parameter2ValueLabel.Text = double.Parse(parameter2.Text).ToString();
+ parameterLabel3.Text = boost_math.any_distribution.third_param_name(i).ToString();
+ parameter3ValueLabel.Text = double.Parse(parameter3.Text).ToString();
+
+ // Show computed properties of distribution.
+ try
+ {
+ mean.Text = dist.mean().ToString();
+ }
+ catch
+ {
+ mean.Text = "Undefined.";
+ }
+ try
+ {
+ mode.Text = dist.mode().ToString();
+ }
+ catch
+ {
+ mode.Text = "Undefined.";
+ }
+ try
+ {
+ median.Text = dist.median().ToString();
+ }
+ catch
+ {
+ median.Text = "Undefined.";
+ }
+ try
+ {
+ variance.Text = dist.variance().ToString();
+ }
+ catch
+ {
+ variance.Text = "Undefined.";
+ }
+ try
+ {
+ standard_deviation.Text = dist.standard_deviation().ToString();
+ }
+ catch
+ {
+ standard_deviation.Text = "Undefined.";
+ }
+ try
+ {
+ skewness.Text = dist.skewness().ToString();
+ }
+ catch
+ {
+ skewness.Text = "Undefined.";
+ }
+ try
+ {
+ kurtosis.Text = dist.kurtosis().ToString();
+ }
+ catch
+ {
+ kurtosis.Text = "Undefined.";
+ }
+ try
+ {
+ kurtosis_excess.Text = dist.kurtosis_excess().ToString();
+ }
+ catch
+ {
+ kurtosis_excess.Text = "Undefined.";
+ }
+ try
+ {
+ coefficient_of_variation.Text = dist.coefficient_of_variation().ToString();
+ }
+ catch
+ {
+ coefficient_of_variation.Text = "Undefined.";
+ }
+
+ rangeLowestLabel.Text = dist.lowest().ToString();
+ rangeGreatestLabel.Text = dist.uppermost().ToString();
+ supportLowerLabel.Text = dist.lower().ToString();
+ supportUpperLabel.Text = dist.upper().ToString();
+ cdfTabPage.ToolTipText = "Random variate can range from " + rangeLowestLabel.Text
+ + " to " + rangeGreatestLabel.Text
+ + ",\nbut is said to be supported from " + supportLowerLabel.Text
+ + " to " + supportUpperLabel.Text
+ + "\nWithin this supported range the PDF and CDF have values between 0 and 1,\nbut below " + supportLowerLabel.Text + " both are zero, and above "
+ + supportUpperLabel.Text + " both are unity";
+ }
+ catch (SystemException se)
+ {
+ MessageBox.Show(se.Message, "Calculation Error!");
+ }
+ }
+
+ private void properties_tab_Deselecting(object sender, TabControlCancelEventArgs e)
+ {
+ try
+ {
+ if (e.TabPageIndex == 0)
+ { // Update selected distribution object:
+ double x = double.Parse(parameter1.Text);
+ double y = double.Parse(parameter2.Text);
+ double z = double.Parse(parameter3.Text);
+ int i = distribution.SelectedIndex;
+ dist = new boost_math.any_distribution(i, x, y, z);
+ // Clear existing CDF data (has to be a better way?):
+ while (CDF_data.Rows.Count > 1)
+ {
+ CDF_data.Rows.Remove(CDF_data.Rows[0]);
+ }
+ // Clear existing quantile data (has to be a better way?):
+ while (QuantileData.Rows.Count > 1)
+ {
+ QuantileData.Rows.Remove(QuantileData.Rows[0]);
+ }
+ }
+ }
+ catch (SystemException se)
+ {
+ MessageBox.Show(se.Message +
+ " Please check the distribution's parameters and try again.", "Distribution Error");
+ this.propertiesTab.SelectedIndex = 0;
+ e.Cancel = true;
+ }
+ }
+
+ private void QuantileData_CellEndEdit(object sender, DataGridViewCellEventArgs e)
+ { // aka Risk & critical values tab.
+ try
+ {
+ if (e.ColumnIndex == 0)
+ {
+ int i = e.RowIndex;
+ string s = QuantileData.Rows[i].Cells[0].Value.ToString();
+ double x = double.Parse(s);
+ // Remember x is alpha: 1 - the probability:
+ double lcv = dist.quantile(x);
+ double ucv = dist.quantile_c(x);
+ QuantileData.Rows[i].Cells[1].Value = lcv;
+ QuantileData.Rows[i].Cells[2].Value = ucv;
+ }
+ }
+ catch (SystemException se)
+ {
+ // TODO add some proper handling here!
+ MessageBox.Show("Error in probability value: " + se.Message, "Calculation Error");
+ }
+ }
+
+ private void QuantileTab_Enter(object sender, EventArgs e)
+ { // Evaluate critical values (quantiles) for pre-chosen risk level.
+ // and then, optionally, for other user-provided risk levels.
+ try
+ {
+ if (QuantileData.Rows.Count == 1)
+ {
+ // Add some defaults:
+ QuantileData.Rows.Add(5); // 5 Risk levels.
+ QuantileData.Rows[0].Cells[0].Value = "0.001"; // Risk values as text,
+ QuantileData.Rows[0].Cells[1].Value = dist.quantile(0.001); // & as double.
+ QuantileData.Rows[0].Cells[2].Value = dist.quantile_c(0.001);
+ QuantileData.Rows[1].Cells[0].Value = "0.01";
+ QuantileData.Rows[1].Cells[1].Value = dist.quantile(0.01); // 99% confidence.
+ QuantileData.Rows[1].Cells[2].Value = dist.quantile_c(0.01);
+ QuantileData.Rows[2].Cells[0].Value = "0.05";
+ QuantileData.Rows[2].Cells[1].Value = dist.quantile(0.05);
+ QuantileData.Rows[2].Cells[2].Value = dist.quantile_c(0.05);
+ QuantileData.Rows[3].Cells[0].Value = "0.1";
+ QuantileData.Rows[3].Cells[1].Value = dist.quantile(0.1);
+ QuantileData.Rows[3].Cells[2].Value = dist.quantile_c(0.1);
+ QuantileData.Rows[4].Cells[0].Value = "0.33333333333333333";
+ QuantileData.Rows[4].Cells[1].Value = dist.quantile(0.33333333333333333);
+ QuantileData.Rows[4].Cells[2].Value = dist.quantile_c(0.33333333333333333);
+ }
+ }
+ catch (SystemException se)
+ {
+ // TODO add some proper handling here!
+ MessageBox.Show(se.Message, "Calculation Error");
+ }
+ }
+
+
+ private void properties_tab_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ }
+
+ private void tabPage1_Click(object sender, EventArgs e)
+ {
+ }
+
+ private void CDF_data_CellContentClick(object sender, DataGridViewCellEventArgs e)
+ {
+ }
+
+ distexAboutBox DistexAboutBox = new distexAboutBox();
+
+ private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ DistexAboutBox.ShowDialog();
+ }
+
+ private void DistexForm_Activated(object sender, EventArgs e)
+ {
+ }
+
+ /// get AssemblyDescription
+ public string AssemblyDescription
+ {
+ get
+ {
+ // Get all Description attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
+ // If there aren't any Description attributes, return an empty string
+ if (attributes.Length == 0)
+ return "";
+ // If there is a Description attribute, return its value
+ return ((AssemblyDescriptionAttribute)attributes[0]).Description;
+ }
+ }
+
+ private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
+ {
+ using (StreamWriter sw = new StreamWriter(this.saveFileDialog.FileName))
+ { // Write distribution info and properties to file.
+ sw.WriteLine( AssemblyDescription);
+ sw.WriteLine("Version " + Assembly.GetExecutingAssembly().GetName().Version.ToString());
+ // Get parameter names (null "" if no parameter).
+ int i = distribution.SelectedIndex;
+ distributionValueLabel.Text = boost_math.any_distribution.distribution_name(i).ToString();
+ sw.WriteLine(distributionValueLabel.Text + " distribution");
+ parameterLabel1.Text = boost_math.any_distribution.first_param_name(i).ToString();
+ parameterLabel2.Text = boost_math.any_distribution.second_param_name(i).ToString();
+ parameterLabel3.Text = boost_math.any_distribution.third_param_name(i).ToString();
+ string separator = "\t "; // , or tab or space?
+ // Write parameter name & value.
+ sw.WriteLine(parameterLabel1.Text + separator + this.parameter1.Text);
+ if (boost_math.any_distribution.second_param_name(i).Length.CompareTo(0) != 0)
+ { // Is a 2nd parameter.
+ sw.WriteLine(parameterLabel2.Text + separator + this.parameter2.Text);
+ }
+ if (boost_math.any_distribution.third_param_name(i).Length.CompareTo(0) != 0)
+ { // Is a 3rd parameter.
+ sw.WriteLine(parameterLabel3.Text + separator + this.parameter3.Text);
+ }
+ sw.WriteLine();
+ sw.WriteLine("Properties");
+ // Show computed properties of distribution.
+ double x = double.Parse(parameter1.Text);
+ double y = double.Parse(parameter2.Text);
+ double z = double.Parse(parameter3.Text);
+ dist = new boost_math.any_distribution(i, x, y, z);
+ // Note global dist might not have been calculated yet if no of the tabs clicked.
+ try
+ {
+ mean.Text = dist.mean().ToString();
+ }
+ catch
+ {
+ mean.Text = "Undefined";
+ }
+ sw.WriteLine("Mean" + separator + mean.Text);
+ try
+ {
+ mode.Text = dist.mode().ToString();
+ }
+ catch
+ {
+ mode.Text = "Undefined";
+ }
+ sw.WriteLine("mode" + separator + mode.Text);
+ try
+ {
+ median.Text = dist.median().ToString();
+ }
+ catch
+ {
+ median.Text = "Undefined";
+ }
+ sw.WriteLine("Median" + separator + median.Text);
+ try
+ {
+ variance.Text = dist.variance().ToString();
+ }
+ catch
+ {
+ variance.Text = "Undefined";
+ }
+ sw.WriteLine("Variance" + separator + variance.Text);
+ try
+ {
+ standard_deviation.Text = dist.standard_deviation().ToString();
+ }
+ catch
+ {
+ standard_deviation.Text = "Undefined";
+ }
+ sw.WriteLine("Standard Deviation" + separator + standard_deviation.Text);
+ try
+ {
+ skewness.Text = dist.skewness().ToString();
+ }
+ catch
+ {
+ skewness.Text = "Undefined";
+ }
+ sw.WriteLine("Skewness" + separator + skewness.Text);
+ try
+ {
+ coefficient_of_variation.Text = dist.coefficient_of_variation().ToString();
+ }
+ catch
+ {
+ coefficient_of_variation.Text = "Undefined";
+ }
+ sw.WriteLine("Coefficient of variation" + separator + coefficient_of_variation.Text);
+ try
+ {
+ kurtosis.Text = dist.kurtosis().ToString();
+ }
+ catch
+ {
+ kurtosis.Text = "Undefined";
+ }
+ sw.WriteLine("Kurtosis" + separator + kurtosis.Text);
+ try
+ {
+ kurtosis_excess.Text = dist.kurtosis_excess().ToString();
+ }
+ catch
+ {
+ kurtosis_excess.Text = "Undefined";
+ }
+ sw.WriteLine("Kurtosis excess" + separator + kurtosis_excess.Text);
+ sw.WriteLine();
+
+ sw.WriteLine("Range from" + separator + dist.lowest().ToString() + separator +
+ "to" + separator + dist.uppermost().ToString());
+ sw.WriteLine("Support from " + separator + dist.lower().ToString() +separator+
+ "to " + separator + dist.upper().ToString());
+ sw.WriteLine();
+
+ //
+ sw.WriteLine("Quantiles");
+ if (QuantileData.Rows.Count == 1)
+ { // Add some defaults:
+ QuantileData.Rows.Add(5); // 5 Risk levels.
+ QuantileData.Rows[0].Cells[0].Value = "0.001"; // Risk values as text,
+ QuantileData.Rows[0].Cells[1].Value = dist.quantile(0.001); // & as double.
+ QuantileData.Rows[0].Cells[2].Value = dist.quantile_c(0.001);
+ QuantileData.Rows[1].Cells[0].Value = "0.01";
+ QuantileData.Rows[1].Cells[1].Value = dist.quantile(0.01); // 99% confidence.
+ QuantileData.Rows[1].Cells[2].Value = dist.quantile_c(0.01);
+ QuantileData.Rows[2].Cells[0].Value = "0.05";
+ QuantileData.Rows[2].Cells[1].Value = dist.quantile(0.05);
+ QuantileData.Rows[2].Cells[2].Value = dist.quantile_c(0.05);
+ QuantileData.Rows[3].Cells[0].Value = "0.1";
+ QuantileData.Rows[3].Cells[1].Value = dist.quantile(0.1);
+ QuantileData.Rows[3].Cells[2].Value = dist.quantile_c(0.1);
+ QuantileData.Rows[4].Cells[0].Value = "0.33333333333333333";
+ QuantileData.Rows[4].Cells[1].Value = dist.quantile(0.33333333333333333);
+ QuantileData.Rows[4].Cells[2].Value = dist.quantile_c(0.33333333333333333);
+ }
+ // else have already been calculated by entering the quantile tab.
+ for (int r = 0; r < QuantileData.Rows.Count-1; r++)
+ { // Show all the rows of quantiles, including any optional user values.
+ sw.WriteLine(QuantileData.Rows[r].Cells[0].Value.ToString() + separator +
+ QuantileData.Rows[r].Cells[1].Value.ToString() + separator +
+ QuantileData.Rows[r].Cells[2].Value.ToString());
+ }
+ sw.WriteLine();
+ sw.WriteLine("PDF, CDF & complement(s)");
+ for (int r = 0; r < CDF_data.Rows.Count-1; r++)
+ { // Show all the rows of pdf, cdf, including any optional user values.
+ sw.WriteLine(CDF_data.Rows[r].Cells[0].Value.ToString() + separator + // x value.
+ CDF_data.Rows[r].Cells[1].Value.ToString() + separator + // pdf
+ CDF_data.Rows[r].Cells[2].Value.ToString() + separator + // cdf
+ CDF_data.Rows[r].Cells[3].Value.ToString());// cdf complement.
+ }
+ sw.WriteLine();
+ }
+
+ } // saveFileDialog1_FileOk
+
+ private void saveToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ this.saveFileDialog.ShowDialog();
+ }
+
+ private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
+ { // Same as Save.
+ this.saveFileDialog.ShowDialog();
+ }
+
+ private void contentsToolStripMenuItem_Click(object sender, EventArgs e)
+ { // In lieu of proper help.
+ string helpText = "\n" + AssemblyDescription +
+ "\nVersion " + Assembly.GetExecutingAssembly().GetName().Version.ToString() +
+ "\nA Windows utility to show the properties of distributions " +
+ "\nand permit calculation of probability density (or mass) function (PDF) " +
+ "\nand cumulative distribution function (CDF) and complements from values provided." +
+ "\nQuantiles are also calculated for typical risk (alpha) probabilities" +
+ "\nand for probabilities provided by the user." +
+ "\n" +
+ "\nResults can be saved to text files using Save or SaveAs." +
+ "\nAll the values on the four tabs are output to the file chosen," +
+ "\nand are tab separated to assist input to other programs," +
+ "\nfor example, spreadsheets or text editors." +
+ "\nNote: when importing to Excel, by default only 10 decimal digits are shown by Excel:" +
+ "\nit is necessary to format all cells to display the full 15 decimal digits," +
+ "\nalthough not all computed values will be as accurate as this." +
+ "\n\nValues shown as NaN cannot be calculated for the value given," +
+ "\nmost commonly because the value is outside the range for the distribution." +
+ "\n" +
+ "\nFor more information, including downloads, see " +
+ "\nhttp://sourceforge.net/projects/distexplorer/" +
+ "\n(Note that .NET framework 4.0 and VC Redistribution X86 are requirements for this program.)" +
+ "\n\nCopyright John Maddock & Paul A. Bristow 2007, 2009, 2010, 2012";
+
+ MessageBox.Show("Statistical Distribution Explorer\n" + helpText);
+ }
+
+ private void newToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ MessageBox.Show("New is not yet implemented.");
+ }
+
+ private void openToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ MessageBox.Show("Open is not yet implemented.");
+ }
+
+ private void printToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ MessageBox.Show("Print is not yet implemented." +
+ "\nSave all values to a text file and print that file.");
+ }
+
+ private void printPreviewToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ MessageBox.Show("Print Preview is not yet implemented." +
+ "\nSave all values to a text file and print that file.");
+ }
+
+
+ private void exitToolStripMenuItem_Click(object sender, EventArgs e)
+ { // exit DistexForm
+ this.Close();
+ }
+ } // class DistexForm
+} // namespace distribution_explorer \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/DistexForm.resx b/src/boost/libs/math/dot_net_example/distribution_explorer/DistexForm.resx
new file mode 100644
index 000000000..5019fd5ce
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/DistexForm.resx
@@ -0,0 +1,294 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>284, 17</value>
+ </metadata>
+ <metadata name="RandomVariable.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+ <metadata name="PDF.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+ <metadata name="CDF.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+ <metadata name="CCDF.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+ <metadata name="RiskLevel.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+ <metadata name="LowerCriticalValue.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+ <metadata name="UpperCriticalValue.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+ <metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>159, 17</value>
+ </metadata>
+ <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <data name="newToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
+ EnQB3mYfeAAAAQ9JREFUOE+t09lqwkAUBmBfyr5DfY32jaReSOmFCyKCgkKLFrVUBZeKiEbshqRuaNw1
+ xiXmLxMJBJ0Zc+GBw9zMfDPnHMZmu1ZE35s4zXCqjmC8Al+sgHLjD9y7yGFWPIbecOO45yORtMAEHnxx
+ JHL1IyKI9JeEXqtMwOl50Q8bSS0l8PzBBPbqAQQxICrgjeapgKZpkJUdBmNZB+y3d/QSnsIZKrDdqZjM
+ FYj9OR9wB1NngHrQsJC36EkrfIkTPuDyJ84AZbOHNF2j1Z2h9i3xAVKfOUjjZssN2oMFmq0xSkLfOmBu
+ 3E97iurnENlKxzpgbpzwO0Kh1kOyKFoDjHmzVuYYjRmTDZfyWh9Yd/4B2Mz2w1z7EGUAAAAASUVORK5C
+ YII=
+</value>
+ </data>
+ <data name="openToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
+ EnQB3mYfeAAAAlpJREFUOE+tk21Ik1EYhif0oyA0sqIQCix/+GcQFFH9CCmiUBTLLEjShJofVBgL2fxo
+ U9Pp5ubUlS5rU9f8rCyjsA+pUCRCTR1ppmVFUSlmhq78unrnQF1KGHTg/nEOz30993PO+7qJFrmUeiv2
+ n+Mij+XLRLLYULdF2pxlEVIDcw0pAsyxD5fmI/rQ94pqi26eOlsfuZj+7BgSm01QdA4ih7m73Yx9qGpa
+ vwatjPebqCzOprPt8YKQgzFagqL0BEjyEFWVaBkdLHMxT34uYNwWR9nVTEoL0zHlp2DMSeaSRk6eKt4V
+ Wm5WM/rVPNN5SjDTLQebZEHNA1wrUvHjk3E6tsNcV62e1r3KLGqtKm6WplNpSsVqVFJsOM8VfSKFWjkG
+ tcyZptSYzvC7XByx3zQoqCnTMvlGCX1prnornPUmQJcUXsbSVhGK5bIOkcmQyveeTHiv4VZ5Nk33Nc6i
+ uSO8CIfmECYa/bE/8ON1iRipJNh5F0V6Bd86lfQ1JlFj1TDVq4COKCegLVIwHmGiKRB7/V6G7+5koHoz
+ ymgfYRy5E1CgTWKgXcZ1i5qWp0KSrjgBcAJawph6FszYk/2M1O1isGYLX8p9ab6wgqP+3rMvYciS01Gf
+ zA1LFvQkQ6sQ9/khxhoCGHnox1DtNvorxXw0b8Km8UQh2cip6GOzgNyMeKqKM7HdjqFZJ5pRk2YJ9aql
+ 3EnxoCJxNaZ4Ly6e3UDY3O6OEXRp59ApTpIhiyDh9GHORAZyPHQPB/ZtZ/cOMVvFPvh6e7F+3SrWrHRn
+ raf7Xz/xf/rJ/kvxb84I3U1y+9/WAAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="saveToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
+ EnQB3mYfeAAAAixJREFUOE+tk91Lk3EUx/cvdN9N0EW3NTWGa7EaPOUcyqphWBG9PZEv5dJlmqhYmUYt
+ XyBb4dJJy+kknFT4BqZIjaFMJUszV7TEoabYRDD49ju/6Pm1Mi+iH5zLz+c855zvo1L9j/fsaRRUvvZl
+ tHmX8Ni9gMaGCO47ZlBb8wn22yHcKJ9CackECgteIy93FBfOB6H0JrC3B6ipXsVGb2V1Dca0XhxOe8JL
+ EXhbF7mgsuLLX3mCIwsr2G1+DrVahuWQRwjcj+a5oLTk87qCn/D78CLiTD4UXJ7GAXOTEDjrZ7ngku3d
+ H4Jf4ZHJCLZJXlhzxpGa4hSCurthLsjOGo0R/A4PBsPYrHdDlgMwmRxCUF31kQvkMwFFsB7c4/+ATYkN
+ OHL0BZKSaoXgZuU0urvATgkcP/kKlmMDfNu0MJqZPps6/4D7cNDSCUmyC8HVskl0+MAyADS5vrG7f0X5
+ 9Tm+VFoYzZyZEVTg5NR2GAwVQnClcByeZuChc40FJwpjek5MmU/YkH6uiHdOTmHwfg/0+jIhsOWNMRio
+ uhPlnUnAQoI4rYSht7MYm5qDnHsNe41tHNbucUGnKxICiqXjHpTPJgHBZ/Nv4U1oHqGZJVwstiNe72Jw
+ I+J3PYA2MV8IMjOG2dzLfOatBg+27JDQ0tEPX9cguvv8GHg5hH0mC9S6eiQweLumDhqNVQgo06dP9fN4
+ UsIoJHRnOhVtmxZGM1NXKoJ3JmTHCv71r/4OTrQ4xWMwWlcAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="printToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
+ EnQB3mYfeAAAAi1JREFUOE+1k/9PUlEYxv2nWK2tVlttGmpltrCcEQ1XUjSMaUHJNLIpNcnCragplBvU
+ oC/okJhZLG92ySUpU8RNICdIhAioEF+e7r1UZMDW1jrb+8t7z/N83vucc8rK/sdyeYIwvpopWYbRaZTk
+ 0uIx0o0/V/JbGt7lVTwxT6CKKyltoLd8xGYihS/hKGz2WaaeWUnoTATsMz7UCztx9Ex7cYN3jkUQU4tb
+ 4DR5LZaAcyEAg4VE5YlLMFmJQoNQJA61gUA6k4XPH9pCN9s+gZz2oq5Jjlq+DDfUz3Fba86bOGY9jHiU
+ dDF0mvqT7A/F4fKEcE9nZf5d1jOIB4ZxVJ2U5gyc8z70akegMX3AXb0ND1+8R6/GgvZbeog61OA2K3CA
+ 2lxR34JjZ69B2T8EsVyN/Q0XcwY3B14iGk8UpE43UukMNqhA6QyC4Q0srcQg7dagsbWHmuDHScj7jDC9
+ nsJTqx0a4xjuaIfRqXoMSXc/hG0q8C4owGnqwEGeFOXHxThH9eoEV7G7VpiboE2pK0qnm9H1JLz+NUzO
+ BfHWEcAQsQSuqAuVDa1gVZzKGUgUjwoMqAzxNZbC3Od1jDvDYPdth+7NCpP8Yf4V7KoR5A1arg8gmQIo
+ GMLxLJYjWSwEMphwb2J4MoZB2yqULBZUIxHGYB9HlBfTE4jl9+GmBPTHv6lfo//+GGoaZajmXQabumXl
+ 1HHt5TRjz5Hz2HlIgB3Vp7GNzWeoRcX/+pq/AwHYL0leVl8fAAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="printPreviewToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
+ EnQB3mYfeAAAAY5JREFUOE+d081LAkEUAPD1T+hYhzoERV77OHUo8JBBt+4RRkSQ4U0SunaJOkSRKQWZ
+ WCiF5kdroa0WRAoRFXXoEEkWCUFYWbvrvnqz7NK6OxANPIZh5v1m3uyOKZK5AaamiaLICILACDzPtDXX
+ M+3mRlPtGnWMAK15g4fQabVBYDej20QFdtJXVGBxg4Xk8aWMRDhjJLh/TgUW1hPQ1T+ihmEZgXieCghi
+ FRBRIEPAFzkxBO4fSsByOfBsRkkE4xkoFEv6Mla3szoAF2Jy+E2A0KMc/nyRINe3BS2yspXSAf4YR5Kf
+ q/LUE1QJopxEU8qSP6kD5nwxFUAEA0E8hdM1rz0BXtDvhheHwMEnwKkkJ2OPAJMuw+TUDB2QJAneKzxg
+ CRNnHwTBUJJd3ijYx8fowBcvwstrBXIXdxBOZAmCu2JgssMxBGvOOmNA+d5KP+sJw17qiJRjn3bDwOAo
+ cF4LQMWtRTABf9W/hLWjFcpsA0Fctm76+6C+vJ+J4b4WgmAp/0bMTXVg6ekFNrQM3y3xMcC3lb+tAAAA
+ AElFTkSuQmCC
+</value>
+ </data>
+ <data name="cutToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
+ EnQB3mYfeAAAAYdJREFUOE+t001LQlEQBuB+TdCmRVEJRRIWtRAUlKsQhFmkpZQtIiWyAlMwP5KkXS0s
+ hLqGFkgoFqWQmaRR2qIvU7FMwWhd8JZXkFx0uVGzOcNh5jkDw6mr+++4SN7B6fbju/uQecYm6a25+/Hd
+ l2IJptWNmmJyL4DwWZwZUJbtayT8RxGqIV8oQaaaRfrxkTmw4z2G+WuKbC6PYDgOkUSJp6ccc+AgdI4l
+ uwPbHh/UCxb0S0aZN5fHTmefMTVvwfDEHIiBMegMpt8BZUShNoGQTIKQGxA8TTIHMoUPGF1vEOvTWHTc
+ gqeJQahNwLqVQiRRpIdS+XcM2l4h1t2DI3WAP7oGoSYE3kwSPQofljcqm/kxjK4SCH0OXSMetItsUC26
+ wZuOVptYhI0eEOuz1YI2gZnKBdpr6iR9V2jkKOkBQpeiCryhFFr4eioft16iU7qNho4h1Dc00QOqlRuw
+ pSSa+UawuZXdByIZsPoUaOmWwrUfowcOozlwZeto7ZXDuXvCfHV/+dGfqqrf44qgu28AAAAASUVORK5C
+ YII=
+</value>
+ </data>
+ <data name="copyToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
+ EnQB3mYfeAAAAeJJREFUOE+lk9FPklEYxv1TSsecde0f0FpZrTbbal7URVvZuuJCr7pq2WzLNWy0iSHN
+ wtIB9qG0ltLSYRJpBomUgZPMGSyU8SmJIOiv7zssCdrAzXd77s77e5/nnPdUVR20HBPfUCWNB4QsI176
+ HB8IL/9iX2y1ubTMwx6utz0nuLhcGWIfCxT153Z26ep/g9Md4FJLZ2WIZdQnAM4QSJ/BH5Z5aH6NNClj
+ m0hgdSV4MppAPxQXCq5kil31OTx7DjLbOeSNNJFYUgBKq31glfpmN76F9QLEZHOJc73ubXQjMreln7Q+
+ DdP/du0/QIsxhmNK5mjTMJ/m43mIQcmr5t5MZVlNpFiKrPM1vIbpVVQAOqSckF+ZekUX5UjTS+ouDFLb
+ +CwPUPNupbN7k7WmEDcMX3hgXSpyIP/OsrCyhXtuA6M0g+bc4wJATqaZ/x7DF4zg8f9g/OMibb355701
+ kERriHL5fojzd2aFjNI0mjPdBUD96auUqlU/KwBZJV4skWUuvMmYV8b+Ls6jQQ81DfryO3KtfUoA/p38
+ 10G37T3VJ3TlARdvukhldjANeemxz2B8MS0mq80GyySHj98rD2jQOpXbtgrVNprRnO2h5lQX1Sc7leYO
+ Dh27W3nN9/WZDnroDx0A5wwhdtmtAAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="pasteToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
+ EnQB3mYfeAAAAlBJREFUOE+1k1lIlGEUhn/owm6KFuqqq4LoJooIqouMwixMM4zEjKyJGJUSlcnSITU1
+ RSe3SdPGyGVQc6tEUSkSIXFo13CMFonUyGmy5p9xz+Lp/z8ZbGjzpgMv5+a8z1n4Pkn6H9HZnEH7zVQa
+ yxKYF7+hMg+3ynKO4LBVMWa7xmBfNme1vuSl67hi0GNMj/sVqBon5XqmnXVMOqoxF+sYH6kgJyWKF13x
+ nD/tT7xmM7bOY4y0riY6bL8nRAWo5mlnDUUZR+m2ZCO/L2C4T89bywmaSgIJD/WmKnEVT/MkIg/v8wTU
+ VeTMAuQbGBLDSNaFoI8K5lxkEDptIDEafyJCfciPXiMAIX7enoDqUgNTci1TdhPjQ5nYn0dhrVgu1Fu+
+ jO7iRTwyegmzKp9tGz0BZlMGE/YyJgbSGH95irFnB5GbF5Nb3kqmqZELl2uJN5iJSS0hPMFIWGyWJ6C0
+ MJXRQSNjfVpGH/vjur+Jj7dXCLM7pme+4XBOMjDsIDgihYDj+jlISW4S8qs0XA99cXWsx9m2ksFySXRW
+ o/RWp5Cppp3efpsw3+2ysidIMwspzErgc88ZnO3rkFuWYq/3ov+6JMb+OvOdLy6l8wcHvW9sWHre4Rca
+ g69i3rX3AN7bdyDlX4zD/iBCMS/hU8NChioXYC2SiFZ2Vsd2T3BVmaDA3EZTh1VkVVs3rEW6lBwrHoj7
+ yu6sVQ72c+d7ltfCXH+nm5rWJ3MAdY3cpJPKCwtEE7SbgJ1bBFm9trqzu9vvspjgT3FIubZa8C/N67P9
+ regHTvjvLQ3rR38AAAAASUVORK5CYII=
+</value>
+ </data>
+ <metadata name="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>17, 17</value>
+ </metadata>
+ <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ AAABAAIAEBAQAAAABAAoAQAAJgAAACAgEAAAAAQA6AIAAE4BAAAoAAAAEAAAACAAAAABAAQAAAAAAMAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
+ AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAH//j/j/jwAAf/+P+P+PAAB4iIiIiIgAAH93h3h3
+ jwAAf3eHeHePAAB4iIiIiIgAAH93h3h3jwAAf3eHeHePAAB4iIiIiIgAAH93h3h3jwAAf3eHeHePAAB4
+ iIiIgAAAAH//j/j39wAAf/+P+PdwAAB3d3d3dwAAwAEAAMABAADAAQAAwAEAAMABAADAAQAAwAEAAMAB
+ AADAAQAAwAEAAMABAADAAQAAwAEAAMADAADABwAAwA8AACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAA
+ AAAAAAAAEAAAABAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/
+ /wD/AAAA/wD/AP//AAD///8Au7u7u7u7u7u7u7u7RLREu7u7u7u7u7u7u7u7u7S7S7u7u7u7u7u7u7u7
+ u7u7u7u7u7u7u7u7u7u7u7u0RERES7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7u0RLu7u7u7u7u7
+ u7u0u7S7u0u7u7u7u7u7u7u7RLtES7RLu7u7u7u7u7u7u7S7tLu7S7u7u7u7u7u7u7u7u7u7u7u7u7u7
+ u7u7u7u0REREREREREu7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7u7u7u0RLu7u7u7u7u0u7S7u7u7u0u7
+ u7u7u7u7RLtES7u7u7RLu7u7u7u7u7S7tLu7u7u7S7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7RERERERE
+ RERERERLu0u7u7u7u7u7u7u7u7u7u7tLu0u7u7u7u0RLu7u7u7u7S7REu7u7u7u0u7u7u7u7tEu7S7u7
+ u7u7RLu7u7u7u7tLu7u7u7u7u7S7u7u7u7u7u7u7u7u7u7u7u7u7u7u7tERERERERERERERERERES7u7
+ u7u7u7u7u7u7u7u7u7u7u7u7u7u7REu7u7u7u7u7u7u7u7u7u7S7u7u7u7u7u7u7u7u7u7u0u7u7u7u7
+ u7u7u7u7u7u7tLu7u7u7u7u7u7u7u7u7u0S7u7u7u7u7u7u7u7u7u7u0u7u7u7u7u7sAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+</value>
+ </data>
+</root> \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/DistexSplash.Designer.cs b/src/boost/libs/math/dot_net_example/distribution_explorer/DistexSplash.Designer.cs
new file mode 100644
index 000000000..a37157ebc
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/DistexSplash.Designer.cs
@@ -0,0 +1,141 @@
+namespace distribution_explorer
+{
+ partial class distexSplash
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(distexSplash));
+ this.labelApplicationTitle = new System.Windows.Forms.Label();
+ this.labelApplicationVersion = new System.Windows.Forms.Label();
+ this.labelApplicationCopyright = new System.Windows.Forms.Label();
+ this.labelApplicationDescription = new System.Windows.Forms.Label();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ this.groupBox1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // labelApplicationTitle
+ //
+ this.labelApplicationTitle.BackColor = System.Drawing.SystemColors.Control;
+ this.labelApplicationTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F);
+ this.labelApplicationTitle.ForeColor = System.Drawing.Color.Black;
+ this.labelApplicationTitle.Location = new System.Drawing.Point(331, 27);
+ this.labelApplicationTitle.Name = "labelApplicationTitle";
+ this.labelApplicationTitle.Size = new System.Drawing.Size(313, 133);
+ this.labelApplicationTitle.TabIndex = 0;
+ this.labelApplicationTitle.Text = "labelApplicationTitle";
+ this.labelApplicationTitle.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+ //
+ // labelApplicationVersion
+ //
+ this.labelApplicationVersion.BackColor = System.Drawing.SystemColors.Control;
+ this.labelApplicationVersion.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.labelApplicationVersion.ForeColor = System.Drawing.SystemColors.ControlText;
+ this.labelApplicationVersion.Location = new System.Drawing.Point(302, 158);
+ this.labelApplicationVersion.Name = "labelApplicationVersion";
+ this.labelApplicationVersion.Size = new System.Drawing.Size(320, 20);
+ this.labelApplicationVersion.TabIndex = 1;
+ this.labelApplicationVersion.Text = "labelApplicationVersion";
+ this.labelApplicationVersion.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ this.labelApplicationVersion.Click += new System.EventHandler(this.labelApplicationVersion_Click);
+ //
+ // labelApplicationCopyright
+ //
+ this.labelApplicationCopyright.BackColor = System.Drawing.SystemColors.Control;
+ this.labelApplicationCopyright.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
+ this.labelApplicationCopyright.ForeColor = System.Drawing.SystemColors.ControlText;
+ this.labelApplicationCopyright.Location = new System.Drawing.Point(59, 191);
+ this.labelApplicationCopyright.Name = "labelApplicationCopyright";
+ this.labelApplicationCopyright.Size = new System.Drawing.Size(563, 20);
+ this.labelApplicationCopyright.TabIndex = 2;
+ this.labelApplicationCopyright.Text = "labelApplicationCopyright";
+ this.labelApplicationCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // labelApplicationDescription
+ //
+ this.labelApplicationDescription.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
+ this.labelApplicationDescription.ForeColor = System.Drawing.SystemColors.ControlText;
+ this.labelApplicationDescription.Location = new System.Drawing.Point(27, 234);
+ this.labelApplicationDescription.Name = "labelApplicationDescription";
+ this.labelApplicationDescription.Size = new System.Drawing.Size(608, 29);
+ this.labelApplicationDescription.TabIndex = 3;
+ this.labelApplicationDescription.Text = "labelApplicationDescription";
+ this.labelApplicationDescription.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
+ this.pictureBox1.Location = new System.Drawing.Point(27, 27);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(282, 92);
+ this.pictureBox1.TabIndex = 4;
+ this.pictureBox1.TabStop = false;
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.labelApplicationVersion);
+ this.groupBox1.Controls.Add(this.labelApplicationCopyright);
+ this.groupBox1.Location = new System.Drawing.Point(13, 12);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(644, 254);
+ this.groupBox1.TabIndex = 5;
+ this.groupBox1.TabStop = false;
+ //
+ // distexSplash
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 18F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.SystemColors.Control;
+ this.ClientSize = new System.Drawing.Size(669, 276);
+ this.Controls.Add(this.pictureBox1);
+ this.Controls.Add(this.labelApplicationDescription);
+ this.Controls.Add(this.labelApplicationTitle);
+ this.Controls.Add(this.groupBox1);
+ this.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "distexSplash";
+ this.ShowInTaskbar = false;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Statistical Distribution Explorer";
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ this.groupBox1.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label labelApplicationTitle;
+ private System.Windows.Forms.Label labelApplicationVersion;
+ private System.Windows.Forms.Label labelApplicationCopyright;
+ private System.Windows.Forms.Label labelApplicationDescription;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ private System.Windows.Forms.GroupBox groupBox1;
+ }
+} \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/DistexSplash.cs b/src/boost/libs/math/dot_net_example/distribution_explorer/DistexSplash.cs
new file mode 100644
index 000000000..9aa070845
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/DistexSplash.cs
@@ -0,0 +1,126 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using System.Reflection;
+
+namespace distribution_explorer
+{ /// namespace distribution_explorer
+ public partial class distexSplash : Form
+ { /// Splash
+ public distexSplash()
+ {
+ InitializeComponent();
+ this.labelApplicationTitle.Text = AssemblyTitle;
+ this.labelApplicationDescription.Text = AssemblyDescription;
+ this.labelApplicationCopyright.Text = AssemblyCopyright;
+ this.labelApplicationVersion.Text = "Version " + AssemblyVersion;
+ }
+
+ #region Assembly Attribute Accessors
+ /// get AssemblyTitle
+ public string AssemblyTitle
+ {
+ get
+ {
+ // Get all Title attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
+ // If there is at least one Title attribute
+ if (attributes.Length > 0)
+ {
+ // Select the first one
+ AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
+ // If it is not an empty string, return it
+ if (titleAttribute.Title != "")
+ return titleAttribute.Title;
+ }
+ // If there was no Title attribute, or if the Title attribute was the empty string, return the .exe name
+ return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
+ }
+ }
+ /// get AssemblyVersion
+ public string AssemblyVersion
+ {
+ get
+ {
+ return Assembly.GetExecutingAssembly().GetName().Version.ToString();
+ }
+ }
+
+ //public string AssemblyGuid
+ //{ // error CS0117: 'System.Reflection.AssemblyName' does not contain a definition for 'Guid'
+ // get
+ // {
+ // return Assembly.GetExecutingAssembly().GetName().Guid.ToString();
+ // }
+ //}
+ /// get AssemblyDescription
+ public string AssemblyDescription
+ {
+ get
+ {
+ // Get all Description attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
+ // If there aren't any Description attributes, return an empty string
+ if (attributes.Length == 0)
+ return "";
+ // If there is a Description attribute, return its value
+ return ((AssemblyDescriptionAttribute)attributes[0]).Description;
+ }
+ }
+ /// get AssemblyProduct
+ public string AssemblyProduct
+ {
+ get
+ {
+ // Get all Product attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
+ // If there aren't any Product attributes, return an empty string
+ if (attributes.Length == 0)
+ return "";
+ // If there is a Product attribute, return its value
+ return ((AssemblyProductAttribute)attributes[0]).Product;
+ }
+ }
+ /// get AssemblyCopyright
+ public string AssemblyCopyright
+ {
+ get
+ {
+ // Get all Copyright attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
+ // If there aren't any Copyright attributes, return an empty string
+ if (attributes.Length == 0)
+ return "";
+ // If there is a Copyright attribute, return its value
+ return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
+ }
+ }
+ /// get AssemblyCompany
+ public string AssemblyCompany
+ {
+ get
+ {
+ // Get all Company attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
+ // If there aren't any Company attributes, return an empty string
+ if (attributes.Length == 0)
+ return "";
+ // If there is a Company attribute, return its value
+ return ((AssemblyCompanyAttribute)attributes[0]).Company;
+ }
+ }
+ #endregion
+
+ private void labelApplicationVersion_Click(object sender, EventArgs e)
+ {
+
+ }
+ }
+}
+
+
+
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/DistexSplash.resx b/src/boost/libs/math/dot_net_example/distribution_explorer/DistexSplash.resx
new file mode 100644
index 000000000..d12898c4c
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/DistexSplash.resx
@@ -0,0 +1,384 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ 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
+ AAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ AAABAAIAEBAQAAAABAAoAQAAJgAAACAgEAAAAAQA6AIAAE4BAAAoAAAAEAAAACAAAAABAAQAAAAAAMAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
+ AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAH//j/j/jwAAf/+P+P+PAAB4iIiIiIgAAH93h3h3
+ jwAAf3eHeHePAAB4iIiIiIgAAH93h3h3jwAAf3eHeHePAAB4iIiIiIgAAH93h3h3jwAAf3eHeHePAAB4
+ iIiIgAAAAH//j/j39wAAf/+P+PdwAAB3d3d3dwAAwAEAAMABAADAAQAAwAEAAMABAADAAQAAwAEAAMAB
+ AADAAQAAwAEAAMABAADAAQAAwAEAAMADAADABwAAwA8AACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAA
+ AAAAAAAAEAAAABAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/
+ /wD/AAAA/wD/AP//AAD///8Au7u7u7u7u7u7u7u7RLREu7u7u7u7u7u7u7u7u7S7S7u7u7u7u7u7u7u7
+ u7u7u7u7u7u7u7u7u7u7u7u0RERES7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7u0RLu7u7u7u7u7
+ u7u0u7S7u0u7u7u7u7u7u7u7RLtES7RLu7u7u7u7u7u7u7S7tLu7S7u7u7u7u7u7u7u7u7u7u7u7u7u7
+ u7u7u7u0REREREREREu7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7u7u7u0RLu7u7u7u7u0u7S7u7u7u0u7
+ u7u7u7u7RLtES7u7u7RLu7u7u7u7u7S7tLu7u7u7S7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7RERERERE
+ RERERERLu0u7u7u7u7u7u7u7u7u7u7tLu0u7u7u7u0RLu7u7u7u7S7REu7u7u7u0u7u7u7u7tEu7S7u7
+ u7u7RLu7u7u7u7tLu7u7u7u7u7S7u7u7u7u7u7u7u7u7u7u7u7u7u7u7tERERERERERERERERERES7u7
+ u7u7u7u7u7u7u7u7u7u7u7u7u7u7REu7u7u7u7u7u7u7u7u7u7S7u7u7u7u7u7u7u7u7u7u0u7u7u7u7
+ u7u7u7u7u7u7tLu7u7u7u7u7u7u7u7u7u0S7u7u7u7u7u7u7u7u7u7u0u7u7u7u7u7sAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+</value>
+ </data>
+</root> \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/IconToolkit.ico b/src/boost/libs/math/dot_net_example/distribution_explorer/IconToolkit.ico
new file mode 100644
index 000000000..bfd8035cc
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/IconToolkit.ico
Binary files differ
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/Program.cs b/src/boost/libs/math/dot_net_example/distribution_explorer/Program.cs
new file mode 100644
index 000000000..3a44ac763
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/Program.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Windows.Forms;
+
+namespace distribution_explorer
+{
+ static class Program
+ {
+ /// <summary>
+ /// The main entry point for the application.
+ /// </summary>
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new DistexForm());
+ }
+ }
+} \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/AssemblyInfo.cs b/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..1f6d55db5
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/AssemblyInfo.cs
@@ -0,0 +1,34 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Statistical Distribution Explorer")]
+[assembly: AssemblyDescription("Shows most properties for 31 Statistical Distributions (mean, mode, median, variance, skewness, kurtosis, range).\n Calculates probability distribution function (PDF), cumulative distribution function (CDF), quantiles, and complements, and upper and lower critical values for given risk levels (alpha).")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Boost 1.52")]
+[assembly: AssemblyProduct("Statistical Distribution Explorer")]
+[assembly: AssemblyCopyright("Copyright © John Maddock & Paul A. Bristow 2007 - 2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("a8cd54bd-81b1-4bd3-be18-2cd56fffa1f1")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("1.0.1.52")]
+[assembly: AssemblyFileVersion("1.0.1.52")]
+[assembly: AssemblyInformationalVersion("From Boost 1.52")] \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Resources.Designer.cs b/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Resources.Designer.cs
new file mode 100644
index 000000000..cb5a05a2a
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Resources.Designer.cs
@@ -0,0 +1,70 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.1
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace distribution_explorer.Properties {
+ using System;
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("distribution_explorer.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ internal static System.Drawing.Bitmap ToolkitLogo {
+ get {
+ object obj = ResourceManager.GetObject("ToolkitLogo", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Resources.resx b/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Resources.resx
new file mode 100644
index 000000000..0eba41ff7
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Resources.resx
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="ToolkitLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\ToolkitLogo.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+</root> \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Settings.Designer.cs b/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Settings.Designer.cs
new file mode 100644
index 000000000..14afa0d78
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.1
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace distribution_explorer.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Settings.settings b/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Settings.settings
new file mode 100644
index 000000000..39645652a
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/Settings.settings
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/app.manifest b/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/app.manifest
new file mode 100644
index 000000000..a78d4c9ae
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/Properties/app.manifest
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+ <security>
+ <applicationRequestMinimum>
+ <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
+ <defaultAssemblyRequest permissionSetReference="Custom" />
+ </applicationRequestMinimum>
+ </security>
+ </trustInfo>
+</asmv1:assembly> \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/Settings.cs b/src/boost/libs/math/dot_net_example/distribution_explorer/Settings.cs
new file mode 100644
index 000000000..d5d2b0732
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/Settings.cs
@@ -0,0 +1,28 @@
+namespace distribution_explorer.Properties {
+
+
+ // This class allows you to handle specific events on the settings class:
+ // The SettingChanging event is raised before a setting's value is changed.
+ // The PropertyChanged event is raised after a setting's value is changed.
+ // The SettingsLoaded event is raised after the setting values are loaded.
+ // The SettingsSaving event is raised before the setting values are saved.
+ internal sealed partial class Settings {
+
+ public Settings() {
+ // // To add event handlers for saving and changing settings, uncomment the lines below:
+ //
+ // this.SettingChanging += this.SettingChangingEventHandler;
+ //
+ // this.SettingsSaving += this.SettingsSavingEventHandler;
+ //
+ }
+
+ private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
+ // Add code to handle the SettingChangingEvent event here.
+ }
+
+ private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
+ // Add code to handle the SettingsSaving event here.
+ }
+ }
+}
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/ToolkitLogo.bmp b/src/boost/libs/math/dot_net_example/distribution_explorer/ToolkitLogo.bmp
new file mode 100644
index 000000000..c712ff58b
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/ToolkitLogo.bmp
Binary files differ
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/boost.png b/src/boost/libs/math/dot_net_example/distribution_explorer/boost.png
new file mode 100644
index 000000000..461cf27b2
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/boost.png
Binary files differ
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/distexAboutBox.Designer.cs b/src/boost/libs/math/dot_net_example/distribution_explorer/distexAboutBox.Designer.cs
new file mode 100644
index 000000000..5d05ce647
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/distexAboutBox.Designer.cs
@@ -0,0 +1,190 @@
+namespace distribution_explorer
+{
+ partial class distexAboutBox
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
+ this.logoPictureBox = new System.Windows.Forms.PictureBox();
+ this.labelProductName = new System.Windows.Forms.Label();
+ this.labelVersion = new System.Windows.Forms.Label();
+ this.labelCopyright = new System.Windows.Forms.Label();
+ this.labelCompanyName = new System.Windows.Forms.Label();
+ this.textBoxDescription = new System.Windows.Forms.TextBox();
+ this.okButton = new System.Windows.Forms.Button();
+ this.tableLayoutPanel.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit();
+ this.SuspendLayout();
+ //
+ // tableLayoutPanel
+ //
+ this.tableLayoutPanel.ColumnCount = 2;
+ this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F));
+ this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F));
+ this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0);
+ this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0);
+ this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1);
+ this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2);
+ this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3);
+ this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4);
+ this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5);
+ this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel.Location = new System.Drawing.Point(12, 11);
+ this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(4);
+ this.tableLayoutPanel.Name = "tableLayoutPanel";
+ this.tableLayoutPanel.RowCount = 6;
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.Size = new System.Drawing.Size(556, 326);
+ this.tableLayoutPanel.TabIndex = 0;
+ //
+ // logoPictureBox
+ //
+ this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.logoPictureBox.Image = global::distribution_explorer.Properties.Resources.ToolkitLogo;
+ this.logoPictureBox.InitialImage = global::distribution_explorer.Properties.Resources.ToolkitLogo;
+ this.logoPictureBox.Location = new System.Drawing.Point(4, 4);
+ this.logoPictureBox.Margin = new System.Windows.Forms.Padding(4);
+ this.logoPictureBox.Name = "logoPictureBox";
+ this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6);
+ this.logoPictureBox.Size = new System.Drawing.Size(175, 318);
+ this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.logoPictureBox.TabIndex = 12;
+ this.logoPictureBox.TabStop = false;
+ //
+ // labelProductName
+ //
+ this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelProductName.Location = new System.Drawing.Point(191, 0);
+ this.labelProductName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
+ this.labelProductName.MaximumSize = new System.Drawing.Size(0, 21);
+ this.labelProductName.Name = "labelProductName";
+ this.labelProductName.Size = new System.Drawing.Size(361, 21);
+ this.labelProductName.TabIndex = 19;
+ this.labelProductName.Text = "Product Name";
+ this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // labelVersion
+ //
+ this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelVersion.Location = new System.Drawing.Point(191, 32);
+ this.labelVersion.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
+ this.labelVersion.MaximumSize = new System.Drawing.Size(0, 21);
+ this.labelVersion.Name = "labelVersion";
+ this.labelVersion.Size = new System.Drawing.Size(361, 21);
+ this.labelVersion.TabIndex = 0;
+ this.labelVersion.Text = "Version";
+ this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // labelCopyright
+ //
+ this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelCopyright.Location = new System.Drawing.Point(191, 64);
+ this.labelCopyright.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
+ this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 21);
+ this.labelCopyright.Name = "labelCopyright";
+ this.labelCopyright.Size = new System.Drawing.Size(361, 21);
+ this.labelCopyright.TabIndex = 21;
+ this.labelCopyright.Text = "Copyright";
+ this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // labelCompanyName
+ //
+ this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelCompanyName.Location = new System.Drawing.Point(191, 96);
+ this.labelCompanyName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
+ this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 21);
+ this.labelCompanyName.Name = "labelCompanyName";
+ this.labelCompanyName.Size = new System.Drawing.Size(361, 21);
+ this.labelCompanyName.TabIndex = 22;
+ this.labelCompanyName.Text = "Company Name";
+ this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // textBoxDescription
+ //
+ this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.textBoxDescription.Location = new System.Drawing.Point(191, 132);
+ this.textBoxDescription.Margin = new System.Windows.Forms.Padding(8, 4, 4, 4);
+ this.textBoxDescription.Multiline = true;
+ this.textBoxDescription.Name = "textBoxDescription";
+ this.textBoxDescription.ReadOnly = true;
+ this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both;
+ this.textBoxDescription.Size = new System.Drawing.Size(361, 155);
+ this.textBoxDescription.TabIndex = 23;
+ this.textBoxDescription.TabStop = false;
+ this.textBoxDescription.Text = "Description";
+ //
+ // okButton
+ //
+ this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.okButton.Location = new System.Drawing.Point(452, 295);
+ this.okButton.Margin = new System.Windows.Forms.Padding(4);
+ this.okButton.Name = "okButton";
+ this.okButton.Size = new System.Drawing.Size(100, 27);
+ this.okButton.TabIndex = 24;
+ this.okButton.Text = "&OK";
+ //
+ // distexAboutBox
+ //
+ this.AcceptButton = this.okButton;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(580, 348);
+ this.Controls.Add(this.tableLayoutPanel);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.Margin = new System.Windows.Forms.Padding(4);
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "distexAboutBox";
+ this.Padding = new System.Windows.Forms.Padding(12, 11, 12, 11);
+ this.ShowIcon = false;
+ this.ShowInTaskbar = false;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "About Statistical Distribution Explorer";
+ this.tableLayoutPanel.ResumeLayout(false);
+ this.tableLayoutPanel.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;
+ private System.Windows.Forms.PictureBox logoPictureBox;
+ private System.Windows.Forms.Label labelProductName;
+ private System.Windows.Forms.Label labelVersion;
+ private System.Windows.Forms.Label labelCopyright;
+ private System.Windows.Forms.Label labelCompanyName;
+ private System.Windows.Forms.TextBox textBoxDescription;
+ private System.Windows.Forms.Button okButton;
+ }
+}
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/distexAboutBox.cs b/src/boost/libs/math/dot_net_example/distribution_explorer/distexAboutBox.cs
new file mode 100644
index 000000000..b8aa9249e
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/distexAboutBox.cs
@@ -0,0 +1,116 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Windows.Forms;
+using System.Reflection;
+
+namespace distribution_explorer
+{
+ partial class distexAboutBox : Form
+ {
+ public distexAboutBox()
+ {
+ InitializeComponent();
+
+ // Initialize the AboutBox to display the product information from the assembly information.
+ // Change assembly information settings for your application through either:
+ // - Project->Properties->Application->Assembly Information
+ // - AssemblyInfo.cs
+ this.Text = String.Format("About {0}", AssemblyTitle);
+ this.labelProductName.Text = AssemblyProduct;
+ this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion);
+ this.labelCopyright.Text = AssemblyCopyright;
+ this.labelCompanyName.Text = AssemblyCompany;
+ this.textBoxDescription.Text = AssemblyDescription;
+ // URL http://sourceforge.net/projects/distexplorer
+ }
+
+ #region Assembly Attribute Accessors
+
+ public string AssemblyTitle
+ {
+ get
+ {
+ // Get all Title attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
+ // If there is at least one Title attribute
+ if (attributes.Length > 0)
+ {
+ // Select the first one
+ AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
+ // If it is not an empty string, return it
+ if (titleAttribute.Title != "")
+ return titleAttribute.Title;
+ }
+ // If there was no Title attribute, or if the Title attribute was the empty string, return the .exe name
+ return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
+ }
+ }
+
+ public string AssemblyVersion
+ {
+ get
+ {
+ return Assembly.GetExecutingAssembly().GetName().Version.ToString();
+ }
+ }
+
+ public string AssemblyDescription
+ {
+ get
+ {
+ // Get all Description attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
+ // If there aren't any Description attributes, return an empty string
+ if (attributes.Length == 0)
+ return "";
+ // If there is a Description attribute, return its value
+ return ((AssemblyDescriptionAttribute)attributes[0]).Description;
+ }
+ }
+
+ public string AssemblyProduct
+ {
+ get
+ {
+ // Get all Product attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
+ // If there aren't any Product attributes, return an empty string
+ if (attributes.Length == 0)
+ return "";
+ // If there is a Product attribute, return its value
+ return ((AssemblyProductAttribute)attributes[0]).Product;
+ }
+ }
+
+ public string AssemblyCopyright
+ {
+ get
+ {
+ // Get all Copyright attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
+ // If there aren't any Copyright attributes, return an empty string
+ if (attributes.Length == 0)
+ return "";
+ // If there is a Copyright attribute, return its value
+ return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
+ }
+ }
+
+ public string AssemblyCompany
+ {
+ get
+ {
+ // Get all Company attributes on this assembly
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
+ // If there aren't any Company attributes, return an empty string
+ if (attributes.Length == 0)
+ return "";
+ // If there is a Company attribute, return its value
+ return ((AssemblyCompanyAttribute)attributes[0]).Company;
+ }
+ }
+ #endregion
+ }
+}
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/distexAboutBox.resx b/src/boost/libs/math/dot_net_example/distribution_explorer/distexAboutBox.resx
new file mode 100644
index 000000000..d58980a38
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/distexAboutBox.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root> \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/distribution.txt b/src/boost/libs/math/dot_net_example/distribution_explorer/distribution.txt
new file mode 100644
index 000000000..f99b6b2e8
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/distribution.txt
@@ -0,0 +1,10 @@
+Statistical Distribution Explorer
+Version 1.0.1.52
+Company Boost Use, modification and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+Copyright Copyright © John Maddock and Paul A. Bristow 2009, 2010, 2012
+Product Distribution_Explorer
+Title Distribution_Explorer
+Mean
+MeanParameter 1 0
+Parameter 2 1
+
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.csproj b/src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.csproj
new file mode 100644
index 000000000..591341b0b
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.csproj
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.21022</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{77742493-4236-4975-9BD9-AA3611F0DC0E}</ProjectGuid>
+ <OutputType>WinExe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>distribution_explorer</RootNamespace>
+ <AssemblyName>distribution_explorer</AssemblyName>
+ <ApplicationIcon>
+ </ApplicationIcon>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <ManifestCertificateThumbprint>393B9B4A721C946375D6D44F80492CFFA03E57B5</ManifestCertificateThumbprint>
+ <ManifestKeyFile>distribution_explorer_TemporaryKey.pfx</ManifestKeyFile>
+ <GenerateManifests>true</GenerateManifests>
+ <TargetZone>LocalIntranet</TargetZone>
+ <SignManifests>false</SignManifests>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <UpgradeBackupLocation>
+ </UpgradeBackupLocation>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+ <PublishUrl>\\hetpA\H%24\Distex\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Unc</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <SupportUrl>http://sourceforge.net/projects/distexplorer/</SupportUrl>
+ <ProductName>Statistical Distribution Explorer</ProductName>
+ <PublisherName>hetp</PublisherName>
+ <ApplicationRevision>8</ApplicationRevision>
+ <ApplicationVersion>1.0.1.8</ApplicationVersion>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <CreateDesktopShortcut>true</CreateDesktopShortcut>
+ <PublishWizardCompleted>true</PublishWizardCompleted>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <UseVSHostingProcess>false</UseVSHostingProcess>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>none</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>
+ </DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <PlatformTarget>x86</PlatformTarget>
+ <DocumentationFile>bin\Release\distribution_explorer.XML</DocumentationFile>
+ <UseVSHostingProcess>false</UseVSHostingProcess>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <UseVSHostingProcess>false</UseVSHostingProcess>
+ <ErrorReport>prompt</ErrorReport>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <OutputPath>bin\x64\Release\</OutputPath>
+ <DocumentationFile>bin\Release\distribution_explorer.XML</DocumentationFile>
+ <Optimize>true</Optimize>
+ <PlatformTarget>x64</PlatformTarget>
+ <UseVSHostingProcess>false</UseVSHostingProcess>
+ <ErrorReport>prompt</ErrorReport>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Deployment" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="distexAboutBox.cs">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="distexAboutBox.Designer.cs">
+ <DependentUpon>distexAboutBox.cs</DependentUpon>
+ </Compile>
+ <Compile Include="DistexForm.cs">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="DistexForm.Designer.cs">
+ <DependentUpon>DistexForm.cs</DependentUpon>
+ </Compile>
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <EmbeddedResource Include="distexAboutBox.resx">
+ <SubType>Designer</SubType>
+ <DependentUpon>distexAboutBox.cs</DependentUpon>
+ </EmbeddedResource>
+ <EmbeddedResource Include="DistexForm.resx">
+ <SubType>Designer</SubType>
+ <DependentUpon>DistexForm.cs</DependentUpon>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <EmbeddedResource Include="DistexSplash.resx">
+ <SubType>Designer</SubType>
+ <DependentUpon>DistexSplash.cs</DependentUpon>
+ </EmbeddedResource>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Resources.resx</DependentUpon>
+ <DesignTime>True</DesignTime>
+ </Compile>
+ <None Include="app.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <Compile Include="DistexSplash.cs">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="DistexSplash.Designer.cs">
+ <DependentUpon>DistexSplash.cs</DependentUpon>
+ </Compile>
+ <Compile Include="Settings.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Content Include="IconToolkit.ico">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
+ <None Include="ClassDiagram1.cd" />
+ <None Include="ClassDiagram2.cd" />
+ <None Include="ToolkitLogo.bmp" />
+ </ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client">
+ <Visible>False</Visible>
+ <ProductName>Microsoft .NET Framework 4 Client Profile %28x86 and x64%29</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Visual.C++.10.0.x86">
+ <Visible>False</Visible>
+ <ProductName>Visual C++ 2010 Runtime Libraries %28x86%29</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.4.5">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 4.5</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\boost_math\boost_math.vcxproj">
+ <Project>{cee4bad0-967a-4193-9edb-c0dd6c3b05c9}</Project>
+ <Name>boost_math</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.csproj.user b/src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.csproj.user
new file mode 100644
index 000000000..395652714
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.csproj.user
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ProjectView>ProjectFiles</ProjectView>
+ <PublishUrlHistory>\\hetpA\H%24\Distex\|\\hetp7\H%24\Distex\|\\hetp7\H%24\|I:\boost-sandbox\libs\math_functions\dot_net_example\Distex\|publish\</PublishUrlHistory>
+ <InstallUrlHistory>\\hetp7\H%24\</InstallUrlHistory>
+ <SupportUrlHistory>
+ </SupportUrlHistory>
+ <UpdateUrlHistory>
+ </UpdateUrlHistory>
+ <BootstrapperUrlHistory>
+ </BootstrapperUrlHistory>
+ <FallbackCulture>en-US</FallbackCulture>
+ <VerifyUploadedFiles>false</VerifyUploadedFiles>
+ <EnableSecurityDebugging>false</EnableSecurityDebugging>
+ <ErrorReportUrlHistory />
+ </PropertyGroup>
+ <PropertyGroup>
+ <ReferencePath>I:\boost-trunk\libs\math\dot_net_example\boost_math\</ReferencePath>
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.sln b/src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.sln
new file mode 100644
index 000000000..6e3c90178
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.sln
@@ -0,0 +1,50 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27130.2024
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "distribution_explorer", "distribution_explorer.csproj", "{77742493-4236-4975-9BD9-AA3611F0DC0E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "boost_math", "..\boost_math\boost_math.vcxproj", "{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ Description = Statistical Distribution Explorer
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {77742493-4236-4975-9BD9-AA3611F0DC0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {77742493-4236-4975-9BD9-AA3611F0DC0E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {77742493-4236-4975-9BD9-AA3611F0DC0E}.Debug|x64.ActiveCfg = Debug|x64
+ {77742493-4236-4975-9BD9-AA3611F0DC0E}.Debug|x64.Build.0 = Debug|x64
+ {77742493-4236-4975-9BD9-AA3611F0DC0E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {77742493-4236-4975-9BD9-AA3611F0DC0E}.Debug|x86.Build.0 = Debug|Any CPU
+ {77742493-4236-4975-9BD9-AA3611F0DC0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {77742493-4236-4975-9BD9-AA3611F0DC0E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {77742493-4236-4975-9BD9-AA3611F0DC0E}.Release|x64.ActiveCfg = Release|x64
+ {77742493-4236-4975-9BD9-AA3611F0DC0E}.Release|x64.Build.0 = Release|x64
+ {77742493-4236-4975-9BD9-AA3611F0DC0E}.Release|x86.ActiveCfg = Release|Any CPU
+ {77742493-4236-4975-9BD9-AA3611F0DC0E}.Release|x86.Build.0 = Release|Any CPU
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x64.ActiveCfg = Debug|x64
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x64.Build.0 = Debug|x64
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x86.ActiveCfg = Debug|Win32
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x86.Build.0 = Debug|Win32
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|Any CPU.ActiveCfg = Release|Win32
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x64.ActiveCfg = Release|x64
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x64.Build.0 = Release|x64
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x86.ActiveCfg = Release|Win32
+ {80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E7B27F35-B063-4E0E-AA07-9A53BEA22670}
+ EndGlobalSection
+EndGlobal
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.suo b/src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.suo
new file mode 100644
index 000000000..d2c71687f
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/distribution_explorer.suo
Binary files differ
diff --git a/src/boost/libs/math/dot_net_example/distribution_explorer/readme.txt b/src/boost/libs/math/dot_net_example/distribution_explorer/readme.txt
new file mode 100644
index 000000000..d483173d7
--- /dev/null
+++ b/src/boost/libs/math/dot_net_example/distribution_explorer/readme.txt
@@ -0,0 +1,86 @@
+Statistical Distribution Explorer
+
+Paul A. Bristow
+John Maddock
+
+Copyright © 2008 , 2009, 2010, 2012 Paul A. Bristow, John Maddock
+
+Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+A Windows utility to show the properties of statistical distributions using parameters provided interactively by the user.
+
+The 31 distributions provided (by version 1.0.1.52) are:
+
+ * bernoulli
+ * beta
+ * binomial
+ * cauchy
+ * chi_squared
+ * exponential
+ * extreme_value
+ * fisher_f
+ * gamma
+ * geometric
+ * hypergeometric
+ * inverse_chi_squared
+ * inverse_gamma
+ * inverse_gaussian
+ * laplace
+ * logistic
+ * lognormal
+ * negative_binomial
+ * non-central beta
+ * non-central_chi_squared
+ * non-central_F
+ * non-central_t
+ * normal (Gaussian)
+ * pareto
+ * poisson
+ * rayleigh
+ * students_t
+ * skew_normal
+ * triangular
+ * uniform
+ * weibull
+
+Properties of distributions computed (where possible) are:
+
+ * mean
+ * mode
+ * median
+ * variance
+ * standard deviation
+ * coefficient of variation,
+ * skewness
+ * kurtosis
+ * excess
+ * range supported
+
+Calculated, from values provided, are:
+
+ * probability density (or mass) function (PDF)
+ * cumulative distribution function (CDF), and complement
+ * Quantiles (percentiles) are calculated for typical risk (alpha) probabilities (0.001, 0.01, 0.5, 0.1, 0.333) and for additional probabilities that can be requested by the user.
+
+Results can be saved to text files using Save or SaveAs. All the values on the four tabs are output to the file chosen, and are tab separated to assist input to other programs, for example, spreadsheets or text editors.
+
+Note: Excel (for example), by default, only shows 10 decimal digits: to display the maximum possible precision (about 15 decimal digits), it is necessary to format all cells to display this precision. Although unusually accurate, not all values computed by Statistical Distribution Explorer will be as accurate as 15 decimal digits. Values shown as NaN cannot be calculated from the value(s) given, most commonly because the value input is outside the range for the distribution.
+
+For more information, including downloads, and this index.html file, see Distexplorer at Sourceforge.
+
+This Microsoft Windows 32 package was generated from a C# program and uses a boost_math.dll generated using the Boost.Math C++ source code containing the underlying statistical distribution classes and functions (C++ was compiled in CLI mode).
+
+All source code is freely available for view and for use under the Boost Open Source License.
+
+Math Toolkit C++ source code to produce boost_math.dll is in the most recent Boost release, currently 1.52.0 (and the Boost version used to build the explorer is embedded in its version number). You can download the current Boost library and find the source to build the Distribution Explorer at /libs/math/dot_net_example/.
+
+Installation
+============
+Statistical Distribution Explorer is distributed as a single Windows Installer package setupdistex.msi. Unzip the distexplorer.zip file to a temporary location of your choice and run setupdistex.msi.
+
+(If the program installs OK, but does not run, it will be necessary to run setup.exe to install Microsoft redistributables. This is because .NET Framework 4.0 Client Profile and VC Redistributable X86 are requirements for this program. Most recent and updated Windows environments will already have these installed, but they are quickly, easily and safely installed from the Microsoft site if required. This program has been tested on Windows 200 up to Windows 8).
+
+(The package cannot be run on other platforms at present but it should be possible to build an equivalent utility on any C/C++ platform if anyone would like to undertake this task.)
+
+Last revised: 15 Oct 2012
+