Article View: comp.sources.hp48
Article #13v06i021: laplace_jm - Laplace v2.0, Part01/01
From: John Meissner
Date: Thu, 13 Aug 1992 01:58
Date: Thu, 13 Aug 1992 01:58
684 lines
34505 bytes
34505 bytes
Checksum: 662440219 (verify with brik -cv)
Submitted-by: John Meissner <meissner%triton.unm.edu@lynx.unm.edu>
Posting-number: Volume 6, Issue 21
Archive-name: laplace_jm/part01
BEGIN_DOC laplace.doc
These routines are an upgrade to my previous Laplace
transform utility. Many of the new programs have been rewritten
in SYSTEM-RPL. As always, system RPL can cause some unpredictable
things to happen -- including MEMORY LOST errors.
I have strived to do my best to make the routines safe, but I
am new to syystem-RPL programming and there are undoubtedly some bugs
still left in the routines. I am posting these routine to comp.sys.hp48
so that these bugs can be tested and corrected over the next few weeks
so that I can release some kind of a final product.
I have had no reports of memory lost errors or and serious mishaps
of any kind since the pre beta-test release about a month ago.. So,
hopefully, these routines are safe. As alaways, report any bugs/sugestions
to me as soon as you see them.
Summary of changes from beta release:
1) You can now define your own independant variable.
2) RT-> gives better results.
3) A few other quirks have been fixed.
Summary of changes in these routines:
1) system-RPL, these routines run 5 to 10 times faster.
2) Remove flags [0-5] usage.
3) Fixed bugs in & and RT-> that caused incorrect transforms.
4) install a patch that allows 't' to exists elsewhere in the PATH.
5) Remove 'e^t' notation.
6) Recognizes and handles correctly the 'SQ()' function.
7) Many changes in how the routines work that speed up or
otherwise enhance their performance.
The origional routines used Wanye Scotts polinomial routines for most
of the grunt work. I don't think any of Wayne's routines are still in this
package, but he deserves credit for the notation and untimately these
routines since I never would have bother without his work.
Also, Bill Wickes' port of a polinomial root finder is included in
these routines. Thank you Bill for the efforts.
Thank you also to Detlef Mueller for is compiler/decompiler that
I used to write the majority of code in these routines.
The remainder of this article is an edited version of my origional
post.
The following programs are released to the public domain
provided that no money exchange hands (unless of course my hands
are involved).
A few disclaimer are in order.
1) The routines in this directory use Wayne Scott's polynomial
root finder routines extensively. Beware -- if you already have
these routines and use them, then you need to read all of these
documents to determine what effects might surface. For the most part,
these routines are entirely different even though they do accomplish
some of the same tasks.
3) If you are unfamiliar with the format of the polynomials
used by Wayne's routines, here is a brief refresher:
the polynomial : x^4 - 3*x^3 - 2*x -1
is represented as: { 1 -3 0 -2 -1 }
This is to say the first element of the list is the
coefficient for the x^4 term and so on through the equation. It is
customary to use 's' for the Laplace variable, so from here on, I
will use 's' in my examples.
Some of the routines require two polynomials on the stack.
For example, the ratio of the two polynomials representing this
expression:
3*s^5 - 3*s^3 + 5*s^2 - 2
---------------------------------------
s^5 - 7*s^4 + 15*s^3 - 5*s^2 -16*s + 12
would be represented on the stack as:
2: {3 0 -3 5 0 -2}
1: {1 -7 15 -5 -16 12}
Another method of representing the same ratio is:
2: {3 0 -3 5 0 -2)
1: {3 2 2 1 -1}
where level 2 contains the same list as the previous example.
However, level 1 contains the roots of the denominator.
Hopefully, these examples are clear enough for you to get the
picture.
The following are descriptions and examples of each of the
functions in the LAPLACE directory:
t
This variable returns an unevaluated copy of itself. I allows the
routines to operate when ther is another 't' defined in the current path.
It is also useful for keying is formulae. If you want the independant
variable to be something besides 't' then simply store your vaiable in 't.'
->L
This program takes an algebraic object and returns its Laplace
Transform. The input function must be a function of the variable
stored in 't.' that is to say that the only independent variable
in the equasion on level one of the stack must be stored in the variable
lower case t. The functions that it recognizes are constants,
exponentials, sines, cosines, and polynomials. The program should
allow any combinations of multiplication, addition, subtraction,
and integer exponents. Division is not supported, however.
For example:
1: 'COS(2*t)^2'
->L
after a pause will return :
2: { 1 0 2 } ; numerator
1: { (0,4) (0,0) (0,-4) } ; roots of the denominator
This represent the transform. With this as an input, the
inverse transform function returns :
L->
1: '1/2 + 1/2*COS(4*t)'
This doesn't look the same as the original function; but, the
answer is correct. COS(t)^2 = 1/2 + 1/2*COS(2+t) is a
trigonometric identity. Kinda nifty eh?
Another interesting result of the transformation is
integration. Integration in the time domain is division by s in the
s domain.
So, take the function:
1: 'EXP(-(2*t))*t*COS(t)^2'
->L
Returns:
2: {1 8 26 40 32 }
1: { (-2,2) (-2,2) (-2,0) (-2,0) (-2,-2) (-2,-2) }
The list on level one is the roots of the denominator. If you
add a zero to the list (edit the list or just put a zero on the
stack and press the + key) you are effectively multiplying the
denominator by s. This is the same as dividing the fraction by s.
The result in the time domain, after the inverse transform is done,
is the integration of the original function between the limits of
0 and 't.' For example:
2: { 1 8 26 40 32 }
1: { (-2,2) (-2,2) (-2,0) (-2,0) (-2,2) (-2,-2) 0 }
->L
Returns:
1: '1/8-1/8*EXP(-(2*t))*COS(2*t)*t+1/8*EXP(-(2*t))*SIN(2*t)*t+1/16*
(EXP(-(2*t))*sin(2*t)-1/4*EXP(2*t)*t-1/8*EXP(-(2*t)'
This is the integral of the original function evaluated
between 0 and t. In many cases the general solution can be
obtained by replacing the constant (in this case 1/8) with a
general constant of integration. Needless to say, this method of
integration was a little easier than looking in the integral
tables. The description of the inverse Laplace Transformer
follows.
L->
This program takes the numerator, level 2, and the
denominator, level 1 (factored), and returns its inverse Laplace
Transform. The factors of the denominator need not be grouped
together as Wayne's routines require since they are sorted before
anything is done to them. I originally wrote this routine and
uploaded it to hpcvbbs, but I did not include much for
documentation. Since then I have seen it posted a few times and
have heard of some bugs that I am unable to duplicate. This may be
because the users are using Wayne's routines with this one, or, I
fixed the bugs and don't remember. Either way here is the latest
version.
The routine should correctly transform the ratio of any two
polynomials with real coefficients. The only limitation i know of
is that the numerator should be of lower order than the
denominator. You may still get the correct answer if this
condition is not met but there are no guarantees.
I have found absolutely no problems with this routine. In
fact, I have found 2 errors in the transform tables of the "CRC
Handbook of Mathematical Formulas.' I am not willing to say that
there are no bugs because I am sure they exist. Please let me know
as they become apparent. I have been truly amazed with the results
this program returns; Wayne did a good job with his routines. He
did almost all of the work. Here is and example:
2: { 2 0 4 }
1: { 1 1 0 4 }
L->
Returns:
1:'-1 - 2*t*EXP(t) + EXP(4*t)'
RT->
The results of this routine are different depending on the
number of lists on the stack. If there are 2 lists of numbers on
the stack, the routine will assume that the represent a fraction and
the numerator is divided by the coefficient of the highest order term
in the denominator. This is necessary to keep the ratio correct
since this term is lost in the expasion. In the event that the stack
contains only one list this program returns the roots of that list.
1: { 1 -6 1 24 -20 }
RT->
returns:
1: { 1 2 -2 5 }
or:
2: { 1 2 4 }
1: { 2 0 -2 }
RT->
returns:
2: {.5 1 2 }
1: { -1 1 }
FADD
This routine adds two partial freactions. They most be
in the form:
4: list (numerator)
3: list (denominator roots)
2: list (second nemerator)
1: list (second denominator roots)
&
This routine convolves (sp?) two partial fractions. It is
used by the routine ->L. It either does a partial fraction
expansion of one of the two terms and then does an 's' shifted
summation of the terms, or is does a straight multiplication of the
terms -- depending on which is appropriate. It is still written
in user-RPL since there was no real speed increase when I rewrote
it. I believe that user-RPL should be used whenever possible to
avoid as many headaches as possible.
SORT
Fairly self explanatory. Not the bubble variety. It is much
smaller than the bubble sorts that I tried and is a little faster
for lists that are shorter than about 20 elements. The sort order
is largest to smalles with wieghting on the real value. This means
that the unstable roots will be at the begining of the list if they
exist.
RED
This routine uses PDIV to remove any common roots in the
numerator and denominator. It is slow but necessary if you are
working with complex transforms.
Q
This routine takes an object from the stack and attempts to
rationalize it to within 4 digits of accuracy. In other words, if
you have a nomber like 5.200004454 and want to round it to the nearest
fraction then Q is your program. It is necessary because the roots
returned by the root finder are not exact. And the calculator
drops digits here and there when dividing or finding roots. The
routine will also accept lists, algebraics, complex numbers, and
combinations of any of the above.
PMUL
This routine take two polynomials and returns their products.
I have completely rewritten this program to speed it up and
slightly change the function. The objects do not have to be lists.
The routine will now multiply a list by a constant. It should
function identically to Wayne's routines other than this change.
IRT
This routine take the roots of the polynomial and multiplies
them to find the polynomial.
PADD
This routine takes two polynomials and adds them. In addition,
if the object on level 1 is a number (real or complex), the routine
adds the number to each of the elements in the list in the other
stack level. These changes were made in the interest of speed.
TRIM
This routine takes a list and performs Q and then strips the
leading zeros. It works identically to the original I believe.
PDIV
This routine is NOT the same a Wayne's. This routines accepts
a list, representing a polinomial, and a number, representing a root
of the polinomial, and returns the list with that root divided out,
and the remainder which is also the value of the polinomial evaluated
at that root. Example
2: { 1 -2 1 }
1: 1
PDIV (returns)
2: 0
1: { 1 -1 }
RDER
This routine takes two lists (numerator,denominator) and
returns the numerator of the derivative of the ratio.
PDER
Accepts a list representing a polinomial and returns a list
representing the derivative of that polynomial.
PF
Does partial fraction expansion of the ratio (numerator,
roots) on the stack.
The ASC encoded directory follows. Use ASC-> to decode. The
total size is 6127 bytes.
Please let me know id this program is in any way useful to amy of
you. Also please let me know of any suggestions or bugs that
occur.
Good luck,
John Meissner
END_DOC
BEGIN_ASC laplace.asc
"69A20FF78BF200000020056420D9D20E163278BF184E203094254592CF18B9C1
1C432D6E2010E4D6E201044D6E201046D6E2010E6E16329C2A2D6E2010E60A13
2D6E201096D6E201044D6E2010966C7D11C432D6E201027E16324B2A2D6E2010
463303278BF1D6E20102784E20400544946592CF14B2A2279E1D5032D9D20803
A20DCF13FBF19C2A276BA1DBBF1B2130496328DBF1D6E2010E4D6E20102784E2
040054494658DBF12ABF1DBBF150FA1D13A20DCF1D6E2010E4D13A2A9CF13CE2
29C2A2D5CE1AFE22D9D209C2A2233A2A9CF19C2A290DA10A132D6E2010A6803A
2A9CF178BF184E204005D455C4803A25BCF178BF1624B1DBBF1803A25BCF184E
20400544542584E204005D455C4803A25BCF1599A1D13A25BCF184E204005445
42584E204005D455C484E20400514444478BF1D6E20102784E2040054494658D
BF1DBBF192CF1803A2A9CF1D6E2010A620BB1EEDA150FA1233A20DCF1C4232B2
1305DF223FBF13FBF1EF53208332D6E2010E6387C1EF53293632B21307E20040
0544542540D9D202BA81D9F8112040D9D2014C2630040D9E36D9D20E623047A2
04B2A2B2130B2130D9D20B9F06E0E30F7436523309427009736FBD81EEDA1942
704337095450B2130B2130B2130D9000402544542540D9D20E16321C432D6E20
1066D6E201076E1632D6E20106684E204005445425D6E20107684E204005D455
C4D6E201066683A284E204005D455C4D6E20107684E20400544542584E204005
D455C484E204005144444EF53293632B21304C000400544946540D9D20D8A81D
9F8143C46D9D203223014C268131647A2003D4303D43B21300D4707E316C9A36
1BE36D9D20523307E316EC370881306B316EEDA1942703F21676BA1433707E31
6E93307E3165A136B2130D9D204423047A20B2130B213079470B2130B21304D0
00101510D9D202BA81D9F819FF30D9D20710402C230339200000000000000050
925B2E26A55C2268DA1662726D9D20DD036339201000000000000960A88A28DA
16E6230D9D201D236B9F06B2130B2130B213030040D9D20C2D503223084E2010
153223084E201015AAB368DA164423072C50B213012040D9D2014C265CE36442
30D9D203C3705233084E2010159427043370B213095450B213094040D9D2051A
022D1268DA16D9D20FA450F74365233084E20101594270433701D236B213084E
2010154C9F1B2130FEF30E8E60B2130D91003025544430D9D20D8A81D9F8166C
46D9D2014C26A3336D9D208813081316747263C3709427009736EB116FDE2684
E2040054494653223084E2010154B2A2F2E36D9D2012F060E736942700973681
316B2130664363223084E2040452594D42C23056316B213095450B2130B2130B
D0004035F4254540D9D202BA81D9F8112040D9D2014C2630040D9E3695450D9D
208813047A2003D43B21300D470EC370CA130C2D5059230C2D5059230178A2CA
F06CA1301C8A2CAF06A88A2CAF0664B3057B308DA16D9D203223012270E0E305
CE36D9D20442306B316E9330B2130D9D20E0E30072706B31652330B2130B2130
D9D206B316E9330B2130433706B316E93306B43695450B2130B2130B21308310
040452594D440D9D202BA81D9F8112040D9D2084E201015FA4502A170881303A
1164B2A2E2B302C2300F63664B30EE170D9D20881303F21644230E0E30B21305
E17095450B2130B21302900020254520D9D20D29512BF8171040D9D2088130F8
53059F30E2B30399162BC8188130265308DA364EC307F8162ED73F2926DEE32F
A42524430CAF0611920A20002CE301192078200CBD30D2473CCD206761082317
9E7E78FB97601C914313016913210417914313016E1641421011641321031C41
4313016E142CC8A8501641691321021141311111411741411761131411333466
200CA131340000912A134152716F058FA4CB28E78D011A24902A090EA05A08BA
501028F88AC0111CC10150C20AC28EC4B0AC28E1AB011234084002490C708BE1
605E26C002034889991088EA2A01471091318E22D09795105118CA8E68B08EAE
C08F88AC0119CE10952DAC2B468EECA0AC2B468E02B011C135147CECE4B2CE55
58E5B018E4F218E43A08EC4E08E2CB08C62A08EA9901318E6AC08E29C005BCC8
EDE90AF21081098C7F901438E85418FA4CB28EFCD08EC4018E87118E05C08E85
9011C1351478E3FE08E3EF0D28E5EE0058FBCEB28F779B2AC08F896B28F6DEB2
8F779B28FAA6B28EC0218ECEB0AF2AF32EB07B578ED2908E8BB08E97C01348E2
C80147CE131AF0AF18E2AB08EFAB0AC018F1848ED8B010B8EE9B0058E5E808E3
3B08E89B08E2B808EA6B08E87B08E51B08EBB808ED6B0AC21238AC50BCE1238E
D7808EF2B08F88AC011BCE559058E04B08EB880BCC8E13B08FD7EB28E44808E6
FA018F1848E02808E7990460642F8EFF70AF2CEAF3A5F8E82808EB4C08E73A08
E7CA0058E5180AF3AF22B335441AFF8E7F708E6B018E69A08EBAB0AF0AF18E07
A08EA6A0D28E43D0AC08EFBB011C135179AE214D8EB7C08E60E08EDC908EA5A0
8FB8EB28EFD804606645794774A78E8DD070578E0C804A411C13517914F96E91
8E68C072E673178E898052276078E24B0057F0777478E93908E109011C135179
AC2B46155420324A08E75C01348E129017F1743068ED9908EA890A0E50F8E66B
077668E18907B868E88800576A68EE280719678968E02808EED808E24808ED5B
005AF2CEAF32EB07B0774868ECB808E7390AC28E0C7046064418ED7808ED0908
E5BC0AF0AF18E1E808E199013477E5147CE10AE61318EBD8013710B1378E9B80
8EEAB06D508E3C800571068E06808EFB807BD578174F28EC8808E34808E49807
4D51CF1C48EB8807EA57BE65606E2B8E55808EC5800577A51231338EE5801331
237B7578B64FC8EF1808F88AC011ACE10A460646FAF210810974258E71807CB7
8EB18018F18473B68ECD6079A67A0571A6AC08ED2908408C7FB07E3771E67AD4
8E79F08EE6B078D475258EF68013470A670A4147131DACE10ACE06D670971331
031338E96A07127AF2154716F154716F15471697457154716F14416477171128
AC021371088E469011813572E67127602007068B2017DC61CF1C46FA018F1847
E177D9672067AE6057AB5724472B572B67D34BCC7114BCC79867AE6760471767
F35560628971B616F16475B57D967F6516F16478F371657A467CE3BCC70C3BCC
72F5729675B376267EE45606139706616F16473660573B312313371661331237
E737A568FD7EB20706D711A8B7F17FE47295723617F1747963BCC74437584580
8C7C8F78E58F88AC011ACE10A4606F9E07769575D578457AD58E28908E108078
D2794777B40577037BA570D27E037AB275137113BCC75351361341357CB47C85
7D9579B27D657C75AF2AF32E303A8F79B27B75779279C579A21371361377DF47
63571627EA2BCC16F1647A827E35716278D479357D057684781573627D727FF4
79048EBAC07A468508C419011C135179157494E606BA005AF0CCAF12E305A852
032EC07AE317F17478B47FF170947AB117F17473B38E54C08E44807CB173C17D
A17623919606FEA760475748ED18078F3776471C17D6179E5057F7170A170717
43175E246062C08D04F01170157494E55B461554759605787176F072147C1170
71701579837F03785377E279737CF30574017A41723378036A8A7CF575E27692
734374C3AF22C32521AF7AD2BCE78907F017357AF0AF12EB0579527AC67EA47F
728F88AC0613A73A57C8211997A9111805BCE1087BD074857D627FC0CE1087B0
613411879361187A337923068F88AC007CE5AE8C836FAF9AF7AF601AFDAFFAFD
AFE0104114131203427200CA018DF6EB28D5BEB28D0CEB28DBCEB28D6DEB27EE
F136061368FAC7B2071340174DF8DE19B27BB264FF7E7F6CEF8D779B28D9DBB2
8DCBBB2058F64E927B318F64E9212011C13517B147134150716F110150716F8F
88AC01361451CB147CE1458AE00208F2D760142164808C114ACA104131147108
70C497D0013713411878C1DB8FC0760AF011C94AD0B542EB055D0058F141A204
76757F3F64BF114ACA104D2796497D00AF011C94AE02EB0505CCAB07F35780F4
5D05D6C62034000504908BE0001FA8B24001AF0AF10305BCE7C8E2E919009480
0017831740070318D99EB275716CEF75917311792171EF7701AFAAFBAF50171F
07ACF79E065CF720175A47AF065BF7BE0759473E065AF7D105607673057C7470
0076C07D0E61A0AF0AF12EB05B05011CF1C41CF1C41CF1C41CF1C41CF1CF1C90
117F17417F17417F17417F17417F17F1790118F18418F18418F18418F18418F1
8F1890116F16416F16416F16F16901D7F3C3C6C3C3011CF1C48D660C218F1848
DB40C21CF1C48D3EFB28DDFFB28D710C28D130C220349020066202034E120069
102034D52006C0020344F100D711C04CB05134689F2034902006C0020344F100
D711C04CB05134629F20321106DF1203262062F12032B3067E120320506CD120
3256061D12032A7066C12032F806BB120324A060B120329B065A12032EC06A91
20323E06F8120328F064812032D01697120322216E61203273163612032C4168
5120321616D41203267162412032B81673120320A16C2120325B161212032AC1
66112032FD16B0120324F1600120321106DF0203262062F02032B3067E020320
506CD0203256061D02032A7066C02032F806BB020324A060B020329B065A0203
2EC06A9020323E06F8020328F064802032D01697020322216E60203273163602
032C41685020321616D40203267162402032B81673020320A16C2020325B1612
02032AC166102032FD16B007310665D7B00686D20326200423310020D711CCB1
35017400634D04D711C135147EB7FFC203427200C3137CB135017C0069FC7400
6B0D04D711C135147EF174147CB7FBC2034282006FBF774D7D0A779B75EC710A
6E8B7AFC7E1D7B0A76C979C9706C720A72D979D9736BBCC7FE973A9714C749C7
44C7BD97BA965B97FAC783BBCC7C797B342E91DA1AC1B05AF223305AFA8D16EB
277FB763C7B5979EF7E3C7F6F7FDB704C8FB8EB276897FDA72497A7966DA77AE
134D230270CEAF210810930270FB73AACE55F01793B7EEA057083718F11C1351
4704CE10AE67DAEAC0057FF87EBBAC27ED88F88AC011ACE10A5FD058606079F8
203431000EA730C8E588F77CD8ED48F8F7AEB2720A5808CED7F11C1351791574
94AF17A4D8E768F8E228F73D95808C936F78407C8A7E1B8E628F766A712A75B2
8E6E7F8F7AEB28EE28F8ED18F7F8991D808C967F8CE70F798C7BE97C997FD97D
4E7CFB77B9754A78CA8FB8EB2057FE98ED08FBCC8F0B7B27BE971C98EBA7F8F7
A7B2203205075A98E397F8ECB7F8EFD7F739978907929799C7C697B8D8EB57F7
EBC058F7A7B28E467F8E967F73BD7E7979197DC117F174700A8E227F7FBB7129
057FA1746B7EF90572C18EC17F8EB37F8E49DF7C4C8EFF6F78785008E4E6F6EA
9726C74E87C497CD879098E2C8F8E578F743974B877DC74C07B398E848F7BE87
A988ED48F77BC8E348F8E478F7F8C72A016F1648E618F75C88E668F7A708E518
F8EB96F8E208F8EF86F8E466FAC67CD88E728F94A607640793C8EDD7F8EB68F8
E818F768C8E768F8E8E7F70888EEF7F8E9B7F766C8EB38F8CCC7FBCC118BCE10
8018E1D5F8E087F7CF87E5097D606D5C8E0D5FAC28E2D5F8EB06F7D507D3C8E6
F5F18F18474988E465F8E9D5F11A94A01118AC6108AC0018CE17F2E11991E70A
C00191DB08E255F5FE77008DF0AB28E785F8E6E6F8EB75F8CC45F3191AF1A750
4C405550B75A6E5DE25A3CB3481591D7FBF5AD4AC001B2130B2130E171010621
0D9D20E1632DBBF192CF184E20200564803A25BCF178BF19C2A26C7D1DBBF184
E20302545D83F2A20DCF184E204005D455C478BF18B9C11C432D6E20204623D6
E20204613D6E2020E623D6E201027D6E2010E6E163247A204B2A2B213047A20B
2130D6E2010E69C2A20A132D6E201096D6E201027D6E2010966C7D13CE2278BF
14B2A2279E1AFE228DBF15BF22D9D20D6E20204613D6E2010966C7D1D6E20109
61C432D6E201046D6E2010A6E1632D6E20204623D6E20104684E204005144444
D6E2020E623D6E20104684E20400514444484E2030942545E0CF184E204005D4
55C4D6E201096330323CE22D6E2010E6EBBE178BF1AFE22D9D20D6E202046134
5632D6E2010A6976324F8026C7D1D6E201046279E1387E1B21305DF22D5032D9
D20D6E201096D6E2010A690DA1872B184E204005D455C492CF184E2030942545
84E204025445425DBBF178BF176BA1DBBF1D6E2010A6B213049632DBBF1EF532
84E204064144444B21305DF22683A208332EF53293632B21307F200400514444
440D9D20D8A81D9F8166C46D9D2013236EF116B765038D30F9D2614C2647A200
3D43B21300D4703F21614C2698E3644230D9D203C370942705233094270F6E30
097365233076BA143370B21306B43695450B213043C46D9D2047A2003D43B213
00D470FA45066226A2170D9D20F7436523306B31676BA19427043370B2130954
5079470B213012040D9D203223084E204005144444B2130B2130D31004005D45
5C440D9D20D8A81D9F8166C46D9D2014C2698E3644230D9D205A1361323647A2
003D43B21300D470EF1165923084E204005D455C46B31698E36A2116D9D204B2
A26B316073E595450F1250CAF0684E204005D455C484E204005144444B213079
470B2130B213043C46D9D2047A2003D43B21300D47014C26A3336D9D20F74365
23306B316EEDA19427043370B21309545079470B213012040D9D203223084E20
4005D455C4B2130B2130B5100406414444440D9D20E16321C432D6E20204613D
6E2020E623D6E20204623E1632D6E2020462384E203094254584E204005D455C
4D6E2020E623D6E2020461384E203094254584E204005D455C484E2040051444
44D6E20204613D6E2020462376BA184E2030255444EF53293632B21300E00030
94254530D9D202BA81D9F8112040D9D20FA45047A209C2A2B2130322302A1704
D226EE170D9D20855821BF26599A184E204005D455C4322304B2A2AF25084E20
400514444432230B21305E17044230B2130B2130AA000302545D830D9D2084E2
040452594D42BA81D9F8166C46D9D208813098050872B13223084E20302545D8
CAF0684E204005D455C432230B213012040D9D2014C269FF30D2C26D9D208523
0FEF30B2130D9D20FBD81900D184E20202545B7FC188B26AEC81B21309545084
E201015B2130B21304E00020C4D820D9D20E163284E204035F42545DBBF192CF
184E2020056484E20101578BF18B9C11C432D6E201046D6E201036D6E2010E6E
16324B2A2D6E2010E69C2A20A132D6E2010A4D6E201046D6E2010A46C7D1D6E2
01036D6E2010A46C7D1D6E2010A41C432D6E201076D6E201066D6E2010B6E163
29C2A23303245632D6E2010B6976324F802D6E2010E6CFCE1D5032D9D20D6E20
1046D6E2010B66C7D1D6E201076279E13CE22AFE22D9D2084E201047D6E2010B
6D6E2010A490DA150FA1EEDA1B21305BF22D9D20339202000000000000020456
32D6E2010B697632B4402B21305DF22B213049632D6E201076AC7C184E201047
EEDA1509B1EEDA178BF1D6E201076918C184E201047EEDA178BF1CA4B1D6E201
066918C1EEDA1599A1DBBF1505B1D6E201066AC7C1EEDA1E0CF1EEDA1DBBF1E0
CF1EEDA176BA1EF53276BA1683A208332EB3A184E201015EF53293632B21308A
20020D8C420D9D20D9F81B2040D9D204423047A209C2A2B213047A204B2A24B2
A2B2130B21309FF30D9D20DEE3247A204B2A2B2130B213094040D9D20ABE812D
1268DA16D9D20B7FC1B9F06D9D2079E6076BA133916D9D204423084E2020D8C4
5923084E2020D8C484E204064144444B213079E6090DA133916D9D204423084E
2020D8C432230683A284E204005D455C4322305923084E2020D8C484E2040641
44444B213079E60599A133916D9D204423084E2020D8C432230683A284E20400
5D455C432230B213079E60EEDA133916D9D204423084E2020D8C45923084E202
0D8C484E201062B213079E60624B133916D9D204423084E2020D8C4CA13084E2
01062B213079E60505B133916D9D204423084E20104777920000000000000000
000000000000000109B136453F188130599A19B13647A209C2A24B2A2B213032
230B213079E60CA4B133916D9D204423084E2010479C2A29B136453F188130DE
E32322307792000000000000000000000000000000010EEDA188130599A19B13
6B213079E60509B133916D9D204423084E2010479C2A29B136453F1DEE3247A2
09C2A2B213032230B213079E60D20B1E2B3039916D9D207472684E20104779B3
08DA16D9D207A72620BB1DEE324B2A259230AEC81FED30073E595450B2130D9D
2084E2020D8C4CA1308DF06AEC81EC370C1216C121684E201062433701002685
230B2130B2130B2130B213084E2020D8C484E204035F42545B2130B213083400
104710D9D2079E6084E201047B2130C9B1"
END_ASC
BYTES: #1B9Ch 6127
BEGIN_UU laplace.uue
begin 644 laplace
M2%!(4#0X+466*O!_N"\````"4$8"G2W@82.'^X'D`@-)4E0I_(&;',$TTN8"
M`4YM+A!`U.8"`61M+A#@YF$CR:+2Y@(!;J`QTN8"`6EM+A!`U.8"`6G&UQ%,
M(VTN$"#G82.THM+F`@%D,S!RN!]M+A`@A^0"!%!$258I_$$K*G+IT04CG2V`
M,"K0_#&_'\FB<K8:O?NQ$@.4-H*]'VTN$.#4Y@(!<D@N0`!%E&2%O1^B^]&[
M'P6OT3$JT/S1Y@(!3AVCHLD?PRZ2+"I=[*'O(ITMD"PJ,J.BR1_)HI+0&J`Q
MTN8"`6H(HZ+)'X?[@>0"!%!-54P(HU++'X?[84(;O?N!,"JU_('D`@101$52
M2"Y``-54Q80P*K7\49D:':-2RQ](+D``150DA>0"!%!-54Q(+D``%41$=+@?
M;2X0((?D`@101$E6V/O1NQ\I_($P*IK\T>8"`6H"N^'>&@6O(3,JT/S!)",K
M,5#](O/[,;\?_C4"."-M+A#@-G@<_C628R,K,7`N``101$52!)TM(*L8G8\1
M`@2=+1#$8@-`T.ECG2W@)@-T*D`K*BLQL!(#G2VP^6`./O!'8R4SD"0'D#?V
MVQCNK9$D!S1SD$4%*S&P$@,K,=`)``121$52!)TMX&$CP332Y@(!9FTN$'#F
M82-M+A!@AN0"!%!$15)M+A!PAN0"!%!-54QM+A!@9C@J2"Y``-54Q=3F`@%G
M2"Y``$54)(7D`@10355,2"Y``!5$1.1?(SDVLA(#Q`!``$649$70V0*-BM'Y
M,UMD"(S(0Q&(8$T:G`C!-`],T*S$`30?G$\:I8[$^UMD")3-P/F'.<X`8
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
M9&TN$*!D?!UM+A`PUN8"`4K&U]'F`@%*P332Y@(!9VTN$Y@(!:QXVDBPJ
M,S!"92-M+A"PEF<C]`C2Y@(!;OSLT04CG2W0Y@(!9&TN$+!F?!UM+A!P)I<>
MPRZB[R*=+8#D`@%T;2X0L-;F`@%*":U1\!KNK;$2`[4OTMD",RD@````````
M($!E(VTN$+"69R-+!+(2`]4OLA(#E#;2Y@(!9\K'@>0"`73NK5&0&^ZM<;@?
M;2X0<):!'$@N$$#GWAJ'^\%*&VTN$&"6@1SNK5&9&KW[45`;;2X08*9\'.ZM
MX<`?[JW1NQ\._.'>&F>KX5\C9ZMA."J`,^([&D@N$!#E7R,Y-K(2`Z@"(-#(
M)-#9`IV/L0($G2U`)`-T*I`L*BLQ0*<"M*)"*RHK,;`2`_D_T-D"[3Y"IP*T
MHK(2`RLQD`0$G2V@ZQC2(8:M89TML/<<FP_6V0*7;G"V&C,9UMD"1#*`Y`("
MC4R5,H#D`@*-3$@N0&`41$2T$@.7;I#0&C,9UMD"1#*`Y`("C4PC,F`X*D@N
M0`#55,4T(@.5,H#D`@*-3$@N0&`41$2T$@.7;E"9&C,9UMD"1#*`Y`("C4PC
M,F`X*D@N0`#55,4T(@,K,7#I!NZM,9-AG2U`)`-(+B#0R%0I`T@N(-#(A.0"
M`28K,7#I!B:T,9-AG2U`)`-(+B#0R,0:`T@N$&"R$@.7;E!0&S,9UMD"1#*`
MY`(!='<I````````````````````$)`;8U3S@1@#E:F1&V-T*I`L*K2BLA(#
M(S*P$@.7;L!*&S,9UMD"1#*`Y`(!=,FBDAMC5/.!&`/M/C(B`W<I````````
M````````````$.#>&H@Q4)D:N3&V$@.7;E"0&S,9UMD"1#*`Y`(!=,FBDAMC
M5//1[B-T*I`L*BLQ,"(#*S%PZ08ML.&R`Y,9UMD"1R>&Y`(!=)<[@*UAG2UP
M>F("N]'N([2B4BD#ZHSQW@-PXY5%!2LQT-D"2"X@T,C$&@/8#Z;.&,YSP"%A
M'!*&Y`(!)C1S$`!B6#*P$@,K,;`2`RLQ@.0"`HU,2"Y`,/4D1;42`RLQ@$,`
/`70!G2UPZ09(+A!`MQ(#
`
end
sum -r/size 14415/8478 section (from "begin" to "end")
sum -r/size 41242/6135 entire input file
END_UU
Technical Details
Message-ID:
<1992Aug13.015856.1208@seq.uncwil.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!seq!spellShow Full Headers
Complete Article Headers
Newsgroups: comp.sources.hp48 Path: arc1-ca.pugleaf.net!sparky!uunet!seq!spell From: John Meissner <meissner%triton.unm.edu@lynx.unm.edu> Subject: v06i021: laplace_jm - Laplace v2.0, Part01/01 Message-ID: <1992Aug13.015856.1208@seq.uncwil.edu> Followup-To: comp.sys.hp48 Sender: spell@seq.uncwil.edu (Chris Spell) Organization: University of New Mexico, Albuquerque Date: Thu, 13 Aug 1992 01:58:56 GMT Approved: spell@seq.uncwil.edu Lines: 688