(************** Content-type: application/mathematica ************** CreatedBy='Mathematica 5.2' 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[ 17264, 589]*) (*NotebookOutlinePosition[ 19776, 662]*) (* CellTagsIndexPosition[ 19585, 652]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell[TextData[{ StyleBox["Introduction to Programming with Mathematica", FontSlant->"Italic"], ", 3rd Edition" }], "Chapter"], Cell[TextData[{ "First printing\nErrata last updated: ", ValueBox["Day"], " ", ValueBox["MonthName"], " ", ValueBox["Year"] }], "Subtitle", FontSize->16], Cell[CellGroupData[{ Cell["1 Introduction", "Subsection"], Cell[TextData[{ StyleBox["Page 11", FontWeight->"Bold"], ", first text line starting with \[OpenCurlyDoubleQuote]Here is a short \ program\[Ellipsis]\[CloseCurlyDoubleQuote], replace this text with:\n\ \[OpenCurlyDoubleQuote]Here is a short program that creates a button \ containing the above two expressions. (We will explain the need to wrap ", StyleBox["Symbol[\"\[Ellipsis]\"]", "MR"], " around the expressions here in Chapter 10.)\[CloseCurlyDoubleQuote]\nThen \ replace following code with:" }], "BulletedList"], Cell["\<\ ButtonBox[\"Spikey\", ButtonFunction\[RuleDelayed]CompoundExpression[ \tNeeds[\"Graphics`Polyhedra`\"], \t \tShow[Symbol[\"Stellate\"][Symbol[\"Polyhedron\"][Symbol[\"Icosahedron\"]]]]]\ , ButtonEvaluator\[Rule]Automatic, Active\[Rule]True] //DisplayForm\ \>", "Program", CellTags->{"b:0.5", "IPM3.1.1.6"}], Cell[TextData[{ "Delete paragraph beginning \[OpenCurlyDoubleQuote]The formatted version of \ the\[Ellipsis]\[CloseCurlyDoubleQuote].\nChange paragraph starting \ \[OpenCurlyDoubleQuote]Clicking the button\[Ellipsis]\[CloseCurlyDoubleQuote] \ to: \[OpenCurlyDoubleQuote]Clicking the button will cause the ", StyleBox["Mathematica", FontSlant->"Italic"], " code in the ", StyleBox["ButtonFunction", "MR"], " to be evaluated and the graphic of the icosahedron will then be displayed \ in your notebook.", "\[CloseCurlyDoubleQuote]" }], "Text"] }, Open ]], Cell[CellGroupData[{ Cell["3 Lists", "Subsection"], Cell[TextData[{ StyleBox["Page 55", FontWeight->"Bold"], ", 9 text lines from top: change \[OpenCurlyDoubleQuote]\[Ellipsis]and the \ ", StyleBox["The Mathematica Book", FontSlant->"Italic"], "\[Ellipsis]\[CloseCurlyDoubleQuote] to \ \[OpenCurlyDoubleQuote]\[Ellipsis]and ", StyleBox["The Mathematica Book", FontSlant->"Italic"], "\[Ellipsis]\[CloseCurlyDoubleQuote]." }], "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell["4 Functional programming", "Subsection"], Cell[TextData[{ StyleBox["Page 95", FontWeight->"Bold"], ", Exercise 4: change ", StyleBox["interleave2", "MR"], " to ", StyleBox["interleave", "MR"], "." }], "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell["7 Recursion", "Subsection"], Cell[TextData[{ StyleBox["Page 198", FontWeight->"Bold"], ", Input In[3]: change to the following (switching ", StyleBox["b", "MR"], " and ", StyleBox["ra", "MR"], " in the third line of code:" }], "BulletedList"], Cell[BoxData[ \(merge[{a_, ra___}, {b_, rb___}] := \[IndentingNewLine]If[ a \[LessEqual] b, \[IndentingNewLine]Join[{a}, merge[{ra}, {b, rb}]], \[IndentingNewLine]Join[{b}, merge[{a, ra}, {rb}]]\[IndentingNewLine]]\)], "Input", CellLabel->"In[3]:="], Cell[TextData[{ "All of the remaining inputs that use ", StyleBox["merge", "MR"], " and ", StyleBox["MergeSort", "MR"], " will now be correct." }], "Text"], Cell[TextData[{ StyleBox["Page 205", FontWeight->"Bold"], ",", " In the text paragraph immediately above Figure 7.1, change the \ parenthetical \[OpenCurlyDoubleQuote](B)\[CloseCurlyDoubleQuote] to \ \[OpenCurlyDoubleQuote](b)\[CloseCurlyDoubleQuote]." }], "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell["9 Graphics programming", "Subsection"], Cell[TextData[{ StyleBox["Page 278", FontWeight->"Bold"], ", Exercise 5: change \[OpenCurlyDoubleQuote]\[Ellipsis]appeared in Porta, \ Davis and Uhl, 1994.\[CloseCurlyDoubleQuote] to \[OpenCurlyDoubleQuote]\ \[Ellipsis]appeared in the Calculus&", StyleBox["Mathematica", FontSlant->"Italic"], " courseware (Porta, Davis and Uhl 1994).\[CloseCurlyDoubleQuote]." }], "BulletedList"], Cell[TextData[{ StyleBox["Page 298", FontWeight->"Bold"], ", Exercise 13: change \[OpenCurlyDoubleQuote]\[Ellipsis]from Exercise 13\ \[Ellipsis]\[CloseCurlyDoubleQuote] to \[OpenCurlyDoubleQuote]\[Ellipsis] \ from Exercise 12\[Ellipsis]\[CloseCurlyDoubleQuote]." }], "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell["10 Front end programming", "Subsection"], Cell[TextData[{ StyleBox["Page 336", FontWeight->"Bold"], ", text paragraph beginning \[OpenCurlyDoubleQuote]You can use any ", StyleBox["Mathematica\[Ellipsis]", FontSlant->"Italic"], "\[CloseCurlyDoubleQuote]: change ", StyleBox["CompoundExpression[Get[\"Graphics`\",\[ThinSpace]LogPlot[Exp[x],{\ x,1,2}]]", "MR"], " to ", StyleBox["CompoundExpression[Get[\"Graphics`\"],\[ThinSpace]LogPlot[Exp[x],{\ x,1,2}]]", "MR"], ". That is, add closing bracket to ", StyleBox["Get[\"Graphics`\"", "MR"], "." }], "BulletedList"], Cell[TextData[{ StyleBox["Page 337", FontWeight->"Bold"], ", Replace the contents of this page starting with the text \ \[OpenCurlyDoubleQuote]Here is the button code\[Ellipsis]\ \[CloseCurlyDoubleQuote] with the following:" }], "BulletedList"], Cell[TextData[{ "Here is the button code. Note that we have added an option to ", StyleBox["ButtonBox", "MR"], " to set the background and also wrapped the ", StyleBox["ButtonBox", "MR"], " text in ", StyleBox["StyleBox", "MR"], " in order to add several font options there." }], "Text", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell["\<\ ButtonBox[StyleBox[\"Spikey\", FontFamily\[Rule]\"Times\",FontColor\[Rule]White], ButtonFunction\[RuleDelayed]CompoundExpression[ Needs[\"Graphics`Polyhedra`\"], Show[Graphics3D[Symbol[\"Stellate\"][Symbol[\"Icosahedron\"][]]]]], ButtonEvaluator\[Rule]Automatic, Background\[Rule]GrayLevel[.5], Active\[Rule]True] //DisplayForm\ \>", "Program", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell[BoxData[ TagBox[ ButtonBox[ StyleBox["Spikey", FontFamily->"Times", FontColor->GrayLevel[1]], ButtonFunction:>CompoundExpression[ Needs[ "Graphics`Polyhedra`"], Show[ Graphics3D[ Symbol[ "Stellate"][ Symbol[ "Icosahedron"][ ]]]]], ButtonEvaluator->Automatic, Active->True, Background->GrayLevel[0.500008]], DisplayForm]], "Output", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell["\<\ Clicking the button will produce the stellated icosahedron as displayed \ above.\ \>", "Text", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell[TextData[{ "Note that we have wrapped each of the symbols ", StyleBox["Stellate", "MR"], " and ", StyleBox["Icosahedron", "MR"], " in ", StyleBox["Symbol[\"\[Ellipsis]\"]", "MR"], ". The reason this is necessary is a bit technical but is roughly as \ follows: Prior to evaluating any input, the kernel first parses that input \ and determines which context any symbols in that input live. So prior to \ evaluation, the symbols ", StyleBox["Stellate", "MR"], " and ", StyleBox["Icosahedron", "MR"], " are parsed and put in the current context (typically ", StyleBox["Global`", "MR"], "). Then, when the evaluation takes place and the package is loaded, \ shadowing of symbols occurs and a warning message will be issued. By using ", StyleBox["Symbol[\"Stellate\"]", "MR"], ", the string argument prevents the parser from putting a symbol in the \ wrong context. Actually, this code would be more robust if we used the full \ context name, ", StyleBox["Symbol[\"Graphics`Polyhedra`Stellate\"]", "MR"], ", as this would work even if shadowing had occurred elsewhere." }], "Text"] }, Open ]], Cell[CellGroupData[{ Cell["11 Examples and applications", "Subsection"], Cell[TextData[{ StyleBox["Page 350", FontWeight->"Bold"], ", Exercise 3: change \[OpenCurlyDoubleQuote]In addition, you function\ \[Ellipsis]\[CloseCurlyDoubleQuote] to \[OpenCurlyDoubleQuote]In addition, \ your function\[Ellipsis]\[CloseCurlyDoubleQuote]." }], "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell["12 Writing packages", "Subsection"], Cell[TextData[{ StyleBox["Page 413", FontWeight->"Bold"], ", first line: change \[OpenCurlyDoubleQuote]A 100 step off-lattice\ \[Ellipsis]\[CloseCurlyDoubleQuote] to \[OpenCurlyDoubleQuote]A 1000 step \ off-lattice\[Ellipsis]\[CloseCurlyDoubleQuote]." }], "BulletedList"], Cell[TextData[{ StyleBox["Page 415", FontWeight->"Bold"], ", first line: change \[OpenCurlyDoubleQuote]\[Ellipsis]a package ", StyleBox["CollatzSequence.m", "MR"], "\[Ellipsis]\[CloseCurlyDoubleQuote] to \[OpenCurlyDoubleQuote]\[Ellipsis]a \ package ", StyleBox["Collatz.m", "MR"], "\[Ellipsis]\[CloseCurlyDoubleQuote]." }], "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell["References", "Subsection"], Cell[TextData[{ StyleBox["Page 428", FontWeight->"Bold"], ": add ", StyleBox["Lagarias, J", FontFamily->"JansonText RomanSC"], "., Miller, V., and Odlyzko, A. Computing ", Cell[BoxData[ \(TraditionalForm\`\[Pi](x)\)]], ": The Meissel-Lehmer Method. ", StyleBox["Math Comp.", FontSlant->"Italic"], ", ", StyleBox["44", FontWeight->"Bold"], " 537\[Dash]560, 1985." }], "BulletedList"], Cell[TextData[{ StyleBox["Page 429", FontWeight->"Bold"], ": add ", StyleBox["Porta, H., Davis, W., ", FontFamily->"JansonText RomanSC"], "and", StyleBox[" Uhl, J", FontFamily->"JansonText RomanSC"], ". ", StyleBox["Calculus&Mathematica", FontSlant->"Italic"], ". Reading, MA: Addison-Wesley, 1994." }], "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell["Solutions to exercises", "Subsection"], Cell[TextData[{ StyleBox["Page 441-2", FontWeight->"Bold"], ", Solution 1: change ", StyleBox["pairSum", "MR"], " to ", StyleBox["addPair", "MR"], " (two occurrences)." }], "BulletedList"], Cell[TextData[{ StyleBox["Page 445", FontWeight->"Bold"], ", Solution 3: change \[OpenCurlyDoubleQuote]\[Ellipsis]", StyleBox["Times", "MR"], " functions\[Ellipsis]\[CloseCurlyDoubleQuote] to \[OpenCurlyDoubleQuote]\ \[Ellipsis]", StyleBox["Times", "MR"], " function\[Ellipsis]\[CloseCurlyDoubleQuote]." }], "BulletedList"], Cell[TextData[{ StyleBox["Page 446", FontWeight->"Bold"], ", Solution 4: change ", StyleBox["interLeave2", "MR"], " to ", StyleBox["interleave", "MR"], "." }], "BulletedList"], Cell[TextData[{ StyleBox["Page 463", FontWeight->"Bold"], ", Solution 9: the ", StyleBox["bisect", "MR"], " function, as given in the text, is only valid for functions that are \ monotonically increasing. The following code corrects for the more general \ cases." }], "BulletedList"], Cell[BoxData[ \(bisect[f_, {a_, b_, \[Epsilon]_}] := Module[{midpt = N[\(a + b\)\/2], low = a, high = b}, While[Abs[f[midpt]] > \[Epsilon], \[IndentingNewLine]If[ Sign[f[low]] \[Equal] Sign[f[midpt]], low = midpt, high = midpt]; \[IndentingNewLine]midpt = N[\(low + high\)\/2]]; \[IndentingNewLine]midpt]\)], "Input", CellLabel->"In[31]:="], Cell[BoxData[ \(f[x_] := Cos[x] - x\)], "Input", CellLabel->"In[32]:="], Cell[CellGroupData[{ Cell[BoxData[ \(bisect[f, {0, 1, 10\^\(-12\)}]\)], "Input", CellLabel->"In[33]:="], Cell[BoxData[ \(0.7390851332147577`\)], "Output", CellLabel->"Out[33]="] }, Open ]], Cell[BoxData[ \(f[x_] := x\^2 - 2\)], "Input", CellLabel->"In[34]:="], Cell[CellGroupData[{ Cell[BoxData[ \(bisect[f, {1, 2, 10\^\(-12\)}]\)], "Input", CellLabel->"In[35]:="], Cell[BoxData[ \(1.4142135623733338`\)], "Output", CellLabel->"Out[35]="] }, Open ]], Cell[BoxData[ \(f[x_] := 4 - x\^2\)], "Input", CellLabel->"In[36]:="], Cell[CellGroupData[{ Cell[BoxData[ \(bisect[f, {0, 4, 10\^\(-12\)}]\)], "Input", CellLabel->"In[37]:="], Cell[BoxData[ \(2.`\)], "Output", CellLabel->"Out[37]="] }, Open ]], Cell[TextData[{ StyleBox["Page 483", FontWeight->"Bold"], ", last text sentence: delete \[OpenCurlyDoubleQuote]The second form simply \ calls the first.\[CloseCurlyDoubleQuote]" }], "BulletedList"], Cell[TextData[{ StyleBox["Page 508", FontWeight->"Bold"], ", first line: add \[OpenCurlyDoubleQuote](", StyleBox["Note", FontSlant->"Italic"], ": ", StyleBox["Graphics`Polyhedra`", "MR"], " calls ", StyleBox["Geometry`Polytopes`", "MR"], " in which some of the functions such as ", StyleBox["Cube", "MR"], ", ", StyleBox["Dodecahedron", "MR"], ", and others are defined. So you might want to examine ", StyleBox["Names", "MR"], " of that package as well.)\[CloseCurlyDoubleQuote] immediately following \ this first line." }], "BulletedList"], Cell[TextData[{ StyleBox["Page 514", FontWeight->"Bold"], ", Solution 9: change \[OpenCurlyDoubleQuote]Exercise 9\ \[CloseCurlyDoubleQuote] to \[OpenCurlyDoubleQuote]Exercise 8\ \[CloseCurlyDoubleQuote]." }], "BulletedList"], Cell[TextData[{ StyleBox["Page 523\[Dash]525", FontWeight->"Bold"], ", Solution 1: add the following text to the end of the second text \ paragraph and then modify the ", StyleBox["ShowTable", "MR"], " code as below:\n\[OpenCurlyDoubleQuote]We also need to account for the \ situation when no headings are specified; this is done with the ", StyleBox["If", "MR"], " statement inside the ", StyleBox["GridBox", "MR"], ".\[CloseCurlyDoubleQuote]" }], "BulletedList"], Cell[BoxData[ \(\($Line = 6;\)\)], "NonPrintInput", CellLabel->"In[1]:="], Cell[BoxData[ \(\(Options[ShowTable] = {Headings \[Rule] {}};\)\)], "Input", CellLabel->"In[7]:=", CellTags->"IPM3.Sol.10.4"], Cell[BoxData[ RowBox[{\(ShowTable[data_, opts___?OptionQ]\), ":=", RowBox[{"Module", "[", RowBox[{\({headstyle, headings}\), ",", "\[IndentingNewLine]", RowBox[{\(headstyle[str_] := StyleBox[\((MakeBoxes[#, StandardForm] &)\)@str, FontFamily \[Rule] "\", FontWeight \[Rule] "\", FontColor \[Rule] Blue, FontSize \[Rule] 10]\), ";", "\[IndentingNewLine]", StyleBox[\(headings = \(Headings /. Flatten[{opts}]\) /. Options[ShowTable]\), "Color3"], StyleBox[";", "Color3"], "\[IndentingNewLine]", \(DisplayForm[ StyleBox[\[IndentingNewLine]GridBox[ If[headings == {}, data, Prepend[data, Map[headstyle, headings]]], \[IndentingNewLine]GridFrame \[Rule] 2, GridFrameMargins \[Rule] {{1, 1}, {1, 1}}, \[IndentingNewLine]RowLines \[Rule] 1, ColumnLines \[Rule] 1], \[IndentingNewLine]FontFamily \[Rule] "\", \ \[IndentingNewLine]Background \[Rule] GrayLevel[ .8], SingleLetterItalics \[Rule] True]]\)}]}], "]"}]}]], "Input", CellLabel->"In[8]:=", CellTags->"IPM3.Sol.10.4"] }, Open ]], Cell[CellGroupData[{ Cell["Index", "Subsection"], Cell[TextData[{ StyleBox["Page 546", FontWeight->"Bold"], " add index entry: Perl language, 162" }], "BulletedList"] }, Open ]] }, Open ]] }, FrontEndVersion->"5.2 for Microsoft Windows", ScreenRectangle->{{0, 1024}, {0, 681}}, ScreenStyleEnvironment->"Working", PrintingStyleEnvironment->"Production", WindowSize->{687, 523}, WindowMargins->{{Automatic, 76}, {Automatic, 9}}, PrintingCopies->1, PrintingPageRange->{Automatic, Automatic}, PageHeaders->{{Inherited, Inherited, Cell[ TextData[ {"An Introduction to Programming with ", StyleBox[ "Mathematica", "IT"]}], "Header"]}, {Cell[ TextData[ {"Errata, 02 Apr 2006"}], "Header"], Inherited, Inherited}}, PrintingOptions->{"PrintingMargins"->{{54, 54}, {72, 72}}, "PrintCellBrackets"->False, "PrintRegistrationMarks"->False, "PrintMultipleHorizontalPages"->False}, CellLabelAutoDelete->False, StyleDefinitions -> "IPM3Styles.nb" ] (******************************************************************* 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->{ "b:0.5"->{ Cell[2685, 88, 322, 8, 110, "Program", CellTags->{"b:0.5", "IPM3.1.1.6"}]}, "IPM3.1.1.6"->{ Cell[2685, 88, 322, 8, 110, "Program", CellTags->{"b:0.5", "IPM3.1.1.6"}]}, "b:46.3"->{ Cell[7031, 239, 340, 9, 52, "Text", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell[7374, 250, 431, 10, 161, "Program", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell[7808, 262, 528, 16, 34, "Output", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell[8339, 280, 143, 4, 33, "Text", CellTags->{"b:46.3", "IPM3.10.5.4"}]}, "IPM3.10.5.4"->{ Cell[7031, 239, 340, 9, 52, "Text", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell[7374, 250, 431, 10, 161, "Program", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell[7808, 262, 528, 16, 34, "Output", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell[8339, 280, 143, 4, 33, "Text", CellTags->{"b:46.3", "IPM3.10.5.4"}]}, "IPM3.Sol.10.4"->{ Cell[15503, 540, 133, 3, 30, "Input", CellTags->"IPM3.Sol.10.4"], Cell[15639, 545, 1406, 29, 210, "Input", CellTags->"IPM3.Sol.10.4"]} } *) (*CellTagsIndex CellTagsIndex->{ {"b:0.5", 18470, 619}, {"IPM3.1.1.6", 18574, 622}, {"b:46.3", 18674, 625}, {"IPM3.10.5.4", 19038, 634}, {"IPM3.Sol.10.4", 19404, 643} } *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[1776, 53, 133, 4, 98, "Chapter"], Cell[1912, 59, 176, 11, 75, "Subtitle"], Cell[CellGroupData[{ Cell[2113, 74, 36, 0, 44, "Subsection"], Cell[2152, 76, 530, 10, 104, "BulletedList"], Cell[2685, 88, 322, 8, 110, "Program", CellTags->{"b:0.5", "IPM3.1.1.6"}], Cell[3010, 98, 557, 12, 71, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[3604, 115, 29, 0, 44, "Subsection"], Cell[3636, 117, 412, 12, 31, "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell[4085, 134, 46, 0, 44, "Subsection"], Cell[4134, 136, 190, 8, 31, "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell[4361, 149, 33, 0, 44, "Subsection"], Cell[4397, 151, 229, 8, 31, "BulletedList"], Cell[4629, 161, 285, 5, 110, "Input"], Cell[4917, 168, 165, 6, 33, "Text"], Cell[5085, 176, 282, 7, 31, "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell[5404, 188, 44, 0, 44, "Subsection"], Cell[5451, 190, 396, 9, 50, "BulletedList"], Cell[5850, 201, 290, 6, 31, "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell[6177, 212, 46, 0, 44, "Subsection"], Cell[6226, 214, 547, 15, 69, "BulletedList"], Cell[6776, 231, 252, 6, 31, "BulletedList"], Cell[7031, 239, 340, 9, 52, "Text", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell[7374, 250, 431, 10, 161, "Program", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell[7808, 262, 528, 16, 34, "Output", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell[8339, 280, 143, 4, 33, "Text", CellTags->{"b:46.3", "IPM3.10.5.4"}], Cell[8485, 286, 1116, 24, 166, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[9638, 315, 50, 0, 44, "Subsection"], Cell[9691, 317, 285, 6, 31, "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell[10013, 328, 41, 0, 44, "Subsection"], Cell[10057, 330, 279, 6, 31, "BulletedList"], Cell[10339, 338, 356, 9, 31, "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell[10732, 352, 32, 0, 44, "Subsection"], Cell[10767, 354, 424, 16, 50, "BulletedList"], Cell[11194, 372, 351, 13, 31, "BulletedList"] }, Open ]], Cell[CellGroupData[{ Cell[11582, 390, 44, 0, 44, "Subsection"], Cell[11629, 392, 204, 8, 31, "BulletedList"], Cell[11836, 402, 339, 9, 31, "BulletedList"], Cell[12178, 413, 191, 8, 31, "BulletedList"], Cell[12372, 423, 295, 8, 50, "BulletedList"], Cell[12670, 433, 400, 7, 160, "Input"], Cell[13073, 442, 77, 2, 30, "Input"], Cell[CellGroupData[{ Cell[13175, 448, 88, 2, 31, "Input"], Cell[13266, 452, 78, 2, 29, "Output"] }, Open ]], Cell[13359, 457, 75, 2, 30, "Input"], Cell[CellGroupData[{ Cell[13459, 463, 88, 2, 31, "Input"], Cell[13550, 467, 78, 2, 29, "Output"] }, Open ]], Cell[13643, 472, 75, 2, 30, "Input"], Cell[CellGroupData[{ Cell[13743, 478, 88, 2, 31, "Input"], Cell[13834, 482, 62, 2, 29, "Output"] }, Open ]], Cell[13911, 487, 205, 5, 31, "BulletedList"], Cell[14119, 494, 577, 18, 69, "BulletedList"], Cell[14699, 514, 232, 6, 31, "BulletedList"], Cell[14934, 522, 484, 12, 96, "BulletedList"], Cell[15421, 536, 79, 2, 30, "NonPrintInput"], Cell[15503, 540, 133, 3, 30, "Input", CellTags->"IPM3.Sol.10.4"], Cell[15639, 545, 1406, 29, 210, "Input", CellTags->"IPM3.Sol.10.4"] }, Open ]], Cell[CellGroupData[{ Cell[17082, 579, 27, 0, 44, "Subsection"], Cell[17112, 581, 124, 4, 31, "BulletedList"] }, Open ]] }, Open ]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)