<?xml version="1.0" encoding="UTF-8"?>
<Worksheet><Version major="6" minor="0"/><View-Properties><Zoom percentage="100"/></View-Properties><Styles><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Heading 3" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0"/><Layout alignment="centred" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Author" rightmargin="0.0" spaceabove="8.0" spacebelow="8.0"/><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Heading 2" rightmargin="0.0" spaceabove="8.0" spacebelow="2.0"/><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Heading 1" rightmargin="0.0" spaceabove="6.0" spacebelow="6.0"/><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Normal" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0"/><Layout alignment="centred" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Normal256" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0"/><Layout alignment="centred" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Title" rightmargin="0.0" spaceabove="12.0" spacebelow="12.0"/><Layout alignment="left" bullet="dot" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Bullet Item" rightmargin="0.0" spaceabove="3.0" spacebelow="3.0"/><Font background="[0,0,0]" bold="true" executable="false" family="Serif" foreground="[0,0,0]" italic="true" name="Heading 3" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Serif" foreground="[0,0,0]" italic="false" name="Heading 2" readonly="false" size="14" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Serif" foreground="[0,0,0]" italic="false" name="Heading 1" readonly="false" size="18" underline="false"/><Font background="[0,0,0]" family="Times New Roman" name="2D Comment" underline="false"/><Font background="[0,0,0]" family="Times New Roman" name="Page Number" underline="false"/><Font background="[0,0,0]" bold="true" executable="true" family="Monospaced" foreground="[255,0,0]" name="Maple Input"/><Font background="[0,0,0]" bold="true" name="_cstyle356"/><Font background="[0,0,0]" bold="true" name="_cstyle355"/><Font background="[0,0,0]" italic="true" name="_cstyle354"/><Font background="[0,0,0]" bold="true" name="_cstyle353"/><Font background="[0,0,0]" italic="true" name="_cstyle352"/><Font background="[0,0,0]" italic="true" name="_cstyle351"/><Font background="[0,0,0]" italic="true" name="_cstyle350"/><Font background="[0,0,0]" bold="false" executable="false" family="Serif" foreground="[0,0,0]" italic="false" name="Author" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="true" name="_cstyle349"/><Font background="[0,0,0]" italic="true" name="_cstyle348"/><Font background="[0,0,0]" italic="true" name="_cstyle347"/><Font background="[0,0,0]" italic="true" name="_cstyle346"/><Font background="[0,0,0]" italic="true" name="_cstyle345"/><Font background="[0,0,0]" italic="true" name="_cstyle344"/><Font background="[0,0,0]" bold="true" name="_cstyle343"/><Font background="[0,0,0]" italic="true" name="_cstyle342"/><Font background="[0,0,0]" bold="true" name="_cstyle341"/><Font background="[0,0,0]" italic="true" name="_cstyle340"/><Font background="[0,0,0]" italic="true" name="_cstyle339"/><Font background="[0,0,0]" italic="true" name="_cstyle338"/><Font background="[0,0,0]" italic="true" name="_cstyle337"/><Font background="[0,0,0]" italic="true" name="_cstyle336"/><Font background="[0,0,0]" italic="true" name="_cstyle335"/><Font background="[0,0,0]" italic="true" name="_cstyle334"/><Font background="[0,0,0]" italic="true" name="_cstyle333"/><Font background="[0,0,0]" italic="true" name="_cstyle332"/><Font background="[0,0,0]" italic="true" name="_cstyle331"/><Font background="[0,0,0]" italic="true" name="_cstyle330"/><Font background="[0,0,0]" italic="true" name="_cstyle299"/><Font background="[0,0,0]" italic="true" name="_cstyle298"/><Font background="[0,0,0]" bold="true" name="_cstyle297"/><Font background="[0,0,0]" bold="true" name="_cstyle296"/><Font background="[0,0,0]" italic="true" name="_cstyle295"/><Font background="[0,0,0]" italic="true" name="_cstyle294"/><Font background="[0,0,0]" bold="false" executable="false" family="Serif" foreground="[0,0,0]" italic="false" name="Bullet Item" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle293"/><Font background="[0,0,0]" italic="true" name="_cstyle292"/><Font background="[0,0,0]" bold="true" name="_cstyle291"/><Font background="[0,0,0]" bold="true" name="_cstyle290"/><Font background="[0,0,0]" italic="true" name="_cstyle329"/><Font background="[0,0,0]" italic="true" name="_cstyle328"/><Font background="[0,0,0]" italic="true" name="_cstyle327"/><Font background="[0,0,0]" italic="true" name="_cstyle326"/><Font background="[0,0,0]" bold="true" name="_cstyle325"/><Font background="[0,0,0]" italic="true" name="_cstyle324"/><Font background="[0,0,0]" italic="true" name="_cstyle323"/><Font background="[0,0,0]" italic="true" name="_cstyle322"/><Font background="[0,0,0]" italic="true" name="_cstyle321"/><Font background="[0,0,0]" italic="true" name="_cstyle320"/><Font background="[0,0,0]" italic="true" name="_cstyle289"/><Font background="[0,0,0]" italic="true" name="_cstyle288"/><Font background="[0,0,0]" italic="true" name="_cstyle287"/><Font background="[0,0,0]" bold="true" name="_cstyle286"/><Font background="[0,0,0]" bold="true" name="_cstyle285"/><Font background="[0,0,0]" italic="true" name="_cstyle284"/><Font background="[0,0,0]" bold="true" name="_cstyle283"/><Font background="[0,0,0]" bold="true" name="_cstyle282"/><Font background="[0,0,0]" bold="true" name="_cstyle281"/><Font background="[0,0,0]" bold="true" name="_cstyle280"/><Font background="[0,0,0]" bold="true" name="_cstyle319"/><Font background="[0,0,0]" bold="true" name="_cstyle318"/><Font background="[0,0,0]" italic="true" name="_cstyle317"/><Font background="[0,0,0]" italic="true" name="_cstyle316"/><Font background="[0,0,0]" italic="true" name="_cstyle315"/><Font background="[0,0,0]" italic="true" name="_cstyle314"/><Font background="[0,0,0]" italic="true" name="_cstyle313"/><Font background="[0,0,0]" bold="true" name="_cstyle312"/><Font background="[0,0,0]" italic="true" name="_cstyle311"/><Font background="[0,0,0]" italic="true" name="_cstyle310"/><Font background="[0,0,0]" bold="true" name="_cstyle279"/><Font background="[0,0,0]" bold="true" name="_cstyle278"/><Font background="[0,0,0]" bold="true" name="_cstyle277"/><Font background="[0,0,0]" italic="true" name="_cstyle276"/><Font background="[0,0,0]" italic="true" name="_cstyle275"/><Font background="[0,0,0]" italic="true" name="_cstyle274"/><Font background="[0,0,0]" italic="true" name="_cstyle273"/><Font background="[0,0,0]" italic="true" name="_cstyle272"/><Font background="[0,0,0]" italic="true" name="_cstyle271"/><Font background="[0,0,0]" italic="true" name="_cstyle270"/><Font background="[0,0,0]" italic="true" name="_cstyle309"/><Font background="[0,0,0]" bold="true" name="_cstyle308"/><Font background="[0,0,0]" italic="true" name="_cstyle307"/><Font background="[0,0,0]" italic="true" name="_cstyle306"/><Font background="[0,0,0]" bold="true" name="_cstyle305"/><Font background="[0,0,0]" italic="true" name="_cstyle304"/><Font background="[0,0,0]" bold="true" name="_cstyle303"/><Font background="[0,0,0]" italic="true" name="_cstyle302"/><Font background="[0,0,0]" italic="true" name="_cstyle301"/><Font background="[0,0,0]" italic="true" name="_cstyle300"/><Font background="[0,0,0]" italic="true" name="_cstyle269"/><Font background="[0,0,0]" italic="true" name="_cstyle268"/><Font background="[0,0,0]" italic="true" name="_cstyle267"/><Font background="[0,0,0]" italic="true" name="_cstyle266"/><Font background="[0,0,0]" italic="true" name="_cstyle265"/><Font background="[0,0,0]" italic="true" name="_cstyle264"/><Font background="[0,0,0]" italic="true" name="_cstyle263"/><Font background="[0,0,0]" bold="false" executable="false" family="Serif" foreground="[0,0,0]" italic="false" name="Normal" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle262"/><Font background="[0,0,0]" italic="true" name="_cstyle261"/><Font background="[0,0,0]" bold="false" executable="false" family="Serif" foreground="[0,0,0]" italic="false" name="Normal256" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle260"/><Font background="[0,0,0]" italic="true" name="_cstyle259"/><Font background="[0,0,0]" italic="true" name="_cstyle258"/><Font background="[0,0,0]" italic="true" name="_cstyle257"/><Font background="[0,0,0]" foreground="[255,0,0]" name="_cstyle256"/></Styles><Page-Numbers enabled="false" first-number="1" first-numbered-page="1" horizontal-location="right" style="Page Number" vertical-location="bottom"/><Group><Input><Text-field layout="Title" style="_cstyle256"><Font bold="true" executable="false" family="Serif" italic="false" size="18" underline="true">Algorithms for Indefinite and Definite Integration in Maple</Font></Text-field><Text-field layout="Author" style="Author">K.O. Geddes
Symbolic Computation Group
Department of Computer Science
University of Waterloo
Waterloo  ON  N2L 3G1
CANADA
http://www.uwaterloo.ca/~kogeddes</Text-field></Input></Group><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">Abstract</Text-field></Title><Text-field layout="Normal" style="Normal">The Risch integration algorithm for computing indefinite integrals (antiderivatives) of transcendental elementary functions is described. Extensions of this algorithm to handle algebraic functions, and to the case of non-elementary special functions, are mentioned briefly with pointers to the relevant literature. On the problem of computing definite integrals in closed form, some practical issues associated with the application of the Fundamental Theorem of Calculus are described. For some particular classes of definite integrals involving special functions, current research work is briefly described in which the approach is to convert the integrand to a Meijer G function representation, to apply known formulas for definite integrals of products of Meijer G functions, and then to convert the result, if possible, to a representation in terms of standard functions.</Text-field><Text-field layout="Normal" style="Normal"/></Section><Section><Title><Text-field layout="Heading 1" style="Heading 1">Risch Algorithm for Elementary Functions</Text-field></Title><Text-field layout="Heading 2" style="Heading 2">The Problem</Text-field><Text-field layout="Normal" style="Normal">Given a function <Equation input-equation="f(x)" style="2D Comment">NiMtJSJmRzYjJSJ4Rw==</Equation>, determine whether there exists a function <Equation input-equation="g(x)" style="2D Comment">NiMtJSJnRzYjJSJ4Rw==</Equation> such that</Text-field><Text-field layout="Normal256" style="Normal256"> <Equation input-equation="diff(g(x),x) = f(x)" style="2D Comment">NiMvLSUlZGlmZkc2JC0lImdHNiMlInhHRiotJSJmR0Yp</Equation></Text-field><Text-field layout="Normal" style="Normal">i.e. determine an <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle262" underline="false">indefinite integral</Font>, or <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle263" underline="false">antiderivative</Font>, of <Equation input-equation="f(x);" style="2D Comment">NiMtJSJmRzYjJSJ4Rw==</Equation> .  We will write</Text-field><Text-field layout="Normal256" style="2D Comment"><Equation input-equation="int(f(x),x) = g(x)" style="2D Comment">NiMvLSUkaW50RzYkLSUiZkc2IyUieEdGKi0lImdHRik=</Equation></Text-field><Text-field layout="Normal" style="Normal">where we do not explicitly write the arbitrary constant of integration.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">A detailed development of the Risch integration algorithm presented here can be found in the textbook [Geddes92]. Additional material on the Risch algorithm appears in [Bronstein90b], [Bronstein97].</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">In this presentation, examples will be shown using the Maple computer algebra system. </Text-field><Section><Title><Text-field layout="Heading 2" style="Heading 2">Example 1.1</Text-field></Title><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">f := x*(x+1)*( (x^2*exp(2*x^2) - ln(x+1)^2)^2 +
 2*x*exp(3*x^2)*( x - (2*x^3+2*x^2+x+1)*ln(x+1) )) /
((x+1)*ln(x+1)^2 - (x^3+x^2)*exp(2*x^2) )^2:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(f,x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">value(%);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section><Title><Text-field layout="Heading 2" style="Heading 2">Defining the function field</Text-field></Title><Text-field layout="Normal" style="Normal">The Risch integration algorithm is a <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle257" underline="false">decision procedure</Font> by which we mean that given an integrand <Equation input-equation="f(x);" style="2D Comment">NiMtJSJmRzYjJSJ4Rw==</Equation>, the algorithm will determine:</Text-field><Text-field layout="Bullet Item" style="Bullet Item">Does there exist a function <Equation input-equation="g(x);" style="2D Comment">NiMtJSJnRzYjJSJ4Rw==</Equation> in a <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle258" underline="false">specified class of functions</Font> such that <Equation input-equation="diff(g(x),x) = f(x);" style="2D Comment">NiMvLSUlZGlmZkc2JC0lImdHNiMlInhHRiotJSJmR0Yp</Equation> ?</Text-field><Text-field layout="Bullet Item" style="Bullet Item">If <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle259" underline="false">yes</Font> then determine <Equation input-equation="g(x);" style="2D Comment">NiMtJSJnRzYjJSJ4Rw==</Equation> .</Text-field><Text-field layout="Normal" style="Normal">If the answer to the existence question is <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle260" underline="false">no</Font> then the algorithm has constructed a proof of nonexistence.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Such a decision procedure is only possible in a context where we have clearly specified the class of functions (the function field) containing <Equation input-equation="g(x);" style="2D Comment">NiMtJSJnRzYjJSJ4Rw==</Equation> . For example, we will consider the field of <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle261" underline="false">elementary functions</Font>. In this function field, the Risch algorithm will determine that the integral <Equation input-equation="int(exp(-x^2),x);" style="2D Comment">NiMtJSRpbnRHNiQtJSRleHBHNiMsJCokJSJ4RyIiIyEiIkYr</Equation> does not exist. However, if we allow the question to be expanded beyond the field of elementary functions then this integral can be expressed, as shown below by Maple.</Text-field><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(exp(-x^2), x) = int(exp(-x^2), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Heading 2" style="Heading 2">Definition of Elementary Functions</Text-field><Text-field layout="Normal" style="Normal">Let <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> be a differential field (i.e. a function field on which <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle264" underline="false">derivation</Font> is defined) and let <Equation input-equation="G;" style="2D Comment">NiMlIkdH</Equation> be a differential extension field of <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> .  Let the derivation operation be denoted by prime ( ' ) .</Text-field><Text-field layout="Bullet Item" style="Bullet Item">For <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> in <Equation input-equation="G;" style="2D Comment">NiMlIkdH</Equation> , if there exists <Equation input-equation="u;" style="2D Comment">NiMlInVH</Equation> in <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> such that  <Equation input-equation="theta^`'` = u^`'`/u;" style="2D Comment">NiMvKSUmdGhldGFHJSInRyomKSUidUdGJiIiIkYpISIi</Equation>  then we write  <Equation input-equation="theta = log(u);" style="2D Comment">NiMvJSZ0aGV0YUctJSRsb2dHNiMlInVH</Equation>  and <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation>  is called <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle265" underline="false">logarithmic</Font> over <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> .</Text-field><Text-field layout="Bullet Item" style="Bullet Item">For <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> in <Equation input-equation="G;" style="2D Comment">NiMlIkdH</Equation> , if there exists <Equation input-equation="u;" style="2D Comment">NiMlInVH</Equation> in <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> such that  <Equation input-equation="theta^`'`/theta = u^`'`;" style="2D Comment">NiMvKiYpJSZ0aGV0YUclIidHIiIiRiYhIiIpJSJ1R0Yn</Equation>  then we write  <Equation input-equation="theta = exp(u);" style="2D Comment">NiMvJSZ0aGV0YUctJSRleHBHNiMlInVH</Equation>  and <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation>  is called <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle266" underline="false">exponential</Font> over <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> .</Text-field><Text-field layout="Bullet Item" style="Bullet Item">For <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> in <Equation input-equation="G;" style="2D Comment">NiMlIkdH</Equation> , if there exists a polynomial <Equation input-equation="p;" style="2D Comment">NiMlInBH</Equation> in <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation>[<Equation input-equation="z;" style="2D Comment">NiMlInpH</Equation>] such that  <Equation input-equation="p(theta) = 0;" style="2D Comment">NiMvLSUicEc2IyUmdGhldGFHIiIh</Equation>  then <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> is called <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle267" underline="false">algebraic</Font> over <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Bullet Item" style="Bullet Item"><Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> in <Equation input-equation="G;" style="2D Comment">NiMlIkdH</Equation>  is <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle268" underline="false">transcendental</Font> over <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> if <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> is not algebraic over <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Bullet Item" style="Bullet Item"><Equation input-equation="G;" style="2D Comment">NiMlIkdH</Equation>  is called a <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle269" underline="false">transcendental elementary extension</Font> of <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation>  if  <Equation input-equation="G = F(theta[1],`. . .`,theta[n]);" style="2D Comment">NiMvJSJHRy0lIkZHNiUmJSZ0aGV0YUc2IyIiIiUmLn4ufi5HJkYpNiMlIm5H</Equation>  where each <Equation input-equation="theta[i];" style="2D Comment">NiMmJSZ0aGV0YUc2IyUiaUc=</Equation> is transcendental and either logarithmic or exponential over the field  <Equation input-equation="F[i-1] = F(theta[1],`. . .`,theta[i-1]);" style="2D Comment">NiMvJiUiRkc2IywmJSJpRyIiIkYpISIiLUYlNiUmJSZ0aGV0YUc2I0YpJSYufi5+LkcmRi5GJg==</Equation> .</Text-field><Text-field layout="Bullet Item" style="Bullet Item">Similarly, <Equation input-equation="G;" style="2D Comment">NiMlIkdH</Equation> is an <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle270" underline="false">elementary extension</Font> of <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> if each <Equation input-equation="theta[i];" style="2D Comment">NiMmJSZ0aGV0YUc2IyUiaUc=</Equation> is logarithmic, exponential or algebraic over <Equation input-equation="F[i-1];" style="2D Comment">NiMmJSJGRzYjLCYlImlHIiIiRighIiI=</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Bullet Item" style="Bullet Item">If <Equation input-equation="K(x);" style="2D Comment">NiMtJSJLRzYjJSJ4Rw==</Equation> denotes a differential field of rational functions over a constant field <Equation input-equation="K;" style="2D Comment">NiMlIktH</Equation>  (a subfield of the complex numbers) and if <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> is an elementary extension of <Equation input-equation="K(x);" style="2D Comment">NiMtJSJLRzYjJSJ4Rw==</Equation> then <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> is called a field of <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle271" underline="false">elementary functions</Font>.</Text-field><Text-field layout="Bullet Item" style="Bullet Item">Similarly, <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> is called a field of <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle272" underline="false">transcendental elementary functions</Font> if <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> is a transcendental elementary extension of <Equation input-equation="K(x);" style="2D Comment">NiMtJSJLRzYjJSJ4Rw==</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section><Title><Text-field layout="Heading 2" style="Heading 2">Notation for elementary functions</Text-field></Title><Text-field layout="Normal" style="Normal">Note that the common notation for elementary functions does not make it clear that an elementary function can be described using only the three types of extensions defined above.</Text-field><Text-field layout="Normal" style="Normal"/><Section><Title><Text-field layout="Heading 3" style="Heading 3">Examples in common notation</Text-field></Title><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(1/(1+x^2), x) = int(1/(1+x^2), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(cos(x), x) = int(cos(x), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(1/sqrt(1-x^2), x) = int(1/sqrt(1-x^2), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(arccosh(x), x) = int(arccosh(x), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">In the examples above, each integrand and each integral result involves only elementary functions. To see that these functions conform to the definition of elementary functions of the preceding section, we must convert the functions to complex exp-log form.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Section><Title><Text-field layout="Heading 3" style="Heading 3">The same examples in exp-log notation</Text-field></Title><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(1/(1+x^2), x) = convert(int(1/(1+x^2), x), 'expln');</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(1/2*exp(I*x) + 1/2*exp(-I*x), x) = int(1/2*exp(I*x) + 1/2*exp(-I*x), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(1/sqrt(1-x^2), x) = convert(int(1/sqrt(1-x^2), x), 'expln');</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(convert(arccosh(x),'expln'), x) = int(convert(arccosh(x),'expln'), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">We can now see a relationship between the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle273" underline="false">input</Font> (the integrand) and the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle274" underline="false">output</Font> (the integral result).  Namely, the types of functions which can appear in the integral result are the same functions that appear in the integrand plus, in some cases, new log extensions.  This fact is known as Liouville's Principle: the only new functions needed are <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle275" underline="false">constant multiplies of log extensions</Font>.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">The common notation hides this relationship.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section><Title><Text-field layout="Heading 2" style="Heading 2">Liouville's Principle</Text-field></Title><Text-field layout="Normal" style="_cstyle325"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" underline="false">Theorem 1</Font></Text-field><Text-field layout="Normal" style="Normal">Given <Equation input-equation="f(x);" style="2D Comment">NiMtJSJmRzYjJSJ4Rw==</Equation> in an elementary function field <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> , <Equation input-equation="Int(f(x),x);" style="2D Comment">NiMtJSRJbnRHNiQtJSJmRzYjJSJ4R0Yp</Equation> , if it exists as an elementary function, can be expressed in the form</Text-field><Text-field layout="Normal" style="2D Comment"><Equation input-equation="Int(f(x),x) = v[0](x)+Sum(c[i]*log(v[i](x)),i = 1 .. m);" style="2D Comment">NiMvLSUkSW50RzYkLSUiZkc2IyUieEdGKiwmLSYlInZHNiMiIiFGKSIiIi0lJFN1bUc2JComJiUiY0c2IyUiaUdGMS0lJGxvZ0c2Iy0mRi5GOEYpRjEvRjk7RjElIm1HRjE=</Equation></Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">with  <Equation input-equation="v[0](x);" style="2D Comment">NiMtJiUidkc2IyIiITYjJSJ4Rw==</Equation> in <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation> ,  <Equation input-equation="c[i];" style="2D Comment">NiMmJSJjRzYjJSJpRw==</Equation> constants,  and  <Equation input-equation="v[i](x);" style="2D Comment">NiMtJiUidkc2IyUiaUc2IyUieEc=</Equation> in <Equation input-equation="F(c[1],`. . .`,c[m]);" style="2D Comment">NiMtJSJGRzYlJiUiY0c2IyIiIiUmLn4ufi5HJkYnNiMlIm1H</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Note: The constants <Equation input-equation="c[i];" style="2D Comment">NiMmJSJjRzYjJSJpRw==</Equation> may involve new algebraic number extensions.</Text-field><Text-field layout="Normal" style="Normal"/></Section><Section><Title><Text-field layout="Heading 2" style="Heading 2">Integral of a rational function</Text-field></Title><Text-field layout="Normal" style="Normal">Given a rational function <Equation input-equation="f(x);" style="2D Comment">NiMtJSJmRzYjJSJ4Rw==</Equation>, Liouville's Principle states that its integral can be expressed as a rational function plus (possibly) some constant multiples of <Equation input-equation="log;" style="2D Comment">NiMlJGxvZ0c=</Equation> functions. (Note that Maple's notation for the natural logarithm function is <Equation input-equation="ln(x);" style="2D Comment">NiMtJSNsbkc2IyUieEc=</Equation> rather than <Equation input-equation="log(x);" style="2D Comment">NiMtJSRsb2dHNiMlInhH</Equation> .)</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">For the case of rational functions, the integral always exists as an elementary function.</Text-field><Text-field layout="Normal" style="Normal"/><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 1.2</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(1/(x^2+2*x+1), x) = int(1/(x^2+2*x+1), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Remark: No <Equation input-equation="log;" style="2D Comment">NiMlJGxvZ0c=</Equation> terms required in the above example.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(1/(x^3+x), x) = int(1/(x^3+x), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Remark: No algebraic number extensions required in the above example.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(1/(x^2-2), x) = `int/risch`(1/(x^2-2), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Remark: In the latter example, the constant field needed to be extended by the algebraic number <Equation input-equation="sqrt(2);" style="2D Comment">NiMtJSVzcXJ0RzYjIiIj</Equation> .</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle276" underline="false">Minimal algebraic extensions are desired for efficiency</Font>.</Text-field><Text-field layout="Normal" style="Normal">For example, from above noting that  <Equation input-equation="x^3+x = x*(x+I)*(x-I);" style="2D Comment">NiMvLCYqJCUieEciIiQiIiJGJkYoKihGJkYoLCZGJkYoJSJJR0YoRigsJkYmRihGKyEiIkYo</Equation>  would lead to the following representation of the integral:</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Equation input-equation="Int(1/(x^3+x),x) = ln(x)-ln(x+I)/2-ln(x-I)/2;" style="2D Comment">NiMvLSUkSW50RzYkKiYiIiJGKCwmKiQlInhHIiIkRihGK0YoISIiRissKC0lI2xuRzYjRitGKComLUYwNiMsJkYrRiglIklHRihGKCIiI0YtRi0qJi1GMDYjLCZGK0YoRjZGLUYoRjdGLUYt</Equation>  .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle277" underline="false">Goal</Font>:  Avoid introducing algebraic numbers except when necessary.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Hermite Reductions for the Rational Part</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal">We want to reduce the problem as follows:</Text-field><Text-field layout="Normal" style="2D Comment"><Equation input-equation="Int(p(x)/q(x),x) = C(x)/D(x)+Int(A(x)/B(x),x);" style="2D Comment">NiMvLSUkSW50RzYkKiYtJSJwRzYjJSJ4RyIiIi0lInFHRiohIiJGKywmKiYtJSJDR0YqRiwtJSJER0YqRi9GLC1GJTYkKiYtJSJBR0YqRiwtJSJCR0YqRi9GK0Ys</Equation></Text-field><Text-field layout="Normal" style="Normal">where  <Equation input-equation="deg(A(x)) &lt; deg(B(x));" style="2D Comment">NiMyLSUkZGVnRzYjLSUiQUc2IyUieEctRiU2Iy0lIkJHRik=</Equation>  and where  <Equation input-equation="B(x);" style="2D Comment">NiMtJSJCRzYjJSJ4Rw==</Equation>  is monic and square-free.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Hermite's method is a classical method to achieve this reduction. The reduction is accomplished using basic polynomial operations and without introducing any algebraic number extensions.  The method is summarized here.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle278" underline="false">Step 1</Font>:  Euclidean division with remainder yields</Text-field><Text-field layout="Normal" style="2D Comment"><Equation input-equation="Int(p(x)/q(x),x) = Int(P(x),x)+Int(r(x)/q(x),x);" style="2D Comment">NiMvLSUkSW50RzYkKiYtJSJwRzYjJSJ4RyIiIi0lInFHRiohIiJGKywmLUYlNiQtJSJQR0YqRitGLC1GJTYkKiYtJSJyR0YqRixGLUYvRitGLA==</Equation></Text-field><Text-field layout="Normal" style="Normal">where  <Equation input-equation="r(x) = 0;" style="2D Comment">NiMvLSUickc2IyUieEciIiE=</Equation>  or  <Equation input-equation="deg(r(x)) &lt; deg(q(x));" style="2D Comment">NiMyLSUkZGVnRzYjLSUickc2IyUieEctRiU2Iy0lInFHRik=</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle279" underline="false">Step 2</Font>:  Square-free factorization yields</Text-field><Text-field layout="Normal" style="2D Comment"><Equation input-equation="q(x) = Product(q[i](x)^i,i = 1 .. k);" style="2D Comment">NiMvLSUicUc2IyUieEctJShQcm9kdWN0RzYkKS0mRiU2IyUiaUdGJkYvL0YvOyIiIiUia0c=</Equation></Text-field><Text-field layout="Normal" style="Normal">where  <Equation input-equation="gcd(q[i](x),q[i](x)^`'`) = 1;" style="2D Comment">NiMvLSUkZ2NkRzYkLSYlInFHNiMlImlHNiMlInhHKUYnJSInRyIiIg==</Equation>  for all <Equation input-equation="i;" style="2D Comment">NiMlImlH</Equation> ,</Text-field><Text-field layout="Normal" style="Normal">and where  <Equation input-equation="gcd(q[i](x),q[j](x)) = 1;" style="2D Comment">NiMvLSUkZ2NkRzYkLSYlInFHNiMlImlHNiMlInhHLSZGKTYjJSJqR0YsIiIi</Equation>  for <Equation input-equation="i &lt;&gt; j;" style="2D Comment">NiMwJSJpRyUiakc=</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle280" underline="false">Step 3</Font>:  Partial fraction expansion yields</Text-field><Text-field layout="Normal" style="2D Comment"><Equation input-equation="r(x)/q(x) = Sum(Sum(r[i,j](x)/(q[i](x)^j),j = 1 .. i),i = 1 .. k);" style="2D Comment">NiMvKiYtJSJyRzYjJSJ4RyIiIi0lInFHRichIiItJSRTdW1HNiQtRi42JComLSZGJjYkJSJpRyUiakdGJ0YpKS0mRis2I0Y2RidGN0YsL0Y3O0YpRjYvRjY7RiklImtH</Equation></Text-field><Text-field layout="Normal" style="Normal">where  <Equation input-equation="deg(r[i,j](x)) &lt; deg(q[i](x));" style="2D Comment">NiMyLSUkZGVnRzYjLSYlInJHNiQlImlHJSJqRzYjJSJ4Ry1GJTYjLSYlInFHNiNGK0Yt</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">We now have</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="Int(r(x)/q(x),x) = Sum(Sum(Int(r[i,j](x)/(q[i](x)^j),x),j = 1 .. i),i = 1 .. k);" style="2D Comment">NiMvLSUkSW50RzYkKiYtJSJyRzYjJSJ4RyIiIi0lInFHRiohIiJGKy0lJFN1bUc2JC1GMTYkLUYlNiQqJi0mRik2JCUiaUclImpHRipGLCktJkYuNiNGO0YqRjxGL0YrL0Y8O0YsRjsvRjs7RiwlImtH</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle281" underline="false">Step 4</Font>:  Hermite reductions must be applied for each integrand where the denominator is a power <Equation input-equation="j;" style="2D Comment">NiMlImpH</Equation> &gt; <Equation input-equation="1;" style="2D Comment">NiMiIiI=</Equation> of a square-free factor.</Text-field><Text-field layout="Normal" style="Normal">After this step, each integral that remains will have a square-free denominator.</Text-field><Text-field layout="Normal" style="Normal">Consider one integral  <Equation input-equation="Int(r[i,j](x)/(q[i](x)^j),x);" style="2D Comment">NiMtJSRJbnRHNiQqJi0mJSJyRzYkJSJpRyUiakc2IyUieEciIiIpLSYlInFHNiNGK0YtRiwhIiJGLg==</Equation>  with <Equation input-equation="j;" style="2D Comment">NiMlImpH</Equation> &gt; <Equation input-equation="1;" style="2D Comment">NiMiIiI=</Equation> .</Text-field><Text-field layout="Normal" style="Normal">Apply the Extended Euclidean Algorithm to solve:   <Equation input-equation="s(x)*q[i](x)+t(x)*q[i](x)^`'` = r[i,j](x);" style="2D Comment">NiMvLCYqJi0lInNHNiMlInhHIiIiLSYlInFHNiMlImlHRihGKkYqKiYtJSJ0R0YoRiopRislIidHRipGKi0mJSJyRzYkRi8lImpHRig=</Equation> .</Text-field><Text-field layout="Normal" style="Normal">This yields  <Equation input-equation="Int(r[i,j](x)/(q[i](x)^j),x) = Int(s(x)/(q[i](x)^(j-1)),x)+Int(t(x)*q[i](x)^`'`/(q[i](x)^j),x);" style="2D Comment">NiMvLSUkSW50RzYkKiYtJiUickc2JCUiaUclImpHNiMlInhHIiIiKS0mJSJxRzYjRixGLkYtISIiRi8sJi1GJTYkKiYtJSJzR0YuRjApRjIsJkYtRjBGMEY2RjZGL0YwLUYlNiQqKC0lInRHRi5GMClGMiUiJ0dGMEYxRjZGL0Yw</Equation>  .</Text-field><Text-field layout="Normal" style="Normal">Integration by parts yields</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="Int(t(x)*q[i](x)^`'`/(q[i](x)^j),x) = -t(x)/((j-1)*q[i](x)^(j-1))+Int(t(x)^`'`/((j-1)*q[i](x)^(j-1)),x);" style="2D Comment">NiMvLSUkSW50RzYkKigtJSJ0RzYjJSJ4RyIiIiktJiUicUc2IyUiaUdGKiUiJ0dGLClGLiUiakchIiJGKywmKiZGKEYsKiYsJkY1RixGLEY2RiwpRi5GOkYsRjZGNi1GJTYkKiYpRihGM0YsRjlGNkYrRiw=</Equation>  .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Note the contribution to the rational part of the result.</Text-field><Text-field layout="Normal" style="Normal">Hermite reductions can be continued until only square-free denominators remain.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 1.3</Text-field></Title><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">p := x^6+5*x^5+10*x^4+50*x^3+25*x^2+127*x-1:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">q := x^4+10*x^2+25:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">The integral we wish to compute is</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(p/q, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">r := rem(p, q, x, 'P');</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">P;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">int_P := int(P, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Euclidean division with remainder has yielded:</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(p/q, x) = int_P + Int(r/q, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">q_sqrfree := convert(q, sqrfree, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">q2 := x^2 + 5;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">In this case, the square-free factorization of the denominator is</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="q = q[1]*q[2]^2;" style="2D Comment">NiMvJSJxRyomJkYkNiMiIiJGKCokJkYkNiMiIiNGLEYo</Equation>  with  <Equation input-equation="q[1] = 1;" style="2D Comment">NiMvJiUicUc2IyIiIkYn</Equation>  and  <Equation input-equation="q[2] = x^2+5;" style="2D Comment">NiMvJiUicUc2IyIiIywmKiQlInhHRiciIiIiIiZGKw==</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">The problem has been reduced to</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(p/q, x) = int_P + Int(r/q2^2, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Apply Hermite reduction to the remaining integral which is of the form  <Equation input-equation="q[j]^j;" style="2D Comment">NiMpJiUicUc2IyUiakdGJw==</Equation>  with <Equation input-equation="j = 2;" style="2D Comment">NiMvJSJqRyIiIw==</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">The Extended Euclidean Algorithm is invoked as follows.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">gcdex(q2, diff(q2,x), r, x, 's', 't');</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">s;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">t;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">j := 2:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">The Hermite reduction formula takes the form</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(r/q2^j, x) = -t/((j-1)*q2^(j-1)) + Int((s+diff(t,x)/(j-1))/q2^(j-1), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">and therefore the original integral has been reduced to</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(p/q, x) = int_P + rhs(%);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Rothstein-Trager Theorem for the Logarithmic Part</Text-field></Title><Text-field layout="Normal" style="Normal">The problem is to express  <Equation input-equation="Int(A(x)/B(x),x);" style="2D Comment">NiMtJSRJbnRHNiQqJi0lIkFHNiMlInhHIiIiLSUiQkdGKSEiIkYq</Equation>  where  <Equation input-equation="deg(A(x)) &lt; deg(B(x));" style="2D Comment">NiMyLSUkZGVnRzYjLSUiQUc2IyUieEctRiU2Iy0lIkJHRik=</Equation>  and  <Equation input-equation="B(x);" style="2D Comment">NiMtJSJCRzYjJSJ4Rw==</Equation>  is square-free.</Text-field><Text-field layout="Normal" style="Normal"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle282" underline="false">Classical approach</Font>:  Factor B(x) over its splitting field, and then a partial fraction expansion determines the <Equation input-equation="log;" style="2D Comment">NiMlJGxvZ0c=</Equation> terms.</Text-field><Text-field layout="Normal" style="Normal">But such a factorization may be much more expensive than necessary.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="_cstyle283"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" underline="false">Theorem 2  (Rothstein-Trager Theorem)</Font></Text-field><Text-field layout="Normal" style="2D Comment"><Equation input-equation="Int(A(x)/B(x),x) = Sum(c[i]*log(v[i](x)),i = 1 .. n);" style="2D Comment">NiMvLSUkSW50RzYkKiYtJSJBRzYjJSJ4RyIiIi0lIkJHRiohIiJGKy0lJFN1bUc2JComJiUiY0c2IyUiaUdGLC0lJGxvZ0c2Iy0mJSJ2R0Y2RipGLC9GNztGLCUibkc=</Equation></Text-field><Text-field layout="Normal" style="Normal">where <Equation input-equation="c[i];" style="2D Comment">NiMmJSJjRzYjJSJpRw==</Equation> are the distinct roots of  <Equation input-equation="R(z) = resultant(A(x)-z*B(x)^`'`,B(x),x);" style="2D Comment">NiMvLSUiUkc2IyUiekctJSpyZXN1bHRhbnRHNiUsJi0lIkFHNiMlInhHIiIiKiZGJ0YwKS0lIkJHRi4lIidHRjAhIiJGM0Yv</Equation></Text-field><Text-field layout="Normal" style="Normal">and where <Equation input-equation="v[i](x);" style="2D Comment">NiMtJiUidkc2IyUiaUc2IyUieEc=</Equation> are the polynomials  <Equation input-equation="v[i](x) = gcd(A(x)-c[i]*B(x)^`'`,B(x));" style="2D Comment">NiMvLSYlInZHNiMlImlHNiMlInhHLSUkZ2NkRzYkLCYtJSJBR0YpIiIiKiYmJSJjR0YnRjEpLSUiQkdGKSUiJ0dGMSEiIkY2</Equation> .</Text-field><Text-field layout="Normal" style="Normal">Moreover, this expresses the integral using the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle294" underline="false">minimal algebraic extension field</Font>.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Remark: The roots of <Equation input-equation="R(z);" style="2D Comment">NiMtJSJSRzYjJSJ6Rw==</Equation> may introduce new algebraic numbers.</Text-field><Text-field layout="Normal" style="Normal"/></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 1.4</Text-field></Title><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">From Example 1.3 the remaining integral is</Text-field><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">A := -1/10:  B := x^2 + 5:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(A/B, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">R := resultant(A - z*diff(B,x), B, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">(c1,c2) := solve(R=0, z);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">v1 := gcd(A - c1*diff(B,x), B);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">v2 := gcd(A - c2*diff(B,x), B);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Therefore the integral can be expressed as follows.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(A/B, x) = c1*log(v1) + c2*log(v2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">In this case, the result is identical to that obtained by the "classical approach" where the denominator is completely factored.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 1.5</Text-field></Title><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">One of the integrals from Example 1.2 is</Text-field><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">A := 1:  B := x^3+x:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(A/B, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">R := resultant(A - z*diff(B,x), B, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">solve(R=0, z);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle284" underline="false">distinct</Font> roots are</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">(c1,c2) := (1,-1/2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">v1 := gcd(A - c1*diff(B,x), B);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">v2 := gcd(A - c2*diff(B,x), B);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Therefore the integral can be expressed as follows.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(A/B, x) = c1*log(v1) + c2*log(v2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">In contrast, the "classical" approach would require a complete factorization of the denominator</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">factored_B := factor(B,I);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">integrand := convert(A/factored_B, parfrac, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">from which we see that the integral is</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(A/B, x) = map(`int/risch`, integrand, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The Rothstein-Trager method avoids introducing the algebraic number extension  <Equation input-equation="I = sqrt(-1);" style="2D Comment">NiMvJSJJRy0lJXNxcnRHNiMsJCIiIiEiIg==</Equation>  in this example.</Text-field><Text-field layout="Normal" style="Normal">Computational cost increases significantly with each new algebraic number extension, so it is important to use the minimal number of extensions required by the problem.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section></Section><Section><Title><Text-field layout="Heading 2" style="Heading 2">The case of transcendental elementary functions</Text-field></Title><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle285" underline="false">Step 1</Font>: Determine a description  <Equation input-equation="K(x,theta[1],`. . .`,theta[n]);" style="2D Comment">NiMtJSJLRzYmJSJ4RyYlJnRoZXRhRzYjIiIiJSYufi5+LkcmRig2IyUibkc=</Equation>  of a function field containing the integrand <Equation input-equation="f;" style="2D Comment">NiMlImZH</Equation> .</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="K;" style="2D Comment">NiMlIktH</Equation>  is the constant field (we dynamically extend it to include any algebraic numbers which may arise).</Text-field><Text-field layout="Normal" style="Normal">We must ensure that each <Equation input-equation="theta[i];" style="2D Comment">NiMmJSZ0aGV0YUc2IyUiaUc=</Equation> is a new transcendental extension.  (This allows the manipulation of the integrand as a rational expression in the independent symbols <Equation input-equation="x,theta[1],`...`,theta[n];" style="2D Comment">NiYlInhHJiUmdGhldGFHNiMiIiIlJC4uLkcmRiU2IyUibkc=</Equation> .)</Text-field><Text-field layout="Normal" style="Normal"/><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 1.6</Text-field></Title><Text-field layout="Normal" style="Normal">For the integral</Text-field><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(1/ln(x), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">the integrand lies in the function field <Equation input-equation="Q(x,theta);" style="2D Comment">NiMtJSJRRzYkJSJ4RyUmdGhldGFH</Equation> where <Equation input-equation="theta = ln(x);" style="2D Comment">NiMvJSZ0aGV0YUctJSNsbkc2IyUieEc=</Equation> is a logarithmic extension of the rational function field <Equation input-equation="Q(x);" style="2D Comment">NiMtJSJRRzYjJSJ4Rw==</Equation> .</Text-field><Text-field layout="Normal" style="Normal">In this field the integrand is</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">1/theta;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 1.7</Text-field></Title><Text-field layout="Normal" style="Normal">For the integral</Text-field><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int((x^3+2*x)*cos(x^2)+x*sin(x^2), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">by converting the integrand to complex <Equation input-equation="exp;" style="2D Comment">NiMlJGV4cEc=</Equation>-<Equation input-equation="log;" style="2D Comment">NiMlJGxvZ0c=</Equation> form, the problem can be expressed in the form</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int((x^3+2*x)*(exp(I*x^2)+exp(-I*x^2))/2 - 1/2*I*x*(exp(I*x^2)-exp(-I*x^2)), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">and we can view the integrand as an element of the function field  <Equation input-equation="Q(I)(x,theta);" style="2D Comment">NiMtLSUiUUc2IyUiSUc2JCUieEclJnRoZXRhRw==</Equation>  where <Equation input-equation="theta = exp(I*x^2);" style="2D Comment">NiMvJSZ0aGV0YUctJSRleHBHNiMqJiUiSUciIiIqJCUieEciIiNGKg==</Equation> .  (Note: <Equation input-equation="I = sqrt(-1);" style="2D Comment">NiMvJSJJRy0lJXNxcnRHNiMsJCIiIiEiIg==</Equation> .)</Text-field><Text-field layout="Normal" style="Normal">In this field the integrand is</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">1/2*(x^3+2*x)*(theta + 1/theta) - 1/2*I*x*(theta - 1/theta);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 1.8</Text-field></Title><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">For the integral presented in Example 1.1</Text-field><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(x*(x+1)*( (x^2*exp(2*x^2) - ln(x+1)^2)^2 +
 2*x*exp(3*x^2)*( x - (2*x^3+2*x^2+x+1)*ln(x+1) )) /
((x+1)*ln(x+1)^2 - (x^3+x^2)*exp(2*x^2) )^2, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">we can view the integrand as an element of the function field  <Equation input-equation="Q(x,theta[1],theta[2]);" style="2D Comment">NiMtJSJRRzYlJSJ4RyYlJnRoZXRhRzYjIiIiJkYoNiMiIiM=</Equation>  where <Equation input-equation="theta[1] = exp(x^2);" style="2D Comment">NiMvJiUmdGhldGFHNiMiIiItJSRleHBHNiMqJCUieEciIiM=</Equation> and <Equation input-equation="theta[2] = ln(x+1);" style="2D Comment">NiMvJiUmdGhldGFHNiMiIiMtJSNsbkc2IywmJSJ4RyIiIkYtRi0=</Equation> .</Text-field><Text-field layout="Normal" style="Normal">Note that the two exponential terms  <Equation input-equation="exp(2*x^2);" style="2D Comment">NiMtJSRleHBHNiMqJiIiIyIiIiokJSJ4R0YnRig=</Equation>  and  <Equation input-equation="exp(3*x^2);" style="2D Comment">NiMtJSRleHBHNiMqJiIiJCIiIiokJSJ4RyIiI0Yo</Equation>  cannot be considered as independent extensions because there is an algebraic relationship between them. Rather, we choose to represent these terms in the form  <Equation input-equation="exp(x^2)^2;" style="2D Comment">NiMqJC0lJGV4cEc2IyokJSJ4RyIiI0Yp</Equation>  and  <Equation input-equation="exp(x^2)^3;" style="2D Comment">NiMqJC0lJGV4cEc2IyokJSJ4RyIiIyIiJA==</Equation>  which involves a single transcendental extension  <Equation input-equation="theta[1] = exp(x^2);" style="2D Comment">NiMvJiUmdGhldGFHNiMiIiItJSRleHBHNiMqJCUieEciIiM=</Equation> .</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle286" underline="false">Step 2</Font>: Consider the integrand <Equation input-equation="f;" style="2D Comment">NiMlImZH</Equation> as a rational expression in the field <Equation input-equation="F[n-1](theta);" style="2D Comment">NiMtJiUiRkc2IywmJSJuRyIiIkYpISIiNiMlJnRoZXRhRw==</Equation> :</Text-field><Text-field layout="Normal" style="Normal">                    <Equation input-equation="f(theta) = a(theta)/b(theta);" style="2D Comment">NiMvLSUiZkc2IyUmdGhldGFHKiYtJSJhR0YmIiIiLSUiYkdGJiEiIg==</Equation></Text-field><Text-field layout="Normal" style="Normal">where <Equation input-equation="theta = theta[n];" style="2D Comment">NiMvJSZ0aGV0YUcmRiQ2IyUibkc=</Equation> denotes the last extension and where  <Equation input-equation="F[n-1] = K(x,theta[1],`. . .`,theta[n-1]);" style="2D Comment">NiMvJiUiRkc2IywmJSJuRyIiIkYpISIiLSUiS0c2JiUieEcmJSZ0aGV0YUc2I0YpJSYufi5+LkcmRjBGJg==</Equation> .  In other words, <Equation input-equation="a(theta);" style="2D Comment">NiMtJSJhRzYjJSZ0aGV0YUc=</Equation> and <Equation input-equation="b(theta);" style="2D Comment">NiMtJSJiRzYjJSZ0aGV0YUc=</Equation> are viewed as polynomials in the domain <Equation input-equation="F[n-1];" style="2D Comment">NiMmJSJGRzYjLCYlIm5HIiIiRighIiI=</Equation>[<Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation>] .  Normalize <Equation input-equation="f(theta);" style="2D Comment">NiMtJSJmRzYjJSZ0aGV0YUc=</Equation> such that <Equation input-equation="gcd(a(theta),b(theta)) = 1;" style="2D Comment">NiMvLSUkZ2NkRzYkLSUiYUc2IyUmdGhldGFHLSUiYkdGKSIiIg==</Equation> and <Equation input-equation="b(theta);" style="2D Comment">NiMtJSJiRzYjJSZ0aGV0YUc=</Equation> is monic.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">The algorithm proceeds in a manner similar to rational function integration; specifically, Hermite reductions followed by the application of a Rothstein-Trager Theorem.  In particular, the algorithm will apply <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle287" underline="false">polynomial</Font> operations.  We consider separately the cases where the last extension  <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation>  is a logarithmic extension or an exponential extension.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section><Title><Text-field layout="Heading 2" style="Heading 2">Integral of a logarithmic extension</Text-field></Title><Text-field layout="Normal" style="Normal">Suppose that the last extension  <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation>  is a logarithmic extension, i.e.  <Equation input-equation="theta^`'` = u^`'`/u;" style="2D Comment">NiMvKSUmdGhldGFHJSInRyomKSUidUdGJiIiIkYpISIi</Equation>  for some function <Equation input-equation="u;" style="2D Comment">NiMlInVH</Equation> in <Equation input-equation="F[n-1];" style="2D Comment">NiMmJSJGRzYjLCYlIm5HIiIiRighIiI=</Equation> .  Applying Euclidean division with remainder yields  <Equation input-equation="Int(f(theta),x) = Int(p(theta),x)+Int(r(theta)/b(theta),x);" style="2D Comment">NiMvLSUkSW50RzYkLSUiZkc2IyUmdGhldGFHJSJ4RywmLUYlNiQtJSJwR0YpRisiIiItRiU2JComLSUickdGKUYxLSUiYkdGKSEiIkYrRjE=</Equation> .</Text-field><Text-field layout="Normal" style="Normal">We now have two integrals to consider:  (1) the integral of the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle288" underline="false">polynomial part</Font>;  and (2) the integral of the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle289" underline="false">rational part</Font>.  This time (unlike the case of rational function integration) the integral of the polynomial part is nontrivial; indeed, task (1) is the harder of the two parts.  We first consider task (2).</Text-field><Text-field layout="Normal" style="Normal"/><Section><Title><Text-field layout="Heading 3" style="Heading 3">Hermite Reductions for the Rational Part (log extension)</Text-field></Title><Text-field layout="Normal" style="Normal">This case mimics the Hermite method for rational functions.  Applying square-free factorization of the denominator yields  <Equation input-equation="b(theta) = Product(b[i](theta)^i,i = 1 .. k);" style="2D Comment">NiMvLSUiYkc2IyUmdGhldGFHLSUoUHJvZHVjdEc2JCktJkYlNiMlImlHRiZGLy9GLzsiIiIlImtH</Equation>  where this means "square-free as a polynomial in <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> ."  For application in subsequent steps of the algorithm, we need to know that the following theorem holds.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle290" underline="false">Theorem 3</Font>:  If <Equation input-equation="v(theta);" style="2D Comment">NiMtJSJ2RzYjJSZ0aGV0YUc=</Equation> is a monic polynomial which is square-free as a polynomial in the symbol <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> and if  <Equation input-equation="theta = log(u(x));" style="2D Comment">NiMvJSZ0aGV0YUctJSRsb2dHNiMtJSJ1RzYjJSJ4Rw==</Equation>  for some function <Equation input-equation="u(x);" style="2D Comment">NiMtJSJ1RzYjJSJ4Rw==</Equation> then</Text-field><Text-field layout="Normal" style="Normal">                    <Equation input-equation="gcd(v(theta),v(theta)^`'`) = 1;" style="2D Comment">NiMvLSUkZ2NkRzYkLSUidkc2IyUmdGhldGFHKUYnJSInRyIiIg==</Equation></Text-field><Text-field layout="Normal" style="Normal">where the latter differentiation is with respect to <Equation input-equation="x;" style="2D Comment">NiMlInhH</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Then applying partial fraction expansion, we get</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="Int(r(theta)/b(theta),x) = Sum(Sum(Int(r[i,j](theta)/(b[i](theta)^j),x),j = 1 .. i),i = 1 .. k);" style="2D Comment">NiMvLSUkSW50RzYkKiYtJSJyRzYjJSZ0aGV0YUciIiItJSJiR0YqISIiJSJ4Ry0lJFN1bUc2JC1GMjYkLUYlNiQqJi0mRik2JCUiaUclImpHRipGLCktJkYuNiNGPEYqRj1GL0YwL0Y9O0YsRjwvRjw7RiwlImtH</Equation>    where    <Equation input-equation="deg(r[i,j](theta)) &lt; deg(b[i](theta));" style="2D Comment">NiMyLSUkZGVnRzYjLSYlInJHNiQlImlHJSJqRzYjJSZ0aGV0YUctRiU2Iy0mJSJiRzYjRitGLQ==</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">For each integral with a denominator containing a power  <Equation input-equation="j;" style="2D Comment">NiMlImpH</Equation> &gt; <Equation input-equation="1;" style="2D Comment">NiMiIiI=</Equation> , apply the Extended Euclidean Algorithm to solve</Text-field><Text-field layout="Normal" style="Normal">                     <Equation input-equation="s(theta)*b[i](theta)+t(theta)*b[i](theta)^`'` = r[i,j](theta)" style="2D Comment">NiMvLCYqJi0lInNHNiMlJnRoZXRhRyIiIi0mJSJiRzYjJSJpR0YoRipGKiomLSUidEdGKEYqKUYrJSInR0YqRiotJiUickc2JEYvJSJqR0Yo</Equation> .</Text-field><Text-field layout="Normal" style="Normal">As in rational function integration, apply integration by parts to obtain the Hermite reduction:</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="Int(r[i,j](theta)/(b[i](theta)^j),x) = -t(theta)/((j-1)*b[i](theta)^(j-1))+Int((s(theta)+t(theta)^`'`/(j-1))/(b[i](theta)^(j-1)),x);" style="2D Comment">NiMvLSUkSW50RzYkKiYtJiUickc2JCUiaUclImpHNiMlJnRoZXRhRyIiIiktJiUiYkc2I0YsRi5GLSEiIiUieEcsJiomLSUidEdGLkYwKiYsJkYtRjBGMEY2RjApRjJGPUYwRjZGNi1GJTYkKiYsJi0lInNHRi5GMComKUY6JSInR0YwRj1GNkYwRjBGPkY2RjdGMA==</Equation> .</Text-field><Text-field layout="Normal" style="Normal">Continuing such reductions until no remaining integral has a denominator containing a power  <Equation input-equation="j;" style="2D Comment">NiMlImpH</Equation> &gt; <Equation input-equation="1;" style="2D Comment">NiMiIiI=</Equation> , we reduce the integration problem to one in which the denominator is square-free.</Text-field><Text-field layout="Normal" style="Normal"/></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Rothstein-Trager Theorem: log extension</Text-field></Title><Text-field layout="Normal" style="Normal">The problem is to express  <Equation input-equation="Int(A(theta)/B(theta),x);" style="2D Comment">NiMtJSRJbnRHNiQqJi0lIkFHNiMlJnRoZXRhRyIiIi0lIkJHRikhIiIlInhH</Equation>  where  <Equation input-equation="deg(A(theta)) &lt; deg(B(theta));" style="2D Comment">NiMyLSUkZGVnRzYjLSUiQUc2IyUmdGhldGFHLUYlNiMtJSJCR0Yp</Equation> ,  <Equation input-equation="B(theta);" style="2D Comment">NiMtJSJCRzYjJSZ0aGV0YUc=</Equation>  is square-free, and where  <Equation input-equation="theta = log(u);" style="2D Comment">NiMvJSZ0aGV0YUctJSRsb2dHNiMlInVH</Equation>  is a logarithmic extension.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="_cstyle291"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" underline="false">Theorem 4  (Rothstein-Trager Theorem: log extension)</Font></Text-field><Text-field layout="Normal" style="Normal">(i)  <Equation input-equation="Int(A(theta)/B(theta),x);" style="2D Comment">NiMtJSRJbnRHNiQqJi0lIkFHNiMlJnRoZXRhRyIiIi0lIkJHRikhIiIlInhH</Equation>  is elementary if and only if all of the roots of</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="R(z) = resultant(A(theta)-z*B(theta)^`'`,B(theta),theta)" style="2D Comment">NiMvLSUiUkc2IyUiekctJSpyZXN1bHRhbnRHNiUsJi0lIkFHNiMlJnRoZXRhRyIiIiomRidGMCktJSJCR0YuJSInR0YwISIiRjNGLw==</Equation></Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">are constants.  In other words, the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle292" underline="false">primitive part</Font> of <Equation input-equation="R(z);" style="2D Comment">NiMtJSJSRzYjJSJ6Rw==</Equation> with respect to the variable <Equation input-equation="z;" style="2D Comment">NiMlInpH</Equation> must have constant coefficients.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">(ii)  If  <Equation input-equation="Int(A(theta)/B(theta),x);" style="2D Comment">NiMtJSRJbnRHNiQqJi0lIkFHNiMlJnRoZXRhRyIiIi0lIkJHRikhIiIlInhH</Equation>  is elementary then</Text-field><Text-field layout="Normal" style="Normal">                    <Equation input-equation="Int(A(theta)/B(theta),x) = Sum(c[i]*log(v[i](theta)),i = 1 .. m);" style="2D Comment">NiMvLSUkSW50RzYkKiYtJSJBRzYjJSZ0aGV0YUciIiItJSJCR0YqISIiJSJ4Ry0lJFN1bUc2JComJiUiY0c2IyUiaUdGLC0lJGxvZ0c2Iy0mJSJ2R0Y3RipGLC9GODtGLCUibUc=</Equation></Text-field><Text-field layout="Normal" style="Normal">where <Equation input-equation="c[i];" style="2D Comment">NiMmJSJjRzYjJSJpRw==</Equation> are the distinct roots of <Equation input-equation="R(z);" style="2D Comment">NiMtJSJSRzYjJSJ6Rw==</Equation> and where <Equation input-equation="v[i](theta);" style="2D Comment">NiMtJiUidkc2IyUiaUc2IyUmdGhldGFH</Equation> are defined by</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="v[i](theta) = gcd(A(theta)-c[i]*B(theta)^`'`,B(theta));" style="2D Comment">NiMvLSYlInZHNiMlImlHNiMlJnRoZXRhRy0lJGdjZEc2JCwmLSUiQUdGKSIiIiomJiUiY0dGJ0YxKS0lIkJHRiklIidHRjEhIiJGNg==</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Moreover, this expresses the integral using the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle293" underline="false">minimal algebraic extension field</Font>.</Text-field><Text-field layout="Normal" style="Normal"/></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 1.9</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal">Consider the following integral.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(1/ln(x), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The integrand is  <Equation input-equation="f(theta) = 1/theta;" style="2D Comment">NiMvLSUiZkc2IyUmdGhldGFHKiYiIiJGKUYnISIi</Equation>  in the function field <Equation input-equation="Q(x,theta);" style="2D Comment">NiMtJSJRRzYkJSJ4RyUmdGhldGFH</Equation> where <Equation input-equation="theta = ln(x);" style="2D Comment">NiMvJSZ0aGV0YUctJSNsbkc2IyUieEc=</Equation> .</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">A resultant computation (Rothstein-Trager Theorem) is applicable.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">A := 1:  B := theta:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">diff_B := diff(ln(x), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">R := resultant(A - z*diff_B, B, theta);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The single root of <Equation input-equation="R(z)" style="2D Comment">NiMtJSJSRzYjJSJ6Rw==</Equation> is <Equation input-equation="z = x" style="2D Comment">NiMvJSJ6RyUieEc=</Equation> which is not a constant.</Text-field><Text-field layout="Normal" style="Normal">Therefore the original integral is <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle295" underline="false">not elementary</Font>.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 1.10</Text-field></Title><Text-field layout="Normal" style="Normal">The integral</Text-field><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(1/(x*ln(x)), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">has integrand  <Equation input-equation="f(theta) = 1/(x*theta);" style="2D Comment">NiMvLSUiZkc2IyUmdGhldGFHKiYiIiJGKSomJSJ4R0YpRidGKSEiIg==</Equation>  in the function field <Equation input-equation="Q(x,theta);" style="2D Comment">NiMtJSJRRzYkJSJ4RyUmdGhldGFH</Equation> where <Equation input-equation="theta = ln(x);" style="2D Comment">NiMvJSZ0aGV0YUctJSNsbkc2IyUieEc=</Equation> .</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">This time, the resultant computation is as follows.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">A := 1:  B := x*theta:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">diff_B := subs(ln(x)=theta, diff(subs(theta=ln(x), B), x));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">R := resultant(A - z*diff_B, B, theta);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The single root of <Equation input-equation="R(z)" style="2D Comment">NiMtJSJSRzYjJSJ6Rw==</Equation> is <Equation input-equation="z = 1" style="2D Comment">NiMvJSJ6RyIiIg==</Equation> and the integral is elementary.  Specifically,</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">c[1] := 1;  v[1] := gcd(A - c[1]*diff_B, B);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">and the integral is</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">c[1]*ln(v[1]);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">In other words,</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(1/(x*ln(x)), x)  =
subs(theta=ln(x), c[1]*ln(v[1]));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Polynomial Part (log extension)</Text-field></Title><Text-field layout="Normal" style="Normal">For the integration of the "polynomial part", the integrand is a polynomial in the log extension <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> :</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="p(theta) = A[k]*theta^k+A[k-1]*theta^(k-1)+`  . . .  `+A[0]" style="2D Comment">NiMvLSUicEc2IyUmdGhldGFHLCoqJiYlIkFHNiMlImtHIiIiKUYnRi1GLkYuKiYmRis2IywmRi1GLkYuISIiRi4pRidGM0YuRi4lKn5+Ln4ufi5+fkdGLiZGKzYjIiIhRi4=</Equation></Text-field><Text-field layout="Normal" style="Normal">with  <Equation input-equation="A[i];" style="2D Comment">NiMmJSJBRzYjJSJpRw==</Equation>  in  <Equation input-equation="F[n-1];" style="2D Comment">NiMmJSJGRzYjLCYlIm5HIiIiRighIiI=</Equation>  and we can conclude that</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="Int(p(theta),x) = B[k+1]*theta^(k+1)+B[k]*theta^k+`  . . .  `+B[0]+Sum(c[i]*log(v[i]),i = 1 .. m);" style="2D Comment">NiMvLSUkSW50RzYkLSUicEc2IyUmdGhldGFHJSJ4RywsKiYmJSJCRzYjLCYlImtHIiIiRjNGM0YzKUYqRjFGM0YzKiYmRi82I0YyRjMpRipGMkYzRjMlKn5+Ln4ufi5+fkdGMyZGLzYjIiIhRjMtJSRTdW1HNiQqJiYlImNHNiMlImlHRjMtJSRsb2dHNiMmJSJ2R0ZDRjMvRkQ7RjMlIm1HRjM=</Equation> .</Text-field><Text-field layout="Normal" style="Normal">Note that the last term indicates that some new log extensions may arise.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Differentiating and equating coefficients of powers of the transcendental symbol <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> , we get:</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="0 = B[k+1]^`'`;" style="2D Comment">NiMvIiIhKSYlIkJHNiMsJiUia0ciIiJGK0YrJSInRw==</Equation></Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="A[k] = (k+1)*B[k+1]*theta^`'`+B[k]^`'`;" style="2D Comment">NiMvJiUiQUc2IyUia0csJiooLCZGJyIiIkYrRitGKyYlIkJHNiNGKkYrKSUmdGhldGFHJSInR0YrRispJkYtRiZGMUYr</Equation></Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="A[k-1] = k*B[k]*theta^`'`+B[k-1]^`'`;" style="2D Comment">NiMvJiUiQUc2IywmJSJrRyIiIkYpISIiLCYqKEYoRikmJSJCRzYjRihGKSklJnRoZXRhRyUiJ0dGKUYpKSZGLkYmRjJGKQ==</Equation></Text-field><Text-field layout="Normal" style="Normal">                 <Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle296" underline="false"> . . .</Font></Text-field><Text-field layout="Normal" style="Normal">                  <Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle297" underline="false">. . .</Font></Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="A[1] = 2*B[2]*theta^`'`+B[1]^`'`;" style="2D Comment">NiMvJiUiQUc2IyIiIiwmKigiIiNGJyYlIkJHNiNGKkYnKSUmdGhldGFHJSInR0YnRicpJkYsRiZGMEYn</Equation></Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="A[0] = B[1]*theta^`'`+(B[0]^`*`)^`'`;" style="2D Comment">NiMvJiUiQUc2IyIiISwmKiYmJSJCRzYjIiIiRi0pJSZ0aGV0YUclIidHRi1GLSkpJkYrRiYlIipHRjBGLQ==</Equation></Text-field><Text-field layout="Normal" style="Normal">where  <Equation input-equation="B[0]^`*` = B[0]+Sum(c[i]*log(v[i]),i = 1 .. m);" style="2D Comment">NiMvKSYlIkJHNiMiIiElIipHLCZGJSIiIi0lJFN1bUc2JComJiUiY0c2IyUiaUdGKy0lJGxvZ0c2IyYlInZHRjJGKy9GMztGKyUibUdGKw==</Equation> .</Text-field><Text-field layout="Normal" style="Normal">We can solve these equations successively, from the top down.  At each step there is an integration operation which requires a recursive invocation of the Risch algorithm.  This works because the integrand lies in the field  <Equation input-equation="F[n-1];" style="2D Comment">NiMmJSJGRzYjLCYlIm5HIiIiRighIiI=</Equation>  involving one less extension.  At any step, if the integral to be computed is not elementary then the algorithm halts with the conclusion that the original integral is <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle299" underline="false">not elementary</Font>.  Moreover, at any step except the last step, if the result of the recursive integration introduces one or more new log extensions then the algorithm halts with the conclusion that the original integral is <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle298" underline="false">not elementary</Font>.  At the last step, new log extensions may appear.</Text-field><Text-field layout="Normal" style="Normal"/></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 1.11</Text-field></Title><Text-field layout="Normal" style="Normal">The integral</Text-field><Group><Input><Text-field layout="Normal" style="Normal">                    <Equation input-equation="Int(ln(x),x);" style="2D Comment">NiMtJSRJbnRHNiQtJSNsbkc2IyUieEdGKQ==</Equation></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">has integrand  <Equation input-equation="f(theta) = theta;" style="2D Comment">NiMvLSUiZkc2IyUmdGhldGFHRic=</Equation>  in the field  <Equation input-equation="Q(x,theta);" style="2D Comment">NiMtJSJRRzYkJSJ4RyUmdGhldGFH</Equation>  where  <Equation input-equation="theta = ln(x);" style="2D Comment">NiMvJSZ0aGV0YUctJSNsbkc2IyUieEc=</Equation> .  If the integral is elementary then</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="Int(theta,x) = B[2]*theta^2+B[1]*theta+B[0]^`*`" style="2D Comment">NiMvLSUkSW50RzYkJSZ0aGV0YUclInhHLCgqJiYlIkJHNiMiIiMiIiIqJEYnRi5GL0YvKiYmRiw2I0YvRi9GJ0YvRi8pJkYsNiMiIiElIipHRi8=</Equation></Text-field><Text-field layout="Normal" style="Normal">where the equations to be satisfied are</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="0 = B[2]^`'`;" style="2D Comment">NiMvIiIhKSYlIkJHNiMiIiMlIidH</Equation></Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="1 = 2*B[2]*theta^`'`+B[1]^`'`;" style="2D Comment">NiMvIiIiLCYqKCIiI0YkJiUiQkc2I0YnRiQpJSZ0aGV0YUclIidHRiRGJCkmRik2I0YkRi1GJA==</Equation></Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="0 = B[1]*theta^`'`+(B[0]^`*`)^`'`;" style="2D Comment">NiMvIiIhLCYqJiYlIkJHNiMiIiJGKiklJnRoZXRhRyUiJ0dGKkYqKSkmRig2I0YkJSIqR0YtRio=</Equation>   .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">From the first equation we conclude that  <Equation input-equation="B[2] = b[2];" style="2D Comment">NiMvJiUiQkc2IyIiIyYlImJHRiY=</Equation> , an arbitrary constant of integration.  Plugging this into the second equation and integrating both sides yields</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="Int(1,x) = 2*b[2]*theta+B[1];" style="2D Comment">NiMvLSUkSW50RzYkIiIiJSJ4RywmKigiIiNGJyYlImJHNiNGK0YnJSZ0aGV0YUdGJ0YnJiUiQkc2I0YnRic=</Equation></Text-field><Text-field layout="Normal" style="Normal">or</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="x+b[1] = 2*b[2]*theta+B[1];" style="2D Comment">NiMvLCYlInhHIiIiJiUiYkc2I0YmRiYsJiooIiIjRiYmRig2I0YsRiYlJnRoZXRhR0YmRiYmJSJCR0YpRiY=</Equation></Text-field><Text-field layout="Normal" style="Normal">where <Equation input-equation="b[1];" style="2D Comment">NiMmJSJiRzYjIiIi</Equation> is an arbitrary constant of integration. Equating coefficients of <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> on both sides of the equation, we conclude that <Equation input-equation="b[2] = 0;" style="2D Comment">NiMvJiUiYkc2IyIiIyIiIQ==</Equation> and <Equation input-equation="B[1] = x+b[1];" style="2D Comment">NiMvJiUiQkc2IyIiIiwmJSJ4R0YnJiUiYkdGJkYn</Equation>.</Text-field><Text-field layout="Normal" style="Normal">The last equation now becomes</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="0 = (x+b[1])*theta^`'`+(B[0]^`*`)^`'`;" style="2D Comment">NiMvIiIhLCYqJiwmJSJ4RyIiIiYlImJHNiNGKUYpRikpJSZ0aGV0YUclIidHRilGKSkpJiUiQkc2I0YkJSIqR0YvRik=</Equation></Text-field><Text-field layout="Normal" style="Normal">or rearranging (we always leave the term  <Equation input-equation="i*b[i]*theta^`'`;" style="2D Comment">NiMqKCUiaUciIiImJSJiRzYjRiRGJSklJnRoZXRhRyUiJ0dGJQ==</Equation>  on the right hand side since integration of this term is trivial):</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="-x*theta^`'` = b[1]*theta^`'`+(B[0]^`*`)^`'`;" style="2D Comment">NiMvLCQqJiUieEciIiIpJSZ0aGV0YUclIidHRichIiIsJiomJiUiYkc2I0YnRidGKEYnRicpKSYlIkJHNiMiIiElIipHRipGJw==</Equation>   .</Text-field><Text-field layout="Normal" style="Normal">At this point we use the fact that  <Equation input-equation="theta = ln(x);" style="2D Comment">NiMvJSZ0aGV0YUctJSNsbkc2IyUieEc=</Equation>  (i.e. <Equation input-equation="theta^`'` = 1/x;" style="2D Comment">NiMvKSUmdGhldGFHJSInRyomIiIiRiglInhHISIi</Equation> )  on the left hand side, and integrate both sides to get</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="Int(-1,x) = b[1]*theta+B[0]^`*`;" style="2D Comment">NiMvLSUkSW50RzYkLCQiIiIhIiIlInhHLCYqJiYlImJHNiNGKEYoJSZ0aGV0YUdGKEYoKSYlIkJHNiMiIiElIipHRig=</Equation></Text-field><Text-field layout="Normal" style="Normal">from which we conclude (by equating coefficients of <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> on both sides of the equation) that <Equation input-equation="b[1] = 0;" style="2D Comment">NiMvJiUiYkc2IyIiIiIiIQ==</Equation> and <Equation input-equation="B[0]^`*` = -x;" style="2D Comment">NiMvKSYlIkJHNiMiIiElIipHLCQlInhHISIi</Equation> , ignoring the arbitrary constant of integration in this final step. Putting it all together we have</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">theta := ln(x):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">B[2] := 0:  B[1] := x:  B[0] := -x:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(theta, x) = B[2]*theta^2 + B[1]*theta + B[0];</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 1.12</Text-field></Title><Text-field layout="Normal" style="Normal">The integral</Text-field><Group><Input><Text-field layout="Normal" style="Normal">                    <Equation input-equation="Int(ln(ln(x)),x);" style="2D Comment">NiMtJSRJbnRHNiQtJSNsbkc2Iy1GJzYjJSJ4R0Yr</Equation></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">has integrand  <Equation input-equation="f(theta[2]) = theta[2];" style="2D Comment">NiMvLSUiZkc2IyYlJnRoZXRhRzYjIiIjRic=</Equation>  in the field  <Equation input-equation="Q(x,theta[1],theta[2]);" style="2D Comment">NiMtJSJRRzYlJSJ4RyYlJnRoZXRhRzYjIiIiJkYoNiMiIiM=</Equation>  where <Equation input-equation="theta[1] = ln(x);" style="2D Comment">NiMvJiUmdGhldGFHNiMiIiItJSNsbkc2IyUieEc=</Equation> and <Equation input-equation="theta[2] = ln(theta[1]);" style="2D Comment">NiMvJiUmdGhldGFHNiMiIiMtJSNsbkc2IyZGJTYjIiIi</Equation> .  If the integral is elementary then</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="Int(theta[2],x) = B[2]*theta[2]^2+B[1]*theta[2]+B[0]^`*`;" style="2D Comment">NiMvLSUkSW50RzYkJiUmdGhldGFHNiMiIiMlInhHLCgqJiYlIkJHRikiIiIqJEYnRipGMEYwKiYmRi82I0YwRjBGJ0YwRjApJkYvNiMiIiElIipHRjA=</Equation></Text-field><Text-field layout="Normal" style="Normal">where the equations to be satisfied are</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="0 = B[2]^`'`;" style="2D Comment">NiMvIiIhKSYlIkJHNiMiIiMlIidH</Equation></Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="1 = 2*B[2]*theta[2]^`'`+B[1]^`'`;" style="2D Comment">NiMvIiIiLCYqKCIiI0YkJiUiQkc2I0YnRiQpJiUmdGhldGFHRiolIidHRiRGJCkmRik2I0YkRi5GJA==</Equation></Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="0 = B[1]*theta[2]^`'`+(B[0]^`*`)^`'`;" style="2D Comment">NiMvIiIhLCYqJiYlIkJHNiMiIiJGKikmJSZ0aGV0YUc2IyIiIyUiJ0dGKkYqKSkmRig2I0YkJSIqR0YwRio=</Equation>   .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">From the first equation we conclude that  <Equation input-equation="B[2] = b[2];" style="2D Comment">NiMvJiUiQkc2IyIiIyYlImJHRiY=</Equation> , an arbitrary constant of integration.  Plugging this into the second equation and integrating both sides yields</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="Int(1,x) = 2*b[2]*theta[2]+B[1];" style="2D Comment">NiMvLSUkSW50RzYkIiIiJSJ4RywmKigiIiNGJyYlImJHNiNGK0YnJiUmdGhldGFHRi5GJ0YnJiUiQkc2I0YnRic=</Equation></Text-field><Text-field layout="Normal" style="Normal">or</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="x+b[1] = 2*b[2]*theta[2]+B[1];" style="2D Comment">NiMvLCYlInhHIiIiJiUiYkc2I0YmRiYsJiooIiIjRiYmRig2I0YsRiYmJSZ0aGV0YUdGLkYmRiYmJSJCR0YpRiY=</Equation></Text-field><Text-field layout="Normal" style="Normal">where <Equation input-equation="b[1];" style="2D Comment">NiMmJSJiRzYjIiIi</Equation> is an arbitrary constant of integration. Equating coefficients of <Equation input-equation="theta[2];" style="2D Comment">NiMmJSZ0aGV0YUc2IyIiIw==</Equation> on both sides of the equation, we conclude that <Equation input-equation="b[2] = 0;" style="2D Comment">NiMvJiUiYkc2IyIiIyIiIQ==</Equation> and <Equation input-equation="B[1] = x+b[1];" style="2D Comment">NiMvJiUiQkc2IyIiIiwmJSJ4R0YnJiUiYkdGJkYn</Equation> . The last equation now becomes</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="0 = (x+b[1])*theta[2]^`'`+(B[0]^`*`)^`'`;" style="2D Comment">NiMvIiIhLCYqJiwmJSJ4RyIiIiYlImJHNiNGKUYpRikpJiUmdGhldGFHNiMiIiMlIidHRilGKSkpJiUiQkc2I0YkJSIqR0YyRik=</Equation></Text-field><Text-field layout="Normal" style="Normal">or rearranging:</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="-x*theta[2]^`'` = b[1]*theta[2]^`'`+(B[0]^`*`)^`'`;" style="2D Comment">NiMvLCQqJiUieEciIiIpJiUmdGhldGFHNiMiIiMlIidHRichIiIsJiomJiUiYkc2I0YnRidGKEYnRicpKSYlIkJHNiMiIiElIipHRi1GJw==</Equation>   .</Text-field><Text-field layout="Normal" style="Normal">Since  <Equation input-equation="theta[2]^`'` = theta[1]^`'`/theta[1];" style="2D Comment">NiMvKSYlJnRoZXRhRzYjIiIjJSInRyomKSZGJjYjIiIiRilGLkYsISIi</Equation> ,  i.e. <Equation input-equation="theta[2]^`'` = 1/(x*ln(x));" style="2D Comment">NiMvKSYlJnRoZXRhRzYjIiIjJSInRyomIiIiRisqJiUieEdGKy0lI2xuRzYjRi1GKyEiIg==</Equation> , substituting for <Equation input-equation="theta[2]^`'`;" style="2D Comment">NiMpJiUmdGhldGFHNiMiIiMlIidH</Equation> on the left hand side and integrating yields</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="Int(-1/ln(x),x) = b[1]*theta[2]+B[0]^`*`;" style="2D Comment">NiMvLSUkSW50RzYkLCQqJiIiIkYpLSUjbG5HNiMlInhHISIiRi5GLSwmKiYmJSJiRzYjRilGKSYlJnRoZXRhRzYjIiIjRilGKSkmJSJCRzYjIiIhJSIqR0Yp</Equation>   .</Text-field><Text-field layout="Normal" style="Normal">From Example 1.9 we know that the integral appearing here is not elementary. Hence we conclude that  <Equation input-equation="Int(ln(ln(x)),x);" style="2D Comment">NiMtJSRJbnRHNiQtJSNsbkc2Iy1GJzYjJSJ4R0Yr</Equation>  is <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle300" underline="false">not elementary</Font>.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section></Section><Section><Title><Text-field layout="Heading 2" style="Heading 2">Integral of an exponential extension</Text-field></Title><Text-field layout="Normal" style="Normal">Suppose that the last extension  <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation>  is an exponential extension, i.e.  <Equation input-equation="theta^`'`/theta = u^`'`;" style="2D Comment">NiMvKiYpJSZ0aGV0YUclIidHIiIiRiYhIiIpJSJ1R0Yn</Equation>  for some function <Equation input-equation="u;" style="2D Comment">NiMlInVH</Equation> in <Equation input-equation="F[n-1];" style="2D Comment">NiMmJSJGRzYjLCYlIm5HIiIiRighIiI=</Equation> .  Applying Euclidean division with remainder yields  <Equation input-equation="Int(f(theta),x) = Int(p(theta),x)+Int(r(theta)/b(theta),x);" style="2D Comment">NiMvLSUkSW50RzYkLSUiZkc2IyUmdGhldGFHJSJ4RywmLUYlNiQtJSJwR0YpRisiIiItRiU2JComLSUickdGKUYxLSUiYkdGKSEiIkYrRjE=</Equation> .</Text-field><Text-field layout="Normal" style="Normal">Unlike the logarithmic case, we must remove any power of  <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation>  from the denominator on the right hand side, and incorporate it into the new "polynomial part":  <Equation input-equation="p(theta) = Sum(p[j]*theta^j,j = -k .. l);" style="2D Comment">NiMvLSUicEc2IyUmdGhldGFHLSUkU3VtRzYkKiYmRiU2IyUiakciIiIpRidGLkYvL0YuOywkJSJrRyEiIiUibEc=</Equation> .  (This can be done.)</Text-field><Text-field layout="Normal" style="Normal">We now have two integrals to consider:  (1) the integral of the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle339" underline="false">polynomial part</Font>;  and (2) the integral of the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle340" underline="false">rational part</Font>.  Again, task (1) is the harder of the two parts.  We first consider task (2).</Text-field><Text-field layout="Normal" style="Normal"/><Section><Title><Text-field layout="Heading 3" style="Heading 3">Hermite Reductions for the Rational Part (exp extension)</Text-field></Title><Text-field layout="Normal" style="Normal">This case is very similar to the logarithmic case.  Applying square-free factorization of the denominator yields  <Equation input-equation="b(theta) = Product(b[i](theta)^i,i = 1 .. k);" style="2D Comment">NiMvLSUiYkc2IyUmdGhldGFHLSUoUHJvZHVjdEc2JCktJkYlNiMlImlHRiZGLy9GLzsiIiIlImtH</Equation>  where this means "square-free as a polynomial in <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> ."  For application in subsequent steps of the algorithm, we need to know that the following theorem holds.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle341" underline="false">Theorem 5</Font>:  If <Equation input-equation="v(theta);" style="2D Comment">NiMtJSJ2RzYjJSZ0aGV0YUc=</Equation> is a monic polynomial which is square-free as a polynomial in the symbol <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> and if  <Equation input-equation="theta = exp(u(x));" style="2D Comment">NiMvJSZ0aGV0YUctJSRleHBHNiMtJSJ1RzYjJSJ4Rw==</Equation>  for some function <Equation input-equation="u(x);" style="2D Comment">NiMtJSJ1RzYjJSJ4Rw==</Equation> then</Text-field><Text-field layout="Normal" style="Normal">                    <Equation input-equation="gcd(v(theta),v(theta)^`'`) = 1;" style="2D Comment">NiMvLSUkZ2NkRzYkLSUidkc2IyUmdGhldGFHKUYnJSInRyIiIg==</Equation></Text-field><Text-field layout="Normal" style="Normal">where the latter differentiation is with respect to <Equation input-equation="x;" style="2D Comment">NiMlInhH</Equation>, <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle342" underline="false">provided that</Font>  <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation>  does not divide <Equation input-equation="v(theta);" style="2D Comment">NiMtJSJ2RzYjJSZ0aGV0YUc=</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Then, exactly as in the logarithmic case, applying partial fraction expansion we get</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="Int(r(theta)/b(theta),x) = Sum(Sum(Int(r[i,j](theta)/(b[i](theta)^j),x),j = 1 .. i),i = 1 .. k);" style="2D Comment">NiMvLSUkSW50RzYkKiYtJSJyRzYjJSZ0aGV0YUciIiItJSJiR0YqISIiJSJ4Ry0lJFN1bUc2JC1GMjYkLUYlNiQqJi0mRik2JCUiaUclImpHRipGLCktJkYuNiNGPEYqRj1GL0YwL0Y9O0YsRjwvRjw7RiwlImtH</Equation>    where    <Equation input-equation="deg(r[i,j](theta)) &lt; deg(b[i](theta));" style="2D Comment">NiMyLSUkZGVnRzYjLSYlInJHNiQlImlHJSJqRzYjJSZ0aGV0YUctRiU2Iy0mJSJiRzYjRitGLQ==</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">For each integral with a denominator containing a power  <Equation input-equation="j;" style="2D Comment">NiMlImpH</Equation> &gt; <Equation input-equation="1;" style="2D Comment">NiMiIiI=</Equation> , apply the Extended Euclidean Algorithm to solve</Text-field><Text-field layout="Normal" style="Normal">                     <Equation input-equation="s(theta)*b[i](theta)+t(theta)*b[i](theta)^`'` = r[i,j](theta)" style="2D Comment">NiMvLCYqJi0lInNHNiMlJnRoZXRhRyIiIi0mJSJiRzYjJSJpR0YoRipGKiomLSUidEdGKEYqKUYrJSInR0YqRiotJiUickc2JEYvJSJqR0Yo</Equation> .</Text-field><Text-field layout="Normal" style="Normal">As before, apply integration by parts to obtain the Hermite reduction:</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="Int(r[i,j](theta)/(b[i](theta)^j),x) = -t(theta)/((j-1)*b[i](theta)^(j-1))+Int((s(theta)+t(theta)^`'`/(j-1))/(b[i](theta)^(j-1)),x);" style="2D Comment">NiMvLSUkSW50RzYkKiYtJiUickc2JCUiaUclImpHNiMlJnRoZXRhRyIiIiktJiUiYkc2I0YsRi5GLSEiIiUieEcsJiomLSUidEdGLkYwKiYsJkYtRjBGMEY2RjApRjJGPUYwRjZGNi1GJTYkKiYsJi0lInNHRi5GMComKUY6JSInR0YwRj1GNkYwRjBGPkY2RjdGMA==</Equation> .</Text-field><Text-field layout="Normal" style="Normal">Continuing such reductions until no remaining integral has a denominator containing a power  <Equation input-equation="j;" style="2D Comment">NiMlImpH</Equation> &gt; <Equation input-equation="1;" style="2D Comment">NiMiIiI=</Equation> , we reduce the integration problem to one in which the denominator is square-free.</Text-field><Text-field layout="Normal" style="Normal"/></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Rothstein-Trager Theorem: exp extension</Text-field></Title><Text-field layout="Normal" style="Normal">The problem is to express  <Equation input-equation="Int(A(theta)/B(theta),x);" style="2D Comment">NiMtJSRJbnRHNiQqJi0lIkFHNiMlJnRoZXRhRyIiIi0lIkJHRikhIiIlInhH</Equation>  where  <Equation input-equation="deg(A(theta)) &lt; deg(B(theta));" style="2D Comment">NiMyLSUkZGVnRzYjLSUiQUc2IyUmdGhldGFHLUYlNiMtJSJCR0Yp</Equation> ,  <Equation input-equation="B(theta);" style="2D Comment">NiMtJSJCRzYjJSZ0aGV0YUc=</Equation>  is square-free, and where  <Equation input-equation="theta = exp(u);" style="2D Comment">NiMvJSZ0aGV0YUctJSRleHBHNiMlInVH</Equation>  is an exponential extension.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="_cstyle343"><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" underline="false">Theorem 6  (Rothstein-Trager Theorem: exp extension)</Font></Text-field><Text-field layout="Normal" style="Normal">(i)  <Equation input-equation="Int(A(theta)/B(theta),x);" style="2D Comment">NiMtJSRJbnRHNiQqJi0lIkFHNiMlJnRoZXRhRyIiIi0lIkJHRikhIiIlInhH</Equation>  is elementary if and only if all of the roots of</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="R(z) = resultant(A(theta)-z*B(theta)^`'`,B(theta),theta)" style="2D Comment">NiMvLSUiUkc2IyUiekctJSpyZXN1bHRhbnRHNiUsJi0lIkFHNiMlJnRoZXRhRyIiIiomRidGMCktJSJCR0YuJSInR0YwISIiRjNGLw==</Equation></Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">are constants.  In other words, the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle344" underline="false">primitive part</Font> of <Equation input-equation="R(z);" style="2D Comment">NiMtJSJSRzYjJSJ6Rw==</Equation> with respect to the variable <Equation input-equation="z;" style="2D Comment">NiMlInpH</Equation> must have constant coefficients.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">(ii)  If  <Equation input-equation="Int(A(theta)/B(theta),x);" style="2D Comment">NiMtJSRJbnRHNiQqJi0lIkFHNiMlJnRoZXRhRyIiIi0lIkJHRikhIiIlInhH</Equation>  is elementary then</Text-field><Text-field layout="Normal" style="Normal">                    <Equation input-equation="Int(A(theta)/B(theta),x) = g+Sum(c[i]*log(v[i](theta)),i = 1 .. m);" style="2D Comment">NiMvLSUkSW50RzYkKiYtJSJBRzYjJSZ0aGV0YUciIiItJSJCR0YqISIiJSJ4RywmJSJnR0YsLSUkU3VtRzYkKiYmJSJjRzYjJSJpR0YsLSUkbG9nRzYjLSYlInZHRjlGKkYsL0Y6O0YsJSJtR0Ys</Equation></Text-field><Text-field layout="Normal" style="Normal">where <Equation input-equation="c[i];" style="2D Comment">NiMmJSJjRzYjJSJpRw==</Equation> are the distinct roots of <Equation input-equation="R(z);" style="2D Comment">NiMtJSJSRzYjJSJ6Rw==</Equation> ,  <Equation input-equation="v[i](theta);" style="2D Comment">NiMtJiUidkc2IyUiaUc2IyUmdGhldGFH</Equation> are defined by</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="v[i](theta) = gcd(A(theta)-c[i]*B(theta)^`'`,B(theta));" style="2D Comment">NiMvLSYlInZHNiMlImlHNiMlJnRoZXRhRy0lJGdjZEc2JCwmLSUiQUdGKSIiIiomJiUiY0dGJ0YxKS0lIkJHRiklIidHRjEhIiJGNg==</Equation></Text-field><Text-field layout="Normal" style="Normal">and where  <Equation input-equation="g = -Sum(c[i]*deg(v[i](theta)),i = 1 .. m)*u;" style="2D Comment">NiMvJSJnRywkKiYtJSRTdW1HNiQqJiYlImNHNiMlImlHIiIiLSUkZGVnRzYjLSYlInZHRi02IyUmdGhldGFHRi8vRi47Ri8lIm1HRi8lInVHRi8hIiI=</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Moreover, this expresses the integral using the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle345" underline="false">minimal algebraic extension field</Font>.</Text-field><Text-field layout="Normal" style="Normal"/></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 1.13</Text-field></Title><Text-field layout="Normal" style="Normal">Consider the following integral.</Text-field><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">restart;</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">f := (x*exp(2*x^2)+8*sqrt(2)*x*(exp(x^2)+1)+2*x)/
     (exp(3*x^2)+exp(2*x^2)+2*exp(x^2)+2):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(f,x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The integrand is  <Equation input-equation="f(theta) = (x*theta^2+8*sqrt(2)*x*(theta+1)+2*x)/(theta^3+theta^2+2*theta+2);" style="2D Comment">NiMvLSUiZkc2IyUmdGhldGFHKiYsKComJSJ4RyIiIiokRiciIiNGLEYsKioiIilGLC0lJXNxcnRHNiNGLkYsRitGLCwmRidGLEYsRixGLEYsKiZGLkYsRitGLEYsRiwsKiokRiciIiRGLEYtRiwqJkYuRixGJ0YsRixGLkYsISIi</Equation>  in the function field <Equation input-equation="Q(sqrt(2))(x,theta);" style="2D Comment">NiMtLSUiUUc2Iy0lJXNxcnRHNiMiIiM2JCUieEclJnRoZXRhRw==</Equation> where <Equation input-equation="theta = exp(x^2);" style="2D Comment">NiMvJSZ0aGV0YUctJSRleHBHNiMqJCUieEciIiM=</Equation> .</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">A resultant computation (Rothstein-Trager Theorem) is applicable.</Text-field><Text-field layout="Normal" style="Normal">Keep in mind that  <Equation input-equation="theta = exp(u);" style="2D Comment">NiMvJSZ0aGV0YUctJSRleHBHNiMlInVH</Equation>  where  <Equation input-equation="u = x^2;" style="2D Comment">NiMvJSJ1RyokJSJ4RyIiIw==</Equation> .</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">u := x^2:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">A := x*theta^2 + 8*sqrt(2)*x*(theta+1) + 2*x:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">B := theta^3 + theta^2 + 2*theta + 2:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">diff_B := subs(exp(u)=theta, diff(subs(theta=exp(u), B), x));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">R := resultant(A - z*diff_B, B, theta);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">solve(R=0, z);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle346" underline="false">distinct</Font> roots of <Equation input-equation="R(z)" style="2D Comment">NiMtJSJSRzYjJSJ6Rw==</Equation> are  <Equation input-equation="z = -1/2;" style="2D Comment">NiMvJSJ6RywkKiYiIiJGJyIiIyEiIkYp</Equation>  and  <Equation input-equation="z = -sqrt(2);" style="2D Comment">NiMvJSJ6RywkLSUlc3FydEc2IyIiIyEiIg==</Equation>  and the integral is elementary.  Specifically,</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">c[1] := -1/2:  c[2] := -sqrt(2):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">v[1] := gcd(A - c[1]*diff_B, B);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">v[2] := gcd(A - c[2]*diff_B, B);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The function <Equation input-equation="g;" style="2D Comment">NiMlImdH</Equation> appearing in Theorem 6 is</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">g := add(-c[i]*degree(v[i],theta), i=1..2) * u;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">and the desired integral is</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">result := g + add(c[i]*ln(v[i]), i=1..2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">In other words,</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(f,x) = subs(theta=exp(u), result);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Polynomial Part (exp extension)</Text-field></Title><Text-field layout="Normal" style="Normal">For the integration of the "polynomial part", the integrand is of the form  <Equation input-equation="p(theta) = Sum(A[j]*theta^j,j = -k .. l);" style="2D Comment">NiMvLSUicEc2IyUmdGhldGFHLSUkU3VtRzYkKiYmJSJBRzYjJSJqRyIiIilGJ0YvRjAvRi87LCQlImtHISIiJSJsRw==</Equation>  with  <Equation input-equation="A[j];" style="2D Comment">NiMmJSJBRzYjJSJqRw==</Equation>  in  <Equation input-equation="F[n-1];" style="2D Comment">NiMmJSJGRzYjLCYlIm5HIiIiRighIiI=</Equation> , where  <Equation input-equation="theta = exp(u);" style="2D Comment">NiMvJSZ0aGV0YUctJSRleHBHNiMlInVH</Equation>  is an exponential extension.  We can conclude that</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="Int(p(theta),x) = Sum(B[j]*theta^j,j = -k .. l)+Sum(c[i]*log(v[i]),i = 1 .. m);" style="2D Comment">NiMvLSUkSW50RzYkLSUicEc2IyUmdGhldGFHJSJ4RywmLSUkU3VtRzYkKiYmJSJCRzYjJSJqRyIiIilGKkY0RjUvRjQ7LCQlImtHISIiJSJsR0Y1LUYuNiQqJiYlImNHNiMlImlHRjUtJSRsb2dHNiMmJSJ2R0ZCRjUvRkM7RjUlIm1HRjU=</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Note that the latter summation indicates that some new log extensions may arise.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Differentiating and equating coefficients of powers of the transcendental symbol <Equation input-equation="theta;" style="2D Comment">NiMlJnRoZXRhRw==</Equation> , we get:</Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="A[j] = B[j]^`'`+j*u^`'`*B[j];" style="2D Comment">NiMvJiUiQUc2IyUiakcsJikmJSJCR0YmJSInRyIiIiooRidGLSklInVHRixGLUYqRi1GLQ==</Equation>  ,   for <Equation input-equation="j &lt;&gt; 0;" style="2D Comment">NiMwJSJqRyIiIQ==</Equation></Text-field><Text-field layout="Normal" style="Normal">          <Equation input-equation="A[0] = (B[0]^`*`)^`'`;" style="2D Comment">NiMvJiUiQUc2IyIiISkpJiUiQkdGJiUiKkclIidH</Equation></Text-field><Text-field layout="Normal" style="Normal">where  <Equation input-equation="B[0]^`*` = B[0]+Sum(c[i]*log(v[i]),i = 1 .. m);" style="2D Comment">NiMvKSYlIkJHNiMiIiElIipHLCZGJSIiIi0lJFN1bUc2JComJiUiY0c2IyUiaUdGKy0lJGxvZ0c2IyYlInZHRjJGKy9GMztGKyUibUdGKw==</Equation> .</Text-field><Text-field layout="Normal" style="Normal">Solving the latter equation for  <Equation input-equation="B[0]^`*`;" style="2D Comment">NiMpJiUiQkc2IyIiISUiKkc=</Equation>  requires a recursive integration:  <Equation input-equation="B[0]^`*` = Int(A[0],x);" style="2D Comment">NiMvKSYlIkJHNiMiIiElIipHLSUkSW50RzYkJiUiQUdGJyUieEc=</Equation>  where the integrand lies in the field  <Equation input-equation="F[n-1];" style="2D Comment">NiMmJSJGRzYjLCYlIm5HIiIiRighIiI=</Equation> .  For the general case,  <Equation input-equation="j &lt;&gt; 0;" style="2D Comment">NiMwJSJqRyIiIQ==</Equation> , the equation to be solved for  <Equation input-equation="B[j];" style="2D Comment">NiMmJSJCRzYjJSJqRw==</Equation>  is known as a <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle347" underline="false">Risch differential equation</Font>.  This may sound like a backwards step to have reduced an integration problem to the solution of a differential equation!  However, the problem can be solved because we must look for a solution in the field  <Equation input-equation="F[n-1];" style="2D Comment">NiMmJSJGRzYjLCYlIm5HIiIiRighIiI=</Equation>  only.  Nonetheless, this is a difficult problem, in general, for which a complete solution was presented in [Bronstein90a].  See also [Bronstein97].</Text-field><Text-field layout="Normal" style="Normal"/></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 1.14</Text-field></Title><Text-field layout="Normal" style="Normal">The integral</Text-field><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(exp(-x^2), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">has integrand  <Equation input-equation="f(theta) = theta;" style="2D Comment">NiMvLSUiZkc2IyUmdGhldGFHRic=</Equation>  in the function field <Equation input-equation="Q(x,theta);" style="2D Comment">NiMtJSJRRzYkJSJ4RyUmdGhldGFH</Equation> where <Equation input-equation="theta = exp(-x^2);" style="2D Comment">NiMvJSZ0aGV0YUctJSRleHBHNiMsJCokJSJ4RyIiIyEiIg==</Equation> .</Text-field><Text-field layout="Normal" style="Normal">The solution must take the form  <Equation input-equation="Int(theta,x) = B[1]*theta;" style="2D Comment">NiMvLSUkSW50RzYkJSZ0aGV0YUclInhHKiYmJSJCRzYjIiIiRi1GJ0Yt</Equation>  where <Equation input-equation="B[1];" style="2D Comment">NiMmJSJCRzYjIiIi</Equation> in <Equation input-equation="Q(x);" style="2D Comment">NiMtJSJRRzYjJSJ4Rw==</Equation> is a solution of the Risch differential equation  <Equation input-equation="B[1]^`'`-2*x*B[1] = 1" style="2D Comment">NiMvLCYpJiUiQkc2IyIiIiUiJ0dGKSooIiIjRiklInhHRilGJkYpISIiRik=</Equation> .</Text-field><Text-field layout="Normal" style="Normal">Since <Equation input-equation="B[1];" style="2D Comment">NiMmJSJCRzYjIiIi</Equation> must be a rational function in <Equation input-equation="x;" style="2D Comment">NiMlInhH</Equation> , one first argues that it must be a polynomial in <Equation input-equation="x;" style="2D Comment">NiMlInhH</Equation> . This follows because if  <Equation input-equation="B[1];" style="2D Comment">NiMmJSJCRzYjIiIi</Equation> had a nontrivial denominator then <Equation input-equation="B[1]^`'`;" style="2D Comment">NiMpJiUiQkc2IyIiIiUiJ0c=</Equation>  would have a higher-degree denominator and these denominators could not cancel out to correspond to the right hand side of the differential equation which is the constant 1 .  So assume that  <Equation input-equation="B[1];" style="2D Comment">NiMmJSJCRzYjIiIi</Equation>  is a nonzero polynomial in <Equation input-equation="x;" style="2D Comment">NiMlInhH</Equation> with  <Equation input-equation="deg(B[1]) = n;" style="2D Comment">NiMvLSUkZGVnRzYjJiUiQkc2IyIiIiUibkc=</Equation>  where  <Equation input-equation="0 &lt;= n;" style="2D Comment">NiMxIiIhJSJuRw==</Equation> .  But then taking the degree of each side of the differential equation, we get  <Equation input-equation="n+1 = 0;" style="2D Comment">NiMvLCYlIm5HIiIiRiZGJiIiIQ==</Equation>  which is a contradiction.  Hence the given Risch differential equation has no solution in the field  <Equation input-equation="Q(x);" style="2D Comment">NiMtJSJRRzYjJSJ4Rw==</Equation>  from which we conclude that the original integral is <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle350" underline="false">not elementary</Font>.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section></Section><Section><Title><Text-field layout="Heading 2" style="Heading 2">Comments on algebraic and mixed extensions</Text-field></Title><Text-field layout="Normal" style="Normal">In the algorithm presented above we considered only <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle310" underline="false">transcendental</Font> elementary functions. The Risch algorithm for elementary functions also deals with algebraic extensions. For example, if the integral to be computed is  <Equation input-equation="Int(x*exp(sqrt(x^2+2))/sqrt(x^2+2),x);" style="2D Comment">NiMtJSRJbnRHNiQqKCUieEciIiItJSRleHBHNiMtJSVzcXJ0RzYjLCYqJEYnIiIjRihGMUYoRihGLCEiIkYn</Equation>  then the integrand lies in the elementary function field  <Equation input-equation="Q(x,theta[1],theta[2]);" style="2D Comment">NiMtJSJRRzYlJSJ4RyYlJnRoZXRhRzYjIiIiJkYoNiMiIiM=</Equation>  where  <Equation input-equation="theta[1] = sqrt(x^2+2);" style="2D Comment">NiMvJiUmdGhldGFHNiMiIiItJSVzcXJ0RzYjLCYqJCUieEciIiNGJ0YuRic=</Equation>  is an algebraic extension of <Equation input-equation="Q(x);" style="2D Comment">NiMtJSJRRzYjJSJ4Rw==</Equation> and  <Equation input-equation="theta[2] = exp(theta[1]);" style="2D Comment">NiMvJiUmdGhldGFHNiMiIiMtJSRleHBHNiMmRiU2IyIiIg==</Equation>  is a transcendental extension of <Equation input-equation="Q(x,theta[1]);" style="2D Comment">NiMtJSJRRzYkJSJ4RyYlJnRoZXRhRzYjIiIi</Equation> . The Risch algorithm proceeds generally in the same manner as discussed above except that there are some different technical details (some of them involving concepts from advanced algebra) for algebraic extensions in the most general case. Some references which discuss the integration of elementary functions for the case of algebraic extensions, and mixed transcendental and algebraic extensions, are [Trager84] and [Bronstein90b].</Text-field><Text-field layout="Normal" style="Normal"/></Section><Section><Title><Text-field layout="Heading 2" style="Heading 2">Comments on non-elementary extensions</Text-field></Title><Text-field layout="Normal" style="Normal">The power of the Risch algorithm to determine conclusively whether or not a given elementary function has an elementary antiderivative is impressive, in principle. However in most practical problems where the operation of integration arises, it is quite unsatisfactory to receive as a result: "the integral cannot be expressed in elementary terms". For example, the Risch algorithm proves that  <Equation input-equation="Int(exp(-x^2),x);" style="2D Comment">NiMtJSRJbnRHNiQtJSRleHBHNiMsJCokJSJ4RyIiIyEiIkYr</Equation>  cannot be expressed as an elementary function (see Example 1.14) but in a larger function field the integral can be expressed:</Text-field><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(exp(-x^2), x) = int(exp(-x^2), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">where a special function, the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle327" underline="false">error function</Font>, arises. Another case is the following integral which in Example 1.12 was proved to be non-elementary:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(ln(ln(x)), x) = int(ln(ln(x)), x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">where another special function, the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle326" underline="false">exponential integral</Font>, arises.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">It would be ideal if we could extend the elementary function field by an arbitrary number of <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle328" underline="false">special functions</Font>, as new transcendental extensions, and have a corresponding extended Risch algorithm as a decision procedure for the extended field. At the present time, decision procedures have not been developed for integration in function fields containing many of the commonly-used special functions. However, decision procedures have been developed for some special functions. Early work in this regard is reported in [Cherry85], [Cherry86] where decision procedures are developed for the error function and the logarithmic integral. Additional examples of integrals which can be computed in this context are the following two integrals.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" style="2D Comment"><Equation input-equation="Int((3*x^6+1)*exp(-ln(x)^2)/(x^5),x) = exp(4)*sqrt(Pi)*erf(ln(x)+2)/2+3*exp(1)*sqrt(Pi)*erf(ln(x)-1)/2;" style="2D Comment">NiMvLSUkSW50RzYkKigsJiomIiIkIiIiKiQlInhHIiInRitGK0YrRitGKy0lJGV4cEc2IywkKiQtJSNsbkc2I0YtIiIjISIiRisqJEYtIiImRjhGLSwmKiotRjA2IyIiJUYrLSUlc3FydEc2IyUjUGlHRistJSRlcmZHNiMsJkY0RitGN0YrRitGN0Y4RisqLEYqRistRjA2I0YrRitGQEYrLUZFNiMsJkY0RitGK0Y4RitGN0Y4Ris=</Equation></Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" style="2D Comment"><Equation input-equation="Int(x^3/ln(x^2-1),x) = -Ei(1,-ln(x^2-1))/2-Ei(1,-2*ln(x^2-1))/2;" style="2D Comment">NiMvLSUkSW50RzYkKiYlInhHIiIkLSUjbG5HNiMsJiokRigiIiMiIiJGMCEiIkYxRigsJiomLSUjRWlHNiRGMCwkRipGMUYwRi9GMUYxKiYtRjU2JEYwLCQqJkYvRjBGKkYwRjFGMEYvRjFGMQ==</Equation></Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">See [Bronstein97] for a presentation of the state-of-the-art of integration algorithms for transcendental functions.</Text-field></Input></Group></Section></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">Symbolic Solution of Definite Integrals</Text-field></Title><Section><Title><Text-field layout="Heading 2" style="Heading 2">Fundamental Theorem of Calculus: practical issues</Text-field></Title><Text-field layout="Normal" style="Normal">We turn now to the problem of computing a definite integral in closed form.  The first concept is that if we are able to express the indefinite integral (antiderivative) then the Fundamental Theorem of Calculus can be applied (<Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle329" underline="false">under appropriate conditions</Font>) to compute the value of the definite integral. In it simplest form, if <Equation input-equation="f(x);" style="2D Comment">NiMtJSJmRzYjJSJ4Rw==</Equation> has antiderivative <Equation input-equation="F(x);" style="2D Comment">NiMtJSJGRzYjJSJ4Rw==</Equation> then  <Equation input-equation="Int(f(x),x = a .. b) = F(b)-F(a);" style="2D Comment">NiMvLSUkSW50RzYkLSUiZkc2IyUieEcvRio7JSJhRyUiYkcsJi0lIkZHNiNGLiIiIi1GMTYjRi0hIiI=</Equation> .</Text-field><Text-field layout="Normal" style="Normal">The first problem we encounter with this formula for the value of the definite integral is that it may not be possible to evaluate directly <Equation input-equation="F(a);" style="2D Comment">NiMtJSJGRzYjJSJhRw==</Equation> or <Equation input-equation="F(b);" style="2D Comment">NiMtJSJGRzYjJSJiRw==</Equation>, but rather it is the limit (an appropriate one-sided limit) which must be computed at each endpoint. Specifically, the formula becomes (suppose that <Equation input-equation="a &lt; b;" style="2D Comment">NiMyJSJhRyUiYkc=</Equation> ) :</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="Int(f(x),x = a .. b) = limit(F(x),x = b,left)-limit(F(x),x = a,right);" style="2D Comment">NiMvLSUkSW50RzYkLSUiZkc2IyUieEcvRio7JSJhRyUiYkcsJi0lJmxpbWl0RzYlLSUiRkdGKS9GKkYuJSVsZWZ0RyIiIi1GMTYlRjMvRipGLSUmcmlnaHRHISIi</Equation>  .</Text-field><Text-field layout="Normal" style="Normal"/><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 2.1</Text-field></Title><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">restart;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">f := ln(x):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">We wish to compute the definite integral</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(f, x=0..2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">We can compute the antiderivative</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">F := int(f, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">but direct evaluation of the antiderivative at <Equation input-equation="x = 0;" style="2D Comment">NiMvJSJ4RyIiIQ==</Equation> encounters a logarithmic singularity. However, by taking limits we can compute the result as follows.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">limit(F, x=2, left) - limit(F, x=0, right);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Of course, the integration procedure in Maple will do this computation automatically.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">int(f, x=0..2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">We see that the computation of definite integrals requires the ability to compute limits. In general, computing limits is a nontrivial task. Fortunately, very powerful algorithms are now known for computing limits based on the expansion of functions in <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle330" underline="false">generalized series</Font>. Once we have expressed a function in a generalized series expansion then the limit can be determined from the leading term of the expansion.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 2.2</Text-field></Title><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">g := sin(x)/x;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">series(g, x=0);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">From the series expansion it is clear what is the limit at <Equation input-equation="x = 0;" style="2D Comment">NiMvJSJ4RyIiIQ==</Equation> .</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Limit(g, x=0) = limit(g, x=0);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Another example:</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">g := x^x;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">series(g, x=0, 3);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Limit(g, x=0) = limit(g, x=0);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">And another example:</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">g := ln(1-cos(x^2))/(ln(x)*arctan(sqrt(1-x^2)));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">series(g, x=0, 4);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Limit(g, x=0) = limit(g, x=0);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">The computation of generalized series expansions, and the computation of limits, requires very sophisticated techniques in the most general case. Some work on this problem was reported in [GeddesGonnet89]. More recent work which develops the theoretical foundation and presents practical algorithms can be found in [Salvy91], [Salvy92], [Richardson96].</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">A difficult  problem which arises in the computation of definite integrals is that the Fundamental Theorem of Calculus can be applied in the manner discussed above only if the integrand <Equation input-equation="f(x);" style="2D Comment">NiMtJSJmRzYjJSJ4Rw==</Equation> and its antiderivative <Equation input-equation="F(x);" style="2D Comment">NiMtJSJGRzYjJSJ4Rw==</Equation> are <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle331" underline="false">continuous</Font> on the interval <Equation input-equation="``(a,b);" style="2D Comment">NiMtJSFHNiQlImFHJSJiRw==</Equation> . Since the form of antiderivative computed by the Risch integration algorithm can contain logarithmic functions, without special care the condition of continuity may be violated as discussed in [Bronstein97]. See also [Jeffrey93], [Jeffrey97] on the problem of computing continuous antiderivatives.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 2.3</Text-field></Title><Text-field layout="Normal" style="Normal">The following example is discussed in [Bronstein97]. Suppose that the integral to be computed is</Text-field><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">f := (x^4-3*x^2+6)/(x^6-5*x^4+5*x^2+4):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(f, x=1..2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">It can be verified that the integrand is continuous and positive on the real line, and hence the value of the definite integral must be a positive real number. Applying the integration algorithm in the form discussed in this presentation, the indefinite integral gets expressed in the following form.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">F := I/2*ln(x^3+I*x^2-3*x-2*I) - I/2*ln(x^3-I*x^2-3*x+2*I);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">That is,</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(f, x) = F;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">It can easily be verified that the derivative of  <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation>  is the integrand  <Equation input-equation="f;" style="2D Comment">NiMlImZH</Equation>  and therefore this is a correct <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle332" underline="false">formal</Font> antiderivative. However, the differential algebra point of view used in developing the integration algorithm takes no account of the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle333" underline="false">analytic</Font> concept of branch cuts of logarithmic functions. In this particular example, if we blindly apply the Fundamental Theorem of Calculus we get the following incorrect result for the definite integral.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(f, x=1..2) = limit(F, x=2, left) - limit(F, x=1, right);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">evalf(rhs(%));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">This has yielded a value for the integral which is real, but negative, whereas we know that the correct answer must be positive. The presentation in [Bronstein97] shows how to ensure that the integration algorithm computes a <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle334" underline="false">continuous</Font> antiderivative for this type of problem. In this case, a continuous antiderivative is</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">F_continuous := arctan((x^5 - 3*x^3 + x)/2) + arctan(x^3) + arctan(x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">By differentiating, we see that this is a correct antiderivative of the original integrand <Equation input-equation="f;" style="2D Comment">NiMlImZH</Equation> .</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">simplify( diff(F_continuous, x) );</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">This time, direct application of the Fundamental Theorem of Calculus is valid and we obtain the following result for the definite integral.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(f, x=1..2) = limit(F_continuous, x=2, left) - limit(F_continuous, x=1, right);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">evalf(rhs(%));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">A general technique which can be applied when the antiderivative is not guaranteed to be continuous is to find the points of discontinuity of the antiderivative and then to express the integral separately on each subinterval where it is continuous. By computing the appropriate one-sided limits on each subinterval, the correct definite integral is obtained.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 2.4</Text-field></Title><Text-field layout="Normal" style="Normal">In Example 2.3 we had the following discontinuous antiderivative.</Text-field><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(f, x) = F;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">In Maple, the following command will determine the points of discontinuity over the whole real line.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">discont(F, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">allvalues(%);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">The above notation is expressing the fact that there are two points of discontinuity which are the two roots of a quadratic polynomial. Since we are interested in the definite integral over the interval <Equation input-equation="``(1,2);" style="2D Comment">NiMtJSFHNiQiIiIiIiM=</Equation> there is just one relevant point of discontinuity:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">c := sqrt(2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">and the endpoints of integration are</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">a := 1;  b := 2;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">The correct value of the definite integral on <Equation input-equation="``(a,b);" style="2D Comment">NiMtJSFHNiQlImFHJSJiRw==</Equation> can therefore be computed by using the fact that</Text-field><Text-field layout="Normal" style="2D Comment"><Equation input-equation="Int(f(x),x = a .. b) = Int(f(x),x = a .. c)+Int(f(x),x = c .. b);" style="2D Comment">NiMvLSUkSW50RzYkLSUiZkc2IyUieEcvRio7JSJhRyUiYkcsJi1GJTYkRicvRio7Ri0lImNHIiIiLUYlNiRGJy9GKjtGNEYuRjU=</Equation></Text-field><Text-field layout="Normal" style="Normal">and noting that the antiderivative  <Equation input-equation="F;" style="2D Comment">NiMlIkZH</Equation>  is continuous on each of the two subintervals.</Text-field><Text-field layout="Normal" style="Normal">This leads to the following limit computations for the definite integral.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(f, x=a..b) = limit(F, x=c, left) - limit(F, x=a, right) +
                 limit(F, x=b, left) - limit(F, x=c, right);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">evalf(rhs(%));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Methods for Special Functions: Generalized hypergeometric function and Meijer G function</Text-field></Title><Text-field layout="Normal" style="Normal">Many non-elementary functions appear in the literature of the mathematical sciences, with names such as Bessel functions, Legendre functions, exponential integrals, elliptic integrals, et cetera. The list of such <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle335" underline="false">special functions</Font> is quite long. For classes of functions where we have no Risch-like algorithm to compute the indefinite integral, how can we compute integrals that involve such functions which arise in practical problems (assuming that we wish to obtain a closed-form symbolic result if possible)?</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Various special formulas can be programmed into a computer algebra system for integrals which appear in the literature. A particular approach discussed in [Geddes90] derives classes of integral formulas by applying differentiation to the integral definition of various special functions. A more general technique which is capable of obtaining results for a large number of integrals, most often definite integrals on the interval <Equation input-equation="``(0,infinity);" style="2D Comment">NiMtJSFHNiQiIiElKWluZmluaXR5Rw==</Equation> , is to convert the integrand into one of the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle336" underline="false">higher functions</Font>: the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle337" underline="false">generalized hypergeometric function</Font> or the <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle338" underline="false">Meijer G</Font> function. We do not have space here to go into details about these functions or about this approach to computing integrals, but we show some examples to illustrate the concept.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">The generalized hypergeometric function and the Meijer G function are discussed in [PBM90]. The same series of books presents a large number of integral formulas involving special functions which computer algebra systems should know how to compute. At the present time, computer algebra systems cannot compute many of the integrals found in these books.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">The general approach being illustrated here to compute a special class of integrals is as follows.</Text-field><Text-field layout="Bullet Item" style="Bullet Item">Convert the integrand to a representation in terms of Meijer G functions.</Text-field><Text-field layout="Bullet Item" style="Bullet Item">Apply a formula to express the integral in terms of higher functions.</Text-field><Text-field layout="Bullet Item" style="Bullet Item">Convert the result from a representation in terms of higher functions to a representation in terms of more standard functions (if possible).</Text-field><Text-field layout="Normal" style="Normal">Note that for definite integrals on <Equation input-equation="``(0,infinity);" style="2D Comment">NiMtJSFHNiQiIiElKWluZmluaXR5Rw==</Equation>  where the integrand involves a product of Meijer G functions, various formulas are available to express the integral. For the problem of converting from a representation in terms of higher functions to a representation in terms of more standard functions (elementary functions and special functions), see [Roach96], [Roach97].</Text-field><Text-field layout="Normal" style="Normal"/><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 2.5</Text-field></Title><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">restart;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">f1 := x^(s-1)*exp(-p*x^4)*erfi(c*x)*erf(c*x):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(f1, x=0..infinity);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">result1 := value(%);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">The method used was first to convert the integrand into <Equation input-equation="MeijerG;" style="2D Comment">NiMlKE1laWplckdH</Equation> form.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">f1new := convert(f1, MeijerG, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Now when we apply the <Equation input-equation="int;" style="2D Comment">NiMlJGludEc=</Equation> command, it uses a known formula to express such a definite integral involving the product of two <Equation input-equation="MeijerG;" style="2D Comment">NiMlKE1laWplckdH</Equation> functions.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">int(f1new, x=0..infinity);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">which is equal to <Equation input-equation="result1;" style="2D Comment">NiMlKHJlc3VsdDFH</Equation> .</Text-field><Text-field layout="Normal" style="Normal">Of course, for particular values of the parameters we may compute a numerical value.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eval(result1, {s=4, p=1, c=1});</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">evalf(%);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section><Title><Text-field layout="Heading 3" style="Heading 3">Example 2.6</Text-field></Title><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">f2 := x^v/(x^2+z^2)*BesselK(v,b*x):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Int(f2, x=0..infinity);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">value(%);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Note that the result of converting the integrand into <Equation input-equation="MeijerG;" style="2D Comment">NiMlKE1laWplckdH</Equation> form is as follows.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">convert(f2, MeijerG, x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Research work is continuing with the goal of bringing the knowledge about integral formulas known in the mathematical literature, into computer algebra systems. We anticipate that a large class of integrals appearing in the book [PBM90], for example, can be computed by the approach discussed above;  namely, conversion of the integrand to a Meijer G function representation followed by application of general formulas for the integration of products of Meijer G functions.</Text-field><Text-field layout="Normal" style="Normal"/></Section></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">References</Text-field></Title><Text-field layout="Normal" style="Normal">[Bronstein90a]  M. Bronstein, The transcendental Risch differential equation. <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle307" underline="false">Journal of Symbolic Computation</Font> <Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle308" underline="false">9</Font>, 1990, pp. 49-60.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[Bronstein90b]  M. Bronstein, On the integration of elementary functions. <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle348" underline="false">Journal of Symbolic Computation</Font> <Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle349" underline="false">9</Font>, 1990, pp. 117-173.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[Bronstein97]  M. Bronstein, <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle306" underline="false">Symbolic Integration I: Transcendental Functions</Font>. Springer-Verlag, Berlin, 1997.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[Cherry85]  G. Cherry, Integration in Finite Terms with Special Functions: the Error Function. <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle302" underline="false">Journal of Symbolic Computation</Font><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle303" underline="false"> 1</Font>, 1985, pp. 283-302.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[Cherry86]  G. Cherry, Integration in Finite Terms with Special Functions: the Logarithmic Integral. <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle304" underline="false">SIAM Journal on Computing</Font><Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle305" underline="false"> 15</Font>, 1986, pp. 1-21.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[Geddes90]  K.O. Geddes, M.L. Glasser, R.A. Moore and T.C. Scott, Evaluation of classes of definite integrals involving elementary functions via differentiation of special functions. <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle354" underline="false">Applicable Algebra in Engineering, Communication and Computing</Font> <Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle355" underline="false">1</Font> (<Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle356" underline="false">2</Font>), 1990, pp. 149-165.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[Geddes92]  K.O. Geddes, S.R. Czapor and G. Labahn, <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle301" underline="false">Algorithms for Computer Algebra</Font>. Kluwer Academic Publishers, Boston, 1992.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[GeddesGonnet89]  K.O. Geddes and G.H. Gonnet, A new algorithm for computing symbolic limits using hierarchical series. Appears in <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle311" underline="false">Symbolic and Algebraic Computation</Font>, P. Gianni (ed.), Lecture Notes in Computer Science, No. <Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle312" underline="false">358</Font>, Springer-Verlag, Berlin, 1989, pp. 490-495.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[Jeffrey93]  D.J. Jeffrey, Integration to obtain expressions valid on domains of maximum extent. <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle351" underline="false">Proceedings of ISSAC'93</Font>, M. Bronstein (ed.), ACM Press, New York, 1993, pp. 34-41.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[Jeffrey97]  D.J. Jeffrey, Rectifying transformations for the integration of rational trigonometric functions. <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle352" underline="false">Journal of Symbolic Computation</Font> <Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle353" underline="false">24</Font>, 1997, pp. 563-573.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[PBM90]  A.P. Prudnikov, Y. Brychkov and O. Marichev, <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle320" underline="false">Integrals and Series,</Font> <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle321" underline="false">Volume 3:</Font> <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle322" underline="false">More Special Functions</Font>. Gordon and Breach Science Publishers, 1990.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[Richardson96]  D. Richardson, B. Salvy, J. Shackell and J. Van derHoeven, Asymptotic expansions of exp-log functions. <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle313" underline="false">Proceedings of ISSAC'96</Font>, Y.N. Lakshman (ed.), ACM Press, New York, 1996, pp. 309-313.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[Roach96]  K.B. Roach, Hypergeometric Function Representations. <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle323" underline="false">Proceedings of ISSAC '96</Font>, Y.N. Lakshman (ed.), ACM Press, New York, 1996, pp 301-308.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[Roach97]  K.B. Roach, Meijer G Function Representations. <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle324" underline="false">Proceedings of ISSAC '97</Font>, W.W. Kuechlin (ed.), ACM Press, New York, 1997, pp. 205-211.
</Text-field><Text-field layout="Normal" style="Normal">[Salvy91]  B. Salvy, Examples of automatic asymptotic expansions. <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle317" underline="false">SIGSAM Bulletin</Font> <Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle318" underline="false">25</Font> (<Font executable="false" family="Serif" foreground="[0,0,0]" italic="false" size="12" style="_cstyle319" underline="false">2</Font>), 1991, pp. 4-17.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[Salvy92]  B. Salvy, General asymptotic scales and computer algebra. Appears in <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle314" underline="false">Asymptotic and Numerical Methods</Font> <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle315" underline="false">for Partial Differential Equations</Font>, <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle316" underline="false">Critical Parameters and Domain Decomposition</Font>, H. Kaper and M. Garbey (ed.), Kluwer Academic Publishers, 1992, pp. 255-266.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">[Trager84]  B.M. Trager, <Font bold="false" executable="false" family="Serif" foreground="[0,0,0]" size="12" style="_cstyle309" underline="false">On the integration of algebraic functions</Font>. Ph.D. Thesis, Computer Science, MIT, 1984.</Text-field><Text-field layout="Normal" style="Normal"/></Section><Text-field/><Text-field/></Worksheet>