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