(* Content-type: application/mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 6.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 145, 7] NotebookDataLength[ 18105, 670] NotebookOptionsPosition[ 14898, 555] NotebookOutlinePosition[ 15373, 573] CellTagsIndexPosition[ 15330, 570] WindowFrame->Normal ContainsDynamic->False*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell["Huffman Coding and Entropy", "Title", CellChangeTimes->{{3.421431042796875*^9, 3.421431044359375*^9}, { 3.452343150539456*^9, 3.4523431573820343`*^9}}], Cell["\<\ Wavelet Workshop June 2-5, 2009 University of South Florida\ \>", "Subtitle", CellChangeTimes->{{3.421426484890625*^9, 3.42142648821875*^9}, { 3.452342828495509*^9, 3.4523428384751987`*^9}}], Cell["\<\ Catherine Beneteau Caroline Haddad David Ruch Patrick Van Fleet\ \>", "Subsubtitle", CellChangeTimes->{{3.42144927371875*^9, 3.42144928703125*^9}}], Cell[TextData[StyleBox["\nTo evaluate individual cells, one at a time, place \ cursor along the side of the cell you wish to evaluate, and either type \ Shift-Enter.", FontSize->24]], "Text", CellChangeTimes->{{3.421456620265625*^9, 3.421456650625*^9}, { 3.452342844124681*^9, 3.452342853741496*^9}, {3.45234311028869*^9, 3.452343115765317*^9}, {3.452351247313555*^9, 3.4523513770339003`*^9}}], Cell[CellGroupData[{ Cell["Overview", "Section", CellChangeTimes->{{3.421428159890625*^9, 3.421428161*^9}}], Cell[CellGroupData[{ Cell["Objectives", "Subsection"], Cell["\<\ One purpose of this notebook is to give you a brief introduction to \ Mathemaica and a list of some commonly used commands and functions. Another \ purpose is to give you a brief introduction to the software package \ DiscreteWavelets and show you how to use it to load images. To evaluate individual cells, one at a time, place cursor along the side of \ the cell you wish to evaluate, and either type Shift-Enter.\ \>", "Text", CellChangeTimes->{{3.421456620265625*^9, 3.421456650625*^9}, { 3.452342844124681*^9, 3.452342853741496*^9}, {3.45234311028869*^9, 3.452343115765317*^9}, {3.452351247313555*^9, 3.452351354006507*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["DiscreteWavelets", "Subsection"], Cell[TextData[{ "You should run this cell each time you open this notebook!! It loads the \ ", StyleBox["Mathematica", FontSlant->"Italic"], " package DiscreteWavelets for use in subsequent computations." }], "Text", CellChangeTimes->{{3.421429438203125*^9, 3.421429441265625*^9}}], Cell[BoxData[ RowBox[{"<<", "DiscreteWavelets`DiscreteWavelets`"}]], "Input", CellChangeTimes->{{3.421448451359375*^9, 3.42144845165625*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Help on DiscreteWavelets", "Subsection"], Cell["\<\ If you ever need help with DiscreteWavelets, go to Help, then Documentation \ Center. On the bottom right, you will find a link for Installed Add-Ons. \ Click this link and then the link to DiscreteWavelets to access \ documentation, examples, and applications of the software package.\ \>", "Text", CellChangeTimes->{{3.42142653203125*^9, 3.421426604453125*^9}}] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Creating Vectors and Matrices", "Section"], Cell[BoxData[{ RowBox[{"v", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5"}], "}"}]}], "\[IndentingNewLine]", RowBox[{"A", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "6"}], "}"}]}], "}"}]}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Individual Elements of Vectors and Matrices", "Section"], Cell[BoxData[{ RowBox[{ RowBox[{"v", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"First", "[", "v", "]"}], "\[IndentingNewLine]", RowBox[{"v", "[", RowBox[{"[", "1", "]"}], "]"}], "\[IndentingNewLine]", RowBox[{"Last", "[", "v", "]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"v", "[", RowBox[{"[", "5", "]"}], "]"}], "\[IndentingNewLine]"}], "\[IndentingNewLine]", RowBox[{"v", "[", RowBox[{"[", "2", "]"}], "]"}], "\[IndentingNewLine]"}], "Input"], Cell[BoxData[{ RowBox[{ RowBox[{"A", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "6"}], "}"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"A", "[", RowBox[{"[", RowBox[{"1", ",", "1"}], "]"}], "]"}], "\[IndentingNewLine]"}], "\[IndentingNewLine]", RowBox[{"A", "[", RowBox[{"[", RowBox[{"3", ",", "1"}], "]"}], "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["TableForm and MatrixForm", "Section"], Cell[BoxData[{ RowBox[{ RowBox[{"v", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"A", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "6"}], "}"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"TableForm", "[", "v", "]"}], "\[IndentingNewLine]", RowBox[{"MatrixForm", "[", "A", "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Print", "Section"], Cell[BoxData[{ RowBox[{ RowBox[{"v", "=", "12"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Print", "[", RowBox[{"\"\\"", ",", "v", ",", "\"\<.\>\""}], "]"}], ";"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["N", "Section"], Cell[BoxData[{ RowBox[{ RowBox[{"x", "=", RowBox[{"Sqrt", "[", "2", "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"N", "[", "x", "]"}], "\[IndentingNewLine]", RowBox[{"N", "[", RowBox[{"x", ",", "32"}], "]"}]}], "Input"], Cell[BoxData[{ RowBox[{"Sqrt", "[", "2", "]"}], "\[IndentingNewLine]", RowBox[{"Sqrt", "[", "2.", "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Length", "Section"], Cell[BoxData[{ RowBox[{ RowBox[{"v", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "6", ",", "7"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Length", "[", "v", "]"}], "\[IndentingNewLine]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"A", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "6"}], "}"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Length", "[", "A", "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Dimensions", "Section"], Cell[BoxData[{ RowBox[{ RowBox[{"A", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "6"}], "}"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Dimensions", "[", "A", "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Flatten", "Section"], Cell[BoxData[{ RowBox[{ RowBox[{"A", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "6"}], "}"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Flatten", "[", "A", "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Total", "Section"], Cell[BoxData[{ RowBox[{ RowBox[{"v", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Total", "[", "v", "]"}], "\[IndentingNewLine]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"A", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "6"}], "}"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Total", "[", "A", "]"}], "\[IndentingNewLine]", RowBox[{"Total", "[", RowBox[{"Flatten", "[", "A", "]"}], "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Abs, Sqrt, Sin, Cos, Exp", "Section"], Cell[BoxData[{ RowBox[{"Abs", "[", RowBox[{"-", "3"}], "]"}], "\[IndentingNewLine]", RowBox[{"Sqrt", "[", "4", "]"}], "\[IndentingNewLine]", RowBox[{"Sin", "[", RowBox[{"Pi", "/", "3"}], "]"}], "\[IndentingNewLine]", RowBox[{"Cos", "[", RowBox[{"Pi", "/", "3"}], "]"}], "\[IndentingNewLine]", RowBox[{"Exp", "[", RowBox[{"Pi", "*", "I"}], "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Drop", "Section"], Cell[BoxData[{ RowBox[{ RowBox[{"v", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "6"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Drop", "[", RowBox[{"v", ",", "1"}], "]"}], "\[IndentingNewLine]", RowBox[{"Drop", "[", RowBox[{"v", ",", RowBox[{"-", "1"}]}], "]"}], "\[IndentingNewLine]", RowBox[{"Drop", "[", RowBox[{"v", ",", RowBox[{"{", RowBox[{"2", ",", "3"}], "}"}]}], "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Take", "Section"], Cell[BoxData[{ RowBox[{ RowBox[{"v", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "6"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Take", "[", RowBox[{"v", ",", "1"}], "]"}], "\[IndentingNewLine]", RowBox[{"Take", "[", RowBox[{"v", ",", RowBox[{"-", "1"}]}], "]"}], "\[IndentingNewLine]", RowBox[{"Take", "[", RowBox[{"v", ",", RowBox[{"{", RowBox[{"2", ",", "5"}], "}"}]}], "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Reverse", "Section"], Cell[BoxData[{ RowBox[{"v", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5"}], "}"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Reverse", "[", "v", "]"}], "\[IndentingNewLine]"}], "\[IndentingNewLine]", RowBox[{"A", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "6"}], "}"}]}], "}"}]}], "\[IndentingNewLine]", RowBox[{"Reverse", "[", "A", "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Sort", "Section"], Cell[BoxData[{ RowBox[{ RowBox[{"v", "=", RowBox[{"{", RowBox[{"2", ",", "6", ",", RowBox[{"-", "1"}], ",", "0", ",", "3", ",", "5", ",", RowBox[{"-", "5"}], ",", RowBox[{"-", "3"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Sort", "[", "v", "]"}], "\[IndentingNewLine]", RowBox[{"Sort", "[", RowBox[{"v", ",", "Greater"}], "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Table", "Section"], Cell[BoxData[{ RowBox[{"t", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"k", "^", "2"}], ",", RowBox[{"{", RowBox[{"k", ",", "1", ",", "10"}], "}"}]}], "]"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"A", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"j", "+", "k"}], ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", "5"}], "}"}], ",", RowBox[{"{", RowBox[{"k", ",", "1", ",", "5"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"MatrixForm", "[", "A", "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Sum", "Section"], Cell[BoxData[ RowBox[{"Sum", "[", RowBox[{ RowBox[{"k", "^", "2"}], ",", RowBox[{"{", RowBox[{"k", ",", "1", ",", "10"}], "}"}]}], "]"}]], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["For", "Section"], Cell[BoxData[{ RowBox[{"s", "=", "0"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"For", "[", RowBox[{ RowBox[{"k", "=", "1"}], ",", RowBox[{"k", "\[LessEqual]", "5"}], ",", RowBox[{"k", "++"}], ",", "\[IndentingNewLine]", "\t", RowBox[{ RowBox[{"s", " ", "=", " ", RowBox[{"s", " ", "+", " ", RowBox[{"k", "^", "2"}]}]}], ";"}]}], "\[IndentingNewLine]", "]"}], ";"}], "\[IndentingNewLine]", RowBox[{"Print", "[", RowBox[{"\"\\"", ",", "s", ",", "\"\<.\>\""}], "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Plot", "Section"], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"f", "[", "x_", "]"}], ":=", RowBox[{ RowBox[{"x", "^", "2"}], "+", "x"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Plot", "[", RowBox[{ RowBox[{"f", "[", "x", "]"}], ",", RowBox[{"{", RowBox[{"x", ",", RowBox[{"-", "3"}], ",", "3"}], "}"}]}], "]"}], "\[IndentingNewLine]", RowBox[{"Plot", "[", RowBox[{ RowBox[{ RowBox[{"f", "'"}], "[", "x", "]"}], ",", RowBox[{"{", RowBox[{"x", ",", RowBox[{"-", "3"}], ",", "3"}], "}"}]}], "]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Plot", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"f", "[", "x", "]"}], ",", RowBox[{ RowBox[{"f", "'"}], "[", "x", "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x", ",", RowBox[{"-", "3"}], ",", "3"}], "}"}]}], "]"}], "\[IndentingNewLine]"}], "\[IndentingNewLine]", RowBox[{"Plot", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"f", "[", "x", "]"}], ",", RowBox[{ RowBox[{"f", "'"}], "[", "x", "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x", ",", RowBox[{"-", "3"}], ",", "3"}], "}"}], ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"{", RowBox[{"Red", ",", "Blue"}], "}"}]}]}], "]"}]}], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["ListPlot", "Section"], Cell[BoxData[{ RowBox[{ RowBox[{"v", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"RandomInteger", "[", RowBox[{"{", RowBox[{"0", ",", "20"}], "}"}], "]"}], ",", RowBox[{"{", RowBox[{"k", ",", "1", ",", "10"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"ListPlot", "[", "v", "]"}], ";"}], "\[IndentingNewLine]", RowBox[{"ListPlot", "[", RowBox[{"v", ",", RowBox[{"PlotStyle", "\[Rule]", "Green"}]}], "]"}], "\[IndentingNewLine]", RowBox[{"ListPlot", "[", RowBox[{"v", ",", RowBox[{"PlotStyle", "\[Rule]", "Red"}], ",", RowBox[{"Joined", "\[Rule]", "True"}]}], "]"}], "\[IndentingNewLine]"}], "Input", CellChangeTimes->{{3.4209119179678626`*^9, 3.420911960390009*^9}}] }, Open ]] }, Open ]] }, AutoGeneratedPackage->None, ScreenStyleEnvironment->"Presentation", WindowSize->{1272, 683}, WindowMargins->{{Automatic, 52}, {Automatic, 0}}, FrontEndVersion->"6.0 for Mac OS X x86 (32-bit) (June 19, 2007)", StyleDefinitions->FrontEnd`FileName[{"Creative"}, "NaturalColor.nb", CharacterEncoding -> "UTF-8"] ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[590, 23, 160, 2, 107, "Title"], Cell[753, 27, 203, 6, 140, "Subtitle"], Cell[959, 35, 158, 6, 96, "Subsubtitle"], Cell[1120, 43, 401, 6, 98, "Text"], Cell[CellGroupData[{ Cell[1546, 53, 87, 1, 104, "Section"], Cell[CellGroupData[{ Cell[1658, 58, 32, 0, 57, "Subsection"], Cell[1693, 60, 650, 11, 103, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[2380, 76, 38, 0, 57, "Subsection"], Cell[2421, 78, 288, 7, 57, "Text"], Cell[2712, 87, 143, 2, 54, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[2892, 94, 46, 0, 57, "Subsection"], Cell[2941, 96, 377, 6, 57, "Text"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[3367, 108, 48, 0, 104, "Section"], Cell[3418, 110, 392, 13, 85, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[3847, 128, 62, 0, 104, "Section"], Cell[3912, 130, 565, 15, 265, "Input"], Cell[4480, 147, 533, 19, 145, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[5050, 171, 43, 0, 104, "Section"], Cell[5096, 173, 567, 18, 145, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[5700, 196, 24, 0, 104, "Section"], Cell[5727, 198, 216, 6, 85, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[5980, 209, 20, 0, 104, "Section"], Cell[6003, 211, 235, 6, 115, "Input"], Cell[6241, 219, 118, 2, 85, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[6396, 226, 25, 0, 104, "Section"], Cell[6424, 228, 621, 20, 175, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[7082, 253, 29, 0, 104, "Section"], Cell[7114, 255, 354, 12, 85, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[7505, 272, 26, 0, 104, "Section"], Cell[7534, 274, 351, 12, 85, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[7922, 291, 24, 0, 104, "Section"], Cell[7949, 293, 690, 22, 205, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[8676, 320, 43, 0, 104, "Section"], Cell[8722, 322, 377, 9, 175, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[9136, 336, 23, 0, 104, "Section"], Cell[9162, 338, 472, 14, 145, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[9671, 357, 23, 0, 104, "Section"], Cell[9697, 359, 472, 14, 145, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[10206, 378, 26, 0, 104, "Section"], Cell[10235, 380, 553, 17, 175, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[10825, 402, 23, 0, 104, "Section"], Cell[10851, 404, 386, 10, 115, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[11274, 419, 24, 0, 104, "Section"], Cell[11301, 421, 553, 18, 115, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[11891, 444, 22, 0, 104, "Section"], Cell[11916, 446, 163, 5, 54, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[12116, 456, 22, 0, 104, "Section"], Cell[12141, 458, 540, 14, 175, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[12718, 477, 23, 0, 104, "Section"], Cell[12744, 479, 1289, 43, 205, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[14070, 527, 27, 0, 104, "Section"], Cell[14100, 529, 770, 22, 175, "Input"] }, Open ]] }, Open ]] } ] *) (* End of internal cache information *)