<?xml version="1.0"?>
<CD>
<!-- $Id: hypergeo2.tfb,v 1.6 2003/11/30 12:56:08 taka Exp $ -->
<CDName> hypergeo2 </CDName>
<CDURL> http://www.openxm.org/... </CDURL>
<CDReviewDate> 2003-08-11 </CDReviewDate>
<CDDate> 2002-08-11, 2003-11-30 </CDDate>
<CDVersion> 0 </CDVersion>
<CDRevision> 1 </CDRevision>
<CDStatus> experimental </CDStatus>
<CDUses>
  <CDName>arith1</CDName>
  <CDName>relation1</CDName>
  <CDName>calculus1</CDName>
  <CDName>alg1</CDName>
  <CDName>interval1</CDName>
  <CDName>nums1</CDName>
  <CDName>hypergeo0</CDName>
  <CDName>hypergeo1</CDName>
</CDUses>
<Description>
	This CD defines some famous hypergeometric functions such as
    Bessel functions and Airy functions.
	These functions are described in the following books.
	(1) Handbook of Mathematical Functions, Abramowitz, Stegun
	(2) Higher transcendental functions. Krieger Publishing Co., Inc., Melbourne, Fla., 1981, Erdlyi, Arthur; Magnus, Wilhelm; Oberhettinger, Fritz; Tricomi, Francesco G. 
</Description>

<CDDefinition>
<Name> kummer </Name>
<Description>
	Kummer's hypergeometric function.
</Description>
<CMP>
	kummer(a,c;z) = hypergeo1.hypergeometric1F1(a,c;z)
</CMP>

<FMP>
<tfb>
	hypergeo2.kummer(a,c,z) ~relation1.eq~
	hypergeo1.hypergeometric1F1(a,c,z);
</tfb>
</FMP>
</CDDefinition>

<CDDefinition>
<Name> besselJ </Name>
<Description>
	The Bessel function.
	This function is one of the famous two solutions of the Bessel
	differential equation at z=0.
</Description>
<CMP>
	besselJ(v,z)
	= (\frac{z}{2})^v \sum_{n=0}^{+\infty}
	\frac{(-1)^n}{n! \Gamma(v+n+1)} (\frac{z}{2})^2n
</CMP>

<FMP>
<tfb>
  hypergeo2.besselJ(v,z) ~relation1.eq~
    (z ~arith1.divide~ 2 ~arith1.power~ v ~arith1.times~
      arith1.sum(interval1.integer_interval(0,infty),
	OMBIND(fns1.lambda,OMBVAR(n),
	  arith1.unary_minus(1) ~arith1.power~ n ~arith1.divide~
	    (integer1.factorial(n) ~arith1.times~
	      hypergeo0.gamma(v ~arith1.plus~ n ~arith1.plus~ 1))
	  ~arith1.times~
	  arith1.power(z ~arith1.divide~ 2,2 ~arith1.times~ n))));
</tfb>
</FMP>

<Example>
<tfb>
  z ~arith1.power~ 2 ~arith1.times~
  calculus1.diff(OMBIND(fns1.lambda,OMBVAR(z),
	calculus1.diff(OMBIND(fns1.lambda,OMBVAR(z),
	  hypergeo2.besselJ(v,z))))) ~arith1.plus~
  (z ~arith1.times~ calculus1.diff(OMBIND(fns1.lambda,OMBVAR(z),
	  bypergeo2.besselJ(v,z)))) ~arith1.plus~
  ((z ~arith1.power~ 2 ~arith1.minus~ (v ~arith1.power~ 2))
    ~arith1.times~ besselJ(v,z))
  ~relation1.eq~ 0;
</tfb>
</Example>
</CDDefinition>

<CDDefinition>
<Name> besselY </Name>
<Description>
	The Bessel function.
	This function is the another one of the famous two solutions of the Bessel
	differential equation at z=0.
</Description>
<CMP>
	besselY(v,z)
	= (\cos(v \pi) besselJ(v,z) - besselJ(-v,z))/\sin(v \pi)
</CMP>

<FMP>
<tfb>
  hypergeo2.besselY(v,z) ~relation1.eq~
  (transc1.cos(v ~arith1.times~ nums1.pi) ~arith1.times~ hypergeo2.besselJ(v,z)
    ~arith1.minus~ besselJ(arith1.unary_minus(v),z) ~arith1.divide~
    transc1.sin(v ~arith1.times~ nums1.pi));
</tfb>
</FMP>

<Example>
<tfb>
  z ~arith1.power~ 2 ~arith1.times~
  calculus1.diff(OMBIND(fns1.lambda,OMBVAR(z),
	calculus1.diff(OMBIND(fns1.lambda,OMBVAR(z),
	  hypergeo2.besselY(v,z))))) ~arith1.plus~
  (z ~arith1.times~ calculus1.diff(OMBIND(fns1.lambda,OMBVAR(z),
	  hypergeo2.besselY(v,z)))) ~arith1.plus~
  ((z ~arith1.power~ 2 ~arith1.minus~ (v ~arith1.power~ 2))
    ~arith1.times~ hypergeo2.besselY(v,z))
  ~relation1.eq~ 0;
</tfb>
</Example>
</CDDefinition>

<CDDefinition>
<Name> hankel1 </Name>
<Description>
	The first Hankel function.
	This function is one of the famous two solutions of the Bessel
	differential equation at z=\infty.
</Description>
<CMP>
	hankel1(v,z)
	= besselJ(v,z) + i BesselY(v,z)
</CMP>

<FMP>
<tfb>
  hypergeo2.hankel1(v,z) ~relation1.eq~
  (hypergeo2.besselJ(v,z) ~arith1.plus~ 
   (nums1.i ~arith1.times~ hypergeo2.besselY(v,z)));
</tfb>
</FMP>
</CDDefinition>

<CDDefinition>
<Name> hankel2 </Name>
<Description>
	The second Hankel function.
	This function is the another one of the famous two solutions of the Bessel
	differential equation at z=\infty.
</Description>
<CMP>
	hankel2(v,z)
	= besselJ(v,z) - i BesselY(v,z)
</CMP>

<FMP>
<tfb>
  hypergeo2.hankel1(v,z) ~relation1.eq~
  (hypergeo2.besselJ(v,z) ~arith1.minus~ 
   (nums1.i ~arith1.times~ hypergeo2.besselY(v,z)));
</tfb>
</FMP>
</CDDefinition>

<CDDefinition>
<Name> airyAi </Name>
<Description>
	The first Airy function.
	This function is one of the famous two solutions of the Airy
	differential equation, and converges to 0 when z->\infty
</Description>
<CMP>
	(\frac{d^2}{dz^2} - z) airyAi(z) = 0
</CMP>

<FMP>
<tfb>
  calculus1.diff(OMBIND(fns1.lambda,OMBVAR(z),
    calculus1.diff(OMBIND(fns1.lambda,OMBVAR(z),
      hypergeo2.airyAi(z))))) ~arith1.minus~
  (z ~arith1.times~ hypergeo2.airyAi(z))
  ~relation1.eq~ 0;
</tfb>
</FMP>
</CDDefinition>

<CDDefinition>
<Name> airyBi </Name>
<Description>
	The second Airy function.
	This function is the another one of the famous two solutions of the Airy
	differential equation, and diverges when z->\infty
</Description>
<CMP>
	(\frac{d^2}{dz^2} - z) airyBi(z) = 0
</CMP>

<FMP>
<tfb>
  calculus1.diff(OMBIND(fns1.lambda,OMBVAR(z),
    calculus1.diff(OMBIND(fns1.lambda,OMBVAR(z),
      hypergeo2.airyBi(z))))) ~arith1.minus~
  (z ~arith1.times~ hypergeo2.airyBi(z))
  ~relation1.eq~ 0;
</tfb>
</FMP>
</CDDefinition>

</CD>

