MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: exporting a list of functions for use in a C function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg44441] Re: exporting a list of functions for use in a C function
  • From: Tom Burton <tburton at brahea.com>
  • Date: Sun, 9 Nov 2003 06:01:28 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,

As recommended by others, you should use CForm. I've appended to this
message a function that I use to make minor alterations in the output of
CForm, such as Power -> pow, to yield a more standard form in C++. I hope it
helps.

Tom Burton 

On 11/5/03 6:17 AM, in article bob7qo$qu1$1 at smc.vnet.net, "Nathan Moore"
<nmoore at physics.umn.edu> wrote:

> I've composed a large list of functions in Mathematica that I'd like to
> have a c function evaluate.  To my knowledge c and C++ reject the
> convention x^2 and prefer either x*x or pow(x,2).

Notebook[{

Cell[CellGroupData[{
Cell["CppForm: Making CForm more like typical C++", "Subsection"],

Cell[CellGroupData[{

Cell["Usage", "Subsubsection"],

Cell[BoxData[
    \(\(CppForm::usage = "\<CppForm[expression,options] \
\[LongRightArrow] C++ form of expression with conventions applied for \
AutoSEA. Use options--e.g., {\[Omega]->omega}--to make additional \
substitutions. Alternate form: CppForm[funcName,variable,options] \
\[LongRightArrow] CppForm of the expression rhs in the list of \
occurences of \"variable=rhs\" in the function(s) funcName.\>";\)\)], \
"Input",
  InitializationCell->True],

Cell[BoxData[
    \(\(CppForm::mult = "\<Function `1` contains `3` definitions of \
`2`, perhaps owing to initialization or because `1` is itself \
overloaded. The following list contains all definitions.\>";\)\)], \
"Input",
  InitializationCell->True]
}, Closed]],

Cell[CellGroupData[{

Cell["Code", "Subsubsection"],

Cell["\<\
v. 051 (9/9/97) Improved treatment of divisors
v. 064 (6/6/98) Added desubscripting and integer conversion
v. 064 (6/10/98) Commented out integer conversion. Hangs sometimes.\
\
\>", "Text"],

Cell[BoxData[
    \(CppForm[expr_, opts___?OptionQ] :=
      Module[{\[IndentingNewLine]x,
          rename = 
            Flatten[{opts}], \n\t\t\tfloat1 = {Power[x_,
                  i_Integer] \[RuleDelayed] Power[x, ToString@i],
              Rational[i_Integer, j_Integer] \[RuleDelayed]
                Rational[ToString@i, ToString@j],
              Subscript[x_, i_Integer] \[RuleDelayed]
                Subscript[x, ToString@i]},
          float2 = 
            head_[a___, i_Integer, b___] \[RuleDelayed]
              head[a, 1.  i, b],
          float3 = {s_String \[RuleDelayed] ToExpression[s],
              Times[1. , x__] :> Times[x],
              Times[\(-1. \), x__] :>
                Times[\(-x\)]}, \n\t\t\tdesubscript = {X_\_s_ \
\[RuleDelayed] Symbol[ToString[X] <> ToString[s]],
              X_\_s__ \[RuleDelayed]
                Symbol[
                  ToString[X] <>
                    StringJoin @@ \(ToString /@ {s}\)]}, \
\[IndentingNewLine]zeroBasedIndex = {\[IndentingNewLine]HoldPattern[
                  sym_\[LeftDoubleBracket]1\[RightDoubleBracket]] \
\[RuleDelayed] HoldForm[
                  sym\[LeftDoubleBracket]0\[RightDoubleBracket]], \
\[IndentingNewLine]HoldPattern[
                  sym_\[LeftDoubleBracket]2\[RightDoubleBracket]] \
\[RuleDelayed] HoldForm[
                  sym\[LeftDoubleBracket]1\[RightDoubleBracket]], \
\[IndentingNewLine]HoldPattern[
                  sym_\[LeftDoubleBracket]3\[RightDoubleBracket]] \
\[RuleDelayed] HoldForm[
                  sym\[LeftDoubleBracket]2\[RightDoubleBracket]], \
\[IndentingNewLine]HoldPattern[
                  sym_\[LeftDoubleBracket]4\[RightDoubleBracket]] \
\[RuleDelayed] HoldForm[
                  sym\[LeftDoubleBracket]3\[RightDoubleBracket]], \
\[IndentingNewLine]HoldPattern[
                  sym_\[LeftDoubleBracket]5\[RightDoubleBracket]] \
\[RuleDelayed] HoldForm[
                  sym\[LeftDoubleBracket]4\[RightDoubleBracket]], \
\[IndentingNewLine]HoldPattern[
                  sym_\[LeftDoubleBracket]6\[RightDoubleBracket]] \
\[RuleDelayed] HoldForm[
                  sym\[LeftDoubleBracket]5\[RightDoubleBracket]], \
\[IndentingNewLine]HoldPattern[
                  sym_\[LeftDoubleBracket]7\[RightDoubleBracket]] \
\[RuleDelayed] HoldForm[
                  sym\[LeftDoubleBracket]6\[RightDoubleBracket]], \
\[IndentingNewLine]HoldPattern[
                  sym_\[LeftDoubleBracket]8\[RightDoubleBracket]] \
\[RuleDelayed] HoldForm[
                  sym\[LeftDoubleBracket]7\[RightDoubleBracket]], \
\[IndentingNewLine]HoldPattern[
                  sym_\[LeftDoubleBracket]9\[RightDoubleBracket]] \
\[RuleDelayed] HoldForm[
                  sym\[LeftDoubleBracket]8\[RightDoubleBracket]], \
\[IndentingNewLine]HoldPattern[
                  sym_\[LeftDoubleBracket]10\[RightDoubleBracket]] \
\[RuleDelayed] HoldForm[
                  sym\[LeftDoubleBracket]9\[RightDoubleBracket]], \
\[IndentingNewLine]HoldPattern[
                  sym_\[LeftDoubleBracket]11\[RightDoubleBracket]] \
\[RuleDelayed] HoldForm[
                  sym\[LeftDoubleBracket]10\[RightDoubleBracket]],
              HoldPattern[
                  sym_\[LeftDoubleBracket]i_\[RightDoubleBracket]] \
\[RuleDelayed] HoldForm[
                  sym\[LeftDoubleBracket]i -
                      1\[RightDoubleBracket]]}, \n\t\t\tfunctions1 = \
{\n\t\t\t\t\tSqrt[x_] \[RuleDelayed]
                sqrt[x], \n\t\t\t\t\tSin[x_] \[RuleDelayed]
                sin[x], \n\t\t\t\t\tCos[x_] \[RuleDelayed]
                cos[x], \n\t\t\t\t\tTan[x_] \[RuleDelayed]
                tan[x], \n\t\t\t\t\tSec[x_] \[RuleDelayed]
                sec[x], \n\t\t\t\t\tCsc[x_] \[RuleDelayed]
                cosec[x], \n\t\t\t\t\tCot[x_] \[RuleDelayed]
                cot[x], \n\t\t\t\t\tSinh[x_] \[RuleDelayed]
                sinh[x], \n\t\t\t\t\tCosh[x_] \[RuleDelayed]
                cosh[x], \n\t\t\t\t\tTanh[x_] \[RuleDelayed]
                tanh[x], \n\t\t\t\t\tPower[x_, 2] \[RuleDelayed]
                sqr[x], \n\t\t\t\t\tPower[x_, 3] \[RuleDelayed]
                cube[x], \n\t\t\t\t\tPower[x_,
                  0.5 | 1/2] \[RuleDelayed]
                sqrt[x], \[IndentingNewLine]Power[E,
                  x_] \[RuleDelayed]
                exp[x], \n\t\t\t\t\tPower[x_, n_] \[RuleDelayed]
                Pow[x,
                  n]\n\t\t\t\t\t}, \n\t\t\tfunctions2 = {\n\t\t\t\t\t\
y_\ Pow[x_, \(-0.5\) | \(-1\)/2] \[RuleDelayed]
                Unevaluated[y/sqrt[x]], \n\t\t\t\t\tPow[
                  x_, \(-0.5\) | \(-1\)/2] \[RuleDelayed]
                Unevaluated[
                  1/sqrt[x]], \n\t\t\t\t\ty_\ Pow[
                    x_, \(-2\)] \[RuleDelayed]
                Unevaluated[y/sqr[x]], \n\t\t\t\t\tPow[
                  x_, \(-2\)] \[RuleDelayed]
                Unevaluated[
                  1/sqr[x]], \n\t\t\t\t\ty_\ Pow[
                    x_, \(-3\)] \[RuleDelayed]
                Unevaluated[y/cube[x]], \n\t\t\t\t\tPow[
                  x_, \(-3\)] \[RuleDelayed]
                Unevaluated[
                  1/cube[x]], \n\t\t\t\t\ty_\ Pow[
                    x_, \(-1\)] \[RuleDelayed]
                Unevaluated[y/x], \n\t\t\t\t\tPow[
                  x_, \(-1\)] \[RuleDelayed]
                Unevaluated[
                  1/x]\n\t\t\t\t}\[IndentingNewLine]}, \n\t\t\
\(\(\(\(expr /. rename\) /.
                  desubscript\) (*\(\(\(//.\)\(float1\)\) //.
                      float2\) //. float3*)  //. functions1\) //.
              functions2\) /. zeroBasedIndex //
          CForm\n\t]\)], "Input",
  InitializationCell->True],

Cell["\<\
v. 051 (9/6/97) Return a list of two or more; return a \
single expression if just one\
\>", "Text"],

Cell[BoxData[
    \(CppForm[func_, var_, opts___?OptionQ] := \n\t
      Replace[\n\t\tMap[
          CppForm[#, opts] &, \n\t\t\tCases[DownValues[func],
            HoldPattern[var = rhs_] \[Rule] HoldForm@rhs,
            Infinity]], \n\t\t{HoldPattern[{single_}] \[RuleDelayed]
            Unevaluated@
              single, \n\t\tHoldPattern[{multiple__}] \[RuleDelayed] \
\((Message[CppForm::mult, HoldForm[func], HoldForm[var],
                Length[{multiple}]];
              Unevaluated[{multiple}])\)}]\)], "Input",
  InitializationCell->True],

Cell[BoxData[
    \(SetAttributes[CppForm, HoldAll]\)], "Input",
  InitializationCell->True]
}, Open  ]],

Cell[CellGroupData[{

Cell["Local tests", "Subsubsection"],

Cell[BoxData[
    \(Clear[f, g, s, x, a, b]\)], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
    \(CppForm[
      a^2  b\^\(1/2\) + b\^ .5 + a\ b^3\  + \
        Sqrt[4  a + b^4 - a^3]\ Sin[a\ b]/\((Cos[a]\ Tan[b])\) +
        1/x + 1/x^2 + 1/x^3 - 1/Sqrt[x] - x^\(-\((1/2)\)\) +
        x^0.5]\)], "Input"],

Cell["\<\
1/x + a*cube(b) + 1/cube(x) + 1/sqr(x) +
   sqrt(b) + sqr(a)*sqrt(b) - 2/sqrt(x) +
   sqrt(x) + cot(b)*sec(a)*sin(a*b)*
    sqrt(4*a - cube(a) + Pow(b,4))\
\>", "Output"]
}, Open  ]],

Cell[BoxData[
    \(f[r] := 
      Module[{x}, {x = a,
          x = a^2  b\^\(1/2\) + b\^ .5 + a\ b^3\  + \
              Sqrt[4  a + b^4 - a^3]\ Sin[a\ b]/Cos[a]\ Tan[b] +
              1/x + 1/x^2 + 1/x^3 - 1/Sqrt[x] - x^\(-\((1/2)\)\) +
              x^0.5}]\)], "Input"],

Cell[BoxData[
    \(f[s] := 
      Module[{x}, {y = b,
          x = a^2  b\^\(1/2\) + b\^ .5 + a\ b^3\  + \
              Sqrt[4  a + b^4 - a^3]\ Sin[a\ b]/Cos[a]\ Tan[b] +
              1/x + 1/x^2 + 1/x^3 - 1/Sqrt[x] - x^\(-\((1/2)\)\) +
              x^0.5}]\)], "Input"],

Cell[BoxData[
    \(g[s] := 
      Module[{x}, {y = a,
          x = a^2  b\^\(1/2\) + b\^ .5 + a\ b^3\  + \
              Sqrt[4  a + b^4 - a^3]\ Sin[a\ b]/Cos[a]\ Tan[b] +
              1/x + 1/x^2 + 1/x^3 - 1/Sqrt[x] - x^\(-\((1/2)\)\) +
              x^0.5}]\)], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
    \(CppForm[f, y]\)], "Input"],

Cell["b", "Output"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
    \(CppForm[g, y]\)], "Input"],

Cell["a", "Output"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
    \(CppForm[f, x]\)], "Input"],

Cell[BoxData[
    FormBox[
      RowBox[{\(CppForm::"mult"\), \(\(:\)\(\ \)\), "\<\"Function \\!\
\\(TraditionalForm\\`f\\) contains \\!\\(TraditionalForm\\`3\\) \
definitions of \\!\\(TraditionalForm\\`x\\), perhaps owing to \
initialization or because \\!\\(TraditionalForm\\`f\\) is itself \
overloaded. The following list contains all definitions.\"\>"}],
      TraditionalForm]], "Message"],

Cell[BoxData[
    FormBox[
      RowBox[{"{", 
        RowBox[{
          InterpretationBox[
            StyleBox["a",
              ShowStringCharacters->True,
              NumberMarks->True],
            CForm[ 
              HoldForm[ a]],
            Editable->True,
            AutoDelete->True], ",",
          InterpretationBox[
            
            StyleBox[\(\(sqr(a)\)*\(Pow(b, 0.5)\)\  + \ sqrt(b)\  + \
                a*\(cube(b)\)\  + \ \(Sqrt(
                    4*a\  + \ Pow(b, 4)\  - \ cube(a))\)*\(sin(a*b)\)/
                    cos \((a)\)*\(tan(b)\)\  + \ 1/x\  + \
                1/sqr \((x)\)\  + \ 1/cube \((x)\)\  - \
                1/Sqrt \((x)\)\  - \ Pow(x, \(-0.5\))\  + \ sqrt(x)\),
              
              ShowStringCharacters->True,
              NumberMarks->True],
            CForm[ 
              HoldForm[
                Plus[
                  Times[
                    sqr[ a],
                    Pow[ b,
                      Times[ 1,
                        Power[ 2, -1]]]],
                  sqrt[ b],
                  Times[ a,
                    cube[ b]],
                  Times[
                    Sqrt[
                      Plus[
                        Times[ 4, a],
                        Pow[ b, 4],
                        Times[ -1,
                          cube[ a]]]],
                    Times[
                      sin[
                        Times[ a, b]],
                      Power[
                        cos[ a], -1]],
                    tan[ b]],
                  Times[ 1,
                    Power[ x, -1]],
                  Times[ 1,
                    Power[
                      sqr[ x], -1]],
                  Times[ 1,
                    Power[
                      cube[ x], -1]],
                  Times[ -1,
                    Times[ 1,
                      Power[
                        Sqrt[ x], -1]]],
                  Times[ -1,
                    Pow[ x,
                      Times[ -1,
                        Times[ 1,
                          Power[ 2, -1]]]]],
                  sqrt[ x]]]],
            Editable->True,
            AutoDelete->True], ",",
          InterpretationBox[
            
            StyleBox[\(\(sqr(a)\)*\(Pow(b, 0.5)\)\  + \ sqrt(b)\  + \
                a*\(cube(b)\)\  + \ \(Sqrt(
                    4*a\  + \ Pow(b, 4)\  - \ cube(a))\)*\(sin(a*b)\)/
                    cos \((a)\)*\(tan(b)\)\  + \ 1/x\  + \
                1/sqr \((x)\)\  + \ 1/cube \((x)\)\  - \
                1/Sqrt \((x)\)\  - \ Pow(x, \(-0.5\))\  + \ sqrt(x)\),
              
              ShowStringCharacters->True,
              NumberMarks->True],
            CForm[ 
              HoldForm[
                Plus[
                  Times[
                    sqr[ a],
                    Pow[ b,
                      Times[ 1,
                        Power[ 2, -1]]]],
                  sqrt[ b],
                  Times[ a,
                    cube[ b]],
                  Times[
                    Sqrt[
                      Plus[
                        Times[ 4, a],
                        Pow[ b, 4],
                        Times[ -1,
                          cube[ a]]]],
                    Times[
                      sin[
                        Times[ a, b]],
                      Power[
                        cos[ a], -1]],
                    tan[ b]],
                  Times[ 1,
                    Power[ x, -1]],
                  Times[ 1,
                    Power[
                      sqr[ x], -1]],
                  Times[ 1,
                    Power[
                      cube[ x], -1]],
                  Times[ -1,
                    Times[ 1,
                      Power[
                        Sqrt[ x], -1]]],
                  Times[ -1,
                    Pow[ x,
                      Times[ -1,
                        Times[ 1,
                          Power[ 2, -1]]]]],
                  sqrt[ x]]]],
            Editable->True,
            AutoDelete->True]}], "}"}], TraditionalForm]], "Output"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
    \(CppForm[g, x]\)], "Input"],

Cell["\<\
sqr(a)*Pow(b,0.5) + sqrt(b) + a*cube(b) +
   Sqrt(4*a + Pow(b,4) - cube(a))*
    sin(a*b)/cos(a)*tan(b) + 1/x +
   1/sqr(x) + 1/cube(x) - 1/Sqrt(x) -
   Pow(x,-0.5) + sqrt(x)\
\>", "Output"]
}, Open  ]],

Cell[BoxData[
    \(Clear[f, g, s, x, a, b]\)], "Input"]
}, Closed]]
}, Open  ]]
},
FrontEndVersion->"5.0 for Macintosh",
ScreenRectangle->{{43, 1152}, {0, 746}},
AutoGeneratedPackage->Automatic,
WindowToolbars->{},
WindowSize->{688, 720},
WindowMargins->{{199, Automatic}, {Automatic, 0}},
PrintingCopies->1,
PrintingPageRange->{Automatic, Automatic},
PageHeaders->{{Cell[
        TextData[ {
          CounterBox[ "Page"]}], "PageNumber"], Inherited, Cell[
        TextData[ {
          ValueBox[ "FileName"]}], "Header"]}, {Cell[
        TextData[ {
          ValueBox[ "FileName"]}], "Header"], Inherited, Cell[
        TextData[ {
          CounterBox[ "Page"]}], "PageNumber"]}},
PageFooters->{{
  Inherited, Inherited, Inherited}, {
    Cell[ "Vibro-Acoustic Sciences", "Footer"], Inherited, Cell[
        TextData[ {
          ValueBox[ "Date"], "\n",
          ValueBox[ "Time"]}], "Footer"]}},
PageFooterLines->{Inherited, True},
PrivateNotebookOptions->{"ColorPalette"->{RGBColor, -1}},
CellElementSpacings->{"ClosedCellHeight"->0},
ShowCellLabel->True,
RenderingOptions->{"ObjectDithering"->True,
"RasterDithering"->False},
StyleDefinitions -> Notebook[{
  
  Cell[CellGroupData[{
  Cell["Style Definitions", "Subtitle"],
  
  Cell["\<\
Modify the definitions below to change the default \
appearance of all cells in a given style.  Make modifications to any \
definition using commands in the Format menu.\
\>", "Text"],
  
  Cell[CellGroupData[{
  
  Cell["Style Environment Names", "Section"],
  
  Cell[StyleData[All, "Working"],
    PageWidth->WindowWidth,
    ScriptMinSize->9],
  
  Cell[StyleData[All, "Presentation"],
    PageWidth->WindowWidth,
    ScriptMinSize->12,
    FontSize->16],
  
  Cell[StyleData[All, "Condensed"],
    PageWidth->WindowWidth,
    CellBracketOptions->{"Margins"->{1, 1},
    "Widths"->{0, 5}},
    ScriptMinSize->8,
    FontSize->11],
  
  Cell[StyleData[All, "Printout"],
    PageWidth->PaperWidth,
    ScriptMinSize->5,
    FontSize->10,
    PrivateFontOptions->{"FontType"->"Outline"}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Notebook Options", "Section"],
  
  Cell["\<\
The options defined for the style below will be used at \
the Notebook level.\
\>", "Text"],
  
  Cell[StyleData["Notebook"],
    PageHeaders->{{Cell[
            TextData[ {
              CounterBox[ "Page"]}], "PageNumber"], None, Cell[
            TextData[ {
              ValueBox[ "FileName"]}], "Header"]}, {Cell[
            TextData[ {
              ValueBox[ "FileName"]}], "Header"], None, Cell[
            TextData[ {
              CounterBox[ "Page"]}], "PageNumber"]}},
    CellFrameLabelMargins->6,
    StyleMenuListing->None]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Styles for Headings", "Section"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Title"],
    CellMargins->{{12, Inherited}, {20, 40}},
    CellGroupingRules->{"TitleGrouping", 0},
    PageBreakBelow->False,
    CounterIncrements->"Title",
    CounterAssignments->{{"Section", 0}, {"Equation", 0}, {
        "Figure", 0}, {"Subtitle", 0}, {"Subsubtitle", 0}},
    FontFamily->"Helvetica",
    FontSize->36,
    FontWeight->"Bold"],
  
  Cell[StyleData["Title", "Presentation"],
    CellMargins->{{24, 10}, {20, 40}},
    LineSpacing->{1, 0},
    FontSize->44],
  
  Cell[StyleData["Title", "Condensed"],
    CellMargins->{{8, 10}, {4, 8}},
    FontSize->20],
  
  Cell[StyleData["Title", "Printout"],
    CellMargins->{{2, 10}, {12, 30}},
    FontSize->24]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Subtitle"],
    CellMargins->{{12, Inherited}, {20, 15}},
    CellGroupingRules->{"TitleGrouping", 10},
    PageBreakBelow->False,
    CounterIncrements->"Subtitle",
    CounterAssignments->{{"Section", 0}, {"Equation", 0}, {
        "Figure", 0}, {"Subsubtitle", 0}},
    FontFamily->"Helvetica",
    FontSize->24],
  
  Cell[StyleData["Subtitle", "Presentation"],
    CellMargins->{{24, 10}, {20, 20}},
    LineSpacing->{1, 0},
    FontSize->36],
  
  Cell[StyleData["Subtitle", "Condensed"],
    CellMargins->{{8, 10}, {4, 4}},
    FontSize->14],
  
  Cell[StyleData["Subtitle", "Printout"],
    CellMargins->{{2, 10}, {12, 8}},
    FontSize->18]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Subsubtitle"],
    ShowGroupOpenCloseIcon->True,
    CellMargins->{{12, Inherited}, {20, 15}},
    CellGroupingRules->{"TitleGrouping", 20},
    PageBreakBelow->False,
    CounterIncrements->"Subsubtitle",
    CounterAssignments->{{"Section", 0}, {"Equation", 0}, {
        "Figure", 0}},
    FontFamily->"Helvetica",
    FontSize->14,
    FontSlant->"Italic"],
  
  Cell[StyleData["Subsubtitle", "Presentation"],
    CellMargins->{{24, 10}, {20, 20}},
    LineSpacing->{1, 0},
    FontSize->24],
  
  Cell[StyleData["Subsubtitle", "Condensed"],
    CellMargins->{{8, 10}, {8, 8}},
    FontSize->12],
  
  Cell[StyleData["Subsubtitle", "Printout"],
    CellMargins->{{2, 10}, {12, 8}},
    FontSize->14]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Section"],
    CellDingbat->"\[FilledSquare]",
    ShowGroupOpenCloseIcon->True,
    CellMargins->{{25, Inherited}, {8, 24}},
    CellGroupingRules->{"SectionGrouping", 30},
    PageBreakBelow->False,
    CounterIncrements->"Section",
    CounterAssignments->{{"Subsection", 0}, {"Subsubsection", 0}},
    FontFamily->"Helvetica",
    FontSize->16,
    FontWeight->"Bold"],
  
  Cell[StyleData["Section", "Presentation"],
    CellMargins->{{40, 10}, {11, 32}},
    LineSpacing->{1, 0},
    FontSize->24],
  
  Cell[StyleData["Section", "Condensed"],
    CellMargins->{{18, Inherited}, {6, 12}},
    FontSize->12],
  
  Cell[StyleData["Section", "Printout"],
    CellMargins->{{13, 0}, {7, 22}},
    FontSize->14]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Subsection"],
    CellDingbat->"\[FilledSmallSquare]",
    ShowGroupOpenCloseIcon->True,
    CellMargins->{{22, Inherited}, {8, 20}},
    CellGroupingRules->{"SectionGrouping", 40},
    PageBreakBelow->False,
    CounterIncrements->"Subsection",
    CounterAssignments->{{"Subsubsection", 0}},
    FontSize->14,
    FontWeight->"Bold"],
  
  Cell[StyleData["Subsection", "Presentation"],
    CellMargins->{{36, 10}, {11, 32}},
    LineSpacing->{1, 0},
    FontSize->22],
  
  Cell[StyleData["Subsection", "Condensed"],
    CellMargins->{{16, Inherited}, {6, 12}},
    FontSize->12],
  
  Cell[StyleData["Subsection", "Printout"],
    CellMargins->{{9, 0}, {7, 22}},
    FontSize->12]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Subsubsection"],
    CellDingbat->"\[FilledSmallSquare]",
    ShowGroupOpenCloseIcon->True,
    CellMargins->{{22, Inherited}, {8, 18}},
    CellGroupingRules->{"SectionGrouping", 50},
    PageBreakBelow->False,
    CounterIncrements->"Subsubsection",
    FontWeight->"Bold"],
  
  Cell[StyleData["Subsubsection", "Presentation"],
    CellMargins->{{34, 10}, {11, 26}},
    LineSpacing->{1, 0},
    FontSize->18],
  
  Cell[StyleData["Subsubsection", "Condensed"],
    CellMargins->{{17, Inherited}, {6, 12}},
    FontSize->10],
  
  Cell[StyleData["Subsubsection", "Printout"],
    CellMargins->{{9, 0}, {7, 14}},
    FontSize->11]
  }, Closed]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Styles for Body Text", "Section"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Text"],
    CellMargins->{{12, 10}, {7, 7}},
    LineSpacing->{1, 3},
    CounterIncrements->"Text"],
  
  Cell[StyleData["Text", "Presentation"],
    CellMargins->{{24, 10}, {10, 10}},
    LineSpacing->{1, 5}],
  
  Cell[StyleData["Text", "Condensed"],
    CellMargins->{{8, 10}, {6, 6}},
    LineSpacing->{1, 1}],
  
  Cell[StyleData["Text", "Printout"],
    CellMargins->{{2, 2}, {6, 6}}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["SmallText"],
    CellMargins->{{12, 10}, {6, 6}},
    LineSpacing->{1, 3},
    CounterIncrements->"SmallText",
    FontFamily->"Helvetica",
    FontSize->9],
  
  Cell[StyleData["SmallText", "Presentation"],
    CellMargins->{{24, 10}, {8, 8}},
    LineSpacing->{1, 5},
    FontSize->12],
  
  Cell[StyleData["SmallText", "Condensed"],
    CellMargins->{{8, 10}, {5, 5}},
    LineSpacing->{1, 2},
    FontSize->9],
  
  Cell[StyleData["SmallText", "Printout"],
    CellMargins->{{2, 2}, {5, 5}},
    FontSize->7]
  }, Closed]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Styles for Input/Output", "Section",
    TabSpacings->1],
  
  Cell["\<\
The cells in this section define styles used for input \
and output to the kernel.  Be careful when modifying, renaming, or \
removing these styles, because the front end associates special \
meanings with these style names. Some attributes for these styles are \
actually set in FormatType Styles (in the last section of this \
stylesheet). \
\>", "Text",
    TabSpacings->1],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Input"],
    CellMargins->{{45, 10}, {5, 7}},
    Evaluatable->True,
    CellGroupingRules->"InputGrouping",
    PageBreakWithin->False,
    GroupPageBreakWithin->False,
    CellLabelMargins->{{11, Inherited}, {Inherited, Inherited}},
    DefaultFormatType->DefaultInputFormatType,
    TabSpacings->1,
    AutoItalicWords->{},
    FormatType->InputForm,
    ShowStringCharacters->True,
    NumberMarks->True,
    CounterIncrements->"Input",
    FontSize->12,
    FontWeight->"Bold"],
  
  Cell[StyleData["Input", "Presentation"],
    CellMargins->{{72, Inherited}, {8, 10}},
    LineSpacing->{1, 0},
    TabSpacings->1],
  
  Cell[StyleData["Input", "Condensed"],
    CellMargins->{{40, 10}, {2, 3}},
    TabSpacings->1],
  
  Cell[StyleData["Input", "Printout"],
    CellMargins->{{39, 0}, {4, 6}},
    TabSpacings->1,
    FontSize->9]
  }, Closed]],
  
  Cell[StyleData["InputOnly"],
    Evaluatable->True,
    CellGroupingRules->"InputGrouping",
    DefaultFormatType->DefaultInputFormatType,
    TabSpacings->1,
    AutoItalicWords->{},
    FormatType->InputForm,
    ShowStringCharacters->True,
    NumberMarks->True,
    CounterIncrements->"Input",
    StyleMenuListing->None,
    FontWeight->"Bold"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Output"],
    CellMargins->{{47, 10}, {7, 5}},
    CellEditDuplicate->True,
    CellGroupingRules->"OutputGrouping",
    CellHorizontalScrolling->True,
    PageBreakWithin->False,
    GroupPageBreakWithin->False,
    GeneratedCell->True,
    CellAutoOverwrite->True,
    CellLabelMargins->{{11, Inherited}, {Inherited, Inherited}},
    DefaultFormatType->DefaultOutputFormatType,
    TabSpacings->1,
    AutoItalicWords->{},
    FormatType->InputForm,
    CounterIncrements->"Output"],
  
  Cell[StyleData["Output", "Presentation"],
    CellMargins->{{72, Inherited}, {10, 8}},
    LineSpacing->{1, 0},
    TabSpacings->1],
  
  Cell[StyleData["Output", "Condensed"],
    CellMargins->{{41, Inherited}, {3, 2}},
    TabSpacings->1],
  
  Cell[StyleData["Output", "Printout"],
    CellMargins->{{39, 0}, {6, 4}},
    TabSpacings->1,
    FontSize->9]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Message"],
    CellMargins->{{45, Inherited}, {Inherited, Inherited}},
    CellGroupingRules->"OutputGrouping",
    PageBreakWithin->False,
    GroupPageBreakWithin->False,
    GeneratedCell->True,
    CellAutoOverwrite->True,
    ShowCellLabel->False,
    CellLabelMargins->{{11, Inherited}, {Inherited, Inherited}},
    DefaultFormatType->DefaultOutputFormatType,
    TabSpacings->1,
    AutoItalicWords->{},
    FormatType->InputForm,
    CounterIncrements->"Message",
    StyleMenuListing->None,
    FontColor->RGBColor[0, 0, 1]],
  
  Cell[StyleData["Message", "Presentation"],
    CellMargins->{{72, Inherited}, {Inherited, Inherited}},
    LineSpacing->{1, 0},
    TabSpacings->1],
  
  Cell[StyleData["Message", "Condensed"],
    CellMargins->{{41, Inherited}, {Inherited, Inherited}},
    TabSpacings->1],
  
  Cell[StyleData["Message", "Printout"],
    CellMargins->{{39, Inherited}, {Inherited, Inherited}},
    TabSpacings->1,
    FontSize->8,
    FontColor->GrayLevel[0]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Print"],
    CellMargins->{{45, Inherited}, {Inherited, Inherited}},
    CellGroupingRules->"OutputGrouping",
    PageBreakWithin->False,
    GroupPageBreakWithin->False,
    GeneratedCell->True,
    CellAutoOverwrite->True,
    ShowCellLabel->False,
    CellLabelMargins->{{11, Inherited}, {Inherited, Inherited}},
    DefaultFormatType->DefaultOutputFormatType,
    TabSpacings->1,
    AutoItalicWords->{},
    FormatType->InputForm,
    CounterIncrements->"Print",
    StyleMenuListing->None],
  
  Cell[StyleData["Print", "Presentation"],
    CellMargins->{{72, Inherited}, {Inherited, Inherited}},
    LineSpacing->{1, 0},
    TabSpacings->1],
  
  Cell[StyleData["Print", "Condensed"],
    CellMargins->{{41, Inherited}, {Inherited, Inherited}},
    TabSpacings->1],
  
  Cell[StyleData["Print", "Printout"],
    CellMargins->{{39, Inherited}, {Inherited, Inherited}},
    TabSpacings->1,
    FontSize->8]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Graphics"],
    CellMargins->{{4, Inherited}, {Inherited, Inherited}},
    CellGroupingRules->"GraphicsGrouping",
    CellHorizontalScrolling->True,
    PageBreakWithin->False,
    GeneratedCell->True,
    CellAutoOverwrite->True,
    ShowCellLabel->False,
    DefaultFormatType->DefaultOutputFormatType,
    TabSpacings->1,
    FormatType->InputForm,
    CounterIncrements->"Graphics",
    ImageMargins->{{43, Inherited}, {Inherited, 0}},
    StyleMenuListing->None],
  
  Cell[StyleData["Graphics", "Presentation"],
    TabSpacings->1,
    ImageMargins->{{62, Inherited}, {Inherited, 0}}],
  
  Cell[StyleData["Graphics", "Condensed"],
    TabSpacings->1,
    ImageMargins->{{38, Inherited}, {Inherited, 0}},
    Magnification->0.6],
  
  Cell[StyleData["Graphics", "Printout"],
    TabSpacings->1,
    ImageMargins->{{30, Inherited}, {Inherited, 0}},
    FontSize->9,
    Magnification->0.8]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["CellLabel"],
    TabSpacings->1,
    StyleMenuListing->None,
    FontFamily->"Helvetica",
    FontSize->9,
    FontColor->RGBColor[0, 0, 1]],
  
  Cell[StyleData["CellLabel", "Presentation"],
    TabSpacings->1,
    FontSize->12],
  
  Cell[StyleData["CellLabel", "Condensed"],
    TabSpacings->1,
    FontSize->9],
  
  Cell[StyleData["CellLabel", "Printout"],
    TabSpacings->1,
    FontFamily->"Courier",
    FontSize->8,
    FontSlant->"Italic",
    FontColor->GrayLevel[0]]
  }, Closed]]
  }, Open  ]],
  
  Cell[CellGroupData[{
  
  Cell["Formulas and Programming", "Section"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["InlineFormula"],
    CellMargins->{{10, 4}, {0, 8}},
    CellHorizontalScrolling->True,
    ScriptLevel->1,
    SingleLetterItalics->True],
  
  Cell[StyleData["InlineFormula", "Presentation"],
    CellMargins->{{24, 10}, {10, 10}},
    LineSpacing->{1, 5}],
  
  Cell[StyleData["InlineFormula", "Condensed"],
    CellMargins->{{8, 10}, {6, 6}},
    LineSpacing->{1, 1}],
  
  Cell[StyleData["InlineFormula", "Printout"],
    CellMargins->{{2, 0}, {6, 6}}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["DisplayFormula"],
    CellMargins->{{42, Inherited}, {Inherited, Inherited}},
    CellHorizontalScrolling->True,
    DefaultFormatType->DefaultInputFormatType,
    ScriptLevel->0,
    SingleLetterItalics->True,
    UnderoverscriptBoxOptions->{LimitsPositioning->True}],
  
  Cell[StyleData["DisplayFormula", "Presentation"],
    LineSpacing->{1, 5}],
  
  Cell[StyleData["DisplayFormula", "Condensed"],
    LineSpacing->{1, 1}],
  
  Cell[StyleData["DisplayFormula", "Printout"]]
  }, Closed]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Styles for Headers and Footers", "Section"],
  
  Cell[StyleData["Header"],
    CellMargins->{{0, 0}, {4, 1}},
    StyleMenuListing->None,
    FontSize->10,
    FontSlant->"Italic"],
  
  Cell[StyleData["Footer"],
    CellMargins->{{0, 0}, {0, 4}},
    StyleMenuListing->None,
    FontSize->9,
    FontSlant->"Italic"],
  
  Cell[StyleData["PageNumber"],
    CellMargins->{{0, 0}, {4, 1}},
    StyleMenuListing->None,
    FontFamily->"Times",
    FontSize->10]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Palette Styles", "Section"],
  
  Cell["\<\
The cells below define styles that define standard \
ButtonFunctions, for use in palette buttons.\
\>", "Text"],
  
  Cell[StyleData["Paste"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`NotebookApply[
          FrontEnd`InputNotebook[ ], #, After]}]&)}],
  
  Cell[StyleData["Evaluate"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`NotebookApply[
          FrontEnd`InputNotebook[ ], #, All],
        SelectionEvaluate[
          FrontEnd`InputNotebook[ ], All]}]&)}],
  
  Cell[StyleData["EvaluateCell"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`NotebookApply[
          FrontEnd`InputNotebook[ ], #, All],
        FrontEnd`SelectionMove[
          FrontEnd`InputNotebook[ ], All, Cell, 1],
        FrontEnd`SelectionEvaluateCreateCell[
          FrontEnd`InputNotebook[ ], All]}]&)}],
  
  Cell[StyleData["CopyEvaluate"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`SelectionCreateCell[
          FrontEnd`InputNotebook[ ], All],
        FrontEnd`NotebookApply[
          FrontEnd`InputNotebook[ ], #, All],
        FrontEnd`SelectionEvaluate[
          FrontEnd`InputNotebook[ ], All]}]&)}],
  
  Cell[StyleData["CopyEvaluateCell"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`SelectionCreateCell[
          FrontEnd`InputNotebook[ ], All],
        FrontEnd`NotebookApply[
          FrontEnd`InputNotebook[ ], #, All],
        FrontEnd`SelectionEvaluateCreateCell[
          FrontEnd`InputNotebook[ ], All]}]&)}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Hyperlink Styles", "Section"],
  
  Cell["\<\
The cells below define styles useful for making hypertext \
ButtonBoxes.  The \"Hyperlink\" style is for links within the same \
Notebook, or between Notebooks.\
\>", "Text"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Hyperlink"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    FontColor->RGBColor[0, 0, 1],
    FontVariations->{"Underline"->True},
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`NotebookLocate[ #2]}]&),
    Active->True,
    ButtonNote->ButtonData}],
  
  Cell[StyleData["Hyperlink", "Presentation"]],
  
  Cell[StyleData["Hyperlink", "Condensed"]],
  
  Cell[StyleData["Hyperlink", "Printout"],
    FontColor->GrayLevel[0],
    FontVariations->{"Underline"->False}]
  }, Closed]],
  
  Cell["\<\
The following styles are for linking automatically to the \
on-line help system.\
\>", "Text"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["MainBookLink"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    FontColor->RGBColor[0, 0, 1],
    FontVariations->{"Underline"->True},
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`HelpBrowserLookup[ "MainBook", #]}]&),
    Active->True,
    ButtonFrame->"None"}],
  
  Cell[StyleData["MainBookLink", "Presentation"]],
  
  Cell[StyleData["MainBookLink", "Condensed"]],
  
  Cell[StyleData["MainBookLink", "Printout"],
    FontColor->GrayLevel[0],
    FontVariations->{"Underline"->False}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["AddOnsLink"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    FontFamily->"Courier",
    FontColor->RGBColor[0, 0, 1],
    FontVariations->{"Underline"->True},
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`HelpBrowserLookup[ "AddOns", #]}]&),
    Active->True,
    ButtonFrame->"None"}],
  
  Cell[StyleData["AddOnsLink", "Presentation"]],
  
  Cell[StyleData["AddOnsLink", "Condensed"]],
  
  Cell[StyleData["AddOnLink", "Printout"],
    FontColor->GrayLevel[0],
    FontVariations->{"Underline"->False}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["RefGuideLink"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    FontFamily->"Courier",
    FontColor->RGBColor[0, 0, 1],
    FontVariations->{"Underline"->True},
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`HelpBrowserLookup[ "RefGuideLink", #]}]&),
    Active->True,
    ButtonFrame->"None"}],
  
  Cell[StyleData["RefGuideLink", "Presentation"]],
  
  Cell[StyleData["RefGuideLink", "Condensed"]],
  
  Cell[StyleData["RefGuideLink", "Printout"],
    FontColor->GrayLevel[0],
    FontVariations->{"Underline"->False}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["GettingStartedLink"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    FontColor->RGBColor[0, 0, 1],
    FontVariations->{"Underline"->True},
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`HelpBrowserLookup[ "GettingStarted", #]}]&),
    Active->True,
    ButtonFrame->"None"}],
  
  Cell[StyleData["GettingStartedLink", "Presentation"]],
  
  Cell[StyleData["GettingStartedLink", "Condensed"]],
  
  Cell[StyleData["GettingStartedLink", "Printout"],
    FontColor->GrayLevel[0],
    FontVariations->{"Underline"->False}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["OtherInformationLink"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    FontColor->RGBColor[0, 0, 1],
    FontVariations->{"Underline"->True},
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`HelpBrowserLookup[ "OtherInformation", #]}]&),
    Active->True,
    ButtonFrame->"None"}],
  
  Cell[StyleData["OtherInformationLink", "Presentation"]],
  
  Cell[StyleData["OtherInformationLink", "Condensed"]],
  
  Cell[StyleData["OtherInformationLink", "Printout"],
    FontColor->GrayLevel[0],
    FontVariations->{"Underline"->False}]
  }, Closed]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Placeholder Styles", "Section"],
  
  Cell["\<\
The cells below define styles useful for making \
placeholder objects in palette templates.\
\>", "Text"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Placeholder"],
    Editable->False,
    Selectable->False,
    StyleBoxAutoDelete->True,
    Placeholder->True,
    StyleMenuListing->None],
  
  Cell[StyleData["Placeholder", "Presentation"]],
  
  Cell[StyleData["Placeholder", "Condensed"]],
  
  Cell[StyleData["Placeholder", "Printout"]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["SelectionPlaceholder"],
    Editable->False,
    Selectable->False,
    StyleBoxAutoDelete->True,
    StyleMenuListing->None,
    DrawHighlighted->True],
  
  Cell[StyleData["SelectionPlaceholder", "Presentation"]],
  
  Cell[StyleData["SelectionPlaceholder", "Condensed"]],
  
  Cell[StyleData["SelectionPlaceholder", "Printout"]]
  }, Closed]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["FormatType Styles", "Section"],
  
  Cell["\<\
The cells below define styles that are mixed in with the \
styles of most cells.  If a cell's FormatType matches the name of one \
of the styles defined below, then that style is applied between the \
cell's style and its own options. This is particularly true of Input \
and Output.\
\>", "Text"],
  
  Cell[StyleData["CellExpression"],
    PageWidth->Infinity,
    CellMargins->{{6, Inherited}, {Inherited, Inherited}},
    ShowCellLabel->False,
    ShowSpecialCharacters->False,
    AllowInlineCells->False,
    AutoItalicWords->{},
    StyleMenuListing->None,
    FontFamily->"Courier",
    FontSize->12,
    Background->GrayLevel[1]],
  
  Cell[StyleData["InputForm"],
    AllowInlineCells->False,
    StyleMenuListing->None,
    FontFamily->"Courier"],
  
  Cell[StyleData["OutputForm"],
    PageWidth->Infinity,
    TextAlignment->Left,
    LineSpacing->{0.6, 1},
    StyleMenuListing->None,
    FontFamily->"Courier"],
  
  Cell[StyleData["StandardForm"],
    LineSpacing->{1.25, 0},
    StyleMenuListing->None,
    FontFamily->"Courier"],
  
  Cell[StyleData["TraditionalForm"],
    LineSpacing->{1.25, 0},
    SingleLetterItalics->True,
    TraditionalFunctionNotation->True,
    DelimiterMatching->None,
    StyleMenuListing->None],
  
  Cell["\<\
The style defined below is mixed in to any cell that is \
in an inline cell within another.\
\>", "Text"],
  
  Cell[StyleData["InlineCell"],
    TextAlignment->Left,
    ScriptLevel->1,
    StyleMenuListing->None],
  
  Cell[StyleData["InlineCellEditing"],
    StyleMenuListing->None,
    Background->RGBColor[1, 0.749996, 0.8]]
  }, Closed]]
  }, Open  ]]
  }]
]


  • Prev by Date: Re: Re: Integration
  • Next by Date: Signals and Systems Add-In
  • Previous by thread: Re: exporting a list of functions for use in a C function
  • Next by thread: Assumptions in fancy-notation integrals