diff --git a/chapters/arrays.tex b/chapters/arrays.tex index 12f2c7d16..e89e624b4 100644 --- a/chapters/arrays.tex +++ b/chapters/arrays.tex @@ -70,12 +70,12 @@ \section{Array Declarations}\label{array-declarations} \tablehead{Modelica form 1} & \tablehead{Modelica form 2} & \tablehead{\# dims} & \tablehead{Designation} & \tablehead{Explanation}\\ \hline \hline -\lstinline!C x!; & \lstinline!C x!; & $0$ & Scalar & Scalar\\ -\lstinline!C[$n$] x;! & \lstinline!C x[$n$];! & $1$ & Vector & $n$-vector\\ -\lstinline!C[EB] x;! & \lstinline!C x[EB]! & $1$ & Vector & Vector indexed by \lstinline!EB!\\ -\lstinline!C[$n$, $m$] x;! & \lstinline!C x[$n$, $m$];! & $2$ & Matrix & $n \times m$ matrix\\ -\lstinline!C[$n_1$, $n_{2}$, $\ldots$, $n_k$] x;! & -\lstinline!C x[$n_{1}$, $n_{2}$, $\ldots$, $n_{k}$];! & $k$ & Array & General array\\ +{\lstinline!C x!}; & {\lstinline!C x!}; & $0$ & Scalar & Scalar\\ +{\lstinline!C[$n$] x;!} & {\lstinline!C x[$n$];!} & $1$ & Vector & $n$-vector\\ +{\lstinline!C[EB] x;!} & {\lstinline!C x[EB]!} & $1$ & Vector & Vector indexed by {\lstinlineEB!}\\ +{\lstinline!C[$n$, $m$] x;!} & {\lstinline!C x[$n$, $m$];!} & $2$ & Matrix & $n \times m$ matrix\\ +{\lstinline!C[$n_1$, $n_{2}$, $\ldots$, $n_k$] x;!} & +{\lstinline!C x[$n_{1}$, $n_{2}$, $\ldots$, $n_{k}$];!} & $k$ & Array & General array\\ \hline \end{tabular} \end{center} @@ -137,10 +137,10 @@ \section{Array Declarations}\label{array-declarations} \tablehead{Modelica form 1} & \tablehead{Modelica form 2} & \tablehead{\# dims} & \tablehead{Designation} & \tablehead{Explanation}\\ \hline \hline -\lstinline!C[1] x;! & \lstinline!C x[1];! & $1$ & Vector & 1-vector, representing a scalar\\ -\lstinline!C[1, 1] x;! & \lstinline!C x[1, 1];! & $2$ & Matrix & $(1 \times 1)$-matrix, representing a scalar\\ -\lstinline!C[$n$, 1] x;! & \lstinline!C x[$n$, 1];! & $2$ & Matrix & $(n \times 1)$-matrix, representing a column\\ -\lstinline!C[1, $n$] x;! & \lstinline!C x[1, $n$];! & $2$ & Matrix & $(1 \times n)$-matrix, representing a row\\ +{\lstinline!C[1] x;!} & {\lstinline1C x[1];!} & $1$ & Vector & 1-vector, representing a scalar\\ +{\lstinline!C[1, 1] x;!} & {\lstinline!C x[1, 1];!} & $2$ & Matrix & $(1 \times 1)$-matrix, representing a scalar\\ +{\lstinline!C[$n$, 1] x;!} & {\lstinline!C x[$n$, 1];!} & $2$ & Matrix & $(n \times 1)$-matrix, representing a column\\ +{\lstinline!C[1, $n$] x;!} & {\lstinline!C x[1, $n$];!} & $2$ & Matrix & $(1 \times n)$-matrix, representing a row\\ \hline \end{tabular} \end{center} @@ -601,10 +601,10 @@ \subsubsection{Reduction Expressions}\label{reduction-expressions} \tablehead{Reduction} & \tablehead{Restriction on \lstinline!expression1!} & \tablehead{Result for empty \lstinline!expression2!}\\ \hline \hline -\lstinline!sum! & \lstinline!Integer! or \lstinline!Real! & \lstinline!zeros($\ldots$)!\\ -\lstinline!product! & Scalar \lstinline!Integer! or \lstinline!Real! & 1\\ -\lstinline!min! & Scalar enumeration, \lstinline!Boolean!, \lstinline!Integer! or \lstinline!Real! & Greatest value of type\\ -\lstinline!max! & Scalar enumeration, \lstinline!Boolean!, \lstinline!Integer! or \lstinline!Real! & Least value of type\\ +{\lstinline!sum!} & {\lstinline!Integer!} or {\lstinline!Real!} & {\lstinline!zeros($\ldots$)!}\\ +{\lstinline!product!} & Scalar {\lstinline!Integer!} or {\lstinline!Real!} & 1\\ +{\lstinline!min!} & Scalar enumeration, {\lstinline!Boolean!}, {\lstinline!Integer!} or {\lstinline!Real!} & Greatest value of type\\ +{\lstinline!max!} & Scalar enumeration, {\lstinline!Boolean!}, {\lstinline!Integer!} or {\lstinline!Real!} & Least value of type\\ \hline \end{tabular} \end{center} @@ -630,11 +630,11 @@ \subsection{Matrix and Vector Algebra Functions}\label{matrix-and-vector-algebra \tablehead{Expression} & \tablehead{Description} & \tablehead{Details}\\ \hline \hline -\lstinline!transpose($A$)! & Matrix transpose & \Cref{modelica:transpose} \\ -\lstinline!outerProduct($x$, $y$)! & Vector outer product & \Cref{modelica:outerProduct} \\ -\lstinline!symmetric($A$)! & Symmetric matrix, keeping upper part & \Cref{modelica:symmetric} \\ -\lstinline!cross($x$, $y$)! & Cross product & \Cref{modelica:cross} \\ -\lstinline!skew($x$)! & Skew symmetric matrix associated with vector & \Cref{modelica:skew} \\ +{\lstinline!transpose($A$)!} & Matrix transpose & \Cref{modelica:transpose} \\ +{\lstinline!outerProduct($x$, $y$)!} & Vector outer product & \Cref{modelica:outerProduct} \\ +{\lstinline!symmetric($A$)!} & Symmetric matrix, keeping upper part & \Cref{modelica:symmetric} \\ +{\lstinline!cross($x$, $y$)!} & Cross product & \Cref{modelica:cross} \\ +{\lstinline!skew($x$)!} & Skew symmetric matrix associated with vector & \Cref{modelica:skew} \\ \hline \end{tabular} \end{center} @@ -994,17 +994,17 @@ \section{Indexing}\label{array-indexing}\label{indexing} \tablehead{Expression} & \tablehead{\# dims} & \tablehead{Description}\\ \hline \hline -\lstinline!x[1, 1]! & 0 & Scalar\\ -\lstinline!x[:, 1]! & 1 & $n$-vector\\ -\lstinline!x[1, :]! or \lstinline!x[1]! & 1 & $m$-vector\\ -\lstinline!v[1:$p$]! & 1 & $p$-vector\\ -\lstinline!x[1:$p$, :]! & 2 & $p \times m$ matrix\\ -\lstinline!x[1:1, :]! & 2 & $1 \times m$ ``row'' matrix\\ -\lstinline!x[{1, 3, 5}, :]! & 2 & $3 \times m$ matrix\\ -\lstinline!x[:, v]! & 2 & $n \times k$ matrix\\ -\lstinline!z[:, 3, :]! & 2 & $i \times p$ matrix\\ -\lstinline!x[scalar([1]), :]! & 1 & $m$-vector\\ -\lstinline!x[vector([1]), :]! & 2 & $1 \times m$ ``row'' matrix\\ +{\lstinline!x[1, 1]!} & 0 & Scalar\\ +{\lstinline!x[:, 1]!} & 1 & $n$-vector\\ +{\lstinline!x[1, :]!} or {\lstinline!x[1]!} & 1 & $m$-vector\\ +{\lstinline!v[1:$p$]!} & 1 & $p$-vector\\ +{\lstinline!x[1:$p$, :]!} & 2 & $p \times m$ matrix\\ +{\lstinline!x[1:1, :]!} & 2 & $1 \times m$ ``row'' matrix\\ +{\lstinline!x[{1, 3, 5}, :]!} & 2 & $3 \times m$ matrix\\ +{\lstinline!x[:, v]!} & 2 & $n \times k$ matrix\\ +{\lstinline!z[:, 3, :]!} & 2 & $i \times p$ matrix\\ +{\lstinline!x[scalar([1]), :]!} & 1 & $m$-vector\\ +{\lstinline!x[vector([1]), :]!} & 2 & $1 \times m$ ``row'' matrix\\ \hline \end{tabular} \end{center} @@ -1098,10 +1098,10 @@ \subsection{Addition, Subtraction, and String Concatenation}\label{array-element \tablehead{Operation} \lstinline!c := a $\pm$ b!\\ \hline \hline -Scalar & Scalar & Scalar & \lstinline!c := a $\pm$ b!\\ -$n$-vector & $n$-vector & $n$-vector & \lstinline!c[$j$] := a[$j$] $\pm$ b[$j$]!\\ -$n \times m$ matrix & $n \times m$ matrix & $n \times m$ matrix & \lstinline!c[$j$, $k$] := a[$j$, $k$] $\pm$ b[$j$, $k$]!\\ -$n \times m \times \ldots$ & $n \times m \times \ldots$ & $n \times m \times \ldots$ & \lstinline!c[$j$, $k$, $\ldots$] := a[$j$, $k$, $\ldots$] $\pm$ b[$j$, $k$, $\ldots$]!\\ +Scalar & Scalar & Scalar & {\lstinline!c := a $\pm$ b!}\\ +$n$-vector & $n$-vector & $n$-vector & {\lstinline!c[$j$] := a[$j$] $\pm$ b[$j$]!}\\ +$n \times m$ matrix & $n \times m$ matrix & $n \times m$ matrix & {\lstinline!c[$j$, $k$] := a[$j$, $k$] $\pm$ b[$j$, $k$]!}\\ +$n \times m \times \ldots$ & $n \times m \times \ldots$ & $n \times m \times \ldots$ & {\lstinline!c[$j$, $k$, $\ldots$] := a[$j$, $k$, $\ldots$] $\pm$ b[$j$, $k$, $\ldots$]!}\\ \hline \end{tabular} \end{center} @@ -1121,10 +1121,10 @@ \subsection{Addition, Subtraction, and String Concatenation}\label{array-element & \tablehead{Operation \lstinline!c := a .$\pm$ b!}\\ \hline \hline -Scalar & Scalar & Scalar & \lstinline!c := a $\pm$ b!\\ -Scalar & $n \times m \times \ldots$ & $n \times m \times \ldots$ & \lstinline!c[$j$, $k$, $\ldots$] := a $\pm$ b[$j$, $k$, $\ldots$]!\\ -$n \times m \times \ldots$ & Scalar & $n \times m \times \ldots$ & \lstinline!c[$j$, $k$, $\ldots$] := a[$j$, $k$, $\ldots$] $\pm$ b!\\ -$n \times m \times \ldots$ & $n \times m \times \ldots$ & $n \times m \times \ldots$ & \lstinline!c[$j$, $k$, $\ldots$] := a[$j$, $k$, $\ldots$] $\pm$ b[$j$, $k$, $\ldots$]!\\ +Scalar & Scalar & Scalar & {\lstinline!c := a $\pm$ b!}\\ +Scalar & $n \times m \times \ldots$ & $n \times m \times \ldots$ & {\lstinline!c[$j$, $k$, $\ldots$] := a $\pm$ b[$j$, $k$, $\ldots$]!}\\ +$n \times m \times \ldots$ & Scalar & $n \times m \times \ldots$ & {\lstinline!c[$j$, $k$, $\ldots$] := a[$j$, $k$, $\ldots$] $\pm$ b!}\\ +$n \times m \times \ldots$ & $n \times m \times \ldots$ & $n \times m \times \ldots$ & {\lstinline!c[$j$, $k$, $\ldots$] := a[$j$, $k$, $\ldots$] $\pm$ b[$j$, $k$, $\ldots$]!}\\ \hline \end{tabular} \end{center} @@ -1140,8 +1140,8 @@ \subsection{Addition, Subtraction, and String Concatenation}\label{array-element \tablehead{Operation} \lstinline!c := $\pm$ a!\\ \hline \hline -Scalar & Scalar & \lstinline!c := $\pm$ a!\\ -$n \times m \times \ldots$ & $n \times m \times \ldots$ & \lstinline!c[$j$, $k$, $\ldots$] := $\pm$ a[$j$, $k$, $\ldots$]!\\ +Scalar & Scalar & {\lstinline!c := $\pm$ a!}\\ +$n \times m \times \ldots$ & $n \times m \times \ldots$ & {\lstinline!c[$j$, $k$, $\ldots$] := $\pm$ a[$j$, $k$, $\ldots$]!}\\ \hline \end{tabular} \end{center} diff --git a/chapters/functions.tex b/chapters/functions.tex index 2f6788449..b3e2b35bc 100644 --- a/chapters/functions.tex +++ b/chapters/functions.tex @@ -2005,11 +2005,11 @@ \subsubsection{Simple Types}\label{simple-types} & \multicolumn{1}{c}{\tablehead{Input}} & \multicolumn{1}{c}{\tablehead{Output}}\\ \hline \hline -\lstinline!Real! & \lstinline[language=C]!double! & \lstinline[language=C]!double *!\\ -\lstinline!Integer! & \lstinline[language=C]!int! & \lstinline[language=C]!int *!\\ -\lstinline!Boolean! & \lstinline[language=C]!int! & \lstinline[language=C]!int *!\\ -\lstinline!String! & \lstinline[language=C]!const char *! & \lstinline[language=C]!const char **!\\ -Enumeration type & \lstinline[language=C]!int! & \lstinline[language=C]!int *!\\ +{\lstinline!Real!} & {\lstinline[language=C]!double!} & {\lstinline[language=C]!double *!}\\ +{\lstinline!Integer!} & {\lstinline[language=C]!int!} & {\lstinline[language=C]!int *!}\\ +{\lstinline!Boolean!} & {\lstinline[language=C]!}int!} & \lstinline[language=C]!}int *!}\\ +{\lstinline!String!} & {\lstinline[language=C]!const char *!} & \lstinline[language=C]!const char **!}\\ +Enumeration type & {\lstinline[language=C]!int!} & \lstinline[language=C]!int *!}\\ \hline \end{tabular} \end{center} @@ -2044,11 +2044,11 @@ \subsubsection{Simple Types}\label{simple-types} & \multicolumn{1}{c}{\tablehead{Input}} & \multicolumn{1}{c}{\tablehead{Output}}\\ \hline \hline -\lstinline!Real! & \lstinline[language=FORTRAN77]!DOUBLE PRECISION! & \lstinline[language=FORTRAN77]!DOUBLE PRECISION!\\ -\lstinline!Integer! & \lstinline[language=FORTRAN77]!INTEGER! & \lstinline[language=FORTRAN77]!INTEGER!\\ -\lstinline!Boolean! & \lstinline[language=FORTRAN77]!LOGICAL! & \lstinline[language=FORTRAN77]!LOGICAL!\\ -\lstinline!String! & \emph{Special} & \emph{Not available}\\ -Enumeration type & \lstinline[language=FORTRAN77]!INTEGER! & \lstinline[language=FORTRAN77]!INTEGER!\\ +{\lstinline!}Real!} & {\lstinline[language=FORTRAN77]!DOUBLE PRECISION!} & {\lstinline[language=FORTRAN77]!DOUBLE PRECISION!}\\ +{\lstinline!}Integer!} & {\lstinline[language=FORTRAN77]!INTEGER!} & {\lstinline[language=FORTRAN77]!INTEGER!}\\ +{\lstinline!}Boolean!} & {\lstinline[language=FORTRAN77]!LOGICAL!} & {\lstinline[language=FORTRAN77]!LOGICAL!}\\ +{\lstinline!}String!} & \emph{Special} & \emph{Not available}\\ +Enumeration type & {\lstinline[language=FORTRAN77]!INTEGER!} & {\lstinline[language=FORTRAN77]!INTEGER!}\\ \hline \end{tabular} \end{center} @@ -2277,12 +2277,12 @@ \subsection{Return Type Mapping}\label{return-type-mapping} \multicolumn{1}{c|}{\tablehead{Modelica}} & \multicolumn{1}{c|}{\tablehead{C}} & \multicolumn{1}{c}{\tablehead{FORTRAN~77}}\\ \hline \hline -\lstinline!Real! & \lstinline[language=C]!double! & \lstinline[language=FORTRAN77]!DOUBLE PRECISION!\\ -\lstinline!Integer! & \lstinline[language=C]!int! & \lstinline[language=FORTRAN77]!INTEGER!\\ -\lstinline!Boolean! & \lstinline[language=C]!int! & \lstinline[language=FORTRAN77]!LOGICAL!\\ -\lstinline!String! & \lstinline[language=C]!const char*! & \emph{Not allowed}\\ -\lstinline!T[$\mathit{dim}_{1}$, $\ldots$, $\mathit{dim}_{n}$]! & \emph{Not allowed} & \emph{Not allowed} \\ -Enumeration type & \lstinline[language=C]!int! & \lstinline[language=FORTRAN77]!INTEGER!\\ +{\lstinline!Real!} & {\lstinline[language=C]!double!} & {\lstinline[language=FORTRAN77]!DOUBLE PRECISION!}\\ +{\lstinline!Integer!} & {\lstinline[language=C]!int!} & {\lstinline[language=FORTRAN77]!INTEGER!}\\ +{\lstinline!Boolean!} & {\lstinline[language=C]!int!} & {\lstinline[language=FORTRAN77]!LOGICAL!}\\ +{\lstinline!String!} & {\lstinline[language=C]!const char*!} & \emph{Not allowed}\\ +{\lstinline!T[$\mathit{dim}_{1}$, $\ldots$, $\mathit{dim}_{n}$]! & \emph{Not allowed} & \emph{Not allowed} \\ +Enumeration type & {\lstinline[language=C]!int!} & {\lstinline[language=FORTRAN77]!INTEGER!}\\ Record & See \cref{records} & \emph{Not allowed}\\ \hline \end{tabular} diff --git a/chapters/lexicalstructure.tex b/chapters/lexicalstructure.tex index af8f709c9..36ae1bcdc 100644 --- a/chapters/lexicalstructure.tex +++ b/chapters/lexicalstructure.tex @@ -115,18 +115,18 @@ \subsection{Modelica Keywords}\label{modelica-keywords} The following Modelica \firstuse[keyword]{keywords} are reserved words and shall not be used as identifiers: \begin{center} \begin{tabular}{l l l l l} -\lstinline!algorithm! & \lstinline!discrete! & \lstinline!false! & \lstinline!loop! & \lstinline!pure!\\ \hline -\lstinline!and! & \lstinline!each! & \lstinline!final! & \lstinline!model! & \lstinline!record!\\ \hline -\lstinline!annotation! & \lstinline!else! & \lstinline!flow! & \lstinline!not! & \lstinline!redeclare!\\ \hline -& \lstinline!elseif! & \lstinline!for! & \lstinline!operator! & \lstinline!replaceable!\\ \hline -\lstinline!block! & \lstinline!elsewhen! & \lstinline!function! & \lstinline!or! & \lstinline!return!\\ \hline -\lstinline!break! & \lstinline!encapsulated! & \lstinline!if! & \lstinline!outer! & \lstinline!stream!\\ \hline -\lstinline!class! & \lstinline!end! & \lstinline!import! & \lstinline!output! & \lstinline!then!\\ \hline -\lstinline!connect! & \lstinline!enumeration! & \lstinline!impure! & \lstinline!package! & \lstinline!true!\\ \hline -\lstinline!connector! & \lstinline!equation! & \lstinline!in! & \lstinline!parameter! & \lstinline!type!\\ \hline -\lstinline!constant! & \lstinline!expandable! & \lstinline!initial! & \lstinline!partial! & \lstinline!when!\\ \hline -\lstinline!constrainedby! & \lstinline!extends! & \lstinline!inner! & \lstinline!protected! & \lstinline!while!\\ \hline -\lstinline!der! & \lstinline!external! & \lstinline!input! & \lstinline!public! & \lstinline!within!\\ +{\lstinline!algorithm!} & {\lstinline!discrete!} & {\lstinline!false!} & {\lstinline!loop!} & {\lstinline!pure!}\\ \hline +{\lstinline!and!} & {\lstinline!each!} & {\lstinline!final!} & {\lstinline!model!} & {\lstinline!record!}\\ \hline +{\lstinline!annotation!} & {\lstinline!else!} & {\lstinline!flow!} & {\lstinline!not!} & {\lstinline!redeclare!}\\ \hline +& {\lstinline!elseif!} & {\lstinline!for!} & {\lstinline!operator!} & {\lstinline!replaceable!}\\ \hline +{\lstinline!block!} & {\lstinline!elsewhen!} & {\lstinline!function!} & {\lstinline!or!} & {\lstinline!return!}\\ \hline +{\lstinline!break!} & {\lstinline!encapsulated!} & {\lstinline!if!} & {\lstinline!outer!} & {\lstinline!stream!}\\ \hline +{\lstinline!class!} & {\lstinline!end!} & {\lstinline!import!} & {\lstinline!output!} & {\lstinline!then!}\\ \hline +{\lstinline!connect!} & {\lstinline!enumeration!} & {\lstinline!impure!} & {\lstinline!package!} & {\lstinline!true!}\\ \hline +{\lstinline!connector!} & {\lstinline!equation!} & {\lstinline!in!} & {\lstinline!parameter!} & {\lstinline!type!}\\ \hline +{\lstinline!constant!} & {\lstinline!expandable!} & {\lstinline!initial!} & {\lstinline!partial!} & {\lstinline!when!}\\ \hline +{\lstinline!constrainedby!} & {\lstinline!extends!} & {\lstinline!inner!} & {\lstinline!protected!} & {\lstinline!while!}\\ \hline +{\lstinline!der!} & {\lstinline!external!} & {\lstinline!input!} & {\lstinline!public!} & {\lstinline!within!}\\ \end{tabular} \end{center}