home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / e / e031 / 3.ddi / MATHZIP2 / STARTUP / INTEGRAT / INPUTRUL.M next >
Encoding:
Text File  |  1991-09-19  |  13.1 KB  |  386 lines

  1.  
  2. (*************************************************************************
  3. *
  4. *                 Mellin Transformations of Elementary Functions
  5. *
  6. *************************************************************************)
  7.  
  8. LogRule1 = {
  9.  Log[ x_]^n_. :>
  10.    n! MeijerG[ Table[1,{i,n+1}],{},{},Table[0,{i,n+1}],{1,x} ] 
  11.        }
  12.  
  13. LogRule2 = {
  14.  Log[ x_]^n_. :>
  15.    (-1)^n n! MeijerG[ {},Table[1,{i,n+1}],Table[0,{i,n+1}],{},{1,x} ]
  16.         }
  17.  
  18. InputTrig = {
  19.  Sin[x_] :>
  20.     Sign[x] Pi^(1/2) MeijerG[ {1/2},{},{1/2},{1/2,0},{2,x^2/4} ],
  21.  Cos[x_] :>
  22.     Pi^(1/2) MeijerG[ {0},{},{0},{0,1/2},{2,x^2/4} ]
  23.             }
  24.  
  25. InputInvTrig = {
  26.  Cos[v_ ArcCos[x_]] (1-y_)^a_ :>  (1-y)^(a+1/2)*
  27.    Sqrt[Pi] MeijerG[ {},{1/2+v/2,1/2-v/2},{0,1/2},{},{2,x^2} ]/;x^2===y,
  28.  Sin[v_ ArcCos[x_]] :>
  29.    Sqrt[Pi] v/2 MeijerG[ {},{1+v/2,1-v/2},{0,1/2},{},{2,x^2} ]
  30.           }
  31.  
  32. InputExp = {
  33.  Exp[x_] :>
  34.     MeijerG[ {},{},{0},{}, {1,-x} ]
  35.       }
  36.  
  37.  ListElem = {Sin,Cos,ArcSin,ArcCos,ArcTan,ArcCot,Log,Exp,E,HeavySide1,Power}
  38.  
  39. InputElem = {
  40.  HeavySide1[a_.-x_,x_] :>
  41.    MeijerG[ {},{1},{0},{},{1,x/a} ]/;FreeQ[a,x],
  42.  HeavySide1[x_-a_.,x_ ] :>
  43.    MeijerG[ {1},{},{},{0},{1,x/a} ]/;FreeQ[a,x],
  44.  (1 + x_)^n_ :>
  45.    MeijerG[ {n+1},{},{0},{},{1,x} ]/Gamma[-n]/;Not[Znak[x]]&&
  46.  (Not[NumberQ[N[n]]] || n < 0),
  47.  Log[(1+x_)/(1-y_)] :>
  48.    Pi MeijerG[ {1/2},{1},{1/2},{0},{2,x^2} ]/;Expand[x-y]===0,
  49.  Log[(1+x_)/(-1+y_)] :>
  50.    Pi MeijerG[ {1/2},{1},{1/2},{0},{2,x^2} ]/;Expand[x-y]===0,
  51.  Log[1+n_ x_] :>
  52.    Pi MeijerG[ {1,1},{1/2},{1},{0,1/2}, {1,-n x} ]/;Znak[n],
  53.  Log[Abs[1+n_ x_]] :>
  54.    Pi MeijerG[ {1,1},{1/2},{1},{0,1/2}, {1,-n x} ]/;Znak[n],
  55.  Log[Abs[-1+x_]] :>
  56.    Pi MeijerG[ {1,1},{1/2},{1},{0,1/2}, {1,x} ],
  57.  Log[1+ x_] :>
  58.    MeijerG[ {1,1},{},{1},{0}, {1,x} ],
  59.  Sin[x_ + a_. Pi] :>
  60.     Pi^(1/2) MeijerG[ {},{a},{0,1/2},{a},{2,x^2/4} ]/; FreeQ[a,x],
  61.  Sin[x_]^2 :>
  62.     2^(-1) Pi^(1/2) MeijerG[ {1},{},{1},{0,1/2},{2,x^2} ],
  63.  Sin[x_] - y_ :>
  64.     -Pi^(1/2) MeijerG[ {3/2},{},{3/2},{0,1/2},{2,x^2/4} ] /;Expand[x-y] == 0,
  65.  y_ - Sin[x_] :>
  66.     Pi^(1/2) MeijerG[ {3/2},{},{3/2},{0,1/2},{2,x^2/4} ] /;Expand[x-y] == 0,
  67.  Sin[x_] :>
  68.     Sign[PowerExpand[x]] Pi^(1/2) MeijerG[ {1/2},{},{1/2},{1/2,0},{2,x^2/4} ],
  69.  Cos[x_] - 1 :>
  70.     -Pi^(1/2) MeijerG[ {1},{},{1},{0,1/2},{2,x^2/4} ],
  71.  1 - Cos[x_] :>
  72.     Pi^(1/2) MeijerG[ {1},{},{1},{0,1/2},{2,x^2/4} ],
  73.  Cos[x_ + a_. Pi] :>
  74.     Pi^(1/2) MeijerG[ {},{a+1/2},{0,1/2},{a+1/2},{2,x^2/4}]/; FreeQ[a,x],
  75.  Cos[x_]^2 - 1:>
  76.     -2^(-1) Pi^(1/2) MeijerG[ {1},{},{1},{0,1/2},{2,x^2} ],
  77.  1 - Cos[x_]^2 :>
  78.     2^(-1) Pi^(1/2) MeijerG[ {1},{},{1},{0,1/2},{2,x^2} ],
  79.  Cos[x_]^2 :>
  80.     1/2 + Pi^(1/2) MeijerG[ {0},{},{0},{0,1/2},{2,x^2} ]/2,
  81.  Cos[x_] :>
  82.     Pi^(1/2) MeijerG[ {0},{},{0},{0,1/2},{2,x^2/4} ],
  83.  Exp[x_] - 1 :>
  84.    -MeijerG[ {1},{},{1},{0},{1,-x} ],
  85.  1 - Exp[x_] :>
  86.    MeijerG[ {1},{},{1},{0},{1,-x} ],
  87.  Exp[x_] :>
  88.     MeijerG[ {},{},{0},{}, {1,-x} ],
  89.  HeavySide1[a_.-x_,x_] ArcSin[x_] :>
  90.    Pi MeijerG[ {},{1},{0},{},{2,x^2} ]/2 -
  91.    Sqrt[Pi] MeijerG[ {},{1,1},{0,1/2},{},{2,x^2} ]/2/;FreeQ[a,x],
  92.  ArcSin[x_] :>
  93.    Pi/2 -
  94.    Sqrt[Pi] MeijerG[ {},{1,1},{0,1/2},{},{2,x^2} ]/2,
  95.  ArcCos[x_] :>
  96.    Sqrt[Pi] MeijerG[ {},{1,1},{0,1/2},{},{2,x^2} ]/2,
  97.  ArcTan[x_] :>
  98.    MeijerG[ {1/2,1},{},{1/2},{0},{2,x^2} ]/2,
  99.  ArcCot[x_] :>
  100.    MeijerG[ {1/2,1},{},{1/2},{0},{2,x^(-2)} ]/2
  101.    }
  102.  
  103. (*************************************************************************
  104. *
  105. *                 Mellin Transformations of Special Functions
  106. *
  107. *************************************************************************)
  108.  
  109.  ListBessel = {BesselJ,BesselY,BesselK,BesselI}
  110.  
  111. InputBessel = {
  112.  BesselJ[v_,x_]^2 :>
  113.    Pi^(-1/2) MeijerG[ {1/2},{},{v},{-v,0},{2,x^2} ],
  114.  BesselJ[v_,x_] BesselJ[a_,x_] :>
  115.    Pi^(-1/2) MeijerG[ {0,1/2},{},{(v+a)/2},{-(v+a)/2,(a-v)/2,(v-a)/2},{2,x^2}],
  116.  Sin[x_] BesselJ[v_,x_] :>
  117.    2^(-1/2) MeijerG[ {1/4,3/4},{},{(1+v)/2},{-v/2,v/2,(1-v)/2},{2,x^2} ],
  118.  Cos[x_] BesselJ[v_,x_] :>
  119.    2^(-1/2) MeijerG[ {1/4,3/4},{},{v/2},{-v/2,(1+v)/2,(1-v)/2},{2,x^2} ],
  120.  Exp[x_] BesselK[v_,x_] :>
  121.    Pi^(-1/2) Cos[v Pi] MeijerG[ {1/2},{},{v,-v},{},{1,2 x} ],
  122.  Exp[n_ x_] BesselK[v_,x_] :>
  123.    Pi^(1/2) MeijerG[ {},{1/2},{v,-v},{},{1,2 x} ]/;n===-1,
  124.  BesselK[v_,x_]^2 :>
  125.    Pi^(1/2)/2 MeijerG[ {},{1/2},{0,v,-v},{},{2,x^2} ],
  126.  BesselK[v_,x_] BesselK[a_,x_] :>
  127.    Pi^(1/2)/2 MeijerG[ {},{0,1/2},{(a+v)/2,(a-v)/2,(v-a)/2,-(a+v)/2},{},{2,x^2}],
  128.  BesselK[1,x_] - y_ :>
  129.    -1/2 MeijerG[ {1/2},{},{1/2,1/2},{-1/2},{2,x^2/4} ]/;Expand[x y]===1,
  130.  BesselJ[v_,x_] :>
  131.    MeijerG[ {},{},{v/2},{-v/2},{2,x^2/4} ],
  132.  BesselJ[0,x_] - 1 :>
  133.    -MeijerG[ {1,1,1,3},{1},{},{1},{0,0},{2,x^2/4} ],
  134.  1 - BesselJ[0,x_]  :>
  135.    MeijerG[ {1,1,1,3},{1},{},{1},{0,0},{2,x^2/4} ],
  136.  BesselK[v_,x_] :>
  137.    MeijerG[ {},{},{v/2,-v/2},{},{2,x^2/4} ]/2,
  138.  BesselY[v_,x_] :>
  139.    MeijerG[ {},{-(v+1)/2},{v/2,-v/2},{-(v+1)/2},{2,x^2/4} ],
  140.  Exp[n_ x_] BesselI[v_,x_] :>
  141.    Pi^(-1/2) MeijerG[ {1/2},{},{v},{-v},{1,2 x} ]/;n==-1,
  142.  BesselI[v_,x_] :>
  143.    Pi MeijerG[ {},{(v+1)/2},{v/2},{-v/2,(v+1)/2},{2,x^2/4} ]
  144.    }
  145.  
  146.  ListOther= {Erf,ExpIntegralEi,PolyLog,FresnelS,FresnelC,SinIntegral}
  147.  
  148. InputOther = {
  149.  Exp[x_] Erfc[y_] :>
  150.    MeijerG[ {1/2},{},{0,1/2},{},{1,x} ]/;Expand[x-y^2]===0,
  151.  Exp[n_ x_] ExpIntegralEi[y_] :>
  152.    -Pi MeijerG[ {0},{1/2},{0,0},{1/2},{1,x} ]/;
  153.   NumberQ[n] && n<0 && Expand[x-y]===0 ,
  154.  Exp[x_] ExpIntegralEi[n_ y_] :>
  155.    -MeijerG[ {0},{},{0,0},{},{1,x} ]/;
  156.   NumberQ[n] && n<0 && Expand[x-y]===0,
  157.  PolyLog[k_,x_] :>
  158.    -MeijerG[ Table[1,{j,1,k+1}],{},{1},Table[0,{j,1,k}],{1,-x} ],
  159.  Erfc[x_] :>
  160.    MeijerG[ {},{1},{0,1/2},{},{2,x^2} ]/Sqrt[Pi],
  161.  Erf[x_] :>
  162.    MeijerG[ {1},{},{1/2},{0},{2,x^2} ]/Sqrt[Pi],
  163.  ExpIntegralEi[n_ x_] :>
  164.    -MeijerG[ {},{1},{0,0},{},{1,-n x} ]/;NumberQ[n] && n<0 ,
  165.  FresnelS[x_] :>
  166.    MeijerG[ {1},{},{3/4},{0,1/4},{4,Pi^2 x^4/16} ]/2, 
  167.  FresnelC[x_] :>
  168.    MeijerG[ {1},{},{1/4},{0,3/4},{4,Pi^2 x^4/16} ]/2, 
  169.  SinIntegral[x_] :>
  170.    Sqrt[Pi] MeijerG[ {1},{},{1/2},{0,0},{2,x^2/4} ]/2
  171.     }    
  172.  
  173. (***************************************************************************
  174. *                        Input Rules for Functions
  175. *
  176. ***************************************************************************)
  177.  
  178.  GammaRule1 = {
  179.   Gamma[v_] Gamma[u_] :> 
  180.      Pi/(Sin[Expand[Pi u]]/.TrigRule) /;Expand[u+v]===1
  181.              }
  182.  
  183.  GammaRule2 = {
  184.   Gamma[n_+x_] :> (n-1+x) Gamma[n-1+x] /;NumberQ[n] && Re[n]>=1
  185.              }
  186.  
  187.  GammaRule3 = {
  188.   Gamma[n_+x_] :> Gamma[n+x+1]/(n+x) /;NumberQ[n] && Re[n]<0
  189.              }
  190.  
  191.  GammaRule4 = {
  192.   Gamma[u_] Gamma[v_] :> Expand[2^(1-2u)] Pi^(1/2) Gamma[Expand[2 u]]/;
  193.   Expand[v-u]===1/2
  194.              }
  195.  
  196.  GammaRule6 = {
  197.   Gamma[v_]^(-1) Gamma[u_]^(-1) :> 
  198.      (Sin[Expand[Pi u]]/.TrigRule)/Pi /;Expand[u+v]===1
  199.               }
  200.  
  201.  GammaRule5 = {
  202.   Gamma[v_] Gamma[u_] :> Pi/(-u (Sin[Expand[Pi u]]//.TrigRule)) /;
  203.   Expand[u+v]===0
  204.              }
  205.  
  206.  PolyGammaRule = {
  207.   PolyGamma[v_]     :> PolyGamma[0,v],
  208.   PolyGamma[k_Integer,n_Integer + v_] :> 
  209.     PolyGamma[k,n+v-1] + (-1)^k k!/(n+v-1)^(k+1)/;n>0,
  210.   PolyGamma[k_Integer,n_] :> PolyGamma[k,n-1] +(-1)^k k! (n-1)^(-k-1)/;
  211.     NumberQ[n] && Re[n]>1,
  212.   PolyGamma[1,1/4] :> Pi^2 + 8 Catalan,
  213.   PolyGamma[1,3/4] :> Pi^2 - 8 Catalan, 
  214.   PolyGamma[0,n_Rational] :> -EulerGamma - Log[2 Denominator[n]] -
  215.     Pi Cos[Pi n]/(2 Sin[Pi n]) + 2 Sum[Cos[2 n i Pi] Log[Sin[Pi i/Denominator[n]]],
  216.             {i,1,Floor[(Denominator[n]-1)/2]}]/; n>0 && n<1,
  217.   PolyGamma[k_,1] :> (-1)^(k+1) k! Zeta[k+1],
  218.   PolyGamma[k_,1/2] :> (-1)^(k+1) k! Zeta[k+1] (2^(k+1)-1),
  219.   Zeta[n_Integer,v_Rational] :> Zeta[n,v-1] - (v-1)^(-n)/;v>1,
  220.   Zeta[2,1/4] :> Pi^2 + 8 Catalan,
  221.   Zeta[2,3/4] :> Pi^2 - 8 Catalan
  222.                  }
  223.  
  224.  PolyGammaRule1 = {
  225.   PolyGamma[v_]     :> PolyGamma[0,v]
  226.           }
  227.  
  228.  SimpPolyGammaSum = {
  229.   a_. PolyGamma[k_,z_] + b_ PolyGamma[k_,x_] +c_.:>
  230.     c + a Pi Module[{var},D[Cot[Pi var],{var,k}]/.var->x]/;EvenQ[k] && 
  231.     Znak[b] && Expand[a+b]===0 && Expand[z+x-1]===0,
  232.   a_. PolyGamma[k_,z_] + b_ PolyGamma[k_,x_] +c_.:>
  233.     c - a Pi Module[{var},D[Cot[Pi var],{var,k}]/.var->x]/;
  234.     OddQ[k] && Expand[a-b]===0 && Expand[z+x-1]===0,
  235.   a_. PolyGamma[k_,z_] + b_ PolyGamma[k_,x_] +c_.:>
  236.     c + a k! x^(-k-1) + a Pi Module[{var},
  237.     D[Cot[Pi var],{var,k}]/.var->x]/;
  238.     EvenQ[k] && Znak[b] && Expand[a+b]===0 && Expand[z+x]===0,
  239.   a_. PolyGamma[k_,z_] + b_ PolyGamma[k_,x_] +c_.:>
  240.     c + a k! x^(-k-1) - a Pi Module[{var},
  241.     D[Cot[Pi var],{var,k}]/.var->x]/;
  242.     OddQ[k] && Expand[a-b]===0 && Expand[z+x]===0,
  243.   Cot[a_] :> Cot[Expand[a]],
  244.   Csc[a_] :> Csc[Expand[a]]
  245.       }
  246.  
  247.  SimpGaussSum = { Literal[
  248.   coef1_. Hypergeometric2F1[a_,d_,c_,-1] + 
  249.   coef2_. Hypergeometric2F1[b_,d_,c1_,-1] ] :> 
  250.          coef1 Gamma[c] Gamma[c1]/(b Gamma[d])/;
  251.  Expand[c-a-1]===0 && Expand[d-a-b]===0 && Expand[c1-b-1]==0 &&
  252.  Expand[coef1 a - b coef2]===0
  253.               }
  254.  
  255.  PowerExpandMy[ w_Plus ] := Map[ PowerExpandMy[#]&,w ]
  256.  
  257.  PowerExpandMy[ w_ ] := Map[ SimpTerm[#]&,w ]
  258.  
  259.  SimpTerm[ f_[w__] ] := Apply[f, Map[SimpPower[#]&,{w}] ]/;
  260.     Apply[Or,Map[Not[FreeQ[f,#]]&,Join[
  261.     ListBessel,ListOther,ListElem,ListNew] ]]
  262.  
  263.  SimpTerm[ w_ ] := w
  264.  
  265.  ListNew = {Cosh,Sinh,Sech,Cosh,Sec,Cos,EllipticK,EllipticE}
  266.  
  267.  SimpSign = {
  268.   Sign[n_ u_] :> Sign[n] Sign[u]/;NumberQ[n],
  269.   Sign[u_^n_] :> 1/;EvenQ[n],
  270.   Sign[u_^n_] :> Sign[u]/;OddQ[n]
  271.              }
  272.  
  273.  SimpSign1 = {
  274.   Abs[n_ v_]      :> Abs[n] Abs[v],
  275.   Abs[u_^n_]      :> Abs[u^(-n)]^(-1)/;NumberQ[n] && Im[n]==0&&n<0,
  276.   Abs[u_ + v_] :> Abs[-u-v]/;Znak[u] && Znak[v],
  277.   Abs[z_ + v_ + u_] :> Abs[-z-v-u]/;Znak[z] && Znak[u] && Znak[v],
  278.   Abs[a_^n_+b_^m_] :> a^n+b^m/;EvenQ[n] && EvenQ[m],
  279.   Abs[a_^n_+m_] :> a^n+m/;EvenQ[n] && NumberQ[m] && m>0,
  280.   Abs[v_] Sign[u_] :> v/;v===u,
  281.   Abs[u_]^n_  :> u^n/;EvenQ[n],
  282.   Abs[u_^n_]  :> u^n/;EvenQ[n],
  283.   Abs[Sign[u_]] :> 1,
  284.   Abs[u_]^n_  :> Sign[u] u^n/;OddQ[n] && n=!=-1,
  285.   Sign[u_]^n_  :> 1/;EvenQ[n],
  286.   Sign[u_^n_]  :> 1/;EvenQ[n] || EvenQ[Denominator[n]],
  287.   Sign[u_]^n_  :> Sign[u]/;OddQ[n],
  288.   Sign[u_^n_]  :> Sign[u]/;OddQ[n]
  289.             } 
  290.  
  291.  SimpSign2 = {
  292.   Abs[v_] Sign[u_] :> v/;v===u,
  293.   Abs[u_]^n_  :> u^n/;EvenQ[n]
  294.      }
  295.  
  296.  TrigRule = {
  297.   Csc[x_ + y_] :> Sec[x] (-1)^(y/Pi-1/2) /;NumberQ[y/Pi] && 
  298.                   Denominator[y/Pi]==2, 
  299.   Csc[x_ + y_] :> Csc[x] (-1)^(y/Pi)/;IntegerQ[y/Pi], 
  300.   Sin[x_ + y_] :> Cos[x] (-1)^(y/Pi-1/2)/;NumberQ[y/Pi]  &&
  301.                   Denominator[y/Pi]==2, 
  302.   Sin[x_ + y_] :> Sin[x] (-1)^(yPi)/;IntegerQ[y/Pi],
  303.   Cos[x_ + y_] :> Sin[x] (-1)^(y/Pi+1/2)/;NumberQ[y/Pi]  &&
  304.                   Denominator[y/Pi]==2,
  305.   Cos[x_ + y_] :> Cos[x] (-1)^(y/Pi)/;IntegerQ[y/Pi],
  306.   Sec[Times[n_,v_]]   :> Sec[Abs[n] v]/;NumberQ[n] && Im[n]==0&& n<0,
  307.   Csc[Times[n_,v_]]   :> -Csc[Abs[n] v]/;NumberQ[n] && Im[n]==0&& n<0,
  308.   Cos[Times[n_,v_]]   :> Cos[Abs[n] v]/;NumberQ[n] && Im[n]==0&& n<0,
  309.   Sin[Times[n_,v_]]   :> -Sin[Abs[n] v]/;NumberQ[n] && Im[n]==0&& n<0
  310.             }
  311.  
  312.  TrigRuleConv[ u_ ] := 
  313.   Module[ {answer},
  314.    answer = u/.TrigRuleConv1;
  315.    If[ answer=!=u,answer,answer = u/.TrigRuleConv2;
  316.      If[answer=!=u,answer,u/.TrigRuleConv3]]]
  317.  
  318.  TrigRuleConv1 = {
  319.   Sin[u_] Cos[v_] :> (Sin[Expand[u-v]] + Sin[Expand[u+v]])/2
  320.       }
  321.  
  322.  TrigRuleConv2 = {
  323.   Cos[u_] Cos[v_] :> (Cos[Expand[u-v]] + Cos[Expand[u+v]])/2
  324.       }
  325.  
  326.  TrigRuleConv3 = {
  327.   Sin[u_] Sin[v_] :> (Cos[Expand[u-v]] - Cos[Expand[u+v]])/2
  328.            }
  329.  
  330.  LogTrig = {
  331.   Cos[ArcSin[w_]]^m_. :> (1-w^2)^(m/2),
  332.   Cos[ArcTan[w_]]^m_. :> 1/(1+w^2)^(m/2),
  333.   Sec[ArcCos[w_]]^m_. :> w^(-m),
  334.   Sec[ArcSin[w_]]^m_. :> (1-w^2)^(-m/2),
  335.   Sec[ArcTan[w_]]^m_. :> (1+w^2)^(m/2),
  336.   Sin[ArcCos[w_]]^m_. :> (1-w^2)^(m/2),
  337.   Sin[ArcTan[w_]]^m_. :> w^m/(1+w^2)^(m/2),
  338.   Csc[ArcSin[w_]]^m_. :> w^(-m),
  339.   Csc[ArcCos[w_]]^m_. :> (1-w^2)^(-m/2),
  340.   Csc[ArcTan[w_]]^m_. :> (1+w^2)^(m/2)/w^m,
  341.   Tan[ArcSin[w_]]^m_. :> w^m/(1-w^2)^(m/2),
  342.   Tan[ArcCos[w_]]^m_. :> (1-w^2)^(m/2)/w^m,
  343.   Cot[ArcCos[w_]]^m_. :> w^m/(1-w^2)^(m/2),
  344.   Cot[ArcSin[w_]]^m_. :> (1-w^2)^(m/2)/w^m,
  345.   ArcTan[Tan[w_]]^m_. :> w^m,
  346.   Log[w_^n_]          :> n Log[w]
  347.         }
  348.  
  349.  HBfun = {
  350.   Sinh[v_] :> E^v (1-E^(-2 v))/2,
  351.   Cosh[v_] :> E^v (1+E^(-2 v))/2,
  352.   Sech[v_] :> 2 E^(-v)/(1+E^(-2 v)),
  353.   Csch[v_] :> 2 E^(-v)/(1-E^(-2 v))
  354.      }
  355.  
  356.  TrRuleE = {
  357.   Sin[v_+w_] :> Sin[v] Cos[w] + Cos[v] Sin[w],
  358.   Cos[v_+w_] :> Cos[v] Cos[w] - Sin[v] Sin[w]
  359.        }
  360.  
  361.  ExpandIntoTrig = {
  362.   Sin[w_] :> Sin[Expand[w]],
  363.   Cos[w_] :> Cos[Expand[w]]
  364.       }
  365.  
  366.  TrigMultArg = {
  367.   Cos[n_Integer u_] :> 
  368.     Sum[(-1)^k Binomial[n,2 k] Sin[u]^(2 k) Cos[u]^(n-2 k),
  369.        {k,0,Floor[n/2]}],
  370.   Sin[n_Integer u_] :> 
  371.     Sum[(-1)^k Binomial[n,2 k+1] Sin[u]^(2 k+1) Cos[u]^(n-2 k-1),
  372.        {k,0,Floor[(n-1)/2]}]
  373.     }
  374.  
  375.  HypergeometricURule = {
  376.   HypergeometricU[a_,b_,z_. E^(2 I arg[c_/;Znak[c]])] :>
  377.   E^(-2 I arg[c] b) HypergeometricU[a,b,z] +
  378.   (1 - E^(-2 I arg[c] b)) Gamma[1-b]/Gamma[1+a-b] Hypergeometric1F1[a,b,z],
  379.   HypergeometricU[1,1,z_/;Znak[z]] :> -E^z ExpIntegralEi[-z],
  380.   HypergeometricU[1,1,z_/;!Znak[z]] :> E^z ExpIntegralE[1,z],
  381.   HypergeometricU[1/2,1/2,z_/;!Znak[z]] :> Sqrt[Pi] E^z Erfc[Sqrt[z]],
  382.   HypergeometricU[a_,b_,z_/;!Znak[z]] :> Pi^(-1/2) E^(z/2) z^(1/2-a) *
  383.       BesselK[a-1/2,z/2]/;Expand[b-2 a]===0
  384.   }
  385.  
  386.