Added cddlib-094h from http://www.inf.ethz.ch/personal/fukudak/cdd_home/
Change-Id: I64519509269e434b1b9ea87c3fe0805e711c0ac9
diff --git a/third_party/cddlib/examples-ml/cddml-DietProblem.nb b/third_party/cddlib/examples-ml/cddml-DietProblem.nb
new file mode 100644
index 0000000..ec42445
--- /dev/null
+++ b/third_party/cddlib/examples-ml/cddml-DietProblem.nb
@@ -0,0 +1,586 @@
+(************** Content-type: application/mathematica **************
+
+ Mathematica-Compatible Notebook
+
+This notebook can be used with any Mathematica-compatible
+application, such as Mathematica, MathReader or Publicon. The data
+for the notebook starts with the line containing stars above.
+
+To get the notebook into a Mathematica-compatible application, do
+one of the following:
+
+* Save the data starting with the line of stars above into a file
+ with a name ending in .nb, then open the file inside the
+ application;
+
+* Copy the data starting with the line of stars above to the
+ clipboard, then use the Paste menu command inside the application.
+
+Data for notebooks contains only printable 7-bit ASCII and can be
+sent directly in email or through ftp in text mode. Newlines can be
+CR, LF or CRLF (Unix, Macintosh or MS-DOS style).
+
+NOTE: If you modify the data for this notebook not in a Mathematica-
+compatible application, you must delete the line below containing
+the word CacheID, otherwise Mathematica-compatible applications may
+try to use invalid cache data.
+
+For more information on notebooks and Mathematica-compatible
+applications, contact Wolfram Research:
+ web: http://www.wolfram.com
+ email: info@wolfram.com
+ phone: +1-217-398-0700 (U.S.)
+
+Notebook reader applications are available free of charge from
+Wolfram Research.
+*******************************************************************)
+
+(*CacheID: 232*)
+
+
+(*NotebookFileLineBreakTest
+NotebookFileLineBreakTest*)
+(*NotebookOptionsPosition[ 13920, 436]*)
+(*NotebookOutlinePosition[ 14959, 472]*)
+(* CellTagsIndexPosition[ 14871, 466]*)
+(*WindowFrame->Normal*)
+
+
+
+Notebook[{
+Cell[TextData[{
+ StyleBox["Diet Problem",
+ FontColor->RGBColor[0.0557107, 0.137819, 0.517113]],
+ "\nAn Application of Vertex Enumeration\nwith ",
+ StyleBox["MathLink",
+ FontSize->24,
+ FontSlant->"Italic",
+ FontColor->RGBColor[0.0146487, 0.461387, 0.0967727]],
+ " to ",
+ StyleBox["cddlib",
+ FontColor->RGBColor[0.517113, 0.0273594, 0.0273594]]
+}], "Title",
+ ImageRegion->{{0, 1}, {0, 1}},
+ FontSize->27],
+
+Cell[TextData[StyleBox["Komei Fukuda, fukuda@ifor.math.ethz.ch\nSwiss Federal \
+Institute of Technology, Lausanne and Zurich\nMarch 14, 1999",
+ FontSize->17,
+ FontSlant->"Italic"]], "Subtitle",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[CellGroupData[{
+
+Cell["Connecting cddmathlink", "Section",
+ InitializationCell->True,
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[CellGroupData[{
+
+Cell[TextData[{
+ "You just put the compiled cddmathlink for your computer in some directory. \
+ In this example, the name of the directory is ",
+ StyleBox["\"~/Math\".",
+ FontFamily->"Courier",
+ FontWeight->"Bold"]
+}], "Text",
+ InitializationCell->True,
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell["Off[General::spell1]; Off[General::spell];", "Input",
+ InitializationCell->True,
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[CellGroupData[{
+
+Cell["cddml=Install[\"~/Math/cddmathlink\"]", "Input",
+ InitializationCell->True,
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[BoxData[
+ \(LinkObject["/Users/fukuda/Math/cddmathlink", 7, 7]\)], "Output"]
+}, Open ]]
+}, Open ]]
+}, Closed]],
+
+Cell[CellGroupData[{
+
+Cell["What is Diet Problem?", "Section",
+ ImageRegion->{{0, 1}, {0, 1}},
+ FontSize->20],
+
+Cell["\<\
+The following diet problem is taken from V. Chvatal's great book \
+on Linear Programming (\"Linear Programming\", W.H.Freeman and Company,1983). \
+ It is to design a cheapest meal with six possible items below to satisfy \
+prescribed nutritional needs. Please see Page 3 of the book.\
+\>", "Text",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[CellGroupData[{
+
+Cell["\<\
+var={\"\",\"Oatmeal\",\"Chicken\",\"Eggs\",\"Milk\",\"Cherry Pie\", \
+
+\t\"Pork Beans\"};
+
+price={\"Price/Ser\", \"3c\", \"24c\", \"13c\", \"9c\", \"20c\", \
+\"19c\"}\
+\>", "Input",
+ ImageRegion->{{0, 1}, {0, 1}},
+ FontSize->14],
+
+Cell[BoxData[
+ \({"Price/Ser", "3c", "24c", "13c", "9c", "20c", "19c"}\)], "Output"]
+}, Open ]],
+
+Cell["\<\
+MatrixForm[dietproblem1=
+{{0, 1, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0},
+ {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0},
+ {0, 0, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 1},
+ {4, -1, 0, 0, 0, 0, 0}, {3, 0, -1, 0, 0, 0, 0},
+ {2, 0, 0, -1, 0, 0, 0}, {8, 0, 0, 0, -1, 0, 0},
+ {2, 0, 0, 0, 0, -1, 0}, {2, 0, 0, 0, 0, 0, -1},
+ {-2000, 110, 205, 160, 160, 420, 260},
+ {-55, 4, 32, 13, 8, 4, 14},
+ {-800, 2, 12, 54, 285, 22, 80}}];\
+\>", "Input",
+ ImageRegion->{{0, 1}, {0, 1}},
+ FontSize->14],
+
+Cell[CellGroupData[{
+
+Cell["\<\
+TableForm[table1=Prepend[Prepend[dietproblem1,var],price]]
+\
+\>", "Input",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[BoxData[
+ TagBox[GridBox[{
+ {"\<\"Price/Ser\"\>", "\<\"3c\"\>", "\<\"24c\"\>", "\<\"13c\"\>", "\
+\<\"9c\"\>", "\<\"20c\"\>", "\<\"19c\"\>"},
+ {"\<\"\"\>", "\<\"Oatmeal\"\>", "\<\"Chicken\"\>", "\<\"Eggs\"\>", \
+"\<\"Milk\"\>", "\<\"Cherry Pie\"\>", "\<\"Pork Beans\"\>"},
+ {"0", "1", "0", "0", "0", "0", "0"},
+ {"0", "0", "1", "0", "0", "0", "0"},
+ {"0", "0", "0", "1", "0", "0", "0"},
+ {"0", "0", "0", "0", "1", "0", "0"},
+ {"0", "0", "0", "0", "0", "1", "0"},
+ {"0", "0", "0", "0", "0", "0", "1"},
+ {"4", \(-1\), "0", "0", "0", "0", "0"},
+ {"3", "0", \(-1\), "0", "0", "0", "0"},
+ {"2", "0", "0", \(-1\), "0", "0", "0"},
+ {"8", "0", "0", "0", \(-1\), "0", "0"},
+ {"2", "0", "0", "0", "0", \(-1\), "0"},
+ {"2", "0", "0", "0", "0", "0", \(-1\)},
+ {\(-2000\), "110", "205", "160", "160", "420", "260"},
+ {\(-55\), "4", "32", "13", "8", "4", "14"},
+ {\(-800\), "2", "12", "54", "285", "22", "80"}
+ },
+ RowSpacings->1,
+ ColumnSpacings->3,
+ RowAlignments->Baseline,
+ ColumnAlignments->{Left}],
+ Function[ BoxForm`e$,
+ TableForm[ BoxForm`e$]]]], "Output"]
+}, Open ]],
+
+Cell["\<\
+m=Transpose[Drop[Transpose[dietproblem1],1]];
+b=-First[Transpose[dietproblem1]];
+c={3, 24, 13, 9, 20, 19};\
+\>", "Input",
+ ImageRegion->{{0, 1}, {0, 1}},
+ FontSize->14],
+
+Cell[TextData[{
+ "By using the build-in LP optimizer of ",
+ StyleBox["Mathematica",
+ FontSlant->"Italic"],
+ ", one can easily compute the optimal solution."
+}], "Text",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[CellGroupData[{
+
+Cell["lps=LinearProgramming[c, m,b]", "Input",
+ ImageRegion->{{0, 1}, {0, 1}},
+ FontSize->14],
+
+Cell[BoxData[
+ \({4, 0, 0, 9\/2, 2, 0}\)], "Output"]
+}, Open ]],
+
+Cell[CellGroupData[{
+
+Cell["optvalue= N[c.lps]", "Input",
+ ImageRegion->{{0, 1}, {0, 1}},
+ FontSize->14],
+
+Cell[BoxData[
+ \(92.5`\)], "Output"]
+}, Open ]],
+
+Cell["\<\
+We can see the optimal solution better in the following table. It \
+is certainly not an exciting menu. In fact, an optimal solution to any \
+optimization problem tends to be extreme, and thus it must be modified for \
+practical purposes.\
+\>", "Text",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[CellGroupData[{
+
+Cell["\<\
+TableForm[Join[{var},{Prepend[N[lps],optvalue]}]]
+\
+\>", "Input",
+ ImageRegion->{{0, 1}, {0, 1}},
+ FontSize->14],
+
+Cell[BoxData[
+ TagBox[GridBox[{
+ {"\<\"\"\>", "\<\"Oatmeal\"\>", "\<\"Chicken\"\>", "\<\"Eggs\"\>", \
+"\<\"Milk\"\>", "\<\"Cherry Pie\"\>", "\<\"Pork Beans\"\>"},
+ {"92.5`", "4.`", "0.`", "0.`", "4.5`", "2.`", "0.`"}
+ },
+ RowSpacings->1,
+ ColumnSpacings->3,
+ RowAlignments->Baseline,
+ ColumnAlignments->{Left}],
+ Function[ BoxForm`e$,
+ TableForm[ BoxForm`e$]]]], "Output"]
+}, Open ]]
+}, Closed]],
+
+Cell[CellGroupData[{
+
+Cell["Why is the Vertex Enumeration Useful?", "Section",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell["\<\
+Now we try to do something more reasonable. We use cddmathlink \
+fuction AllVertices:\
+\>", "Subsection",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[CellGroupData[{
+
+Cell["?AllVertices", "Input",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[BoxData[
+ \("AllVertices[m,d+1,A] generates all extreme points (vertices) and \
+extreme rays of the convex polyhedron in R^(d+1) given as the solution set to \
+an inequality system A x >= 0 where A is an m*(d+1) matrix and \
+x=(1,x1,...,xd). The output is {{extlist, linearity}, ecdlist} where extlist \
+is the extreme point list and ecdlist is the incidence list. Each vertex \
+(ray) has the first component 1 (0). If the convex polyhedron is nonempty \
+and has no vertices, extlist is a (nonunique) set of generators of the \
+polyhedron where those generators in the linearity list are considered as \
+linearity space (of points satisfying A (0, x1, x2, ...., xd) = 0) \
+generators."\)], "Print",
+ CellTags->"Info3249106745-1451094"]
+}, Open ]],
+
+Cell[CellGroupData[{
+
+Cell["\<\
+We can then compute ALL possibilities for cost at most, say One \
+Dollar.\
+\>", "Subsection",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell["BudgetLimit=100;", "Input",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[CellGroupData[{
+
+Cell["\<\
+MatrixForm[dietproblem2=Append[dietproblem1,
+ {BudgetLimit, -3, -24, -13, -9, -20, -19}]]\
+\>", "Input",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[BoxData[
+ TagBox[
+ RowBox[{"(", "\[NoBreak]", GridBox[{
+ {"0", "1", "0", "0", "0", "0", "0"},
+ {"0", "0", "1", "0", "0", "0", "0"},
+ {"0", "0", "0", "1", "0", "0", "0"},
+ {"0", "0", "0", "0", "1", "0", "0"},
+ {"0", "0", "0", "0", "0", "1", "0"},
+ {"0", "0", "0", "0", "0", "0", "1"},
+ {"4", \(-1\), "0", "0", "0", "0", "0"},
+ {"3", "0", \(-1\), "0", "0", "0", "0"},
+ {"2", "0", "0", \(-1\), "0", "0", "0"},
+ {"8", "0", "0", "0", \(-1\), "0", "0"},
+ {"2", "0", "0", "0", "0", \(-1\), "0"},
+ {"2", "0", "0", "0", "0", "0", \(-1\)},
+ {\(-2000\), "110", "205", "160", "160", "420", "260"},
+ {\(-55\), "4", "32", "13", "8", "4", "14"},
+ {\(-800\), "2", "12", "54", "285", "22", "80"},
+ {"100", \(-3\), \(-24\), \(-13\), \(-9\), \(-20\), \(-19\)}
+ }], "\[NoBreak]", ")"}],
+ Function[ BoxForm`e$,
+ MatrixForm[ BoxForm`e$]]]], "Output"],
+
+Cell[CellGroupData[{
+
+Cell["{m2,d2}=Dimensions[dietproblem2]", "Input",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[BoxData[
+ \({16, 7}\)], "Output"]
+}, Open ]],
+
+Cell["\<\
+{{extlist,linearity},inclist}=AllVertices[m2,d2,Flatten[\
+dietproblem2]];\
+\>", "Input",
+ ImageRegion->{{0, 1}, {0, 1}}]
+}, Open ]],
+
+Cell[CellGroupData[{
+
+Cell["Length[extlist]", "Input",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[BoxData[
+ \(17\)], "Output"]
+}, Open ]],
+
+Cell["vlist=Map[Drop[#,1]&, extlist];", "Input",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell["allsolutions=Union[Map[Prepend[#, N[c.#,3]]&, N[vlist,5]]];", "Input",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[CellGroupData[{
+
+Cell["TableForm[table2=Prepend[allsolutions,var]]", "Input",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[BoxData[
+ TagBox[GridBox[{
+ {"\<\"\"\>", "\<\"Oatmeal\"\>", "\<\"Chicken\"\>", "\<\"Eggs\"\>", \
+"\<\"Milk\"\>", "\<\"Cherry Pie\"\>", "\<\"Pork Beans\"\>"},
+ {"92.5`", "4.`", "0.`", "0.`", "4.5`", "2.`", "0.`"},
+ {"97.33333333333336`", "4.`", "0.`", "0.`", "8.`",
+ "0.6666666666666675`", "0.`"},
+ {"98.6035889070147`", "4.`", "0.`", "0.`", "2.232952691680261`",
+ "2.`", "1.3951060358890708`"},
+ {"100.`", "1.6470588235294117`", "0.`", "0.`", "6.117647058823529`",
+ "2.`", "0.`"},
+ {"100.`", "2.8085106382978777`", "0.`", "0.`", "8.`",
+ "0.9787234042553182`", "0.`"},
+ {"100.`", "3.7415068699984926`", "0.`", "0.`",
+ "2.1980371432885404`", "2.`", "1.5259550052846136`"},
+ {"100.`", "4.`", "0.`", "0.`", "2.2091586794462197`", "2.`",
+ "1.4798722044728432`"},
+ {"100.`", "4.`", "0.`", "0.`", "5.333333333333333`", "2.`", "0.`"},
+ {"100.`", "4.`", "0.`", "0.`", "8.`", "0.8000000000000002`",
+ "0.`"},
+ {"100.`", "4.`", "0.`", "0.49557522123893516`", "8.`",
+ "0.4778761061946923`", "0.`"},
+ {"100.`", "4.`", "0.`", "1.8750000000000029`", "2.624999999999996`",
+ "2.`", "0.`"},
+ {"100.`", "4.`", "0.1655305777133171`", "0.`", "2.268813149625332`",
+ "2.`", "1.2425235678027577`"},
+ {"100.`", "4.`", "0.1872909698996644`", "0.`", "8.`",
+ "0.5752508361204028`", "0.`"},
+ {"100.`", "4.`", "0.601503759398496`", "0.`", "3.729323308270678`",
+ "2.`", "0.`"},
+ {"100.00000000000001`", "4.`", "0.`", "0.`", "2.179657768651609`",
+ "1.8828199863107473`", "1.6171937029431882`"},
+ {"100.00000000000001`", "4.`", "0.`", "0.`", "8.`",
+ "0.4172661870503621`", "0.4028776978417242`"},
+ {"100.00000000000001`", "4.`", "0.`", "1.025149700598805`",
+ "2.2122155688622755`", "2.`", "0.7770059880239508`"}
+ },
+ RowSpacings->1,
+ ColumnSpacings->3,
+ RowAlignments->Baseline,
+ ColumnAlignments->{Left}],
+ Function[ BoxForm`e$,
+ TableForm[ BoxForm`e$]]]], "Output"]
+}, Open ]]
+}, Open ]],
+
+Cell["\<\
+The list is complete in the sense that any feasible menu of cost at \
+most One Dollar is a combination of these seventeen (extreme) solutions. One \
+can find menus with Chicken, Eggs or Pork that might be much more desireble \
+than the optimal menu. Also it shows you cannot avoid Oatmeal nor Cherry \
+pie within this budget to satisfy the nutritional needs.\
+\>", "Text",
+ ImageRegion->{{0, 1}, {0, 1}}]
+}, Closed]],
+
+Cell[CellGroupData[{
+
+Cell["Disconnecting cddmathlink", "Section",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[CellGroupData[{
+
+Cell["Uninstall[cddml]", "Input",
+ ImageRegion->{{0, 1}, {0, 1}}],
+
+Cell[BoxData[
+ \("/Users/fukuda/Math/cddmathlink"\)], "Output"]
+}, Open ]]
+}, Closed]]
+},
+FrontEndVersion->"4.1 for Macintosh",
+ScreenRectangle->{{0, 1152}, {0, 746}},
+AutoGeneratedPackage->None,
+WindowToolbars->{},
+CellGrouping->Manual,
+WindowSize->{639, 621},
+WindowMargins->{{1, Automatic}, {Automatic, 1}},
+PrivateNotebookOptions->{"ColorPalette"->{RGBColor, -1}},
+ShowCellLabel->True,
+ShowCellTags->False,
+RenderingOptions->{"ObjectDithering"->True,
+"RasterDithering"->False}
+]
+
+(*******************************************************************
+Cached data follows. If you edit this Notebook file directly, not
+using Mathematica, you must remove the line containing CacheID at
+the top of the file. The cache data will then be recreated when
+you save this file from within Mathematica.
+*******************************************************************)
+
+(*CellTagsOutline
+CellTagsIndex->{
+ "Info3249106745-1451094"->{
+ Cell[7959, 273, 753, 11, 167, "Print",
+ CellTags->"Info3249106745-1451094"]}
+ }
+*)
+
+(*CellTagsIndex
+CellTagsIndex->{
+ {"Info3249106745-1451094", 14759, 459}
+ }
+*)
+
+(*NotebookFileOutline
+Notebook[{
+Cell[1705, 50, 424, 13, 179, "Title"],
+Cell[2132, 65, 228, 4, 92, "Subtitle"],
+
+Cell[CellGroupData[{
+Cell[2385, 73, 103, 2, 56, "Section",
+ InitializationCell->True],
+
+Cell[CellGroupData[{
+Cell[2513, 79, 295, 8, 49, "Text",
+ InitializationCell->True],
+Cell[2811, 89, 120, 2, 27, "Input",
+ InitializationCell->True],
+
+Cell[CellGroupData[{
+Cell[2956, 95, 115, 2, 27, "Input",
+ InitializationCell->True],
+Cell[3074, 99, 84, 1, 27, "Output"]
+}, Open ]]
+}, Open ]]
+}, Closed]],
+
+Cell[CellGroupData[{
+Cell[3219, 107, 89, 2, 40, "Section"],
+Cell[3311, 111, 343, 6, 68, "Text"],
+
+Cell[CellGroupData[{
+Cell[3679, 121, 240, 9, 76, "Input"],
+Cell[3922, 132, 87, 1, 27, "Output"]
+}, Open ]],
+Cell[4024, 136, 495, 13, 172, "Input"],
+
+Cell[CellGroupData[{
+Cell[4544, 153, 117, 4, 42, "Input"],
+Cell[4664, 159, 1261, 27, 293, "Output"]
+}, Open ]],
+Cell[5940, 189, 180, 6, 60, "Input"],
+Cell[6123, 197, 207, 6, 32, "Text"],
+
+Cell[CellGroupData[{
+Cell[6355, 207, 95, 2, 28, "Input"],
+Cell[6453, 211, 55, 1, 42, "Output"]
+}, Open ]],
+
+Cell[CellGroupData[{
+Cell[6545, 217, 84, 2, 28, "Input"],
+Cell[6632, 221, 39, 1, 27, "Output"]
+}, Open ]],
+Cell[6686, 225, 298, 6, 50, "Text"],
+
+Cell[CellGroupData[{
+Cell[7009, 235, 124, 5, 44, "Input"],
+Cell[7136, 242, 443, 11, 53, "Output"]
+}, Open ]]
+}, Closed]],
+
+Cell[CellGroupData[{
+Cell[7628, 259, 89, 1, 36, "Section"],
+Cell[7720, 262, 149, 4, 46, "Subsection"],
+
+Cell[CellGroupData[{
+Cell[7894, 270, 62, 1, 27, "Input"],
+Cell[7959, 273, 753, 11, 167, "Print",
+ CellTags->"Info3249106745-1451094"]
+}, Open ]],
+
+Cell[CellGroupData[{
+Cell[8749, 289, 136, 4, 46, "Subsection"],
+Cell[8888, 295, 66, 1, 27, "Input"],
+
+Cell[CellGroupData[{
+Cell[8979, 300, 149, 4, 42, "Input"],
+Cell[9131, 306, 1041, 21, 277, "Output"],
+
+Cell[CellGroupData[{
+Cell[10197, 331, 82, 1, 27, "Input"],
+Cell[10282, 334, 41, 1, 27, "Output"]
+}, Open ]],
+Cell[10338, 338, 131, 4, 42, "Input"]
+}, Open ]],
+
+Cell[CellGroupData[{
+Cell[10506, 347, 65, 1, 27, "Input"],
+Cell[10574, 350, 36, 1, 27, "Output"]
+}, Open ]],
+Cell[10625, 354, 81, 1, 27, "Input"],
+Cell[10709, 357, 109, 1, 27, "Input"],
+
+Cell[CellGroupData[{
+Cell[10843, 362, 93, 1, 27, "Input"],
+Cell[10939, 365, 2233, 42, 309, "Output"]
+}, Open ]]
+}, Open ]],
+Cell[13199, 411, 418, 7, 68, "Text"]
+}, Closed]],
+
+Cell[CellGroupData[{
+Cell[13654, 423, 78, 1, 36, "Section"],
+
+Cell[CellGroupData[{
+Cell[13757, 428, 66, 1, 27, "Input"],
+Cell[13826, 431, 66, 1, 27, "Output"]
+}, Open ]]
+}, Closed]]
+}
+]
+*)
+
+
+
+(*******************************************************************
+End of Mathematica Notebook file.
+*******************************************************************)
+