From bug-octave-request at bevo dot che dot wisc dot edu Mon Feb 2 23:05:48 2004 Subject: Modifications to octave-forge csape.m From: Joe Koski To: Date: Mon, 2 Feb 2004 22:46:11 -0600 > This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. --B_3158603119_28209831 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit Attached are some files that attempt to modify the octave-forge routine csape.m to allow spline fits when only three input points are given. In the past, csape.m crashed with undefined variables when given three input points to complete a spline fit. Four point inputs and up worked correctly. Incidently, the MATLAB equivalent routine does handle the three point input case, which is what motivated this attempt is the first place. The essential problem was that when only three input points are provided, csape.m attempts to use trisolve.m to solve a one-by-one matrix problem. I rewrote those lines that solved for the variable c to use a simple algebraic solution for that variable in the three point case. This also required modifying definition of the diagonal element dg which was attempting to use values of h from outside the available range. My fix to dg is strictly a guess and needs verification by a person who understands the actual algebra involved. The suggested changes are marked in csape.m with comments to the right, "% added" or "% original", that indicate the changed lines. A simple test program test_csape.m is also attached. I don't pretend that these test cases are exhaustive, but in all attempts, the curves at least went through the three input points. As expected, the curves changed with different spline types. Without the experience, I have no certainty that the curves are correct for all cases. The changes are for spline types 'complete', 'variational' (which includes 'second'), and 'not-a-knot'. Each of those cases has been modified and marked. I did not modify or test 'periodic' which seems to already address the three-point case. Obviously, these changes should be subjected to additional QA before issue. I'm sure that an experienced Octave programmer could find some additional time saving code tricks as well. I have successfully run all my data analysis ('not-a-knot') cases which start with about 100 spline curves and iterates down until two spline envelopes (three points) are left. The results compare well to MATLAB results for the same cases. Based on that, my routines are now adequate for my needs, so this is not an urgent change. The work was done on a 400 MHz G4 Mac with Octave 2.1.46. My thanks to the help group in supporting a new Octave user. Joe Koski --B_3158603119_28209831 Content-type: text/plain; name="csape.m"; x-mac-creator="522A6368"; x-mac-type="54455854" Content-disposition: attachment Content-transfer-encoding: base64 IyMgQ29weXJpZ2h0IChDKSAyMDAwLDIwMDEgIEthaSBIYWJlbAojIwojIyBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQojIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIyAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgojIwojIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyMgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyMg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQojIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgojIwojIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQojIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBU ZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCgoj IyAtKi0gdGV4aW5mbyAtKi0KIyMgQGRlZnR5cGVmbiB7RnVuY3Rpb24gRmlsZX0ge0B2YXJ7 cHB9ID0gfSBjc2FwZSAoQHZhcnt4fSwgQHZhcnt5fSwgQHZhcntjb25kfSwgQHZhcnt2YWxj fSkKIyMgY3ViaWMgc3BsaW5lIGludGVycG9sYXRpb24gd2l0aCB2YXJpb3VzIGVuZCBjb25k aXRpb25zLgojIyBjcmVhdGVzIHRoZSBwcC1mb3JtIG9mIHRoZSBjdWJpYyBzcGxpbmUuCiMj CiMjIHRoZSBmb2xsb3dpbmcgZW5kIGNvbmRpdGlvbnMgYXMgZ2l2ZW4gaW4gQHZhcntjb25k fSBhcmUgcG9zc2libGUuIAojIyBAdGFibGUgQGFzaXMKIyMgQGl0ZW0gJ2NvbXBsZXRlJyAg ICAKIyMgICAgbWF0Y2ggc2xvcGVzIGF0IGZpcnN0IGFuZCBsYXN0IHBvaW50IGFzIGdpdmVu IGluIEB2YXJ7dmFsY30KIyMgQGl0ZW0gJ25vdC1hLWtub3QnICAgICAKIyMgICAgdGhpcmQg ZGVyaXZhdGl2ZXMgYXJlIGNvbnRpbnVvdXMgYXQgdGhlIHNlY29uZCBhbmQgc2Vjb25kIGxh c3QgcG9pbnQKIyMgQGl0ZW0gJ3BlcmlvZGljJyAKIyMgICAgbWF0Y2ggZmlyc3QgYW5kIHNl Y29uZCBkZXJpdmF0aXZlIG9mIGZpcnN0IGFuZCBsYXN0IHBvaW50CiMjIEBpdGVtICdzZWNv bmQnCiMjICAgIG1hdGNoIHNlY29uZCBkZXJpdmF0aXZlIGF0IGZpcnN0IGFuZCBsYXN0IHBv aW50IGFzIGdpdmVuIGluIEB2YXJ7dmFsY30KIyMgQGl0ZW0gJ3ZhcmlhdGlvbmFsJwojIyAg ICBzZXQgc2Vjb25kIGRlcml2YXRpdmUgYXQgZmlyc3QgYW5kIGxhc3QgcG9pbnQgdG8gemVy byAobmF0dXJhbCBjdWJpYyBzcGxpbmUpCiMjIEBlbmQgdGFibGUKIyMKIyMgQHNlZWFsc297 cHB2YWwsIHNwbGluZX0KIyMgQGVuZCBkZWZ0eXBlZm4KCiMjIEF1dGhvcjogIEthaSBIYWJl bCA8a2FpLmhhYmVsQGdteC5kZT4KIyMgRGF0ZTogMjMuIG5vdiAyMDAwCiMjIEFsZ29yaXRo bXMgdGFrZW4gZnJvbSBHLiBFbmdlbG4tTXVlbGxnZXMsIEYuIFVobGlnOgojIyAiTnVtZXJp Y2FsIEFsZ29yaXRobXMgd2l0aCBDIiwgU3ByaW5nZXIsIDE5OTYKCiMjIFBhdWwgS2llbnps ZSwgMTkuIGZlYiAyMDAxLCAgY3NhcGUgc3VwcG9ydHMgbm93IG1hdHJpeCB5IHZhbHVlCgpm dW5jdGlvbiBwcCA9IGNzYXBlICh4LCB5LCBjb25kLCB2YWxjKQoKICB4ID0geCg6KTsKICBu ID0gbGVuZ3RoKHgpOwoKICB0cmFuc3Bvc2UgPSAoY29sdW1ucyh5KSA9PSBuKTsKICBpZiAo dHJhbnNwb3NlKSB5ID0geSc7IGVuZGlmCgogIGEgPSB5OwogIGIgPSBjID0gemVyb3MgKHNp emUgKHkpKTsKICBoID0gZGlmZiAoeCk7CiAgaWR4ID0gb25lcyAoY29sdW1ucyh5KSwxKTsK CiAgaWYgKG5hcmdpbiA8IDMgfHwgc3RyY21wKGNvbmQsImNvbXBsZXRlIikpCiAgICAjIHNw ZWNpZmllZCBmaXJzdCBkZXJpdmF0aXZlIGF0IGVuZCBwb2ludAogICAgaWYgKG5hcmdpbiA8 IDQpCiAgICAgIHZhbGMgPSBbMCwgMF07CiAgICBlbmRpZgoKICAgIGlmIChuID49IDQpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBhZGRlZAogICAgICBkZyA9IDIgKiAo aCgxOm4gLSAyKSAuKyBoKDI6biAtIDEpKTsgICAgICAlIG9yaWdpbmFsCiAgICBlbHNlICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgYWRkZWQKICAgICAgZGcg PSAyICogKGgoMTpuIC0gMikpOyAgICAgICAgICAgICAgICAgICAgJSBhZGRlZAogICAgZW5k ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIGFkZGVkCiAgICAK ICAgIGRnKDEpID0gZGcoMSkgLSAwLjUgKiBoKDEpOwogICAgZGcobiAtIDIpID0gZGcobi0y KSAtIDAuNSAqIGgobiAtIDEpOwoKICAgIGUgPSBoKDI6biAtIDIpOwoKICAgIGcgPSAzICog ZGlmZiAoYSgyOm4sOikpIC4vIGgoMjpuIC0gMSxpZHgpXAogICAgICAtIDMgKiBkaWZmIChh KDE6biAtIDEsOikpIC4vIGgoMTpuIC0gMixpZHgpOwogICAgZygxLDopID0gMyAqIChhKDMs OikgLSBhKDIsOikpIC8gaCgyKSBcCiAgICAgICAgLSAzIC8gMiAqICgzICogKGEoMiw6KSAt IGEoMSw6KSkgLyBoKDEpIC0gdmFsYygxKSk7CiAgICBnKG4gLSAyLDopID0gMyAvIDIgKiAo MyAqIChhKG4sOikgLSBhKG4gLSAxLDopKSAvIGgobiAtIDEpIC0gdmFsYygyKSlcCiAgICAg ICAgLSAzICogKGEobiAtIDEsOikgLSBhKG4gLSAyLDopKSAvIGgobiAtIDIpOwoKICAgIGlm KG4gPT0gMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBhZGRlZAogICAg ICAgYygyOm4gLSAxLDopID0gMS9kZygxLDEpOyAgICAgICAgICAgICAgICAlIGFkZGVkCiAg ICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgYWRkZWQK ICAgICAgIGMoMjpuIC0gMSw6KSA9IHRyaXNvbHZlKGRnLGUsZyk7ICAgICAgICAgJSBvcmln aW5hbAogICAgZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAl IGFkZGVkCiAgICBjKDEsOikgPSAoMyAvIGgoMSkgKiAoYSgyLDopIC0gYSgxLDopKSAtIDMg KiB2YWxjKDEpIAoJICAgICAgLSBjKDIsOikgKiBoKDEpKSAvICgyICogaCgxKSk7IAogICAg YyhuLDopID0gLSAoMyAvIGgobiAtIDEpICogKGEobiw6KSAtIGEobiAtIDEsOikpIC0gMyAq IHZhbGMoMikgCgkJKyBjKG4gLSAxLDopICogaChuIC0gMSkpIC8gKDIgKiBoKG4gLSAxKSk7 CiAgICBiKDE6biAtIDEsOikgPSBkaWZmIChhKSAuLyBoKDE6biAtIDEsIGlkeClcCiAgICAg IC0gaCgxOm4gLSAxLGlkeCkgLyAzIC4qIChjKDI6biw6KSArIDIgKiBjKDE6biAtIDEsOikp OwogICAgZCA9IGRpZmYgKGMpIC4vICgzICogaCgxOm4gLSAxLCBpZHgpKTsKCiAgZWxzZWlm IChzdHJjbXAoY29uZCwidmFyaWF0aW9uYWwiKSB8fCBzdHJjbXAoY29uZCwic2Vjb25kIikp CgogICAgaWYgKChuYXJnaW4gPCA0KSB8fCBzdHJjbXAoY29uZCwidmFyaWF0aW9uYWwiKSkK ICAgICAgIyMgc2V0IHNlY29uZCBkZXJpdmF0aXZlcyBhdCBlbmQgcG9pbnRzIHRvIHplcm8K ICAgICAgdmFsYyA9IFswLCAwXTsKICAgIGVuZGlmCgogICAgYygxLDopID0gdmFsYygxKSAv IDI7CiAgICBjKG4sOikgPSB2YWxjKDIpIC8gMjsKCiAgICBnID0gMyAqIGRpZmYgKGEoMjpu LDopKSAuLyBoKDI6biAtIDEsIGlkeClcCiAgICAgIC0gMyAqIGRpZmYgKGEoMTpuIC0gMSw6 KSkgLi8gaCgxOm4gLSAyLCBpZHgpOwoKICAgIGcoMSw6KSA9IGcoMSw6KSAtIGgoMSkgKiBj KDEsOik7CiAgICBnKG4gLSAyLDopID0gZyhuLTIsOikgLSBoKG4gLSAxKSAqIGMobiw6KTsK CiAgICBpZiggbiA+PSA0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgYWRk ZWQKICAgICAgZGcgPSAyICogKGgoMTpuIC0gMikgLisgaCgyOm4gLSAxKSk7ICAgICAgJSBv cmlnaW5hbAogICAgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAlIGFkZGVkCiAgICAgIGRnID0gMiAqIChoKDE6biAtIDIpKTsgICAgICAgICAgICAgICAg ICAgICUgYWRkZWQKICAgIGVuZAogICAgZSA9IGgoMjpuIC0gMik7CiAgICAgICAgCiAgICBp ZihuID09IDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgYWRkZWQKICAg ICAgIGMoMjpuIC0gMSw6KSA9IGcvZGcoMSwxKTsgICAgICAgICAgICAgICAgJSBhZGRlZAog ICAgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIGFkZGVk CiAgICAgICBjKDI6biAtIDEsOikgPSB0cmlzb2x2ZSAoZGcsZSxnKTsgICAgICAgICUgb3Jp Z2luYWwKICAgIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JSBhZGRlZAogICAgCiAgICBiKDE6biAtIDEsOikgPSBkaWZmIChhKSAuLyBoKDE6biAtIDEs aWR4KVwKICAgICAgLSBoKDE6biAtIDEsaWR4KSAvIDMgLiogKGMoMjpuLDopICsgMiAqIGMo MTpuIC0gMSw6KSk7CiAgICBkID0gZGlmZiAoYykgLi8gKDMgKiBoKDE6biAtIDEsIGlkeCkp OwogIAogIGVsc2VpZiAoc3RyY21wKGNvbmQsInBlcmlvZGljIikpCgogICAgaCA9IFtoOyBo KDEpXTsKCiAgICAjIyBYWFggRklYTUUgWFhYIC0tLSB0aGUgZm9sbG93aW5nIGdpdmVzIGEg c21vb3RoZXIgcGVyaW9kaWMgdHJhbnNpdGlvbjoKICAgICMjICAgIGEobiw6KSA9IGEoMSw6 KSA9ICggYShuLDopICsgYSgxLDopICkgLyAyOwogICAgYShuLDopID0gYSgxLDopOwoKICAg IHRtcCA9IGRpZmYgKHNoaWZ0IChbYTsgYSgyLDopXSwgLTEpKTsKICAgIGcgPSAzICogdG1w KDE6biAtIDEsOikgLi8gaCgyOm4saWR4KVwKICAgICAgLSAzICogZGlmZiAoYSkgLi8gaCgx Om4gLSAxLGlkeCk7CgogICAgaWYgKG4gPiAzKQogICAgICBkZyA9IDIgKiAoaCgxOm4gLSAx KSAuKyBoKDI6bikpOwogICAgICBlID0gaCgyOm4gLSAxKTsKICAgICAgYygyOm4saWR4KSA9 IHRyaXNvbHZlKGRnLGUsZyxoKDEpLGgoMSkpOwogICAgZWxzZWlmIChuID09IDQpCiAgICAg IEEgPSBbMiAqIChoKDEpICsgaCgyKSksIChoKDEpICsgaCgyKSk7CiAgICAgICAgICAoaCgx KSArIGgoMikpLCAyICogKGgoMSkgKyBoKDIpKV07CiAgICAgIGMoMjpuLGlkeCkgPSBBIFwg ZzsKICAgIGVuZGlmCgogICAgYygxLDopID0gYyhuLDopOwogICAgYiA9IGRpZmYgKGEpIC4v IGgoMTpuIC0gMSxpZHgpXAogICAgICAtIGgoMTpuIC0gMSxpZHgpIC8gMyAuKiAoYygyOm4s OikgKyAyICogYygxOm4gLSAxLDopKTsKICAgIGIobiw6KSA9IGIoMSw6KTsKICAgIGQgPSBk aWZmIChjKSAuLyAoMyAqIGgoMTpuIC0gMSwgaWR4KSk7CiAgICBkKG4sOikgPSBkKDEsOik7 CgogIGVsc2VpZiAoc3RyY21wKGNvbmQsIm5vdC1hLWtub3QiKSkKCiAgICBpZiAobiA+IDQp CgogICAgICBkZyA9IDIgKiAoaCgxOm4gLSAyKSAuKyBoKDI6biAtIDEpKTsKICAgICAgZGco MSkgPSBkZygxKSAtIGgoMSk7CiAgICAgIGRnKG4gLSAyKSA9IGRnKG4tMikgLSBoKG4gLSAx KTsKCiAgICAgIGxkZyA9IHVkZyA9IGgoMjpuIC0gMik7CiAgICAgIHVkZygxKSA9IHVkZygx KSAtIGgoMSk7CiAgICAgIGxkZyhuIC0gMykgPSBsZGcobi0zKSAtIGgobiAtIDEpOwogCiAg ICBlbHNlaWYgKG4gPT0gNCkKCiAgICAgIGRnID0gW2goMSkgKyAyICogaCgyKSwgMiAqIGgo MikgKyBoKDMpXTsKICAgICAgbGRnID0gaCgyKSAtIGgoMyk7CiAgICAgIHVkZyA9IGgoMikg LSBoKDEpOwogICAgICAKICAgIGVsc2VpZiAobiA9PSAzKSAgICAgICAgICAgICAgICAlIGFk ZGVkCgkgICAgCiAgICAgIGRnPSBbaCgxKSArIDIgKiBoKDIpXTsgICAgICAgJSBhZGRlZAoK ICAgIGVuZGlmCiAgICBnID0gemVyb3MobiAtIDIsY29sdW1ucyh5KSk7CiAgICBnKDEsOikg PSAzIC8gKGgoMSkgKyBoKDIpKSAqIChhKDMsOikgLSBhKDIsOilcCiAgICAgICAgICAtIGgo MikgLyBoKDEpICogKGEoMiw6KSAtIGEoMSw6KSkpOwogICAgaWYgKG4gPiA0KQogICAgICBn KDI6biAtIDMsOikgPSAzICogZGlmZiAoYSgzOm4gLSAxLDopKSAuLyBoKDM6biAtIDIsaWR4 KVwKICAgICAgICAtIDMgKiBkaWZmIChhKDI6biAtIDIsOikpIC4vIGgoMjpuIC0gMyxpZHgp OwogICAgZW5kaWYKICAgIGcobiAtIDIsOikgPSAzIC8gKGgobiAtIDEpICsgaChuIC0gMikp ICpcCiAJKGgobiAtIDIpIC8gaChuIC0gMSkgKiAoYShuLDopIC0gYShuIC0gMSw6KSkgLVwK CSAoYShuIC0gMSw6KSAtIGEobiAtIDIsOikpKTsKCiAgICBpZihuID09IDMpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAlIGFkZGVkCiAgICAgICBjKDI6biAtIDEsOikgPSBn L2RnKDEsMSk7ICAgICAgICAgICAgICAlIGFkZGVkCiAgICBlbHNlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAlIGFkZGVkICAKICAgICAgIGMoMjpuIC0gMSw6KSA9 IHRyaXNvbHZlKGxkZyxkZyx1ZGcsZyk7ICUgb3JpZ2luYWwKICAgIGVuZCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgYWRkZWQKICAgIAogICAgYygxLDopID0g YygyLDopICsgaCgxKSAvIGgoMikgKiAoYygyLDopIC0gYygzLDopKTsKICAgIGMobiw6KSA9 IGMobiAtIDEsOikgKyBoKG4gLSAxKSAvIGgobiAtIDIpICogKGMobiAtIDEsOikgLSBjKG4g LSAyLDopKTsKICAgIGIgPSBkaWZmIChhKSAuLyBoKDE6biAtIDEsIGlkeClcCiAgICAgIC0g aCgxOm4gLSAxLCBpZHgpIC8gMyAuKiAoYygyOm4sOikgKyAyICogYygxOm4gLSAxLDopKTsK ICAgIGQgPSBkaWZmIChjKSAuLyAoMyAqIGgoMTpuIC0gMSwgaWR4KSk7CgogIGVsc2UKICAg IG1zZyA9IHNwcmludGYoInVua25vd24gZW5kIGNvbmRpdGlvbjogJXMiLGNvbmQpOwogICAg ZXJyb3IgKG1zZyk7CiAgZW5kaWYKCiAgZCA9IGQoMTpuLTEsOik7IGM9YygxOm4tMSw6KTsg Yj1iKDE6bi0xLDopOyBhPWEoMTpuLTEsOik7CiAgY29lZmZzID0gW2QoOiksIGMoOiksIGIo OiksIGEoOildOwogIHBwID0gbWtwcCAoeCwgY29lZmZzKTsKCmVuZGZ1bmN0aW9uCgoKJSFz aGFyZWQgeCx5LGNvbmQKJSEgeCA9IGxpbnNwYWNlKDAsMipwaSwxNSknOyB5ID0gc2luKHgp OwoKJSFhc3NlcnQgKHBwdmFsKGNzYXBlKHgseSkseCksIHksIDEwKmVwcyk7CiUhYXNzZXJ0 IChwcHZhbChjc2FwZSh4LHkpLHgnKSwgeScsIDEwKmVwcyk7CiUhYXNzZXJ0IChwcHZhbChj c2FwZSh4Jyx5JykseCcpLCB5JywgMTAqZXBzKTsKJSFhc3NlcnQgKHBwdmFsKGNzYXBlKHgn LHknKSx4KSwgeSwgMTAqZXBzKTsKJSFhc3NlcnQgKHBwdmFsKGNzYXBlKHgsW3kseV0pLHgp LCBcCiUhCSAgW3BwdmFsKGNzYXBlKHgseSkseCkscHB2YWwoY3NhcGUoeCx5KSx4KV0sIDEw KmVwcykKCiUhdGVzdCBjb25kPSdjb21wbGV0ZSc7CiUhYXNzZXJ0IChwcHZhbChjc2FwZSh4 LHksY29uZCkseCksIHksIDEwKmVwcyk7CiUhYXNzZXJ0IChwcHZhbChjc2FwZSh4LHksY29u ZCkseCcpLCB5JywgMTAqZXBzKTsKJSFhc3NlcnQgKHBwdmFsKGNzYXBlKHgnLHknLGNvbmQp LHgnKSwgeScsIDEwKmVwcyk7CiUhYXNzZXJ0IChwcHZhbChjc2FwZSh4Jyx5Jyxjb25kKSx4 KSwgeSwgMTAqZXBzKTsKJSFhc3NlcnQgKHBwdmFsKGNzYXBlKHgsW3kseV0sY29uZCkseCks IFwKJSEJICBbcHB2YWwoY3NhcGUoeCx5LGNvbmQpLHgpLHBwdmFsKGNzYXBlKHgseSxjb25k KSx4KV0sIDEwKmVwcykKCiUhdGVzdCBjb25kPSd2YXJpYXRpb25hbCc7CiUhYXNzZXJ0IChw cHZhbChjc2FwZSh4LHksY29uZCkseCksIHksIDEwKmVwcyk7CiUhYXNzZXJ0IChwcHZhbChj c2FwZSh4LHksY29uZCkseCcpLCB5JywgMTAqZXBzKTsKJSFhc3NlcnQgKHBwdmFsKGNzYXBl KHgnLHknLGNvbmQpLHgnKSwgeScsIDEwKmVwcyk7CiUhYXNzZXJ0IChwcHZhbChjc2FwZSh4 Jyx5Jyxjb25kKSx4KSwgeSwgMTAqZXBzKTsKJSFhc3NlcnQgKHBwdmFsKGNzYXBlKHgsW3ks eV0sY29uZCkseCksIFwKJSEJICBbcHB2YWwoY3NhcGUoeCx5LGNvbmQpLHgpLHBwdmFsKGNz YXBlKHgseSxjb25kKSx4KV0sIDEwKmVwcykKCiUhdGVzdCBjb25kPSdzZWNvbmQnOwolIWFz c2VydCAocHB2YWwoY3NhcGUoeCx5LGNvbmQpLHgpLCB5LCAxMCplcHMpOwolIWFzc2VydCAo cHB2YWwoY3NhcGUoeCx5LGNvbmQpLHgnKSwgeScsIDEwKmVwcyk7CiUhYXNzZXJ0IChwcHZh bChjc2FwZSh4Jyx5Jyxjb25kKSx4JyksIHknLCAxMCplcHMpOwolIWFzc2VydCAocHB2YWwo Y3NhcGUoeCcseScsY29uZCkseCksIHksIDEwKmVwcyk7CiUhYXNzZXJ0IChwcHZhbChjc2Fw ZSh4LFt5LHldLGNvbmQpLHgpLCBcCiUhCSAgW3BwdmFsKGNzYXBlKHgseSxjb25kKSx4KSxw cHZhbChjc2FwZSh4LHksY29uZCkseCldLCAxMCplcHMpCgolIXRlc3QgY29uZD0ncGVyaW9k aWMnOwolIWFzc2VydCAocHB2YWwoY3NhcGUoeCx5LGNvbmQpLHgpLCB5LCAxMCplcHMpOwol IWFzc2VydCAocHB2YWwoY3NhcGUoeCx5LGNvbmQpLHgnKSwgeScsIDEwKmVwcyk7CiUhYXNz ZXJ0IChwcHZhbChjc2FwZSh4Jyx5Jyxjb25kKSx4JyksIHknLCAxMCplcHMpOwolIWFzc2Vy dCAocHB2YWwoY3NhcGUoeCcseScsY29uZCkseCksIHksIDEwKmVwcyk7CiUhYXNzZXJ0IChw cHZhbChjc2FwZSh4LFt5LHldLGNvbmQpLHgpLCBcCiUhCSAgW3BwdmFsKGNzYXBlKHgseSxj b25kKSx4KSxwcHZhbChjc2FwZSh4LHksY29uZCkseCldLCAxMCplcHMpCgolIXRlc3QgY29u ZD0nbm90LWEta25vdCc7CiUhYXNzZXJ0IChwcHZhbChjc2FwZSh4LHksY29uZCkseCksIHks IDEwKmVwcyk7CiUhYXNzZXJ0IChwcHZhbChjc2FwZSh4LHksY29uZCkseCcpLCB5JywgMTAq ZXBzKTsKJSFhc3NlcnQgKHBwdmFsKGNzYXBlKHgnLHknLGNvbmQpLHgnKSwgeScsIDEwKmVw cyk7CiUhYXNzZXJ0IChwcHZhbChjc2FwZSh4Jyx5Jyxjb25kKSx4KSwgeSwgMTAqZXBzKTsK JSFhc3NlcnQgKHBwdmFsKGNzYXBlKHgsW3kseV0sY29uZCkseCksIFwKJSEJICBbcHB2YWwo Y3NhcGUoeCx5LGNvbmQpLHgpLHBwdmFsKGNzYXBlKHgseSxjb25kKSx4KV0sIDEwKmVwcykK --B_3158603119_28209831 Content-type: multipart/appledouble; boundary="B_3158603115_28220628" --B_3158603115_28220628 Content-type: application/applefile; name="test_csape.m" Content-transfer-encoding: base64 Content-disposition: attachment AAUWBwACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAJAAAAPgAAACAAAAADAAAAXgAAAAwAAAAC AAAAagAAAX5URVhUUipjaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRlc3RfY3NhcGUubQAA AQAAAAFMAAAATAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAlNb25hY28AAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAQAMQCbAt4DAgAxAJsC3gMCvERn0QAAAvEAAALx AAAA1AEAAAABAAAAAUwAAABMAAAAMgAOgIQA/AAAABwAMgAATVBTUgAAAAoD7f//AAAAAAFK TWg= --B_3158603115_28220628 Content-type: text/plain; name="test_csape.m"; x-mac-creator="522A6368"; x-mac-type="54455854" Content-disposition: attachment Content-transfer-encoding: base64 ZnVuY3Rpb24gdGVzdF9jc2FwZQoKJSBTaW1wbGUgbWluZGVkIHRlc3QgcHJvZ3JhbSBmb3Ig dGhyZWUgcG9pbnQgaW5wdXQgdG8gY3NhcGUubQoKY2xlYXIgYWxsOwoKZm9yIGkgPSAxOjMK CmlmIChpID09IDEpCiAgIHNwbGluZV90eXBlID0gJ2NvbXBsZXRlJwplbHNlaWYgKGkgPT0g MikKICAgc3BsaW5lX3R5cGUgPSAndmFyaWF0aW9uYWwnCmVsc2VpZiAoaSA9PSAzKQogICBz cGxpbmVfdHlwZSA9ICdub3QtYS1rbm90JwplbmQKCgolIHRlc3Qgd2l0aCB0aHJlZSByYW5k b20gbnVtYmVycyBvbiBbMDoxXQoKY2xlYXIgeF9pbiB5X2luIHlfdGVzdCB4X291dCB5X291 dCB4X3Vuc29ydCAKCnhfdW5zb3J0ID0gcmFuZCgxOjMpOwoKJSBzb3J0IHggaW50byBhc2Nl bmRpbmcgb3JkZXIKCnhfaW4gPSBzb3J0KHhfdW5zb3J0KQoKeV9pbiA9IHJhbmQoMTozKTsK CnBwID0gY3NhcGUoeF9pbix5X2luLHNwbGluZV90eXBlKQoKeV9pbgp5X3Rlc3QgPSBwcHZh bChwcCx4X2luKQoKc3RlcCA9ICh4X2luKGVuZCkgLSB4X2luKDEpKS8xMDA7Cgp4X291dCA9 IFt4X2luKDEpOnN0ZXA6eF9pbihlbmQpXTsKCnlfb3V0ID0gcHB2YWwocHAseF9vdXQpOwoK Y2xlYXJwbG90Owpob2xkIG9uOwp0aXRsZSAoWydSYW5kb20gVGVzdCAtICcsc3BsaW5lX3R5 cGVdKTsKcGxvdCh4X2luLHlfaW4sIkAiKTsgcGxvdCh4X291dCx5X291dCk7CmhvbGQgb2Zm OwoKZGlzcCgnUmFuZG9tIHBsb3QgY29tcGxldGUuIFByZXNzIGEga2V5JykKcGF1c2UKCiUg c3RyYWlnaHQgbGluZSB0ZXN0CmNsZWFyIHhfaW4geV9pbiB4X291dCB5X291dAoKeF9pbiA9 IFsxOjE6M10KeV9pbiA9IFsyOjI6Nl07CgpwcCA9IGNzYXBlKHhfaW4seV9pbixzcGxpbmVf dHlwZSkKCnhfb3V0ID0gWzE6MC4yNTozXTsKeV9pbgp5X291dCA9IHBwdmFsKHBwLHhfb3V0 KQoKZGlzcCgnU3RyYWlnaHQgbGluZSB0ZXN0IGNvbXBsZXRlLiBDaGVjayByZXN1bHRzLiBQ cmVzcyBhIGtleS4nKQpwYXVzZQoKJSBjdWJpYyBpbnB1dCBwb2x5bm9taWFsIHRlc3QKCmNs ZWFyIHhfaW4geV9pbiB4X2xvbmcgeV9sb25nIHlfdGVzdCB4X291dCB5X291dAoKYSA9IDEK YiA9IDIKYyA9IDMKZCA9IDQKCnhfaW4gPSBbMToxOjNdCnlfaW4gPSBhKnhfaW4uXjMgKyBi KnhfaW4uXjIgKyBjKnhfaW4gK2Q7Cgp4X2xvbmcgPSBbMTowLjE6M107CnlfbG9uZyA9IGEq eF9sb25nLl4zICsgYip4X2xvbmcuXjIgKyBjKnhfbG9uZyArZDsKCnBwID0gY3NhcGUoeF9p bix5X2luLHNwbGluZV90eXBlKQoKeV9pbgp5X3Rlc3QgPSBwcHZhbChwcCx4X2luKQoKeF9v dXQgPSBbMTowLjE6M107Cnlfb3V0ID0gcHB2YWwocHAseF9sb25nKTsKCmNsZWFycGxvdApo b2xkIG9uCnRpdGxlIChbJ1BvbHlub21pYWwgVGVzdCAtICcsc3BsaW5lX3R5cGVdKQpwbG90 KHhfaW4seV9pbiwiQCIpOyBwbG90KHhfb3V0LHlfb3V0KTsgcGxvdCh4X2xvbmcseV9sb25n KTsKaG9sZCBvZmYKZGlzcCgnUG9seW5vbWlhbCBwbG90IGNvbXBsZXRlLiBQcmVzcyBhIGtl eS4nKQpwYXVzZQogCmVuZGZvcgoKCgoKCgo= --B_3158603115_28220628-- --B_3158603119_28209831-- ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------