From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26887 invoked by alias); 11 Nov 2003 17:44:23 -0000 Mailing-List: contact gsl-discuss-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gsl-discuss-owner@sources.redhat.com Received: (qmail 26879 invoked from network); 11 Nov 2003 17:44:22 -0000 Received: from unknown (HELO sterling.fpcc.net) (204.144.241.126) by sources.redhat.com with SMTP; 11 Nov 2003 17:44:22 -0000 Received: from sterling.fpcc.net (sterling.fpcc.net [127.0.0.1]) by sterling.fpcc.net (8.12.8/8.12.8) with ESMTP id hABHix26024763 for ; Tue, 11 Nov 2003 10:44:59 -0700 Received: (from apache@localhost) by sterling.fpcc.net (8.12.8/8.12.8/Submit) id hABHix9b024761; Tue, 11 Nov 2003 10:44:59 -0700 X-Authentication-Warning: sterling.fpcc.net: apache set sender to rlee@fpcc.net using -f Received: from 02-089.026.popsite.net ([64.24.109.89]) (SquirrelMail authenticated user rlee) by webmail.fpcc.net with HTTP; Tue, 11 Nov 2003 10:44:59 -0700 (MST) Message-ID: <35906.64.24.109.89.1068572699.squirrel@webmail.fpcc.net> Date: Tue, 11 Nov 2003 17:44:00 -0000 Subject: Here is some GSL code for a rank-revealing QRPT From: To: X-ISP: fpcc.net X-Abuse-Contact: abuse@fpcc.net X-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Priority: 3 Importance: Normal MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_20031111104459_98762" X-SW-Source: 2003-q4/txt/msg00063.txt.bz2 ------=_20031111104459_98762 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Content-length: 461 I posted "Help developing a "better" QRPT routine". I guess sometimes we help those who help themselves ;-) Here GSL code for rank-revealing QRPT. It is just a minor tweak of gsl_linalg_QRPT_decomp -- the key feature is a different pivoting strategy. I would appreciate any suggestions on making this more "GSL like". I've only tested it with some M>N matrices -- some rank deficient. So, does anyone think this could be a valuable addition to GSL? -Rob ------=_20031111104459_98762 Content-Type: application/octet-stream; name="gslExt_linalg_QRPT_dqrdc2.c" Content-Disposition: attachment; filename="gslExt_linalg_QRPT_dqrdc2.c" Content-Transfer-Encoding: base64 Content-length: 5958 I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNs dWRlIDxnc2wvZ3NsX21hdGguaD4KI2luY2x1ZGUgPGdzbC9nc2xfdmVjdG9y Lmg+CiNpbmNsdWRlIDxnc2wvZ3NsX21hdHJpeC5oPgojaW5jbHVkZSA8Z3Ns L2dzbF9wZXJtdXRlX3ZlY3Rvci5oPgojaW5jbHVkZSA8Z3NsL2dzbF9ibGFz Lmg+CgojaW5jbHVkZSA8Z3NsL2dzbF9saW5hbGcuaD4KCi8qKgogKiAqKiBU aGlzIGlzIHN0aWxsIGxhcmdlbHkgdW50ZXN0ZWQgIC0tIHJsZWVAZnBjYy5u ZXQgKioKICoKICogQWxnb3JpdGhtIGFkYXB0ZWQgZnJvbSB0aGUgR05VIFIt cHJvamVjdCdzIGRxcmRjMi5mCiAqCiAqIFRoaXMgUVJQVCBkZWNvbXAuIHVz ZXMgaG91c2Vob2xkZXIgdHJhbnNmb3JtYXRpb25zIHRvIGNvbXB1dGUgdGhl IHFyCiAqIGZhY3Rvcml6YXRpb24gb2YgYW4gbSBieSBuIG1hdHJpeCB4LiAg QSBsaW1pdGVkIGNvbHVtbgogKiBwaXZvdGluZyBzdHJhdGVneSwgYmFzZWQg b24gdGhlIDItbm9ybXMgb2YgdGhlIHJlZHVjZWQgY29sdW1ucywKICogbW92 ZXMgY29sdW1ucyB3aXRoIG5lYXItemVybyBub3JtIHRvIHRoZSByaWdodC1o YW5kIGVkZ2Ugb2YKICogdGhlIHggbWF0cml4LiAgVGhpcyBzdHJhdGVneSBt ZWFucyB0aGF0IHNlcXVlbnRpYWwgb25lCiAqIGRlZ3JlZS1vZi1mcmVlZG9t IGVmZmVjdHMgY2FuIGJlIGNvbXB1dGVkIGluIGEgbmF0dXJhbCB3YXkuCiAq LwoKaW50CmdzbEV4dF9saW5hbGdfUVJQVF9kcXJkYzIoZ3NsX21hdHJpeCAq IEEsIAogICAgICAgICAgICAgICAgICAgICAgICAgIGdzbF92ZWN0b3IgKiB0 YXUsIAogICAgICAgICAgICAgICAgICAgICAgICAgIGdzbF9wZXJtdXRhdGlv biAqIHAsIAogICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqc2lnbnVt LCAKICAgICAgICAgICAgICAgICAgICAgICAgICBnc2xfdmVjdG9yICogbm9y bSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpyYW5rLAogICAg ICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB0b2wpCnsKICBjb25zdCBz aXplX3QgTSA9IEEtPnNpemUxOwogIGNvbnN0IHNpemVfdCBOID0gQS0+c2l6 ZTI7CgogIGlmICh0YXUtPnNpemUgIT0gR1NMX01JTiAoTSwgTikpCiAgICB7 CiAgICAgIEdTTF9FUlJPUiAoInNpemUgb2YgdGF1IG11c3QgYmUgTUlOKE0s TikiLCBHU0xfRUJBRExFTik7CiAgICB9CiAgZWxzZSBpZiAocC0+c2l6ZSAh PSBOKQogICAgewogICAgICBHU0xfRVJST1IgKCJwZXJtdXRhdGlvbiBzaXpl IG11c3QgYmUgTiIsIEdTTF9FQkFETEVOKTsKICAgIH0KICBlbHNlIGlmIChu b3JtLT5zaXplICE9IE4pCiAgICB7CiAgICAgIEdTTF9FUlJPUiAoIm5vcm0g c2l6ZSBtdXN0IGJlIE4iLCBHU0xfRUJBRExFTik7CiAgICB9CiAgZWxzZQog ICAgewogICAgICBzaXplX3QgaTsKCiAgICAgICpzaWdudW0gPSAxOwoKICAg ICAgLyogU2hvdWxkIGNoZWNrIGlmIHJhbmsgPT0gTlVMTCBmaXJzdCAqLwog ICAgICAqcmFuayA9IE4gKyAxOwoKICAgICAgLyogV2UgbmVlZCBhbm90aGVy IG5vcm0gdmVjdG9yIHRvIHN0b3JlIHRoZSBub3JtcyBmcm9tIHRoZSBmaXJz dCBpdGVyLiAKICAgICAgICogLS0gbWF5YmUgc2hvdWxkIGJlIHByb3ZpZGVk IGJ5IHRoZSBjbGllbnQuIAogICAgICAgKi8KICAgICAgZ3NsX3ZlY3RvciAq bm9ybV93b3JrID0gZ3NsX3ZlY3Rvcl9jYWxsb2Mobm9ybS0+c2l6ZSk7Cgog ICAgICBnc2xfcGVybXV0YXRpb25faW5pdCAocCk7CS8qIHNldCB0byBpZGVu dGl0eSAqLwoKICAgICAgLyogQ29tcHV0ZSBjb2x1bW4gbm9ybXMgYW5kIHN0 b3JlIGluIHdvcmtzcGFjZSAqLwoKICAgICAgZm9yIChpID0gMDsgaSA8IE47 IGkrKykKCXsKCSAgZ3NsX3ZlY3Rvcl92aWV3IGMgPSBnc2xfbWF0cml4X2Nv bHVtbiAoQSwgaSk7CgkgIGRvdWJsZSB4ID0gZ3NsX2JsYXNfZG5ybTIgKCZj LnZlY3Rvcik7CgkgIGdzbF92ZWN0b3Jfc2V0IChub3JtLCBpLCB4KTsKCX0K CiAgICAgIC8qIFN0b3JlIHRoZSBvcmlnaW5hbCBub3JtcyAqLwogICAgICBm b3IgKGkgPSAwOyBpIDwgbm9ybS0+c2l6ZTsgaSsrKSBnc2xfdmVjdG9yX3Nl dChub3JtX3dvcmssIGksIGdzbF92ZWN0b3JfZ2V0KG5vcm0sIGkpKTsKCiAg ICAgIGZvciAoaSA9IDA7IGkgPCBHU0xfTUlOIChNLCBOKTsgaSsrKQoJewog ICAgICBzaXplX3QgajsKCiAgICAgIC8qKgogICAgICAgKiBQaXZvdCB0aGUg Y29sdW1ucyBmcm9tIGxlZnQtdG8tcmlnaHQgdW50aWwgb25lCiAgICAgICAq IHdpdGggbm9uLW5lZ2xpZ2libGUgbm9ybSBpcyBsb2NhdGVkLiAgCiAgICAg ICAqIEEgY29sdW1uIGlzIGNvbnNpZGVyZWQgdG8gaGF2ZSBiZWNvbWUgbmVn bGlnaWJsZSAKICAgICAgICogaWYgaXRzIG5vcm0gaGFzIGZhbGxlbiBiZWxv dyB0b2wgdGltZXMgaXRzIG9yaWdpbmFsIG5vcm0uCiAgICAgICAqLwoJICBm b3IgKGogPSBpOyBqIDwgTjsgaisrKQogICAgICAgIHsKCSAgICAgIGRvdWJs ZSB4X29yaWcgPSBnc2xfdmVjdG9yX2dldCAobm9ybV93b3JrLCBqKTsKCSAg ICAgIGRvdWJsZSB4ID0gZ3NsX3ZlY3Rvcl9nZXQgKG5vcm0sIGopOwoKCSAg ICAgIGlmICggeCA+PSAoeF9vcmlnKnRvbCkgKSBicmVhazsKICAgICAgICAg IGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgIGdzbF9tYXRyaXhf c3dhcF9jb2x1bW5zIChBLCBqLCBOLTEpOwoJICAgICAgICAgIGdzbF9wZXJt dXRhdGlvbl9zd2FwIChwLCBqLCBOLTEpOwogICAgICAgICAgICAgIGdzbF92 ZWN0b3Jfc3dhcF9lbGVtZW50cyAobm9ybSwgaiwgTi0xKTsKCSAgICAgICAg ICAoKnNpZ251bSkgPSAtKCpzaWdudW0pOwogICAgICAgICAgICAgICgqcmFu aykgPSAtLSgqcmFuayk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAg IAoJICB7CgkgICAgZ3NsX3ZlY3Rvcl92aWV3IGNfZnVsbCA9IGdzbF9tYXRy aXhfY29sdW1uIChBLCBpKTsKICAgICAgICAgICAgZ3NsX3ZlY3Rvcl92aWV3 IGMgPSBnc2xfdmVjdG9yX3N1YnZlY3RvciAoJmNfZnVsbC52ZWN0b3IsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpLCBNIC0gaSk7CgkgICAgZG91YmxlIHRhdV9pID0gZ3NsX2xp bmFsZ19ob3VzZWhvbGRlcl90cmFuc2Zvcm0gKCZjLnZlY3Rvcik7CgoJICAg IGdzbF92ZWN0b3Jfc2V0ICh0YXUsIGksIHRhdV9pKTsKCgkgICAgLyogQXBw bHkgdGhlIHRyYW5zZm9ybWF0aW9uIHRvIHRoZSByZW1haW5pbmcgY29sdW1u cyAqLwoKCSAgICBpZiAoaSArIDEgPCBOKQoJICAgICAgewoJCWdzbF9tYXRy aXhfdmlldyBtID0gZ3NsX21hdHJpeF9zdWJtYXRyaXggKEEsIGksIGkgKyAx LCBNIC0gaSwgTiAtIChpKzEpKTsKCgkJZ3NsX2xpbmFsZ19ob3VzZWhvbGRl cl9obSAodGF1X2ksICZjLnZlY3RvciwgJm0ubWF0cml4KTsKCSAgICAgIH0K CSAgfQoKCSAgLyogVXBkYXRlIHRoZSBub3JtcyBvZiB0aGUgcmVtYWluaW5n IGNvbHVtbnMgdG9vICovCgogICAgICAgICAgaWYgKGkgKyAxIDwgTSkgCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8 IE47IGorKykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ZG91YmxlIHkgPSAwOwogICAgICAgICAgICAgICAgICBkb3VibGUgeCA9IGdz bF92ZWN0b3JfZ2V0IChub3JtLCBqKTsKCgkJICBpZiAoeCA+IDAuMCkKCQkg ICAgewoJCSAgICAgIGRvdWJsZSB0ZW1wPSBnc2xfbWF0cml4X2dldCAoQSwg aSwgaikgLyB4OwogICAgICAgICAgICAgICAgICAKCQkgICAgICBpZiAoZmFi cyAodGVtcCkgPj0gMSkKCQkJeSA9IDAuMDsKCQkgICAgICBlbHNlCgkJCXkg PSB5ICogc3FydCAoMSAtIHRlbXAgKiB0ZW1wKTsKCQkgICAgICAKCQkgICAg ICAvKiByZWNvbXB1dGUgbm9ybSB0byBwcmV2ZW50IGxvc3Mgb2YgYWNjdXJh Y3kgKi8KCgkJICAgICAgaWYgKGZhYnMgKHkgLyB4KSA8IHNxcnQgKDIwLjAp ICogR1NMX1NRUlRfREJMX0VQU0lMT04pCgkJCXsKCQkJICBnc2xfdmVjdG9y X3ZpZXcgY19mdWxsID0gZ3NsX21hdHJpeF9jb2x1bW4gKEEsIGopOwoJCQkg IGdzbF92ZWN0b3JfdmlldyBjID0gCgkJCSAgICBnc2xfdmVjdG9yX3N1YnZl Y3RvcigmY19mdWxsLnZlY3RvciwKCQkJCQkJIGkrMSwgTSAtIChpKzEpKTsK CQkJICB5ID0gZ3NsX2JsYXNfZG5ybTIgKCZjLnZlY3Rvcik7CgkJCX0KICAg ICAgICAgICAgICAgICAgCgkJICAgICAgZ3NsX3ZlY3Rvcl9zZXQgKG5vcm0s IGosIHkpOwoJCSAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KICAgICAgICB9CgogICAgICAqcmFuayA9IEdTTF9NSU4oKnJhbmssIE0p OwoKICAgICAgZ3NsX3ZlY3Rvcl9mcmVlKG5vcm1fd29yayk7CgogICAgICBy ZXR1cm4gR1NMX1NVQ0NFU1M7CiAgICB9Cn0KCgo= ------=_20031111104459_98762--