From octave-sources-request at bevo dot che dot wisc dot edu Tue Nov 2 03:45:52 1999 Subject: LM-like algorithm From: etienne at anonimo dot isr dot ist dot utl dot pt (etienne grossmann) To: octave-sources at bevo dot che dot wisc dot edu Date: Tue, 2 Nov 1999 09:45:35 +0000 (WET) This is a MIME encoded message. Decode it with "munpack" or any other MIME reading software. Mpack/munpack is available via anonymous FTP in ftp.andrew.cmu.edu:pub/mpack/ --- Content-Type: application/octet-stream; name="levmar_min.m" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="levmar_min.m" Content-MD5: ur3UaIHyvsRI7oKjdBllYg== IyMgICAgICAgW3gsdixuaXRlcixoLHldID0gbGV2bWFyX21pbih1LGZ1bmMsZDJmdW5jLHhp bml0LG9wdGlvbnMpCiMjCiMjIExldmVuYmVyZy1NYXJxdWFyZHQgbWV0aG9kIGZvciBtaW5p bWl6aW5nIHRoZSBub3JtIG9mIGZ1bmModSx4KSAKIyMgc3RhcnRpbmcgZnJvbSAieGluaXQi LgojIyAKIyMgCiMjIC0geGluaXQgaXMgYSBOLWJ5LTEgY29sdW1uIHZlY3Rvci4gCiMjCiMj IC0gImZ1bmMiIGlzIHRoZSBjb3N0IGZ1bmN0aW9uIDogdiA9IGZ1bmModSx4KSwgb3IgdiA9 IGZ1bmModSx4LHkpIGlmCiMjIGFuIGV4dHJhIGFyZ3VtZW50ICJ5IiBpcyBzcGVjaWZpZWQg YW1vbmdzdCB0aGUgb3B0aW9ucy4KIyMKIyMgLSAiZDJmdW5jIiByZXR1cm5zIHRoZSBjb3N0 ICgxeDEpLCBpdHMgZGlmZmVyZW50aWFsICgxeE4pIGFuZCB0aGUKIyMgKnBzZXVkby1pbnZl cnNlKiBvZiBpdHMgc2Vjb25kIGRpZmZlcmVudGlhbCAoTnhOKSA6CiMjIFt2LGR2LGQydl09 ZDJmdW5jKHUseFsseV0pLiAieSIgaXMgYWdhaW4gb3B0aW9uYWwuCiMjCiMjICJ2aW5pdCIs diAgICAgOiBWYWx1ZSBvZiB0aGUgZnVuY3Rpb24gYXQgeGluaXQuIFNhdmVzIG9uZSBldmFs dWF0aW9uLgojIwojIyAibWF4b3V0ZXIiLCBtIDogTWF4IG51bWJlciBvZiBvdXRlciBsb29w IGl0ZXJhdGlvbnMgKGRlZmF1bHQgOiA1MDApCiMjCiMjICJtYXhpbm5lciIsIG0gOiBNYXgg bnVtYmVyIG9mIGlubmVyIGxvb3AgaXRlcmF0aW9ucyAoZGVmYXVsdCA6ICAzMCkKIyMKIyMg Im1pbXByb3YiLCB3ICA6IFN0b3AgaWYgYmVzdF92YWx1ZSBvdmVyIG5ld19iZXN0X3ZhbHVl IGlzIGFib3ZlIHcsCiMjIHdoaWNoIHNob3VsZCBiZSAwPHc8MS4gICAgICAgICAgICAgIChk ZWZhdWx0IDogMC45OTkpICJtaW5ncmFkIiwgdyAgOgojIyBTdG9wIGlmIGdyYWRpZW50IGhh cyAyLW5vcm0gc21hbGxlciB0aGFuIHcuIChkZWZhdWx0IDogZXBzKSAieSIsIHk6IEV4dHJh IGFyZ3VtZW50IHRvIGZ1bmMsZDJmdW5jLgojIwojIyAiY29kZSIsY29kZSAgIDogVGhlIHBh c3NlZCBzdHJpbmcgd2lsbCBiZSBldmFsdWF0ZWQgYWZ0ZXIgZWFjaCBvdXRlcgojIyBsb29w IHRoYXQgcHJvZHVjZWQgc29tZSAoYW55KSBpbXByb3ZlbWVudC4gIngiLCB0aGUgYmVzdCBw YXJhbWV0ZXIKIyMgZm91bmQsICJ2IiB0aGUgYmVzdCB2YWx1ZSBhbmQgZXZlbnR1YWxseSAi eSIgYXJlIHZpc2libGUgZnJvbSB0aGUKIyMgY29kZS4KZnVuY3Rpb24gW3hiZXN0LHZiZXN0 LG5pdGVyLGhiZXN0LHldID0gXAogICAgICBsZXZtYXJfbWluKHUsZnVuYyxkMmZ1bmMseGlu aXQsLi4uKQoKIyMgU29tZXRpbWVzIEkgc3VzcGVjdCBtb2RpZmllZCBzb3VyY2VzIGFyZSBu b3QgcmVjb21waWxlZC4gVGhpcwojIyBzdGF0aWMgdmFyaWFibGUgaXMgZGlzcGxheWVkIGVh Y2ggdGltZSB0aGlzIGZ1bmMgaXMgY2FsbGVkLCBhbmQKIyMgc2hvdWxkIGNoYW5nZSBhdCAo YWxtb3N0KSBlYWNoIHJlY29tcGlsYXRpb24uCnN0YXRpYyBkdW1teV9sZXZtYXIgPSBmbG9v cigxMDAqcmFuZCgpKTsKZHVtbXlfbGV2bWFyIAoKIyBTZXQgdGhlIGRlZmF1bHRzIChub3Qg YWxsKSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwp2aW5pdCA9 IG5hbiA7CQkJIyBtYXhpbXVtIGRpc3RhbmNlCgpyZXBvcnQgPSAxIDsJCQkjIE5ldmVyIHJl cG9ydAp2ZXJib3NlID0gMCA7CQkJIyBCZSBxdWlldAptYXhvdXRlciA9IDUwMCA7CQkJCm1h eGlubmVyID0gMzAgOwptaW1wcm92ID0gMC45OTkgOwptaW5ncmFkID0gZXBzIDsKCgp0Y29l ZmYgPSAwLjUgOwkJCSMgRGlzY291bnQgb24gdG90YWwgd2VpZ2h0Cm5jb2VmZiA9IDAuNSA7 CQkJIyBEaXNjb3VudCBvbiB3ZWlnaHQgb2YgbmV3dG9uCm9jb2VmZiA9IDEuNSA7CQkJIyBG YWN0b3IgZm9yIG91dHdhcmRzIHNlYXJjaGluZwoKCm5pdGVyID0gMCA7Cm5ldmFsID0gMCA7 CgoKIyMgZDJmdW5jID0gZGZ1bmMgPSAwIDsKCiMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBSZWFkIHRo ZSBvcHRpb25zICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwojICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgT3B0aW9ucyB3aXRoIGEgdmFsdWUKb3B0MSA9 ICIgdmluaXQgbWF4b3V0ZXIgbWF4aW5uZXIgcmVwb3J0IG1pbXByb3YgbWluZ3JhZCBjb2Rl IHkgIiA7CiMgQm9vbGVhbiBvcHRpb25zIApvcHQwID0gIiB2ZXJib3NlICIgOwoKdmFfc3Rh cnQoKSA7Cm5hcmdpbiA9IG5hcmdpbiAtIDQgOwp3aGlsZSBuYXJnaW4+MCAsCiAgdG1wID0g dmFfYXJnKCkgOyBuYXJnaW4tLSA7CiAgaWYgISBpc3N0cih0bXApICwKICAgIGJyZWFrCQkJ IyBMYXN0IG9wdGlvbiBoYXMgYmVlbiByZWFkLiAidG1wIiBpcwoJCQkJIyBmaXJzdCBhcmcu CiAgZW5kCiAgaWYgaW5kZXgob3B0MSxbIiAiLHRtcCwiICJdKSAsCiAgICAKICAgIHRtcDIg PSB2YV9hcmcoKSA7IG5hcmdpbi0tIDsKICAgIG5hcmdpbi0tIDsKICAgIGV2YWwoW3RtcCwi PXRtcDI7Il0pIDsKCiAgICBzYXlpZih2ZXJib3NlICwibGV2bWFyX21pbiA6IFJlYWQgb3B0 aW9uIDogJXMuXG4iLHRtcCkgOwoKICBlbHNlaWYgaW5kZXgob3B0MCxbIiAiLHRtcCwiICJd KSAsCiAgICAKICAgIGV2YWwoW3RtcCwiPTE7Il0pIDsKICAgIHNheWlmKHZlcmJvc2UgLCJs ZXZtYXJfbWluIDogUmVhZCBib29sZWFuIG9wdGlvbiA6ICVzXG4iLHRtcCkgOwoKICBlbHNl CiAgICBwcmludGYoImxldm1hcl9taW4gOiBVbmtub3duIG9wdGlvbiA6ICVzXG4iLHRtcCkg OwogICAga2V5Ym9hcmQKICBlbmQKZW5kd2hpbGUKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyBDaGVja2luZyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKaWYgbWlt cHJvdjw9MCB8fCBtaW1wcm92Pj0xLAogIHByaW50ZigibGV2bWFyX21pbiA6IG1pbXByb3Y9 JTguM2cgaXMgbm90IGluIF0wLDFbIFxuIixtaW1wcm92KSA7CiAga2V5Ym9hcmQKZW5kCgpp ZiAhaXNzdHIoZDJmdW5jKSAmJiAhaXNzdHIoZGZ1bmMpLAogIHByaW50ZigibGV2bWFyX21p biA6IEkgbmVlZCBkZnVuYyBhbmQgZDJmdW5jIHRvIGJlIHN0cmluZ3MhXG4iKTsKICBrZXli b2FyZAplbmQKCnggPSB4aW5pdCA7Ck4gPSBwcm9kKHNpemUoeCkpIDsKeCA9IHJlc2hhcGUo eCxOLDEpIDsKCmlmIGlzbmFuKHZpbml0KSAsIAogIGlmIGV4aXN0KCJ5Iik9PTEsICB2ID0g ZmV2YWwoIGZ1bmMgLCB1LCB4LCB5ICkgOyAKICBlbHNlICAgICAgICAgICAgICAgdiA9IGZl dmFsKCBmdW5jICwgdSwgeCApIDsgCiAgZW5kCmVsc2UgICAgICAgICAgICAgICAgIHYgPSB2 aW5pdCA7IAplbmQKIyMga2V5Ym9hcmQKCnNheWlmKCB2ZXJib3NlLCJsZXZtYXJfbWluIDog SW5pdGlhbGx5LCB2PSU4LjNnXG4iLHYpOwoKd2hpbGUgbml0ZXIrKyA8PSBtYXhvdXRlciAs CgogIGlmIGV4aXN0KCJ5Iik9PTEsIFt2LGQsaF0gPSBmZXZhbChkMmZ1bmMsdSx4LHkpIDsK ICBlbHNlICAgICAgICAgICAgICBbdixkLGhdID0gZmV2YWwoZDJmdW5jLHUseCkgOwogIGVu ZAogIAogIHhiZXN0ID0geCA7CiAgdm9sZCA9IHZiZXN0ID0gdiA7CiAgaGJlc3QgPSBoIDsK ICAKICBzYXlpZiggdmVyYm9zZSB8fCByZXBvcnQgJiYgKHJlbShuaXRlcixyZXBvcnQpID09 IDEpICwuLi4KCSJsZXZtYXJfbWluIDogbml0ZXI9JWQsIHY9JTguM2dcbiIsbml0ZXIsdiAp OyAKICB3biA9IDEgOwkJCSMgV2VpZ2h0IG9mIE5ld3RvbiBzdGVwCiAgd3QgPSAxIDsJCQkj IFRvdGFsIHdlaWdodAoKICBpZiBtc3EoZCkgPCBtaW5ncmFkLAogICAgc2F5aWYoIHZlcmJv c2UgfHwgcmVwb3J0ICwuLi4KCSAgImxldm1hcl9taW4gOiBleGl0aW5nICdjYXVzZSBsb3cg Z3JhZGllbnRcbiIpOwogICAgYnJlYWsKICBlbmQKCiAgZG5ld3RvbiA9IC1oKmQnIDsKICBk b25lX2lubmVyID0gMDsJCSMgMD1ub3QgZm91bmQuIDE9UmVhZHkgdG8gcXVpdCBpbm5lci4K CiAgbmlubmVyID0gMCA7CiAgd2hpbGUgbmlubmVyKysgPCBtYXhpbm5lciwKCQkgICAgICAg CiAgICBkeCA9IHd0Kih3bipkbmV3dG9uIC0gKDEtd24pKmQnKSA7CiAgICB4bmV3ID0geCtk eCA7CgogICAgc2F5aWYoIHZlcmJvc2UsIC4uLgoJICBbIldlaWdodCA6IHRvdGFsPSU4LjNn LCBuZXd0b25zJ3M9JTguM2cgIHZiZXN0PSU4LjNnICIsLi4uCgkgICAiTm9ybTpOZXd0b249 JTguM2csIGRlcml2PSU4LjNnXG4iXSwuLi4KCSAgd3Qsd24sdmJlc3Qsbm9ybSh3dCp3bipk bmV3dG9uKSxub3JtKHd0KigxLXduKSpkJykpOwogICAgCiAgICBpZiBhbnkoaXNuYW4oeG5l dykpLAogICAgICBwcmludGYoImxldm1hcl9taW4gOiBXaG9hISEgYW55KGlzbmFuKHhuZXcp KSAoMSlcbiIpOyAKICAgICAga2V5Ym9hcmQKICAgIGVuZAogICAgCiAgICBpZiBleGlzdCgi eSIpPT0xLCB2bmV3ID0gZmV2YWwoIGZ1bmMgLCB1LCB4bmV3LCB5ICkgOyAKICAgIGVsc2Ug ICAgICAgICAgICAgIHZuZXcgPSBmZXZhbCggZnVuYyAsIHUsIHhuZXcgKSA7IAogICAgZW5k CiAgICAjIyB2bmV3ID0gZmV2YWwoZnVuYyx1LHhuZXcpIDsKICAgIG5ldmFsKysgOwogICAg aWYgdm5ldzx2YmVzdCAsCiAgICAgIGRiZXN0ID0gZHggOyB2YmVzdCA9IHZuZXc7IHhiZXN0 ID0geG5ldzsgCiAgICAgIGRvbmVfaW5uZXIgPSAxIDsJCSMgV2lsbCBnbyBvdXQgYXQgbmV4 dCBpbmNyZWFzZQogICAgICBzYXlpZiggdmVyYm9zZSwibGV2bWFyX21pbiA6IGdvaW5nIGRv d25cbiIgKTsKICAgICAgCiAgICBlbHNlaWYgZG9uZV9pbm5lciA9PSAxLAkjIFRpbWUgdG8g Z28gb3V0CiAgICAgIHNheWlmKCB2ZXJib3NlLCJsZXZtYXJfbWluIDogcXVpdHRpbmcgaW5u ZXIgbG9vcFxuIik7IAogICAgICBicmVhawkJCQogICAgZW5kCiAgICB3dCA9IHd0KnRjb2Vm ZiA7CiAgICB3biA9IHduKm5jb2VmZiA7CiAgZW5kCQkJCSMgRW5kIG9mIGlubmVyIGxvb3AK CiAgaWYgbmlubmVyID49IG1heGlubmVyICwJIyBUaGVyZSB3YXMgYSBwcm9ibGVtCiAgICBw cmludGYoImxldm1hcl9taW4gOiBpbm5lciBsb29waW5nIGZvcmV2ZXIgKHZuZXc9JTguM2cp XG4iLHZuZXcpOwoKICBlbHNlCQkJCSMgTG9vayBmb3IgaW1wcm92ZW1lbnQgYWxvbmcgZGJl c3QKICAgIHduID0gMS41IDsgCiAgICB4bmV3ID0geCt3bipkYmVzdDsKICAgIGlmIGFueShp c25hbih4bmV3KSksCiAgICAgIHByaW50ZigibGV2bWFyX21pbiA6IFdob2EhISBhbnkoaXNu YW4oeG5ldykpICgxKVxuIik7IAogICAgICBrZXlib2FyZAogICAgZW5kCiAgICBpZiBleGlz dCgieSIpPT0xLCB2bmV3ID0gZmV2YWwoIGZ1bmMgLCB1LCB4bmV3LCB5ICkgOyAKICAgIGVs c2UgICAgICAgICAgICAgIHZuZXcgPSBmZXZhbCggZnVuYyAsIHUsIHhuZXcgKSA7IAogICAg ZW5kCiAgICAjIyB2bmV3ID0gZmV2YWwoZnVuYyx1LHhuZXcpIDsKICAgIHdoaWxlIHZuZXcg PCB2YmVzdCwKICAgICAgdmJlc3QgPSB2bmV3OyB4YmVzdCA9IHhuZXc7IAogICAgICB3biA9 IHduKm9jb2VmZiA7CiAgICAgIHhuZXcgPSB4K3duKmRiZXN0OwogICAgICBpZiBleGlzdCgi eSIpPT0xLCB2bmV3ID0gZmV2YWwoIGZ1bmMgLCB1LCB4bmV3LCB5ICkgOyAKICAgICAgZWxz ZSAgICAgICAgICAgICAgdm5ldyA9IGZldmFsKCBmdW5jICwgdSwgeG5ldyApIDsgCiAgICAg IGVuZAogICAgICAjIyB2bmV3ID0gZmV2YWwoZnVuYyx1LHhuZXcpIDsKICAgIGVuZAogIGVu ZAkJCQkjIEVuZCBvZiBpbXByb3ZpbmcgYWxvbmcgZGJlc3QKICBpZiB2ZXJib3NlIHx8IHJl bShuaXRlcixyZXBvcnQpID09IDEsLi4uCiAgICBpZiB2b2xkLAogICAgICBwcmludGYoImxl dm1hcl9taW4gOiBkb25lIGlubmVyIHZiZXN0PSU4LjVnLCB2YmVzdC92b2xkPSU4LjVnXG4i LC4uLgoJICAgICB2YmVzdCx2YmVzdC92b2xkKTsKICAgIGVsc2UKICAgICAgcHJpbnRmKCJs ZXZtYXJfbWluIDogZG9uZSBpbm5lciB2YmVzdD0lOC41Zywgdm9sZD0wXG4iLC4uLgoJICAg ICB2YmVzdCk7CiAgICBlbmQKICBlbmQKICBpZiB2YmVzdCA8IHZvbGQgICAgICAgICwgICAK ICAgIHYgPSB2YmVzdDsgeCA9IHhiZXN0OwogICAgaWYgZXhpc3QoImNvZGUiKT09MSwgCiAg ICAgIHNheWlmKCB2ZXJib3NlLCJsZXZtYXJfbWluIDogR29ubmEgZXZhbChcIiVzXCJcbiIs Y29kZSk7IAogICAgICBldmFsKGNvZGUpOyAKICAgIGVuZAogIGVuZAogIGlmIHZiZXN0ID4g bWltcHJvdip2b2xkICwgCiAgICBpZiB2ZXJib3NlIHx8IHJlcG9ydCAsCiAgICAgIGlmIHZv bGQsCglwcmludGYoImxldm1hcl9taW4gOiBxdWl0dGluZywgdj0lOC4zZywgdi92b2xkPSU4 LjNnXG4iLC4uLgoJICAgICAgIHYsdi92b2xkKTsKICAgICAgZWxzZQoJcHJpbnRmKCJsZXZt YXJfbWluIDogcXVpdHRpbmcsIHY9JTguM2csIHZvbGQ9MFxuIiwuLi4KCSAgICAgICB2KTsK ICAgICAgZW5kCiAgICBlbmQKICAgICMjIGtleWJvYXJkCiAgICBicmVhayA7IAogIGVuZCAg IAplbmQKCmlmIG5pdGVyID49IG1heG91dGVyICwKICBwcmludGYoImxldm1hcl9taW4gOiBv dXRlciBsb29waW5nIGZvcmV2ZXJcbiIpOwplbmQKCg== -----