From octave-sources-request at bevo dot che dot wisc dot edu Fri Apr 12 09:31:13 2002 Subject: analytic derivations From: Matthias Jueschke To: octave-sources at bevo dot che dot wisc dot edu Date: Fri, 12 Apr 2002 16:29:38 +0200 (MET DST) This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime at docserver dot cac dot washington dot edu for more info. ---559023410-851401618-1018621778=:10473 Content-Type: TEXT/PLAIN; charset=US-ASCII Hi, I wrote some functions to compute analytic derivations. Usage: derivate('sin(x)','x') Matthias Jueschke ---559023410-851401618-1018621778=:10473 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="derivate.m" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="derivate.m" JSBDb3B5cmlnaHQgKEMpIDIwMDIgIE1hdHRoaWFzIEp1ZXNjaGtlDQolDQol IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQolIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5DQolIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQolIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQolDQolIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLA0KJSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KJSBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl DQolIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuDQolDQolIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQolIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3 YXJlDQolIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1 aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNywgVVNBLg0KJQ0KJSBB dXRob3I6IE1hdHRoaWFzIEp1ZXNjaGtlDQolIERhdGU6IEFwciAyMDAyDQoN CmZ1bmN0aW9uIGRlcmkgPSBkZXJpdmF0ZShmdW4sdmFyLGVsZW1lbnR3aXNl LGRlZXApDQolDQolIGQgPSBkZXJpdmF0ZShmdW4sdmFyKTogY29tcHV0ZXMg dGhlIGFuYWx5dGljIGRlcml2YXRpb24gb2YgdGhlDQolICBzdHJpbmcgZnVu OiBkKGZ1bikvZCh2YXIpLiBJZiBmdW4gZW5kcyB3aXRoICc7JywgZCB3aWxs IGVuZA0KJSAgd2l0aCAnOycgYWxzby4NCiUgDQolIGQgPSBkZXJpdmF0ZShm dW4sdmFyLGVsZW1lbnR3aXNlKTogaWYgZWxlbWVudHdpc2UgaXMgbm90IGVx dWFsIDAsIA0KJSAgZnVuIGlzIGludGVycHJldGVkIGFzIGEgdmVjdG9yLiBU aGF0IG1lYW5zICcuKicsICcuLycgYW5kICcuXicgDQolICBhcmUgYWx3YXlz IHVzZWQgaW5zdGVhZCBvZiAnKicsICcvJyBhbmQgJ14nLg0KJQ0KJSBrbm93 biBmdW5jdGlvbnMgYXJlOg0KJSAoYSlzaW4sY29zLHRhbihoKSwgc3FydCxs b2csZXhwLGVyZixhYnMNCiUNCiUgaWYgdGhlIGZ1bmN0aW9uIGlzIG5vdCBr bm93biwgYSBjYXBpdGFsIEQgaXMgcHV0IGluIGZyb250LCBlLmcuDQolICBk ZXJpdmF0ZSgnY290KHgpJywneCcpDQolICBhbnMgPSBEY290KHgpDQolDQol IGtub3duIGJ1ZyBhbmQgd29ya2Fyb3VuZHM6DQolICAtIGRvIG5vdCB1c2Ug dmFsdWVzIHdpdGggZXhwb25lbnRzIGxpa2UgM2UrNSwgdXNlIDMwMDAwMCBv ciANCiUgICAgY2FsbCBpdCAnYycgd2l0aCBjPTMwMDAwMCBpbnN0ZWFkLg0K JSAgLSB1c2UgXiBpbnN0ZWFkIG9mICoqDQolICAtIHRoZSB0cmFuc3Bvc2Ug b3BlcmF0b3IgJyBpcyBub3Qgc3VwcG9ydGVkDQoNCg0KJSUlJSBraW5kIG9m IEluaXRpYWxpc2F0aW9uICUlJSUNCg0KZ2xvYmFsIGVsZW1lbnR3aXNlX3N1 cHBvcnQNCg0KaWYgKG5hcmdpbjwyKQ0KICB1c2FnZSgndXNhZ2U6IGQ9ZGVy aXZhdGUoZnVuLHhbLGVsZW1lbnR3aXNlXSknKTsgZW5kDQoNCmlmIChpc3N0 cihmdW4pPT0wKSB8IChpc3N0cih2YXIpPT0wKQ0KICBlcnJvcignZGVyaXZh dGU6IGJvdGggZnVuIGFuZCB2YXIgbXVzdCBiZSBzdHJpbmdzJyk7IGVuZA0K DQpsYXN0c2lnbj0nJzsNCmlmIG5hcmdpbjw0DQogIGRlZXA9MDsNCiAgbGFz dHNpZ249ZnVuKGxlbmd0aChmdW4pKTsNCiAgaWYgKGxhc3RzaWduPT0nOycp IGZ1bj1mdW4oMTpsZW5ndGgoZnVuKS0xKTsgZW5kDQplbmQNCg0KaWYgKG5h cmdpbjwzKSAmIChkZWVwPT0wKQ0KICBlbGVtZW50d2lzZT0wOyBlbmQNCg0K aWYgZWxlbWVudHdpc2UNCiAgZWxlbWVudHdpc2Vfc3VwcG9ydD0nLic7DQpl bHNlDQogIGVsZW1lbnR3aXNlX3N1cHBvcnQ9Jyc7IGVuZA0KDQppZiAoZGVl cD09MCkNCiAgZnVuPWZ1bihmaW5kKGZ1bn49JyAnKSk7IGVuZA0KDQoNCiUl JSUgZnVuPT12YXIgLT4gZChmdW4pL2QodmFyKSA9IDEsIC4uLiAlJSUlDQpp ZiAobGVuZ3RoKGZ1bik9PWxlbmd0aCh2YXIpKSAmIChmdW49PXZhcikNCiAg ZGVyaT0nMSc7IGJyZWFrOw0KZWxzZWlmIChsZW5ndGgoZnVuKT09bGVuZ3Ro KHZhcikrMSkNCiAgaWYgKGZ1bj09WyctJyB2YXJdKQ0KICAgIGRlcmk9Jy0x JzsgYnJlYWs7DQogIGVsc2VpZiAoZnVuPT1bJysnIHZhcl0pDQogICAgZGVy aT0nMSc7ICBicmVhazsNCiAgZWxzZWlmIChmdW49PVt2YXIgJy4nXSkNCiAg ICBkZXJpPScxJzsgIGJyZWFrOw0KICBlbmQNCmVsc2VpZiAobGVuZ3RoKGZ1 bik9PWxlbmd0aCh2YXIpKzIpDQogIGlmIChmdW49PVsnLScgdmFyICcuJ10p DQogICAgZGVyaT0nLTEnOyBicmVhazsNCiAgZWxzZWlmIChmdW49PVsnKycg dmFyICcuJ10pDQogICAgZGVyaT0nMSc7ICBicmVhazsNCiAgZW5kDQplbmQN CmRlcmk9Jyc7DQoNCiUlJSBmaW5kIGJpbmFyeSBvcGVyYXRvciArLSovXiBv ciBub3QNCg0KW2xvdywgbG93cG9zXSA9IHNlcGFyYXRlKGZ1bik7DQpmdW5s ZW49bGVuZ3RoKGZ1bik7DQpzZ249MTsgICAgICAgICAgICAgICAgICAgICAl IHRoZSBzaWduLCBpZiBuZWdhdGl2IGl0IGlzIHNldCBsYXRlcg0KDQoNCmlm IGFueShsb3c9PScrLSovXicpICAlJSUlIGJpbmFyeSBvcGVyYXRvcnMgKyAt ICogLyBeICUlJSUNCg0KICBmMSA9IGZ1bigxOmxvd3Bvcy0xKTsNCiAgZjIg PSBmdW4obG93cG9zKzE6ZnVubGVuKTsNCiAgaWYgKGZ1bigxKT09Jy0nKSAm IChsb3c9PSdeJykNCiAgICBzZ249LTE7DQogICAgZjEgPSBmdW4oMjpsb3dw b3MtMSk7DQogIGVuZA0KDQogIA0KICBpZiAoZWxlbWVudHdpc2Vfc3VwcG9y dD09Jy4nKSAmIChsb3dwb3M+MSkgJiAoZjEobGVuZ3RoKGYxKSk9PScuJykN CiAgICBmMSA9IGZ1bigxOmxlbmd0aChmMSktMSk7DQogIGVuZA0KICBkMSA9 IGRlcml2YXRlKGYxLHZhcixlbGVtZW50d2lzZSxkZWVwKzEpOw0KICBkMiA9 IGRlcml2YXRlKGYyLHZhcixlbGVtZW50d2lzZSxkZWVwKzEpOw0KDQogIGlm IChsb3c9PScrJykNCiAgICBkZXJpID0gYWRkKGQxLGQyKTsNCg0KICBlbHNl aWYgKGxvdz09Jy0nKQ0KICAgIGRlcmkgPSBzdWIoZDEsZDIpOw0KDQogIGVs c2VpZiAobG93PT0nKicpICAgICAgICAgICAgICAgICAgICUlJSBmb3IgJyon IGQxKmYyK2YxKmQyDQogICAgZGVyaSA9IGFkZCggbXVsKGQxLGYyKSAsIG11 bChmMSxkMikgKTsNCiAgZWxzZWlmIChsb3c9PScvJykgICAgICAgICAgICAg ICAgICAgJSUlICBmb3IgJy8nIGQxL2YyLWYxL2YyXjINCiAgICBkZXJpID0g c3ViKCBkaXYoZDEsZjIpICwgZGl2KG11bChmMSxkMikscG93KGYyLCcyJykp ICk7DQoNCiAgZWxzZWlmIChsb3c9PSdeJykgICAgICAgICAgICAgICAgICAg JSUlIGQxKmYyKmYxXihmMi0xKStkMipsb2coZjEpKmYxXmYyDQogICAgZGVy aSA9IGFkZChtdWwobXVsKGQxLGYyKSxwb3coZjEsc3ViKGYyLCcxJykpKSwg Li4uDQoJICAgICAgIG11bChtdWwoZDIsWyAnbG9nKCcgZjEgJyknIF0pLHBv dyhmMSxmMikpKTsNCiAgICBpZiAoc2duPT0tMSkNCiAgICAgIGRlcmk9bXVs KCctMScsZGVyaSk7DQogICAgZW5kDQogIGVuZA0KDQoNCmVsc2UgICUlJSUg bm8gb3BlcmF0YWJsZSBiaW5hcnkgb3BlcmF0b3Igb2NjdXJlZCAlJSUlDQoN Cg0KICAlJSUgd2l0aG91dCBicmFrZXQgaXQgc2hvdWxkIGJlIGEgY29uc3Rh bnQNCiAgaWYgYW55KGZ1bj09JygnKSA9PSAwDQogICAgZGVyaT0nMCc7DQog ICAgYnJlYWs7DQogIGVuZA0KDQogIGlmIGZ1bihmdW5sZW4pfj0nKScNCiAg ICBlcnJvcihbJ0NhbiBub3QgZXZhbHVhdGU6JyBmdW5dKTsNCiAgZW5kDQoN CiAgaD1mdW4oMSk7DQogIGlmIChoPT0nLScpIHwgKGg9PScrJykNCiAgICBp ZiAoaD09Jy0nKSANCiAgICAgIHNnbj0tMTsgZW5kDQogICAgZnVuPWZ1bigy OmZ1bmxlbik7DQogICAgZnVubGVuPWZ1bmxlbi0xOw0KICBlbmQNCg0KICBo PWZpbmQoZnVuPT0nKCcpOw0KICBma3Q9ZnVuKDE6aCgxKS0xKTsNCiAgZDEg PSBkZXJpdmF0ZShmdW4oaCgxKSsxOmZ1bmxlbi0xKSx2YXIsZWxlbWVudHdp c2UsZGVlcCsxKTsNCiAgZjE9ZnVuKGgoMSk6ZnVubGVuKTsgICAgICAgICAl IGYxIGhhcyBicmFrZXRzIGFyb3VuZA0KICBmMD1mdW4oaCgxKSsxOmZ1bmxl bi0xKTsgICAgICUgZjAgaGFzIG5vIGJyYWtldHMNCg0KICBpZiAobGVuZ3Ro KGZrdCk9PTApDQoNCiAgICBkZXJpPWQxOw0KDQogIGVsc2VpZiAobGVuZ3Ro KGZrdCk9PTMpDQoNCiAgICBpZiAoZmt0PT0nYWJzJykNCiAgICAgIGRlcmk9 bXVsKGQxLFsnc2lnbicgZjFdKTsNCiAgICBlbHNlaWYgKGZrdD09J2Nvcycp DQogICAgICBkZXJpPW11bChkMSxbJy1zaW4nIGYxXSk7DQogICAgZWxzZWlm IChma3Q9PSdlcmYnKQ0KICAgICAgZjE9ZjEoMjpsZW5ndGgoZjEpLTEpOw0K ICAgICAgZGVyaT1tdWwoZGl2KG11bCgnMicsZDEpLCdzcXJ0KHBpKScpLCAu Li4NCgkgICAgICAgWydleHAoJyBtdWwoJy0xJyxwb3coZjAsJzInKSkgJykn XSk7DQogICAgZWxzZWlmIChma3Q9PSdleHAnKQ0KICAgICAgZGVyaT1tdWwo ZDEsWydleHAnIGYxXSk7DQogICAgZWxzZWlmIChma3Q9PSdsb2cnKQ0KICAg ICAgZGVyaT1kaXYoZDEsZjEpOw0KICAgIGVsc2VpZiAoZmt0PT0nc2luJykN CiAgICAgIGRlcmk9bXVsKGQxLFsnY29zJyBmMV0pOw0KICAgIGVsc2VpZiAo Zmt0PT0ndGFuJykNCiAgICAgIGRlcmk9bXVsKGQxLCBzdWIoJzEnLHBvdyhb J3RhbicgZjFdLCcyJykpICk7DQogICAgZW5kDQoNCiAgZWxzZWlmIChsZW5n dGgoZmt0KT09NCkNCg0KICAgIGlmIChma3Q9PSdhY29zJykNCiAgICAgIGRl cmk9ZGl2KG11bCgnLTEnLGQxKSxbJ3NxcnQoJyBzdWIoJzEnLHBvdyhmMCwn MicpKSAnKSddKTsNCiAgICBlbHNlaWYgKGZrdD09J2FzaW4nKQ0KICAgICAg ZGVyaT1kaXYoZDEsWydzcXJ0KCcgc3ViKCcxJywgcG93KGYwLCcyJykpICcp J10pOw0KICAgIGVsc2VpZiAoZmt0PT0nYXRhbicpDQogICAgICBkZXJpPWRp dihkMSxhZGQoJzEnLHBvdyhmMCwnMicpKSk7DQogICAgZWxzZWlmIChma3Q9 PSdjb3NoJykNCiAgICAgIGRlcmk9bXVsKGQxLFsnc2luaCcgZjFdKTsNCiAg ICBlbHNlaWYgKGZrdD09J3NpZ24nKQ0KICAgICAgZGVyaT0nMCc7DQogICAg ZWxzZWlmIChma3Q9PSdzaW5oJykNCiAgICAgIGRlcmk9bXVsKGQxLFsnY29z aCcgZjFdKTsNCiAgICBlbHNlaWYgKGZrdD09J3NxcnQnKQ0KICAgICAgZGVy aT1kaXYoZGl2KGQxLCcyJyksWydzcXJ0JyBmMV0pOw0KICAgIGVsc2VpZiAo Zmt0PT0ndGFuaCcpDQogICAgICBkZXJpPWRpdihkMSxwb3coWydjb3NoJyBm MV0sJzInKSk7DQogICAgZW5kDQoNCiAgZWxzZWlmIChsZW5ndGgoZmt0KT09 NSkNCiAgDQogICAgaWYgKGZrdD09J2Fjb3NoJykNCiAgICAgIGRlcmk9ZGl2 KGQxLFsgJ3NxcnQoJyBzdWIocG93KGYwLCcyJyksJzEnKSAnKScgXSk7DQog ICAgZWxzZWlmIChma3Q9PSdhc2luaCcpDQogICAgICBkZXJpPWRpdihkMSxb ICdzcXJ0KCcgYWRkKHBvdyhmMCwnMicpLCcxJykgJyknIF0pOw0KICAgIGVs c2VpZiAoZmt0PT0nYXRhbmgnKQ0KICAgICAgZGVyaT1kaXYoZDEsIHN1Yign MScscG93KGYwLCcyJykpICk7DQogICAgZW5kDQogIGVuZA0KDQogICUlJSBm dW5jdGlvbiBub3QgZm91bmQNCiAgaWYgKGRlcmk9PScnKQ0KICAgIGRlcmk9 bXVsKGQxLFsnRCcgZmt0IGYxXSk7DQogIGVuZA0KIA0KICBpZiAoc2duPT0t MSkNCiAgICBkZXJpPW11bCgnLTEnLGRlcmkpOw0KICBlbmQNCg0KZW5kDQoN CmlmIChkZWVwPT0wKSAmIChsYXN0c2lnbj09JzsnKQ0KICBkZXJpPVtkZXJp ICc7J107DQplbmQNCg== ---559023410-851401618-1018621778=:10473 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="add.m" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="add.m" JSBDb3B5cmlnaHQgKEMpIEFwciAyMDAyICBNYXR0aGlhcyBKdWVzY2hrZQ0K JQ0KJSBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KJSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQ0KJSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KJSAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KJQ0KJSBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwNCiUgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiUgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQ0KJSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLg0KJQ0KJSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KJSBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT b2Z0d2FyZQ0KJSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2Ug LSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcsIFVTQS4NCg0K ZnVuY3Rpb24gcmV0PWFkZChmMSxmMikNCg0KaWYgKGYxPT0nMCcpIHJldD1m MjsgYnJlYWs7IGVuZA0KaWYgKGYyPT0nMCcpIHJldD1mMTsgYnJlYWs7IGVu ZA0KDQppZiAoZjIoMSk9PScrJykgfCAoZjIoMSk9PSctJykNCiAgcmV0PVtm MSBmMl07DQplbHNlDQogIHJldD1bZjEgJysnIGYyXTsNCmVuZA0K ---559023410-851401618-1018621778=:10473 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="sub.m" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="sub.m" JSBDb3B5cmlnaHQgKEMpIEFwciAyMDAyICBNYXR0aGlhcyBKdWVzY2hrZQ0K JQ0KJSBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KJSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQ0KJSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KJSAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KJQ0KJSBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwNCiUgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiUgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQ0KJSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLg0KJQ0KJSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KJSBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT b2Z0d2FyZQ0KJSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2Ug LSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcsIFVTQS4NCg0K ZnVuY3Rpb24gcmV0PXN1YihmMSxmMix0cnlldmFsKQ0KDQppZiAobmFyZ2lu PDMpIHRyeWV2YWw9MTsgZW5kDQppZiB0cnlldmFsDQogIHRyeSByZXQ9bnVt MnN0cihldmFsKFtmMSAnLSgnIGYyICcpOycgXSkpOyBicmVhazsgY2F0Y2gg ZW5kDQplbmQNCg0KaWYgKGYyPT0nMCcpIHJldD1mMTsgYnJlYWs7IGVuZA0K DQpsb3cgPSBzZXBhcmF0ZShmMik7DQppZiAoYW55KGxvdz09JystJykpIGYy PVsnKCcgZjIgJyknXTsgZW5kDQoNCiUgYSBnb29kIGFsdGVybmF0aXZlIHRv IHNldHRpbmcgYnJha2V0cyBmb3IgbG93KGYyKT09JystJyBtYXkgYmUNCiUg dG8gY2hhbmdlIGFsbCArLC0gYnkgLSwrIHJlc3BlY3Rpdmx5Lg0KDQppZiAo ZjE9PScwJykNCiAgaWYgKGYyKDEpPT0nLScpIHJldD1mMigyOmxlbmd0aChm MikpOw0KICBlbHNlIHJldD1bJy0nIGYyXTsgZW5kDQogIGJyZWFrOw0KZW5k DQoNCg0KaWYgKGYyKDEpPT0nKycpIHwgKGYyKDEpPT0nLScpDQogIGlmIChm MigxKT09JysnKSBmMigxKT0nLSc7IGVuZA0KICBpZiAoZjIoMSk9PSctJykg ZjIoMSk9JysnOyBlbmQNCiAgcmV0PVtmMSBmMl07DQplbHNlDQogIHJldD1b ZjEgJy0nIGYyXTsNCmVuZA0K ---559023410-851401618-1018621778=:10473 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="mul.m" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="mul.m" JSBDb3B5cmlnaHQgKEMpIEFwciAyMDAyICBNYXR0aGlhcyBKdWVzY2hrZQ0K JQ0KJSBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KJSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQ0KJSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KJSAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KJQ0KJSBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwNCiUgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiUgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQ0KJSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLg0KJQ0KJSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KJSBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT b2Z0d2FyZQ0KJSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2Ug LSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcsIFVTQS4NCg0K ZnVuY3Rpb24gcmV0PW11bChmMSxmMix0cnlldmFsKQ0KDQpnbG9iYWwgZWxl bWVudHdpc2Vfc3VwcG9ydA0KDQp0cnkgY19fPVtlbGVtZW50d2lzZV9zdXBw b3J0ICcqJ107IGNhdGNoIGNfXz0nKic7IGVuZA0KDQppZiAobmFyZ2luPDMp IHRyeWV2YWw9MTsgZW5kDQppZiB0cnlldmFsDQogIHRyeSByZXQ9bnVtMnN0 cihldmFsKFtmMSBjX18gJygnIGYyICcpOycgXSkpOyBicmVhazsgY2F0Y2gg ZW5kDQplbmQNCg0KDQolJSBzb21lIHNpbXBsZSBzaW1wbGlmaWNhdGlvbjoN CmlmICAgICAgICAgICAgICAgICAgIChmMT09JzAnKSAgcmV0PScwJzsgYnJl YWs7IGVuZA0KaWYgKGxlbmd0aChmMSk9PTEpICYgKGYxPT0nMScpICByZXQ9 ZjI7ICBicmVhazsgZW5kDQppZiAgICAgICAgICAgICAgICAgICAoZjI9PScw JykgIHJldD0nMCc7IGJyZWFrOyBlbmQNCmlmIChsZW5ndGgoZjIpPT0xKSAm IChmMj09JzEnKSAgcmV0PWYxOyAgYnJlYWs7IGVuZA0KaWYgKGxlbmd0aChm MSk9PTIpLCBpZiAoZjE9PSctMScpIHJldD1zdWIoJzAnLGYyKTsgYnJlYWs7 IGVuZCwgZW5kDQppZiAobGVuZ3RoKGYyKT09MiksIGlmIChmMj09Jy0xJykg cmV0PXN1YignMCcsZjEpOyBicmVhazsgZW5kLCBlbmQNCiUgMiAnaWYncyBi ZWNhdXNlIG9jdGF2ZSAoMi4wLjE0KSBkb2VzIG5vdCBhYm9yZCBhZnRlciBm aXJzdCBmYWlsZWQgJi1vcGVyYXRvcg0KDQolJSBzZXQgYnJhY2tldHMgaWYg bmVjZXNzYXJ5DQpsb3cgPSBzZXBhcmF0ZShmMSk7DQppZiAoYW55KGxvdz09 JystJykpIGYxPVsnKCcgZjEgJyknXTsgZW5kDQogIA0KbG93ID0gc2VwYXJh dGUoZjIpOw0KaWYgKGFueShsb3c9PScrLScpKSBmMj1bJygnIGYyICcpJ107 IGVuZA0KDQoNCiUlIGRvIC1hKmIgaW5zdGVhZCBvZiBhKi1iLi4uOg0KaWYg KGYyKDEpPT0nLScpDQogIGYyPWYyKDI6bGVuZ3RoKGYyKSk7DQogIGlmIChm MSgxKT09Jy0nKSBmMT1mMSgyOmxlbmd0aChmMSkpOw0KICBlbHNlaWYgKGYx KDEpPT0nKycpIGYxKDEpPSctJzsNCiAgZWxzZSBmMT1bJy0nIGYxXTsNCiAg ZW5kDQplbmQNCg0KcmV0PVtmMSBjX18gZjJdOw0K ---559023410-851401618-1018621778=:10473 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="div.m" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="div.m" JSBDb3B5cmlnaHQgKEMpIEFwciAyMDAyICBNYXR0aGlhcyBKdWVzY2hrZQ0K JQ0KJSBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KJSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQ0KJSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KJSAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KJQ0KJSBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwNCiUgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiUgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQ0KJSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLg0KJQ0KJSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KJSBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT b2Z0d2FyZQ0KJSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2Ug LSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcsIFVTQS4NCg0K ZnVuY3Rpb24gcmV0PWRpdihmMSxmMikNCg0KZ2xvYmFsIGVsZW1lbnR3aXNl X3N1cHBvcnQNCg0KdHJ5IGM9W2VsZW1lbnR3aXNlX3N1cHBvcnQgJy8nXTsg Y2F0Y2ggYz0nLyc7IGVuZA0KDQoNCmlmICAgIGFsbChmMT09JzAnKSAmIChm Mn49JzAnKSByZXQ9JzAnOyBicmVhazsgZW5kDQppZiAobGVuZ3RoKGYyKT09 MSksIGlmIChmMj09JzEnKSByZXQ9ZjE7ICBicmVhazsgZW5kLCBlbmQNCg0K DQpsb3cgPSBzZXBhcmF0ZShmMSk7DQppZiAoYW55KGxvdz09JystJykpIGYx PVsnKCcgZjEgJyknXTsgZW5kDQoNCmxvdyA9IHNlcGFyYXRlKGYyKTsNCmlm IChhbnkobG93PT0nKy0qLycpKSBmMj1bJygnIGYyICcpJ107IGVuZA0KDQol IGEgZ29vZCBhbHRlcm5hdGl2ZSB0byBzZXR0aW5nIGJyYWtldHMgZm9yIGxv dyhmMik9PTIgbWF5IGJlDQolIHRvIGNoYW5nZSBhbGwgJyonLCcvJyBieSAn LycsJyonIHJlc3BlY3Rpdmx5IChjb25zaWRlcmluZyAnLionKS4NCg0KDQol JSBkbyAtYSpiIGluc3RlYWQgb2YgYSotYi4uLjoNCmlmIChmMigxKT09Jy0n KQ0KICBmMj1mMigyOmxlbmd0aChmMikpOw0KICBpZiAoZjEoMSk9PSctJykg ZjE9ZjEoMjpsZW5ndGgoZjEpKTsNCiAgZWxzZWlmIChmMSgxKT09JysnKSBm MSgxKT0nLSc7DQogIGVsc2UgZjE9WyctJyBmMV07DQogIGVuZA0KZW5kDQoN CnJldD1bZjEgYyBmMl07DQo= ---559023410-851401618-1018621778=:10473 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="pow.m" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="pow.m" JSBDb3B5cmlnaHQgKEMpIEFwciAyMDAyICBNYXR0aGlhcyBKdWVzY2hrZQ0K JQ0KJSBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KJSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQ0KJSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KJSAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KJQ0KJSBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwNCiUgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiUgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQ0KJSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLg0KJQ0KJSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KJSBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT b2Z0d2FyZQ0KJSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2Ug LSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcsIFVTQS4NCg0K ZnVuY3Rpb24gcmV0PXBvdyhmMSxmMikNCg0KZ2xvYmFsIGVsZW1lbnR3aXNl X3N1cHBvcnQNCg0KdHJ5IGM9W2VsZW1lbnR3aXNlX3N1cHBvcnQgJ14nXTsg Y2F0Y2ggYz0nXic7IGVuZA0KDQoNCmlmIChsZW5ndGgoZjIpPT0xKSAmIChm Mj09JzEnKSByZXQ9ZjE7ICBicmVhazsgZW5kDQppZiAoZjI9PScwJykgICAg ICAgICAgICAgICAgICAgcmV0PScxJzsgYnJlYWs7IGVuZA0KaWYgKGYxPT0n MCcpICYgKGYyfj0nMCcpICAgICAgIHJldD0nMCc7IGJyZWFrOyBlbmQNCmlm IChsZW5ndGgoZjEpPT0xKSAmIChmMT09JzEnKSByZXQ9JzEnOyBicmVhazsg ZW5kDQoNCg0KbG93ID0gc2VwYXJhdGUoZjEpOw0KaWYgKCBhbnkobG93PT0n Ky0qLycpIHwgZjEoMSk9PSctJykgIGYxPVsnKCcgZjEgJyknXTsgZW5kDQoN CmxvdyA9IHNlcGFyYXRlKGYyKTsNCmlmICggYW55KGxvdz09JystKi9eJykg KSAgICAgICAgICAgICBmMj1bJygnIGYyICcpJ107IGVuZA0KDQpyZXQ9W2Yx ICBjIGYyXTsNCg== ---559023410-851401618-1018621778=:10473 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="separate.m" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="separate.m" JSBDb3B5cmlnaHQgKEMpIDIwMDIgIE1hdHRoaWFzIEp1ZXNjaGtlDQolDQol IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQolIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5DQolIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQolIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQolDQolIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLA0KJSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KJSBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl DQolIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuDQolDQolIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQolIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3 YXJlDQolIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1 aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNywgVVNBLg0KDQpmdW5j dGlvbiBbbG93ZXN0LCBwb3NdID0gc2VwYXJhdGUoZnVuKQ0KJVtsb3dlc3Qs IHBvc10gPSBzZXBhcmF0ZShzdHIpIHJldHVybnMgdGhlIGxvd2VzdCBjb25u ZWN0aW9uIG9mIHRoZQ0KJSB0ZXJtIHN0ciwgJysnPT0nLScgPCAnKic9PScv JyA8ICdeJy4gSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSwgdGhlIA0KJSBv bmUgb24gdGhlIHJpZ2h0IGhhbmQgc2l0ZSBpcyByZXR1cm5lZC4gVGhlIHBv c2l0aW9uIG9mIHRoaXMNCiUgcG9pbnQgaXMgcmV0dXJuZWQgYWxzbywgaXQg aXMgMCBpZiBubyBvcGVyYXRvciBvY2N1cnMsIHRoZW4gaXQgaXMNCiUgbG93 ZXN0PScgJy4NCg0KJSBBdXRob3I6IE1hdHRoaWFzIEp1ZXNjaGtlDQolIERh dGU6IEFwciAyMDAyDQoNCmJyYWNrZXRzID0gKGZ1bj09JygnKSAtIChmdW49 PScpJyk7DQoNCmxvd2VzdD0nICc7DQpwb3M9MDsNCg0KZm9yIG9wPTE6Mw0K ICBpZiAob3A9PTEpIG9wZXJhdG9yID0gKGZ1bj09JysnKSArIChmdW49PSct Jyk7DQogIGVsc2VpZiAob3A9PTIpIG9wZXJhdG9yID0gKGZ1bj09JyonKSAr IChmdW49PScvJyk7DQogIGVsc2VpZiAob3A9PTMpIG9wZXJhdG9yID0gKGZ1 bj09J14nKTsgZW5kDQoNCiAgZm9yIHk9ZmxpcGxyKGZpbmQob3BlcmF0b3Ip KQ0KICAgIGlmIChzdW0oYnJhY2tldHMoeTpsZW5ndGgoZnVuKSkpPT0wKSAm ICh5PjEpICAlIG9wZXJhdG9yIG5vdCBpbiBicmFja2V0cw0KICAgICAgaWYg KGFueSggZnVuKHktMSk9PScrLSovXicgKT09MCkgICAgICAgICAgICAlIGFu ZCBub3QgYSBzaWduDQoJcG9zPXk7DQoJbG93ZXN0PWZ1bih5KTsNCglicmVh azsNCiAgICAgIGVuZA0KICAgIGVuZA0KICBlbmQNCiAgDQogIGlmIHBvcyBi cmVhazsgZW5kDQplbmQNCg== ---559023410-851401618-1018621778=:10473--