summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-11-14 00:15:05 +0000
committerKarl Berry <karl@freefriends.org>2013-11-14 00:15:05 +0000
commit8a67560247f3bea5b3ab4c0abe7932f006da7aac (patch)
tree4ad51150a3397c8857acf601c0df321d2a741080 /Master
parent1d498f9d3f847d88b97983f09b053e387f6fc86b (diff)
pst-ode (13nov13)
git-svn-id: svn://tug.org/texlive/trunk@32140 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/generic/pst-ode/ChangeLog4
-rw-r--r--Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.pdfbin125466 -> 125404 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.tex5
-rw-r--r--Master/texmf-dist/dvips/pst-ode/pst-ode.pro2
-rw-r--r--Master/texmf-dist/tex/generic/pst-ode/pst-ode.tex63
5 files changed, 39 insertions, 35 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-ode/ChangeLog b/Master/texmf-dist/doc/generic/pst-ode/ChangeLog
index b333deaf1b5..f6a589c634e 100644
--- a/Master/texmf-dist/doc/generic/pst-ode/ChangeLog
+++ b/Master/texmf-dist/doc/generic/pst-ode/ChangeLog
@@ -1,3 +1,7 @@
+2013-11-11
+ * version 0.5
+ * fix: option prefixes
+
2013-11-05
* version 0.4
* fix: some variables of the main PSTricks dictionary were not available in
diff --git a/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.pdf b/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.pdf
index 2b7f470825b..1d4fef3a7ae 100644
--- a/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.pdf
+++ b/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.tex b/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.tex
index 5812cf94967..0b4587bf959 100644
--- a/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.tex
+++ b/Master/texmf-dist/doc/generic/pst-ode/pst-ode-doc.tex
@@ -9,6 +9,7 @@
\usepackage{amsmath}
\usepackage{pst-3dplot}
\usepackage{pst-plot}
+\usepackage{pstricks-add}
\usepackage{pst-ode}
\let\pstFV\fileversion
\let\belowcaptionskip\abovecaptionskip
@@ -125,7 +126,7 @@ $N$ is the number of \emph{equally} spaced output points, including $t_0$ and $t
$\mathbf{x}_0$ is a list of $n$ space separated initial values, one for each differential equation. Alternatively, $\mathbf{x}_0$ can be given as a \PS{} procedure pushing the initial values on the stack, or as an algebraic expression in infix notation where the elements are separated by `\Lkeyword{|}'. Infix notation requires option \Lkeyword{algebraicIC}. This argument can be left empty. In that case, the last computed state vector of a preceding \Lcs{pstODEsolve} call or a state vector that was set using the \Lcs{pstODEsetOrRestoreState} macro is used as initial condition. Of course, the number of equations $n$ must be the same as in the preceding calculation.
$\mathbf{f}(t,\mathbf{x})$ is the right-hand side of the differential equations. Equations can be entered in either infix or \PS{} (postfix, reverse polish) notation. Infix notation requires option \Lkeyword{algebraic}, and equations have to be separated by `\Lkeyword{|}'. The $n$ current state vector components can be referred to as \Lkeyword{x[0]}, \Lkeyword{x[1]}, \dots, \Lkeyword{x[}$n-1$\Lkeyword{]} or \Lkeyword{y[0]}, \Lkeyword{y[1]}, \dots, \Lkeyword{y[}$n-1$\Lkeyword{]}, and the current independent variable value as `\Lkeyword{t}'. If given in \PS{} notation, the provided procedure must first pop the current state vector components in reverse order(!) from the operand stack and then push the first derivatives in regular order back to it. Again, the independent variable value can be accessed using `\Lkeyword{t}'.\\[1ex]
-\Lcs{pstODEsolve} accepts a few \OptArgs: \Lkeyword{append}, \Lkeyword{saveData}, \Lkeyword{algebraicOutputFormat}, \Lkeyword{algebraicIC}, \Lkeyword{algebraicT}, \Lkeyword{algebraic}, \Lkeyword{algebraicAll}, \Lkeyword{silent} and \Lkeyword{varsteptol}.
+\Lcs{pstODEsolve} accepts a few \OptArgs: \Lkeyword{append}, \Lkeyword{saveData}, \Lkeyword{algebraicOutputFormat}, \Lkeyword{algebraicT}, \Lkeyword{algebraicIC}, \Lkeyword{algebraic}, \Lkeyword{algebraicAll}, \Lkeyword{silent} and \Lkeyword{varsteptol}.
With \Lkeyword{append}, the computed result is appended to \Larg{result} which must already exist, e.\, g. from a previous use of \Lcs{pstODEsolve}. Usually, the initial condition vector argument is left empty in order to continue integration from the last computed or from a restored state (see \Lcs{pstODEsetOrRestoreState}).
@@ -139,7 +140,7 @@ With \Lkeyword{algebraicIC}, the initial condition vector $\mathbf{x}_0$ can be
With \Lkeyword{algebraic}, the right-hand side of differential equations $\mathbf{f}(t,\mathbf{x})$ can be given in infix notation. Algebraic infix expressions are to be separated by `\Lkeyword{|}'. Default is \PS{} notation.
-Option \Lkeyword{algebraicAll} is equivalent to setting all of \Lkeyword{algebraicOutputFormat}, \Lkeyword{algebraicIC}, \Lkeyword{algebraicT}, \Lkeyword{algebraic}.
+Option \Lkeyword{algebraicAll} is equivalent to setting all of \Lkeyword{algebraicOutputFormat}, \Lkeyword{algebraicT}, \Lkeyword{algebraicIC}, \Lkeyword{algebraic}.
Option \Lkeyword{silent} suppresses the terminal output of stepping information.
diff --git a/Master/texmf-dist/dvips/pst-ode/pst-ode.pro b/Master/texmf-dist/dvips/pst-ode/pst-ode.pro
index ee71a6525c2..8ca82b7d962 100644
--- a/Master/texmf-dist/dvips/pst-ode/pst-ode.pro
+++ b/Master/texmf-dist/dvips/pst-ode/pst-ode.pro
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% PostScript prologue for pst-ode.tex.
-% Version 0.4, 2013/11/05
+% Version 0.5, 2013/11/11
%
% Alexander Grahn (C) 2012, 2013
%
diff --git a/Master/texmf-dist/tex/generic/pst-ode/pst-ode.tex b/Master/texmf-dist/tex/generic/pst-ode/pst-ode.tex
index 1d10cb31c2b..baf184f2d29 100644
--- a/Master/texmf-dist/tex/generic/pst-ode/pst-ode.tex
+++ b/Master/texmf-dist/tex/generic/pst-ode/pst-ode.tex
@@ -11,8 +11,8 @@
%% ODEs using the Runge-Kutta-Fehlberg (RKF45) method with automatic
%% step size adjustment
%%
-\def\fileversion{0.4}
-\def\filedate{2013/11/05}
+\def\fileversion{0.5}
+\def\filedate{2013/11/11}
\csname PSTODELoaded\endcsname
\let\PSTODELoaded\endinput
@@ -74,21 +74,20 @@
% #5: number of output points, including ta and tb; must be >= 2
% #6: initial condition vector; if empty, continue integration from the last
% state vector of the previous \pstODEsolve usage or from state vector set
-% by \pstODEsetRestorestate macro
+% by \pstODEsetOrRestoreState macro
% #7: right hand side of ODE system; if given in Postscript notation (algebraic=
% false), the function provided should pop (in reverse order!) the elements
% of the current state vector from the operand stack and push the first
% derivatives (right hand side of ODE system) back to it; inside the
% function, the integration parameter can be accessed using `t'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\define@boolkey[psset]{pst-ode}[Pst@]{append}[true]{}%
-\define@boolkey[psset]{pst-ode}[Pst@]{saveData}[true]{}%
-\define@boolkey[psset]{pst-ode}[Pst@]{algebraicT}[true]{}%
-\define@boolkey[psset]{pst-ode}[Pst@]{algebraicIC}[true]{}%
-\define@boolkey[psset]{pst-ode}[Pst@]{algebraicOutputFormat}[true]{}%
-\define@boolkey[psset]{pst-ode}[Pst@]{algebraicAll}[true]{}%
-\define@boolkey[psset]{pst-ode}[Pst@]{algebraic}[true]{}%
-\define@boolkey[psset]{pst-ode}[Pst@]{silent}[true]{}%
+\define@boolkey[psset]{pst-ode}[PstODE@]{append}[true]{}%
+\define@boolkey[psset]{pst-ode}[PstODE@]{saveData}[true]{}%
+\define@boolkey[psset]{pst-ode}[PstODE@]{algebraicT}[true]{}%
+\define@boolkey[psset]{pst-ode}[PstODE@]{algebraicIC}[true]{}%
+\define@boolkey[psset]{pst-ode}[PstODE@]{algebraicOutputFormat}[true]{}%
+\define@boolkey[psset]{pst-ode}[PstODE@]{algebraicAll}[true]{}%
+\define@boolkey[psset]{pst-ode}[PstODE@]{silent}[true]{}%
\define@key[psset]{pst-ode}{varsteptol}{\def\ode@varsteptol{#1}}%
\def\pstODEsolve{\def\pst@par{}\pst@object{pstODEsolve}}%
\def\pstODEsolve@i#1#2#3#4#5#6#7{%
@@ -96,39 +95,39 @@
\begingroup%
\use@par%
\def\filemode{w}%
- \ifPst@append\def\filemode{a}\fi%
+ \ifPstODE@append\def\filemode{a}\fi%
\edef\ode@ta{#3{}}%
\edef\ode@tb{#4{}}%
\edef\ode@init{#6{}}%
\edef\ode@init{\expandafter\ode@zapspace\ode@init\@nil}%
\edef\ode@arg{#7{}}%
- \ifPst@algebraicAll%
- \Pst@algebraicTtrue%
- \Pst@algebraicICtrue%
- \Pst@algebraicOutputFormattrue%
+ \ifPstODE@algebraicAll%
+ \PstODE@algebraicTtrue%
+ \PstODE@algebraicICtrue%
+ \PstODE@algebraicOutputFormattrue%
\Pst@algebraictrue%
\fi%
- \ifPst@algebraicOutputFormat\edef\ode@fmt{#2{}}\fi%
+ \ifPstODE@algebraicOutputFormat\edef\ode@fmt{#2{}}\fi%
\pstVerb{
tx@odeDict begin
- \ifPst@silent
+ \ifPstODE@silent
userdict /odeprint systemdict /pop get put
\else
userdict /odeprint {print flush} put
\fi
/ode@tol \ode@varsteptol\space def % rel. tolerance for step size adjustment
%process arguments
- \ifPst@saveData /statefile (#1.dat) (\filemode) file def \fi
- \ifPst@algebraicT
+ \ifPstODE@saveData /statefile (#1.dat) (\filemode) file def \fi
+ \ifPstODE@algebraicT
/tStart tx@Dict begin (\expandafter\ode@zapspace\ode@ta\@nil) AlgParser cvx exec end def
/tEnd tx@Dict begin (\expandafter\ode@zapspace\ode@tb\@nil) AlgParser cvx exec end def
\else
- /tStart tx@Dict begin #3 end def
- /tEnd tx@Dict begin #4 end def
+ /tStart tx@Dict begin 1 dict begin #3 end end def
+ /tEnd tx@Dict begin 1 dict begin #4 end end def
\fi
/dt tEnd tStart sub #5\space 1 sub div def % output step size
\ifx\@empty#6\@empty\else
- \ifPst@algebraicIC
+ \ifPstODE@algebraicIC
true setglobal globaldict /ode@laststate [
tx@Dict begin (\ode@init) AlgParser cvx
exec end
@@ -148,12 +147,12 @@
} bind def
\else
/ODESET {
- aload pop tx@Dict begin 0 begin #7 end end xlength array astore
+ aload pop tx@Dict begin ode@foo begin #7 end end xlength array astore
} bind def
- %ensure local scope of user defined variables in #7
+ %ensure local scope of user defined variables in #7, from BlueBook, p. 133
/ODESET load 4 1 dict put
\fi
- \ifPst@algebraicOutputFormat
+ \ifPstODE@algebraicOutputFormat
/ode@fmtrpn tx@Dict begin (\expandafter\ode@zapspace\ode@fmt\@nil) AlgParser end cvx bind def
/formatoutput {%
ode@laststate /x exch def /y x def /t tcur def
@@ -166,10 +165,10 @@
/tcur tStart def % current parameter t value
/tout tStart dt add def % next output t
/ddt dt def % initial integration step size
- \ifPst@append\else
+ \ifPstODE@append\else
[
[formatoutput]
- \ifPst@saveData dup writeresult \fi
+ \ifPstODE@saveData dup writeresult \fi
aload pop
true setglobal
]
@@ -182,14 +181,14 @@
globaldict exch /ode@laststate exch put false setglobal
[
#1 [formatoutput]
- \ifPst@saveData dup writeresult \fi
+ \ifPstODE@saveData dup writeresult \fi
aload pop
true setglobal
]
globaldict exch /#1 exch cvx put
false setglobal
} repeat
- \ifPst@saveData statefile closefile \fi
+ \ifPstODE@saveData statefile closefile \fi
end % tx@odeDict
}%
\endgroup%
@@ -221,9 +220,9 @@
}
\psset[pst-ode]{append=false,saveData=false,algebraicIC=false,algebraicT=false,
- algebraic=false,silent=false,varsteptol=1e-6,algebraicOutputFormat=false,
- algebraicAll=false
+ silent=false,varsteptol=1e-6,algebraicOutputFormat=false,algebraicAll=false
}
+\psset{algebraic=false}
\catcode`\@=\PstAtCode\relax
%% END: pst-ode.tex