From octave-sources-request at bevo dot che dot wisc dot edu Sun Feb 29 15:55:41 2004 Subject: insertN speedup From: Petter Risholm To: "John W. Eaton" cc: octave-sources at bevo dot che dot wisc dot edu Date: Sun, 29 Feb 2004 22:47:32 +0100 (MET) 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-1078091252=:25383 Content-Type: TEXT/PLAIN; charset=US-ASCII hi, I've eliminated N-d indexing in Array::insertN which has resulted in a considerable speedup for [] concatenation of n-d array objects. see attached patch. ChangeLog: 2004-02-29 Petter Risholm * Array.cc (Array::insertN): Eliminate N-d indexing. petter risholm ---559023410-851401618-1078091252=:25383 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="insert.patch" Content-Transfer-Encoding: BASE64 Content-Description: Content-Disposition: attachment; filename="insert.patch" SW5kZXg6IEFycmF5LmNjDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1Mg ZmlsZTogL2N2cy9vY3RhdmUvbGlib2N0YXZlL0FycmF5LmNjLHYNCnJldHJp ZXZpbmcgcmV2aXNpb24gMS4xMDYNCmRpZmYgLWMgLXAgLXIxLjEwNiBBcnJh eS5jYw0KKioqIEFycmF5LmNjCTIwMDQvMDIvMjMgMTU6MzU6MDAJMS4xMDYN Ci0tLSBBcnJheS5jYwkyMDA0LzAyLzI5IDIxOjM5OjI0DQoqKioqKioqKioq KioqKiogdGVtcGxhdGUgPGNsYXNzIFQ+DQoqKiogOTY2LDk3MSAqKioqDQot LS0gOTY2LDk3MyAtLS0tDQogIEFycmF5PFQ+Jg0KICBBcnJheTxUPjo6aW5z ZXJ0TiAoY29uc3QgQXJyYXk8VD4mIGEsIGludCByLCBpbnQgYykNCiAgew0K KyAgIGRpbV92ZWN0b3IgZHYgPSBkaW1zICgpOw0KKyANCiAgICBkaW1fdmVj dG9yIGFfZHYgPSBhLmRpbXMgKCk7DQogIA0KICAgIGludCBuID0gYV9kdi5s ZW5ndGggKCk7DQoqKioqKioqKioqKioqKiogQXJyYXk8VD46Omluc2VydE4g KGNvbnN0IEFycmF5PFQ+JiBhLCBpbg0KKioqIDk3OSw5ODUgKioqKg0KICAN CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspDQogIAl7DQoh IAkgIGlmIChhX3JhX2lkeCAoaSkgPCAwIHx8IChhX3JhX2lkeCAoaSkgKyBh X2R2IChpKSkgPiBkaW1lbnNpb25zIChpKSkNCiAgCSAgICB7DQogIAkgICAg ICAoKmN1cnJlbnRfbGlib2N0YXZlX2Vycm9yX2hhbmRsZXIpDQogIAkJKCJB cnJheTxUPjo6aW5zZXJ0OiByYW5nZSBlcnJvciBmb3IgaW5zZXJ0Iik7DQot LS0gOTgxLDk4NyAtLS0tDQogIA0KICAgICAgICBmb3IgKGludCBpID0gMDsg aSA8IG47IGkrKykNCiAgCXsNCiEgCSAgaWYgKGFfcmFfaWR4KGkpIDwgMCB8 fCAoYV9yYV9pZHgoaSkgKyBhX2R2KGkpKSA+IGR2KGkpKQ0KICAJICAgIHsN CiAgCSAgICAgICgqY3VycmVudF9saWJvY3RhdmVfZXJyb3JfaGFuZGxlcikN CiAgCQkoIkFycmF5PFQ+OjppbnNlcnQ6IHJhbmdlIGVycm9yIGZvciBpbnNl cnQiKTsNCioqKioqKioqKioqKioqKiBBcnJheTxUPjo6aW5zZXJ0TiAoY29u c3QgQXJyYXk8VD4mIGEsIGluDQoqKiogOTg3LDEwMDcgKioqKg0KICAJICAg IH0NCiAgCX0NCiAgDQotICAgICAgIGFfcmFfaWR4LmVsZW0gKDApID0gMDsN Ci0gICAgICAgYV9yYV9pZHguZWxlbSAoMSkgPSAwOw0KLSANCiAgICAgICAg aW50IG5fZWx0ID0gYS5udW1lbCAoKTsNCiAgDQogICAgICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgbl9lbHQ7IGkrKykNCiAgCXsNCiEgCSAgQXJyYXk8aW50 PiByYV9pZHggPSBhX3JhX2lkeDsNCiEgDQohIAkgIHJhX2lkeC5lbGVtICgw KSA9IGFfcmFfaWR4ICgwKSArIHI7DQohIAkgIHJhX2lkeC5lbGVtICgxKSA9 IGFfcmFfaWR4ICgxKSArIGM7DQogIA0KISAJICBlbGVtIChyYV9pZHgpID0g YS5lbGVtIChhX3JhX2lkeCk7DQohIA0KISAJICBpbmNyZW1lbnRfaW5kZXgg KGFfcmFfaWR4LCBhX2R2KTsNCiAgCX0NCiAgICAgIH0NCiAgICBlbHNlDQot LS0gOTg5LDEwMTcgLS0tLQ0KICAJICAgIH0NCiAgCX0NCiAgDQogICAgICAg IGludCBuX2VsdCA9IGEubnVtZWwgKCk7DQorICAgICAgIA0KKyAgICAgICBj b25zdCBUICphX2RhdGEgPSBhLmRhdGEgKCk7ICAgDQorICAgIA0KKyAgICAg ICBpbnQgaWlkeCA9IDA7DQorIAkgIA0KKyAgICAgICBpbnQgYV9yb3dzID0g YV9kdigwKTsNCisgDQorICAgICAgIGludCB0aGlzX3Jvd3MgPSBkdigwKTsN CisgCSAgDQorICAgICAgIGludCBudW1lbF9wYWdlID0gYV9kdigwKSAqIGFf ZHYoMSk7CSAgDQogIA0KKyAgICAgICBpbnQgY291bnRfcGFnZXMgPSAwOw0K KyAJICANCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuX2VsdDsgaSsr KQ0KICAJew0KISAJICBpZiAoaSAhPSAwICYmIGkgJSBhX3Jvd3MgPT0gMCkN CiEgCSAgICBpaWR4ICs9ICh0aGlzX3Jvd3MgLSBhX3Jvd3MpOwkgICAgICAN CiEgCSAgDQohIAkgIGlmIChpICUgbnVtZWxfcGFnZSA9PSAwKQ0KISAJICAg IGlpZHggPSBjICogZHYoMCkgKyByICsgZHYoMCkgKiBkdigxKSAqIGNvdW50 X3BhZ2VzKys7DQogIA0KISAJICBlbGVtIChpaWR4KyspID0gYV9kYXRhW2ld Ow0KICAJfQ0KICAgICAgfQ0KICAgIGVsc2UNCioqKioqKioqKioqKioqKiBB cnJheTxUPjo6aW5zZXJ0TiAoY29uc3QgQXJyYXk8VD4mIGEsIGluDQoqKiog MTAwOSwxMDE0ICoqKioNCi0tLSAxMDE5LDEwMjUgLS0tLQ0KICAgICAgICAo IkFycmF5PFQ+OjppbnNlcnQ6IGludmFsaWQgaW5kZXhpbmcgb3BlcmF0aW9u Iik7DQogIA0KICAgIHJldHVybiAqdGhpczsNCisgDQogIH0NCiAgDQogIHRl bXBsYXRlIDxjbGFzcyBUPg0K ---559023410-851401618-1078091252=:25383--