1% $Id: lpdo.tex 550 2010-02-24 19:31:24Z thomas-sturm $
2\documentclass[a4paper]{article}
3
4\usepackage{amsmath,amssymb}
5\usepackage{enumerate}
6
7\newcommand{\N}{\mathbb{N}}
8\newcommand{\Z}{\mathbb{Z}}
9\newcommand{\Q}{\mathbb{Q}}
10\newcommand{\R}{\mathbb{R}}
11\newcommand{\Sym}{\operatorname{Sym}}
12\newenvironment{reduce}{\begin{scriptsize}\begin{verbatim}}%
13{\end{verbatim}\end{scriptsize}}
14
15\newcommand{\txt}{\textrm}
16\newenvironment{ebnf}{\begin{tabular}{rcll}}{\end{tabular}}
17\newcommand{\ebnfvar}[1]{{\textit{#1}}\ \ }
18\newcommand{\ebnfvara}[1]{$\left\langle \text{\textit{#1}}\right\rangle$\ \ }
19\newcommand{\ebnfor}{\txt{\ $|$\ \ }}
20\newcommand{\ebnfterm}[1]{\txt{\textbf{\texttt{#1}}}\ \ }
21\newcommand{\ebnfoption}[1]{\txt{$\left[\;\text{#1}\;\right]$}\ \ }
22\newcommand{\ebnfmult}[1]{\txt{$\left\{\;\text{#1}\;\right\}$}\ \ }
23\newcommand{\ebnfattrib}[1]{{$\bigl\{$\ {#1}\ $\bigr\}$}\ \ }
24
25\newcommand{\ebnfrule}[2]{{#1}&$\ \ \rightarrow\ \ $&{#2}&\\}
26\newcommand{\ebnfrulev}[2]{{\ebnfvar{#1}}&$\ \ \rightarrow\ \ $&{#2}&\\}
27\newcommand{\ebnfhalfrule}[1]{&&{\ebnfor {#1}}&\\}
28\newcommand{\ebnfrulea}[3]{{#1}&$\ \ \rightarrow\ \ $&{#2}&{$\bigl\{$\ {#3}\ $\bigr\}$}\\}
29\newcommand{\ebnfruleav}[3]{{\ebnfvar{#1}}&$\ \ \rightarrow\ \ $&{#2}&{$\bigl\{$\ {#3}\ $\bigr\}$}\\}
30\newcommand{\ebnfhalfrulea}[2]{&&{\ebnfor {#1}}&{$\bigl\{$\ {#2}\ $\bigr\}$}\\}
31
32\newcommand{\ebnfsinglerulev}[2]{\txt{{\ebnfvar{#1}}$\ \ \rightarrow\ \ ${#2}\\}}
33\newcommand{\ebnfsinglerule}[2]{\txt{{#1}$\ \ \rightarrow\ \ ${#2}\\}}
34\newcommand{\ebnfsingleruleav}[3]{\txt{{\ebnfvar{#1}}$\ \ \rightarrow\ \ ${#2}\ \ \ $\bigl\{$\ {#3}\ $\bigr\}$\\}}
35\newcommand{\ebnfsinglerulea}[3]{\txt{{#1}$\ \ \rightarrow\ \ ${#2}\ \
36    \ $\bigl\{$\ {#3}\ $\bigr\}$\\}}
37
38\begin{document}
39\title{LPDO: Linear Partial Differential Operators}
40\author{Thomas Sturm\\
41  Departamento de Matem\'aticas,
42  Estad\'istica y Computaci\'on,\\
43  Facultad de Ciencias,
44  Universidad de Cantabria\\
45  39071 Santander, Spain\\
46  \texttt{sturmt@unican.es}}
47\maketitle
48
49\begin{abstract}
50
51\end{abstract}
52
53\section{Introduction}
54Consider the field $F = \Q(x_1,\dots,x_n)$ of rational functions and a
55set $\Delta = \{\partial_{x_1}$,\dots,~$\partial_{x_n}\}$ of
56\emph{commuting derivations} acting on $F$. That is, for all
57$\partial_{x_i}$, $\partial_{x_j} \in \Delta$ and all $f$, $g\in F$
58the following properties are satisfied:
59\begin{eqnarray}
60\partial_{x_i}(f + g) &=& \partial_{x_i}(f) + \partial_{x_i}(g),\nonumber\\
61\partial_{x_i}(f\cdot g) &=& f\cdot\partial_{x_i}(g)
62  + \partial_{x_i}(f)\cdot g,\label{EQ:leibnitz}\\
63\partial_{x_i}(\partial_{x_j}(f)) &=& \partial_{x_j}(\partial_{x_i}(f)).\label{EQ:comm}
64\end{eqnarray}
65%We call $(F,\Delta)$ a \emph{$\Delta$-field}.
66
67Consider now the set $F[\partial_{x_1},\dots,\partial_{x_n}]$, where
68the derivations are used as variables. This set forms a
69non-commutative \emph{linear partial differential operator ring} with
70pointwise addition, and multiplication defined as follows: For $f\in
71F$ and $\partial_{x_i}$, $\partial_{x_j} \in \Delta$ we have for any
72$g\in F$ that
73\begin{eqnarray}
74    (f \partial_{x_i})(g) &=& f \cdot \partial_{x_i}(g),\nonumber\\
75    (\partial_{x_i} f)(g) &=& \partial_{x_i}(f \cdot g),\label{EQ:mult2}\\
76    (\partial_{x_i} \partial_{x_j})(g) &=& \partial_{x_i}(\partial_{x_j}(g)).\label{EQ:mult3}
77\end{eqnarray}
78Here ``${}\cdot{}$'' denotes the multiplication in $F$. From
79(\ref{EQ:mult3}) and (\ref{EQ:comm}) it follows that
80$\partial_{x_i} \partial_{x_j}=\partial_{x_j} \partial_{x_i}$, and
81using (\ref{EQ:mult2}) and (\ref{EQ:leibnitz}) the following
82\emph{commutator} can be proved:
83\begin{eqnarray*}
84  \partial_{x_i} f &=& f \partial_{x_i} + \partial_{x_i}(f).
85\end{eqnarray*}
86
87A \emph{linear partial differential operator} (LPDO) of order $k$ is
88an element
89\begin{eqnarray*}
90  D &=& \sum_{|j| \leq k} a_j \partial^j\in
91  F[\partial_{x_1},\dots,\partial_{x_n}]
92\end{eqnarray*}
93in canonical form. Here the expression $|j| \leq k$ specifies the set
94of all tuples of the form $j = (j_1,\dots,j_n) \in \N^n$ with
95$\sum_{i=1}^n j_i \leq k$, and we define $\partial^j
96= \partial_{x_1}^{j_1} \cdots \partial_{x_n}^{j_n}$.
97
98A \emph{factorization} of $D$ is a non-trivial decomposition
99\begin{eqnarray*}
100D &=& D_1 \cdots D_r\in F[\partial_{x_1},\dots,\partial_{x_n}]
101\end{eqnarray*}
102into multiplicative factors, each of which is an LPDO $D_i$ of order
103greater than $0$ and less than $k$. If such a factorization exists,
104then $D$ is called \emph{reducible} or \emph{factorable}, else
105\emph{irreducible}.
106
107For the purpose of factorization it is helpful to temporarily consider
108as regular commutative polynomials certain summands of the LPDO under
109consideration. Consider a commutative polynomial ring over $F$ in new
110indeterminates $y_1$, \dots,~$y_n$. Adopting the notational
111conventions above, for $m\leq k$ the \emph{symbol of $D$ of order $m$}
112is defined as
113\begin{eqnarray*}
114  \Sym_m(D) &=& \sum_{|j| = m} a_j y^j\in F[y_1,\dots,y_n].
115\end{eqnarray*}
116For $m=k$ we obtain as a special case the \emph{symbol $\Sym(D)$ of
117  $D$}.
118
119\section{Operators}
120
121\subsection{\texttt{partial}}
122There is a unary operator \texttt{partial($\cdot$)} denoting
123$\partial$.
124
125\begin{center}
126  \begin{ebnf}
127    \ebnfrule{\ebnfvara{partial-term}}{\ebnfterm{partial}\ebnfterm{(}\ebnfvara{id}\ebnfterm{)}}
128  \end{ebnf}
129\end{center}
130
131\subsection{\texttt{***}}
132There is a binary operator \texttt{***} for the non-commutative
133multiplication involving partials $\partial_x$. All expressions
134involving \texttt{***} are implicitly transformed into LPDOs, i.e.,
135into the following normal form:
136\begin{center}
137  \begin{ebnf}
138    \ebnfrule{\ebnfvara{normalized-lpdo}}{\ebnfvara{normalized-mon}\ebnfoption{\ebnfterm{+}\ebnfvara{normalized-lpdo}}}
139    \ebnfrule{\ebnfvara{normalized-mon}}{\ebnfvara{F-element}\ebnfoption{\ebnfterm{***}\ebnfvara{partial-termprod}}}
140%    \ebnfrule{\ebnfvara{F-element}}{\ebnfvara{standard-quotient}\ebnfor\ebnfvara{constant-operator}}
141    \ebnfrule{\ebnfvara{partial-termprod}}{\ebnfvara{partial-term}\ebnfoption{\ebnfterm{***}\ebnfvara{partial-termprod}}}
142  \end{ebnf}
143\end{center}
144The summands of the \textit{normalized-lpdo} are ordered in some
145canonical way. As an example consider
146
147\begin{footnotesize}
148\begin{verbatim}
149input: a()***partial(y)***b()***partial(x);
150
151(a()*b()) *** partial(x) *** partial(y) + (a()*diff(b(),y,1)) *** partial(x)
152\end{verbatim}
153\end{footnotesize}
154Here the \textit{F-elements} are polynomials, where the unknowns are
155of the type \emph{constant-operator} denoting functions from $F$:
156
157\begin{center}
158  \begin{ebnf}
159    \ebnfrule{\ebnfvara{constant-operator}}{\ebnfvara{id}\ebnfterm{(}\ebnfterm{)}}
160  \end{ebnf}
161\end{center}
162We do not admit division of such constant operators since we cannot
163exclude that such a constant operator denotes $0$.
164
165The operator notation on the one hand emphasizes the fact that the
166denoted elements are functions. On the other hand it distinguishes
167\texttt{a()} from the variable \texttt{a} of a rational function,
168which specifically denotes the corresponding projection. Consider e.g.
169
170\begin{footnotesize}
171\begin{verbatim}
172input: (x+y)***partial(y)***(x-y)***partial(x);
173
174  2    2
175(x  - y ) *** partial(x) *** partial(y) + ( - x - y) *** partial(x)
176\end{verbatim}
177\end{footnotesize}
178Here we use as \textit{F-elements} specific elements from $F=\Q(x,y)$.
179
180\subsection{\texttt{diff}}
181In our example with constant operators, the transformation into normal
182form introduces a formal derivative operation
183\texttt{diff($\cdot$,$\cdot$,$\cdot$)}, which cannot be evaluated.
184Notice that we do not use the Reduce operator
185\texttt{df($\cdot$,$\cdot$,$\cdot$)} here, which for technical reasons
186cannot smoothly handle our constant operators.
187
188In our second example with rational functions as \textit{F-elements},
189derivative occurring with commutation can be computed such that
190\texttt{diff} does not occur in the output.
191
192\section{Shapes of F-elements}
193Besides the generic computations with constant operators, we provide a
194mechanism to globally fix a certain \emph{shape} for
195\textit{F-elements} and to expand constant operators according to that
196shape.
197\subsection{\texttt{lpdoset}}
198We give an example for a shape that fixes all constant operators to
199denote generic bivariate affine linear functions:
200
201\begin{footnotesize}
202\begin{verbatim}
203input: d := (a()+b())***partial(x1)***partial(x2)**2;
204
205                                                2
206d := (a() + b()) *** partial(x1) *** partial(x2)
207
208input: lpdoset {!#10*x1+!#01*x2+!#00,x1,x2};
209
210{-1}
211
212input: d;
213
214                                                                               2
215(a00 + a01*x2 + a10*x1 + b00 + b01*x2 + b10*x1) *** partial(x1) *** partial(x2)
216\end{verbatim}
217\end{footnotesize}
218Notice that the placeholder \texttt{\#} must be escaped with
219\texttt{!}, which is a general convention for Rlisp/Reduce. Notice
220that \texttt{lpdoset} returns the old shape and that \texttt{\{-1\}}
221denotes the default state that there is no shape selected.
222
223\subsection{\texttt{lpdoweyl}}
224The command \texttt{lpdoweyl \{n,x1,x2,...\}} creates a shape for
225generic polynomials of total degree \texttt{n} in variables
226$\texttt{x1}$, $\texttt{x2}$, \dots.
227
228\begin{footnotesize}
229\begin{verbatim}
230input: lpdoweyl(2,x1,x2);
231
232                            2                                    2
233{#_00_ + #_01_*x2 + #_02_*x2  + #_10_*x1 + #_11_*x1*x2 + #_20_*x1 ,x1,x2}
234
235input: lpdoset ws;
236
237{#10*x1 + #01*x2 + #00,x1,x2}
238
239input: d;
240
241                            2                                    2
242(a_00_ + a_01_*x2 + a_02_*x2  + a_10_*x1 + a_11_*x1*x2 + a_20_*x1  + b_00_
243
244                       2                                    2
245  + b_01_*x2 + b_02_*x2  + b_10_*x1 + b_11_*x1*x2 + b_20_*x1 ) *** partial(x1)
246
247                2
248 *** partial(x2)
249\end{verbatim}
250\end{footnotesize}
251
252\section{Commands}
253
254\subsection{General}
255\subsubsection{\texttt{lpdoord}}
256The \emph{order} of an lpdo:
257\begin{footnotesize}
258\begin{verbatim}
259input: lpdoord((a()+b())***partial(x1)***partial(x2)**2+3***partial(x1));
260
2613
262\end{verbatim}
263\end{footnotesize}
264%
265\subsubsection{\texttt{lpdoptl}}
266Returns the list of derivations (partials) occurring in its argument
267LPDO $d$.
268
269\begin{footnotesize}
270\begin{verbatim}
271input: lpdoptl(a()***partial(x1)***partial(x2)+partial(x4)+diff(a(),x3,1));
272
273{partial(x1),partial(x2),partial(x4)}
274\end{verbatim}
275\end{footnotesize}
276That is the smallest set $\{\dots,\partial_{x_i},\dots\}$ such that
277$d$ is defined in $F[\dots,\partial_{x_i},\dots]$. Notice that formal
278derivatives are not derivations in that sense.
279
280\subsubsection{\texttt{lpdogp}}
281Given a starting symbol $a$, a list of variables $l$, and a degree
282$n$, \texttt{lpdogp($a$,$l$,$n$)} generates a generic (commutative)
283polynomial of degree $n$ in variables $l$ with coefficients generated
284from the starting symbol $a$:
285
286\begin{footnotesize}
287\begin{verbatim}
288input: lpdogp(a,{x1,x2},2);
289
290                           2                                    2
291a_00_ + a_01_*x2 + a_02_*x2  + a_10_*x1 + a_11_*x1*x2 + a_20_*x1
292\end{verbatim}
293\end{footnotesize}
294
295\subsubsection{\texttt{lpdogdp}}
296Given a starting symbol $a$, a list of variables $l$, and a degree
297$n$, \texttt{lpdogp($a$,$l$,$n$)} generates a generic differential
298polynomial of degree $n$ in variables $l$ with coefficients generated
299from the starting symbol $a$:
300
301\begin{footnotesize}
302\begin{verbatim}
303input: lpdogdp(a,{x1,x2},2);
304
305                     2                        2
306a_20_ *** partial(x1)  + a_02_ *** partial(x2)
307
308 + a_11_ *** partial(x1) *** partial(x2) + a_10_ *** partial(x1)
309
310 + a_01_ *** partial(x2) + a_00_
311\end{verbatim}
312\end{footnotesize}
313
314\subsection{Symbols}
315\subsubsection{\texttt{lpdosym}}
316The \emph{symbol} of an lpdo. That is the differential monomial of
317highest order with the partials replaced by corresponding commutative
318variables:
319
320\begin{footnotesize}
321\begin{verbatim}
322input: lpdosym((a()+b())***partial(x1)***partial(x2)**2+3***partial(x1));
323
324           2
325y_x1_*y_x2_ *(a() + b())
326\end{verbatim}
327\end{footnotesize}
328More generally, one can use a second optional arguments to specify a
329the order of a different differential monomial to form the symbol of:
330
331\begin{footnotesize}
332\begin{verbatim}
333input: lpdosym((a()+b())***partial(x1)***partial(x2)**2+3***partial(x1),1);
334
3353*y_x1_
336\end{verbatim}
337\end{footnotesize}
338Finally, a third optional argument can be used to specify an
339alternative starting symbol for the commutative variable, which is
340\texttt{y} by default. Altogether, the optional arguments default like
341\texttt{lpdosym($\cdot$)}=\texttt{lpdosym($\cdot$,lpdoord($\cdot$),y)}.
342
343\subsubsection{\texttt{lpdosym2dp}}
344This converts a symbol obtained via \texttt{lpdosym} back into an LPDO
345resulting in the corresponding differential monomial of the original
346LPDO.
347
348\begin{footnotesize}
349\begin{verbatim}
350input: d := a()***partial(x1)***partial(x2)+partial(x3)$
351
352input: s := lpdosym d;
353
354s := a()*y_x1_*y_x2_
355
356input: lpdosym2dp s;
357
358a() *** partial(x1) *** partial(x2)
359\end{verbatim}
360\end{footnotesize}
361In analogy to \texttt{lpdosym} there is an optional argument for
362specifying an alternative starting symbol for the commutative
363variable, which is \texttt{y} by default.
364
365\subsubsection{\texttt{lpdos}}
366Given LPDOs $p$, $q$ and $m\in\N$ the function
367\texttt{lpdos($p$,$q$,$m$)} computes the commutative polynomial $$S_m
368= \sum_{|j| = m\atop |j| < k} \biggl(\sum_{i = 1}^n
369p_i \partial_i(q_j) + p_0 q_j\biggr)y^{j}.$$ This is useful for the
370factorization of LPDOs \cite{LasarukSturm:08b}.
371\begin{footnotesize}
372\begin{verbatim}
373input: p := a()***partial(x1)+b()$
374
375input: q := c()***partial(x1)+d()***partial(x2)$
376
377input: lpdos(p,q,1);
378
379a()*diff(c(),x1,1)*y_x1_ + a()*diff(d(),x1,1)*y_x2_ + b()*c()*y_x1_
380
381 + b()*d()*y_x2_
382\end{verbatim}
383\end{footnotesize}
384
385
386\subsection{Factorization}
387
388\subsubsection{\texttt{lpdofactorize}}
389Factorize the argument LPDO $d$. The ground field $F$ must be fixed via
390\texttt{lpdoset}. The result is a list of lists
391$\{\dots,(A_i,L_i),\dots\}$. $A_i$ is is genrally the identifiers
392\texttt{true}, which indicates reducibility. The respective $L_i$ is a
393list of two differential polynomial factors, the first of which has
394order 1.
395
396\begin{footnotesize}
397\begin{verbatim}
398input: bk := (partial(x)+partial(y)+(a10-a01)/2) ***
399       (partial(x)-partial(y)+(a10+a01)/2);
400
401                2             2
402bk := partial(x)  - partial(y)  + a10 *** partial(x) + a01 *** partial(y)
403
404          2      2
405     - a01  + a10
406 + ----------------
407          4
408
409input: lpdoset lpdoweyl(1,x,y);
410
411{#_00_ + #_01_*y + #_10_*x,x,y}
412
413input: lpdofactorize bk;
414
415{{true,
416
417                                 a01 - a10
418  { - partial(x) - partial(y) + -----------,
419                                     2
420
421                                  - a01 - a10
422    - partial(x) + partial(y) + --------------}}}
423                                      2
424\end{verbatim}
425\end{footnotesize}
426If the result is the empty list, then this guarantees that there is no
427approximate factorization possible. In general it is possible to obtain
428several sample factorizations. Note, however, that the result does not
429provide a complete list of possible factorizations with a left factor of
430order 1 but only at least one such sample factorization in case of
431reducibility.
432
433Furthermore, the procedure might fail due to polynomial degrees
434exceeding certain bounds for the extended quantifier elimination by
435virtual substitution used internally. In this case there is the
436identifier \texttt{failed} returned. This must not be confused with the
437empty list indicating irreducibility as described above.
438
439Besides
440\begin{enumerate}
441\item the LPDO $d$,
442\end{enumerate}
443\texttt{lpdofactorizex} accepts several optional arguments:
444\begin{enumerate}
445\setcounter{enumi}{1}
446\item An LPDO of order 1, which serves as a template for the left
447  (linear) factor. The default is a generic linear LPDO with generic
448  coefficient functions according from the ground field specified via
449  \texttt{lpdoset}. The principle idea is to support the factorization
450  by guessing that certain differential monomials are not present.
451\item An LPDO of order $\operatorname{ord}(d)-1$, which serves as a
452  template for the right factor. Similarly to the previous argument the
453  default is fully generic.
454\end{enumerate}
455
456\subsubsection{\texttt{lpdofac}}
457This is a low-level entry point to the factorization
458\texttt{lpdofactorize}. It accepts the same arguments as
459\texttt{lpdofactorize}. It generates factorization conditions as a quite
460large first-order formula over the reals. This can be passed to extended
461quantifier elimination. For example, consider \texttt{bk} as in the
462example for \texttt{lpdofactorize} above:
463
464{\samepage
465\begin{footnotesize}
466\begin{verbatim}
467input: faccond := lpdofac bk$
468
469input: rlqea faccond;
470
471{{true,
472
473               a01 - a10
474  {p_00_00_ = -----------,
475                   2
476
477   p_00_01_ = 0, p_00_10_ = 0, p_01_00_ = -1, p_01_01_ = 0, p_01_10_ = 0,
478
479   p_10_00_ = -1, p_10_01_ = 0, p_10_10_ = 0,
480
481                - a01 - a10
482   q_00_00_ = --------------,
483                    2
484
485   q_00_01_ = 0, q_00_10_ = 0, q_01_00_ = 1, q_01_01_ = 0, q_01_10_ = 0,
486
487   q_10_00_ = -1, q_10_01_ = 0, q_10_10_ = 0}}}
488\end{verbatim}
489\end{footnotesize}
490}
491The result of the extended quantifier elimination provides coefficient
492values for generic factor polynomials $p$ and $q$. These are
493automatically interpreted and converted into differential polynomials
494by \texttt{lpdofactorize}.
495
496\subsection{Approximate Factorization}
497
498\subsubsection{\texttt{lpdofactorizex}}
499Approximately factorize the argument LPDO $d$. The ground field $F$ must
500be fixed via \texttt{lpdoset}. The result is a list of lists
501$\{\dots,(A_i,L_i),\dots\}$. Each $A_i$ is quantifier-free formula
502possibly containing a variable $\texttt{epsilon}$, which describes the
503precision of corresponding factorization $L_i$. $L_i$ is a list
504containing two factors, the first of which is linear.
505
506\begin{footnotesize}
507\begin{verbatim}
508input: off lpdocoeffnorm$
509
510input: lpdoset lpdoweyl(0,x1,x2)$
511
512input: f2 := partial(x1)***partial(x2) + 1$
513
514input: lpdofactorizex f2;
515
516{{epsilon - 1 >= 0,{partial(x1),partial(x2)}},
517
518 {epsilon - 1 >= 0,{partial(x2),partial(x1)}}}
519\end{verbatim}
520\end{footnotesize}
521If the result is the empty list, then this guarantees that there is no
522approximate factorization possible. In our example we happen to obtain
523two possible factorizations. Note, however, that the result in general
524does not provide a complete list of factorizations with a left factor of
525order 1 but only at least one such sample factorization.
526
527Furthermore, the procedure might fail due to polynomial degrees
528exceeding certain bounds for the extended quantifier elimination by
529virtual substitution used internally. If this happens, the corresponding
530$A_i$ will contain existential quantifiers \texttt{ex}, and $L_i$ will
531be meaningless.\\
532\verb!Da sollte besser ein failed kommen ...!
533
534The first of the two subresults above has the semantics that
535$\partial_{x_1}\partial_{x_2}$ is an approximate factorization of $f_2$
536for all $\varepsilon\geq1$. Formally,
537$||f_2-\partial_{x_1}\partial_{x_2}||\leq\varepsilon$ for all
538$\varepsilon\geq1$, which is equivalent to
539$||f_2-\partial_{x_1}\partial_{x_2}||\leq1$. That is, $1$ is an upper
540bound for the approximation error over $\R^2$. Where there are two
541possible choices for the seminorm $||\cdot||$:
542\begin{enumerate}[(a)]
543\item ...
544\item ...
545\end{enumerate}
546\verb!explain switch lpdocoeffnorm ...!
547
548Besides
549\begin{enumerate}
550\item the LPDO $d$,
551\end{enumerate}
552\texttt{lpdofactorizex} accepts several optional arguments:
553\begin{enumerate}
554\setcounter{enumi}{1}
555\item A Boolean combination $\psi$ of equations, negated equations, and
556  (possibly strict) ordering constraints. This $\psi$ describes a
557  (semialgebraic) region over which to factorize approximately. The
558  default is \texttt{true} specifying the entire $\R^n$. It is possible
559  to choose $\psi$ parametrically. Then the parameters will in general
560  occur in the conditions $A_i$ in the result.
561\item[3., 4.] An LPDO of order 1, which serves as a template for the left
562  (linear) factor, and an LPDO of order $\operatorname{ord}(d)-1$, which
563  serves as a template for the right factor. See the documentation of
564  \texttt{lpdofactorize} for defaults and details.
565\item[5.] A bound $\varepsilon$ for describing the desired precision for
566  approximate factorization. The default is the symbol \texttt{epsilon},
567  i.e., a symbolic choice such that the optimal choice (with respect to
568  parameters in $\psi$) is obtained during factorization. It is possible
569  to fix $\varepsilon\in\Q$. This does, however, not considerably
570  simplify the factorization process in most cases.
571\end{enumerate}
572
573\begin{footnotesize}
574\begin{verbatim}
575input: f3 := partial(x1) *** partial(x2) + x1$
576
577input: psi1 := 0<=x1<=1 and 0<=x2<=1$
578
579input: lpdofactorizex(f3,psi1,a()***partial(x1),b()***partial(x2));
580
581{{epsilon - 1 >= 0,{partial(x1),partial(x2)}}}
582\end{verbatim}
583\end{footnotesize}
584
585\subsubsection{\texttt{lpdofacx}}
586This is a low-level entry point to the factorization
587\texttt{lpdofactorizex}. It is analogous to \texttt{lpdofac} for
588\texttt{lpdofactorize}; see the documentation there for details.
589
590\subsubsection{\texttt{lpdohrect}}
591
592\subsubsection{\texttt{lpdohcirc}}
593
594\end{document}
595