[Maxima] numerical evaluation of 2F1

Billinghurst, David CALCRTS david.billinghurst at comalco.riotinto.com.au
Thu Jan 12 06:53:08 CST 2006


This is a multi-part message in MIME format.

------_=_NextPart_001_01C61777.235A6841
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

> From: Robert Dodier
>
> i wonder if anyone has some advice about the numerical
> evaluation of the hypergeometric function 2F1.
> i'm willing to consider pretty much any method
> (even if not particularly fast or accurate), since the
> alternative is numerical evaluation of an integral.
> that's not the end of the world, but i'd rather avoid it.

I have been writing some code for numerical evaluation of 1F1
and have a reference for the general case pFq. There are three=20
papers and Fortran code by Nadin, Perger and Bhalla.
See http://www.ece.mtu.edu/faculty/wfp/research/comp_math.html
The evaluation is by direct summation of the defining series,
although for 2F1 with |z|>1 they use the transformation
in Abramowitz and Stegun 15.3.7 to map z to 1/z.

I thought of translating the Fortran code, but most of it is=20
routines for extended precision complex operations.  I have=20
just (tonight) produced some "working" 1F1 code (attached).
It has survived half an hour of testing.  Now I need to
work out how to integrate it into maxima.

(%i1) load("complexfloat.lisp");
(%o1)                          complexfloat.lisp
(%i2) load("1f1.lisp");
(%o2)                              1f1.lisp
(%i3) ?onefone(-1,0.6,0.4);
(%o3)                          .3333333333333333
(%i4) ?onefone(1,1,9);
(%o4)                          8103.083927575384
(%i5) exp(9.0);
(%o5)                          8103.083927575384
(%i6) ?onefone(1+%i,1+%i,10*%i);
(%o6)             - .5440211108893698 %i - .8390715290764524
(%i7) cos(10.0)+%i*sin(10.0);
(%o7)             - .5440211108893698 %i - .8390715290764524
(%i8) a:-15+55*%i;
(%o8)                             55 %i - 15
(%i9) b:20+25*%i;
(%o9)                             25 %i + 20
(%i10) ?onefone(a,b,-100+150*%i);
(%o10)        - 4.926004329884517E-10 %i - 6.927737354370276E-10


NOTICE
This e-mail and any attachments are private and confidential and may =
contain privileged information. If you are not an authorised recipient, =
the copying or distribution of this e-mail and any attachments is =
prohibited and you must not read, print or act in reliance on this =
e-mail or attachments.
This notice should not be removed.

------_=_NextPart_001_01C61777.235A6841
Content-Type: application/octet-stream;
	name="complexfloat.lisp"
Content-Transfer-Encoding: base64
Content-Description: complexfloat.lisp
Content-Disposition: attachment;
	filename="complexfloat.lisp"

OzsgY29tcGxleGZsb2F0Lmxpc3AKOzsKOzsgUm91dGluZXMgZm9yIGV4dGVuZGVkIHByZWNpc2lv
biBjb21wbGV4IGZsb2F0aW5nIHBvaW50IG51bWJlcnMKOzsgU2VlIGZsb2F0Lmxpc3AKCjs7IENv
bXBsZXggRlAgbnVtYmVyIHggPSB4ciArICVpKnhpIGlzIHJlcHJlc2VudGVkIGJ5IChsaXN0IHhy
IHhpKQoKKGluLXBhY2thZ2UgOm1heGltYSkKCjs7IGRlZmluZSB0aGUgZGF0YSBzdHJ1Y3R1cmUg
Zm9yIGEgY29tcGxleCBGUCBudW1iZXIKOzsgQ29tcGxleCBGUCBudW1iZXIgeCA9IHhyICsgJWkq
eGkgaXMgcmVwcmVzZW50ZWQgYnkgKGxpc3QgeHIgeGkpCihkZWZ1biBmcHotcmUgKHopIChjYXIg
eikpCihkZWZ1biBmcHotaW0gKHopIChjYWRyIHopKQooZGVmdW4gZnB6ICh4IHkpIGAoLHggLHkp
KQoKOzsgeiA9IHggKyB5CihkZWZ1biBmcHorICh4IHkpCiAgKGZweiAoZnBwbHVzIChmcHotcmUg
eCkgKGZwei1yZSB5KSkgCiAgICAgICAoZnBwbHVzIChmcHotaW0geCkgKGZwei1pbSB5KSkpKQoK
OzsgeiA9IHggLSB5CihkZWZ1biBmcHotICh4IHkpCiAgKGZweiAoZnBkaWZmZXJlbmNlIChmcHot
cmUgeCkgKGZwei1yZSB5KSkKICAgICAgIChmcGRpZmZlcmVuY2UgKGZwei1pbSB4KSAoZnB6LWlt
IHkpKSkpCgo7OyB6ID0geCAqIHkgICBGSVhNRTogUHJvYmFibHkgd2FudCBhIGd1YXJkIGRpZ2l0
IG9yIHR3bwooZGVmdW4gZnB6KiAoeCB5KQogIChmcHogKGZwZGlmZmVyZW5jZSAoZnB0aW1lcyog
KGZwei1yZSB4KSAoZnB6LXJlIHkpKSAKCQkgICAgIChmcHRpbWVzKiAoZnB6LWltIHgpIChmcHot
aW0geSkpKQogICAgICAgKGZwcGx1cyAoZnB0aW1lcyogKGZwei1yZSB4KSAoZnB6LWltIHkpKQoJ
ICAgICAgIChmcHRpbWVzKiAoZnB6LWltIHgpIChmcHotcmUgeSkpKSkpCgo7OyB6ID0geCAvIHkg
IEZJWE1FOiBQcm9iYWJseSB3YW50IGEgZ3VhcmQgZGlnaXQgb3IgdHdvCihkZWZ1biBmcHovICh4
IHkpCiAgKGNvbmQgKChhbmQgKGVxdWFsIChmcHotcmUgeSkgJygwIDApKSAoZXF1YWwgKGZwei1p
bSB5KSAnKDAgMCkpKQoJIChtZXJyb3IgImNvbXBsZXggZGl2aXNpb24gYnkgemVybyIpKQoJKChl
cXVhbCAoZnB6LWltIHkpICcoMCAwKSkKCSAoZnB6IChmcHF1b3RpZW50IChmcHotcmUgeCkgKGZw
ei1yZSB5KSkgCgkgICAgICAoZnBxdW90aWVudCAoZnB6LWltIHgpIChmcHotcmUgeSkpKSkKCSgo
ZXF1YWwgKGZwei1yZSB5KSAnKDAgMCkpCgkgKGZweiAoZnBxdW90aWVudCAoZnB6LWltIHgpIChm
cHotaW0geSkpIAoJICAgICAgIChmcHF1b3RpZW50IChmcG1pbnVzIChmcHotcmUgeCkpIChmcHot
aW0geSkpKSkKCSh0IChsZXQKCSAgICAgKChkZW5vbWluYXRvciAoZnBwbHVzIChmcHRpbWVzKiAo
ZnB6LXJlIHkpIChmcHotcmUgeSkpCgkJCQkgICAoZnB0aW1lcyogKGZwei1pbSB5KSAoZnB6LWlt
IHkpKSkpCgkgICAgICAocmUtbnVtZXJhdG9yIChmcHBsdXMgKGZwdGltZXMqIChmcHotcmUgeCkg
KGZwei1yZSB5KSkKCQkJCSAgICAoZnB0aW1lcyogKGZwei1pbSB4KSAoZnB6LWltIHkpKSkpCgkg
ICAgICAoaW0tbnVtZXJhdG9yIChmcGRpZmZlcmVuY2UgKGZwdGltZXMqIChmcHotaW0geCkgKGZw
ei1yZSB5KSkKCQkJCQkgIChmcHRpbWVzKiAoZnB6LXJlIHgpIChmcHotaW0geSkpKSkpCgkgICAg
IChmcHogKGZwcXVvdGllbnQgcmUtbnVtZXJhdG9yIGRlbm9taW5hdG9yKQoJCSAgKGZwcXVvdGll
bnQgaW0tbnVtZXJhdG9yIGRlbm9taW5hdG9yKSkpKSkpCgo7OyB6ID0gYWJzKHgpIGZvciBjb21w
bGV4IEZQIHggCjs7IE5vdGU6IGZwcm9vdCB0YWtlcyBhIGJpZ2Zsb2F0CihkZWZ1biBmcHphYnMg
KHgpCiAgKGZwcm9vdCAoYmNvbnMgKGZwcGx1cyAoZnB0aW1lcyogKGZwei1yZSB4KSAoZnB6LXJl
IHgpKSAKCQkJIChmcHRpbWVzKiAoZnB6LWltIHgpIChmcHotaW0geCkpKSkgCgkgIDIpKQoKCjs7
IFNvbWUgdXRpbGl0aWVzIGZvciB0ZXN0aW5nCgo7OyBDb252ZXJ0IGEgbWF4aW1hIG51bWJlciB0
byBjb21wbGV4IEZQCihkZWZ1biBmbG9hdHRvZnB6ICh6KQogIChsZXQgKCgkZmxvYXQyYmYgdCkp
CiAgICAoZnB6IChpbnRvZnAgKCRyZWFscGFydCB6KSkgKGludG9mcCAoJGltYWdwYXJ0IHopKSkp
KQoKOzsgQ29udmVydCBGUCB0byBmbG9hdAooZGVmdW4gZnB0b2Zsb2F0ICh4KSAoZnAyZmxvIChi
Y29ucyB4KSkpCgo7OyBDb252ZXJ0IEZQIGNvbXBsZXggdG8gbWF4aW1hIGZsb2F0Cjs7IFJldHVy
biByZWFsIG9yIGltCihkZWZ1biBmcHp0b2Zsb2F0ICh6KQogIChjb25kICgoZXF1YWwgKGZwei1p
bSB6KSAnKDAgMCkpCgkgICAoZnB0b2Zsb2F0IChmcHotcmUgeikpKQoJICgoZXF1YWwgKGZwei1y
ZSB6KSAnKDAgMCkpCgkgICBgKChtdGltZXMgc2ltcCkgLChmcHRvZmxvYXQgKGZwei1pbSB6KSkg
JCVpKSkKICAgICAgICAgKHQgYCgobXBsdXMgc2ltcCkgLChmcHRvZmxvYXQgKGZwei1yZSB6KSkg
CgkgICAgICAoKG10aW1lcyBzaW1wKSAsKGZwdG9mbG9hdCAoZnB6LWltIHopKSAkJWkpKSkpKQoK
OzsgQ29udmVydCBGUCBjb21wbGV4IHRvIG1heGltYSBjb21wbGV4IGJpZ2Zsb2F0CihkZWZ1biBm
cHp0b2JpZ2Zsb2F0ICh6KQogIChjb25kICgoZXF1YWwgKGZwei1pbSB6KSAnKDAgMCkpCgkgICAo
YmNvbnMgKGZwei1yZSB6KSkpCgkgKChlcXVhbCAoZnB6LXJlIHopICcoMCAwKSkKCSAgIGAoKG10
aW1lcyBzaW1wKSAsKGJjb25zIChmcHotaW0geikpICQlaSkpCiAgICAgICAgICh0IGAoKG1wbHVz
IHNpbXApICwoYmNvbnMgKGZwei1yZSB6KSkgCgkgICAgICAoKG10aW1lcyBzaW1wKSAsKGJjb25z
IChmcHotaW0geikpICQlaSkpKSkpCg==

------_=_NextPart_001_01C61777.235A6841
Content-Type: application/octet-stream;
	name="1f1.lisp"
Content-Transfer-Encoding: base64
Content-Description: 1f1.lisp
Content-Disposition: attachment;
	filename="1f1.lisp"

OzsgMWYxLmxpc3AKOzsKOzsgIENvbmZsdWVudCBoeXBlcmdlb21ldHJpYyBmdW5jdGlvbiBNKGE7
Yjt6KSBvciAxRjEoYTtiO3opCjs7Cjs7ICBUaGUgY29uZmx1ZW50IGh5cGVyZ2VvbWV0cmljIGZ1
bmN0aW9uIGlzIHRoZSBzb2x1dGlvbiB0bwo7OyAgdGhlIGRpZmZlcmVudGlhbCBlcXVhdGlvbjoK
OzsKOzsgICAgeiBNIihhO2I7eikgKyAoYi16KSBNJyhhO2I7eikgLSBhIE0oYTtiO3opID0gMCAg
ICAoQSZTIDEzLjEuMSkKOzsKOzsgIEV2YWx1YXRlIGl0IGJ5IGRpcmVjdCBzdW1tYXRpb24gb2Yg
QSZTIDEzLjEuMgo7Owo7OyAgICAgICAgICAgICAgICAgIGEgeiAgICAoYSlfMiB6XjIgICAgICAg
ICAgKGEpX24gel5uCjs7ICAgTShhO2I7eikgPSAxICsgLS0tICsgIC0tLS0tLS0tLSAgKyAuLi4g
KyAtLS0tLS0tLS0gKyAuLi4KOzsgICAgICAgICAgICAgICAgICAgYiAgICAgKGIpXzIgMiEgICAg
ICAgICAgIChiKV9uIG4hCjs7Cjs7ICAgd2hlcmUgKGEpX24gaXMgUG9jaGhhbW1lciBzeW1ib2wg
KEEmUyA2LjEuMjIpCjs7ICAgICAgICAgKGEpXzAgPSAxCjs7ICAgICAgICAgKGEpX24gPSBhKGEr
MSkoYSsyKS4uLihhK24tMSksICAgCjs7Cjs7ICAgRklYTUU6ICAxRjEgaGFzIHNpbmd1bGFyaXRp
ZXMgd2hlbiBiIGlzIGEgbmVnYXRpdmUgaW50ZWdlcgo7OyAgICAgICAgICAgVGhlc2UgYXJlIG5v
dCBjaGVja2VkIGFuZCBhbiBlcnJvciB3aWxsIG9jY3VyLiAKCihpbi1wYWNrYWdlIDptYXhpbWEp
Cgo7OyBDb25mbHVlbnQgaHlwZXJnZW9tZXRyaWMgZnVuY3Rpb24gTShhO2I7eikgb3IgMUYxKGE7
Yjt6KQo7OyBBcmd1bWVudHMgYXJlIChjb21wbGV4KSBtYXhpbWEgbnVtYmVycyBhbmQgYXJlIG5v
dCBjaGVja2VkLiAgCjs7IFJlc3VsdCBpcyBhIChjb21wbGV4KSBtYXhpbWEgZmxvYXQgYW5kIHNo
b3VsZCBiZSBhY2N1cmF0ZQo7OyB0byBtYWNoaW5lIHByZWNpc2lvbi4KKGRlZnVuIG9uZWZvbmUg
KGEgYiB6KQogIChsZXQgKChmcHByZWMgbWFjaGluZS1tYW50aXNzYS1wcmVjaXNpb24pKQogICAg
KCRmbG9hdCAob25lZm9uZWJmIGEgYiB6KSkpKQoKOzsgQ29uZmx1ZW50IGh5cGVyZ2VvbWV0cmlj
IGZ1bmN0aW9uIE0oYTtiO3opIG9yIDFGMShhO2I7eikKOzsgQXJndW1lbnRzIGFyZSBjb21wbGV4
IG1heGltYSBudW1iZXJzIGFuZCBhcmUgbm90IGNoZWNrZWQuCjs7IFJlc3VsdCBpcyBhIGNvbXBs
ZXggbWF4aW1hIGJpZ2Zsb2F0IGFuZCBzaG91bGQgYmUgYWNjdXJhdGUKOzsgdG8gZnBwcmVjIGJp
dHMgb2YgcHJlY2lzaW9uLgooZGVmdW4gb25lZm9uZWJmIChhIGIgeikKICAobGV0ICggKG9sZC1m
cHByZWMgZnBwcmVjKSByZXN1bHQgb25lLWYtb25lLWZwIChiaXRzLWFjY3VyYWN5IDApKQogICAg
OzsgS2VlcCBpbmNyZWFzaW5nIHByZWNpc2lvbiB1bnRpbCBhbnN3ZXIgaXMgc3VmZmljaWVudGx5
IGFjY3VyYXRlCiAgICAoZG8gKChmcHByZWMgKCsgb2xkLWZwcHJlYyA5KSAoKyBmcHByZWMgNjQp
KSkKCSgoPiBiaXRzLWFjY3VyYWN5IG9sZC1mcHByZWMpKQoJKG11bHRpcGxlLXZhbHVlLXNldHEg
CgkgIChvbmUtZi1vbmUgYml0cy1hY2N1cmFjeSkKCSAgKG9uZS1mLW9uZS1mcCAoZmxvYXR0b2Zw
eiBhKSAoZmxvYXR0b2ZweiBiKShmbG9hdHRvZnB6IHopKSkKCTs7IFJlZm9ybWF0IGFzIGJpZ2Zs
b2F0IHRvIGNhcHR1cmUgY3VycmVudCBmcHByZWMKCShzZXRxIG9uZS1mLW9uZSAoZnB6dG9iaWdm
bG9hdCBvbmUtZi1vbmUpKSkKICAgIChzZXRxIGZwcHJlYyBvbGQtZnBwcmVjKQogICAgKCRiZmxv
YXQgb25lLWYtb25lKSkpCgo7OyBDb25mbHVlbnQgaHlwZXJnZW9tZXRyaWMgZnVuY3Rpb24gTShh
O2I7eikgb3IgMUYxKGE7Yjt6KQo7OyBieSBkaXJlY3Qgc3VtbWF0aW9uIG9mIEEmUyAxMy4xLjIK
OzsKOzsgQXJndW1lbnRzIGFyZSBjb21wbGV4IEZQIG51bWJlcnMgcmVwcmVzZW50ZWQgYXMgbGlz
dAo7OyAoIChtYW50aXNzYSBleHBvbmVudCkgKG1hbnRpc3NhIGV4cG9uZW50KSkKOzsKOzsgICAg
ICAgICAgICAgICAgICBhIHogICAgKGEpXzIgel4yICAgICAgICAgIChhKV9uIHpebgo7OyAgIE0o
YTtiO3opID0gMSArIC0tLSArICAtLS0tLS0tLS0gICsgLi4uICsgLS0tLS0tLS0tICsgLi4uCjs7
ICAgICAgICAgICAgICAgICAgIGIgICAgIChiKV8yIDIhICAgICAgICAgICAoYilfbiBuIQo7Owo7
OyAgIHdoZXJlIChhKV9uID0gYShhKzEpKGErMikuLi4oYStuLTEpLCAgIAo7OyAgICAgICAgIChh
KV8wID0gMQo7Owo7OyAgIG50aCBwYXJ0aWFsIHN1bSBzX24gPSBzXyhuLTEpICsgdF9uCjs7ICAg
d2l0aAo7OyAgICAgICAgIHRfMSA9IGEgei9iCjs7ICAgICAgICAgdF9uID0gdF8obi0xKSAqIChh
K24tMSkqei8oKGIrbi0xKSpuKQo7Owo7OyAgIFRvIHJlZHVjZSBudW1iZXIgb2YgKGNvbXBsZXgp
IGRpdmlzaW9ucywgYWNjdW11bGF0ZSAKOzsgICBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yIHNl
cGFyYXRlbHkuCjs7Cjs7ICAgc19uID0gTl9uIC8gRF9uLAo7Owo7OyAgIERfbiA9IChiKV9uIG4h
LCB0aGUgZGVub21pbmF0b3Igb2YgdF9uCjs7ICAgRF8wID0gMQo7OyAgIERfbiA9IERfKG4tMSkg
KiAoYituLTEpKm4KOzsKOzsgICBOXzAgPSAxCjs7ICAgTl9uID0gTl8obi0xKSAqIChiK24tMSkq
biArIFRfbgo7Owo7OyAgIFRfMCA9IDEKOzsgICBUX24gPSBUXyhuLTEpICogKGErbi0xKSp6Cjs7
Cjs7ICBDYW4gaGF2ZSBzaWduaWZpY2FudCBsb3NzIG9mIHByZWNpc2lvbiBkdWUgdG8gY2FuY2Vs
bGF0aW9uIG9mCjs7ICBsYXJnZSB0ZXJtcy4gIEVzdGltYXRlIHRoZSBudW1iZXIgb2YgYml0cyBv
ZiBwcmVjaXNpb24gbG9zdAo7OyAgYnkgY29tcGFyaW5nIGV4cG9uZW50cyBvZiBsYXJnZXN0IHBh
cnRpYWwgc3VtIHNfbiBhbmQgZmluYWwgc19uLgo7Owo7OyAgRm9yIGV4YW1wbGUsIGlmIGEgYW5k
IGIgYXJlIGVxdWFsIGFuZCB6ID0gMCArIDE0MCBpIHRoZW4gCjs7ICBpbnRlcm1lZGlhdGUgdGVy
bXMgYXJlIG9mIG9yZGVyIDEwXjYwIH4gMl4yMDAgYnV0IHJlc3VsdCBpcyAKOzsgIGV4cCgxNDAg
aSkgPSBjb3MoMTQwKSArIGkgc2luKDE0MCkgfiBPKDEpCjs7Cjs7ICBFeHBvbmVudCBvZiB0X24g
fiAoZXhwb25lbnQgb2YgVF9uKSAtIChleHBvbmVudCBvZiBEX24pCjs7ICBDb21wbGV4IG51bWJl
cnMgYXJlIGEgY29tcGxpY2F0aW9uLiAgSnVzdCB0YWtlIGxhcmdlciBvZiB0d28gdmFsdWVzCjs7
CihkZWZ1biBvbmUtZi1vbmUtZnAgKGEgYiB6KQogIChwcm9nCiAgICAoKHN1bS1udW1lcmF0b3Ig
ICAoZmxvYXR0b2ZweiAxKSkKICAgICAoc3VtLWRlbm9taW5hdG9yIChmbG9hdHRvZnB6IDEpKQog
ICAgICh0ZXJtLW51bWVyYXRvciAgKGZsb2F0dG9mcHogMSkpCiAgICAgKHN1bS1leHBvbmVudCAw
KSA7OyBUaGUgZmlyc3QgdGVybSBpcyAxCiAgICAgKG1heC1zdW0tZXhwb25lbnQgMCkKICAgICBi
aXRzLWFjY3VyYWN5IDs7IGVzdGltYXRlIG9mIG51bWJlciBvZiBhY2N1cmFjeSBiaXRzIGluIHJl
c3VsdAogICAgIGF0ZXJtIGJ0ZXJtIGFuc3dlciBuLTEtZnAgKQogICAgKGRvICgobiAxIChmKyBu
IDEpKSkKCTs7IEl0ZXJhdGUgdW50aWwgdGhlIGxhc3QgdGVybSBpcyBpbnNpZ25pZmljYW50IHdo
ZW4gY29tcGFyZWQgCgk7OyB0byB0aGUgbGFyZ2VzdCBwYXJ0aWFsIHN1bQoJKCg+ICgtIG1heC1z
dW0tZXhwb25lbnQgZnBwcmVjKSA7OyBMZWFzdCBzaWduaWZpY2FudCBiaXQgaW4gcGFydGlhbCBz
dW0KCSAgICgtIChmcHotZXhwb25lbnQgdGVybS1udW1lcmF0b3IpIChmcHotZXhwb25lbnQgc3Vt
LWRlbm9taW5hdG9yKSAxKSkpCgkoc2V0cSBuLTEtZnAgKGZsb2F0dG9mcHogKGYtIG4gMSkpKQoJ
KHNldHEgYnRlcm0gKGZweiogKGZsb2F0dG9mcHogbikgKGZweisgYiBuLTEtZnApKSkKCShzZXRx
IHN1bS1kZW5vbWluYXRvciAoZnB6KiBzdW0tZGVub21pbmF0b3IgYnRlcm0pKQoJKHNldHEgc3Vt
LW51bWVyYXRvciAoZnB6KiBzdW0tbnVtZXJhdG9yIGJ0ZXJtKSkKCShzZXRxIGF0ZXJtIChmcHoq
IHogKGZweisgYSBuLTEtZnApKSkKCShzZXRxIHRlcm0tbnVtZXJhdG9yIChmcHoqIGF0ZXJtIHRl
cm0tbnVtZXJhdG9yKSkKCShzZXRxIHN1bS1udW1lcmF0b3IgKGZweisgc3VtLW51bWVyYXRvciB0
ZXJtLW51bWVyYXRvcikpCgkoc2V0cSBzdW0tZXhwb25lbnQgKC0gKGZwei1leHBvbmVudCBzdW0t
bnVtZXJhdG9yKQoJCQkgICAgICAoZnB6LWV4cG9uZW50IHN1bS1kZW5vbWluYXRvcikpKQoJKHNl
dHEgbWF4LXN1bS1leHBvbmVudCAobWF4IG1heC1zdW0tZXhwb25lbnQgc3VtLWV4cG9uZW50KSkp
CiAgICAoc2V0cSBhbnN3ZXIgKGZwei8gc3VtLW51bWVyYXRvciBzdW0tZGVub21pbmF0b3IpKQog
ICAgOzsgVGhlIGFjY3VyYWN5IGVzdGltYXRlIGNhbiBiZSBhYm91dCB0aHJlZSBiaXRzIHRvbyBi
aWcKICAgIChzZXRxIGJpdHMtYWNjdXJhY3kKCSAgKG1heCAwICgtIGZwcHJlYyAoLSBtYXgtc3Vt
LWV4cG9uZW50IChmcHotZXhwb25lbnQgYW5zd2VyKSAtMykpKSkKICAgIChyZXR1cm4gKHZhbHVl
cyBhbnN3ZXIgYml0cy1hY2N1cmFjeSkpKSkKCjs7IEV4cG9uZW50IG9mIGFuIEZQIG51bWJlci4g
IFJldHVybiBsYXJnZSAtdmUgbnVtYmVyIGlmIHplcm8KKGRlZnVuIGZwLWV4cG9uZW50ICh4KSAK
ICAoaWYgKGVxdWFsIChjYXIgeCkgMCkgbW9zdC1uZWdhdGl2ZS1maXhudW0gKGNhZHIgeCkpKQoK
OzsgR2l2ZW4gYSBjb21wbGV4IEZQIG51bWJlciwgcmV0dXJuIGxhcmdlciBleHBvbmVudAooZGVm
dW4gZnB6LWV4cG9uZW50ICh6KQogIChtYXggKGZwLWV4cG9uZW50IChmcHotcmUgeikpIChmcC1l
eHBvbmVudCAoZnB6LWltIHopKSkpIAo=

------_=_NextPart_001_01C61777.235A6841--




More information about the Maxima mailing list