[PATCH branch-1.6] eval: Speed up exponentiation

Eric Blake via M4-patches <[email protected]> Sat, 17 May 2025 18:28:59 -0500
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
SW5zdGVhZCBvZiBPKG4pIGluIHRoZSB2YWx1ZSBvZiB0aGUgZXhwb25lbnQsIHdlIGNhbiBjb21w
dXRlIGV4cG9uZW50cwppbiBPKGxvZyBuKSwgd2l0aCBleHBvbmVudGlhdGlvbiBieSBzcXVhcmlu
Zy4gIFdpdGggdGhpcyBwYXRjaCwgInRpbWUKZWNobyAnZXZhbCgzKioyMDAwMDAwMDAwKScgfCBt
NCIgZHJvcHMgZnJvbSAyIHNlY29uZHMgdG8gdW5kZXIgMTAKbWlsbGlzZWNvbmRzLgoKKiBzcmMv
ZXZhbC5jIChwYXJzZV9leHByKTogVXNlIGV4cG9uZW50aWF0aW9uIGJ5IHNxdWFyaW5nLgoqIGRv
Yy9tNC50ZXhpIChFdmFsKTogVGVzdCBpdC4KLS0tCiBkb2MvbTQudGV4aSB8IDE2ICsrKysrKysr
KysrKysrKysKIHNyYy9ldmFsLmMgIHwgMTcgKysrKysrKysrKysrKy0tLS0KIDIgZmlsZXMgY2hh
bmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mv
bTQudGV4aSBiL2RvYy9tNC50ZXhpCmluZGV4IDgxNDc2YmM4Li42MTJlZDk0NSAxMDA2NDQKLS0t
IGEvZG9jL200LnRleGkKKysrIGIvZG9jL200LnRleGkKQEAgLTcyMzUsNiArNzIzNSwyMiBAQCBF
dmFsCiBAcmVzdWx0e30KIEBlbmQgZXhhbXBsZQoKK0BpZ25vcmUKK0Bjb21tZW50IFRoaXMgdGVz
dCBtYWtlcyBzdXJlIHRoZSBhbGdvcml0aG0gaXMgZmFzdCwgYnV0IGRvZXMgbm90CitAY29tbWVu
dCBuZWVkIHRvIGJlIGRpc3BsYXllZCBhcy1pcyBpbiB0aGUgbWFudWFsLgorCitAZXhhbXBsZQor
ZXZhbChgMyoqMjAwMDAwMDAwMCcpCitAcmVzdWx0e302MzIzNjA5NjEKK2RlZmluZShgbG9vcCcs
IGBpZmVsc2UoYCQxJywgYDEwMDAnLCBgcGFzcycsCitgbG9vcChldmFsKCQxKyEhKDMqKjIwMDAw
MDAwMDApKSknKScpbG9vcCgwKQorQHJlc3VsdHt9cGFzcworZGVmaW5lKGBjaGVjaycsIGBpZmVs
c2UoYCQxJywgYDEwMCcsIGBwYXNzJywgYCQyJywgZXZhbCgtMyoqJDEpLAorYGNoZWNrKGluY3Io
JDEpLCBldmFsKC0zKiQyKSknLCBgb29wcycpJyljaGVjaygwLCAxKQorQHJlc3VsdHt9cGFzcwor
QGVuZCBleGFtcGxlCitAZW5kIGlnbm9yZQorCiBXaXRoaW4gQHZhcntleHByZXNzaW9ufSwgKGJ1
dCBub3QgQHZhcntyYWRpeH0gb3IgQHZhcnt3aWR0aH0pLCBudW1iZXJzCiB3aXRob3V0IGEgc3Bl
Y2lhbCBwcmVmaXggYXJlIGRlY2ltYWwuICBBIHNpbXBsZSBAc2FtcHswfSBwcmVmaXgKIGludHJv
ZHVjZXMgYW4gb2N0YWwgbnVtYmVyLiAgQHNhbXB7MHh9IGludHJvZHVjZXMgYSBoZXhhZGVjaW1h
bCBudW1iZXIuCmRpZmYgLS1naXQgYS9zcmMvZXZhbC5jIGIvc3JjL2V2YWwuYwppbmRleCAxNjNl
MjYzNC4uNjljZDVlNDEgMTAwNjQ0Ci0tLSBhL3NyYy9ldmFsLmMKKysrIGIvc3JjL2V2YWwuYwpA
QCAtMzg5LDYgKzM4OSw4IEBAIHBhcnNlX2V4cHIgKGludDMyX3QgKnYxLCBldmFsX2Vycm9yIGVy
LCB1bnNpZ25lZCBtaW5fcHJlYykKICAgaW50MzJfdCB2MjsKICAgaW50MzJfdCB2MzsKICAgdWlu
dDMyX3QgdTE7CisgIHVpbnQzMl90IHUyOworICB1aW50MzJfdCB1MzsKCiAgIGlmIChlciA+PSBT
WU5UQVhfRVJST1IpCiAgICAgcmV0dXJuIGVyOwpAQCAtNDI5LDE3ICs0MzEsMjQgQEAgcGFyc2Vf
ZXhwciAoaW50MzJfdCAqdjEsIGV2YWxfZXJyb3IgZXIsIHVuc2lnbmVkIG1pbl9wcmVjKQogICAg
ICAgICAgICAgIHRoYXQgdGhlIGltcGxlbWVudGF0aW9uLWRlZmluZWQgb3ZlcmZsb3cgd2hlbiBj
YXN0aW5nCiAgICAgICAgICAgICAgdW5zaWduZWQgdG8gc2lnbmVkIGlzIGEgc2lsZW50IHR3b3Mt
Y29tcGxlbWVudAogICAgICAgICAgICAgIHdyYXAtYXJvdW5kLiAgKi8KLSAgICAgICAgICB1MSA9
IDE7CiAgICAgICAgICAgaWYgKHYyIDwgMCkKICAgICAgICAgICAgIGVyID0gTkVHQVRJVkVfRVhQ
T05FTlQ7CiAgICAgICAgICAgZWxzZSBpZiAoKnYxID09IDAgJiYgdjIgPT0gMCkKICAgICAgICAg
ICAgIGVyID0gRElWSURFX1pFUk87CiAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgewotICAg
ICAgICAgICAgICB3aGlsZSAodjItLSA+IDApCi0gICAgICAgICAgICAgICAgdTEgKj0gKHVpbnQz
Ml90KSAqdjE7CisgICAgICAgICAgICAgIHUxID0gKnYxOworICAgICAgICAgICAgICB1MiA9IHYy
OworICAgICAgICAgICAgICB1MyA9IDE7CisgICAgICAgICAgICAgIHdoaWxlICh1MikKKyAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBpZiAodTIgJiAxKQorICAgICAgICAgICAg
ICAgICAgICB1MyAqPSB1MTsKKyAgICAgICAgICAgICAgICAgIHUxICo9IHUxOworICAgICAgICAg
ICAgICAgICAgdTIgPj49IDE7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAg
ICAgICAgICp2MSA9IHUxOworICAgICAgICAgICp2MSA9IHUzOwogICAgICAgICAgIGJyZWFrOwoK
ICAgICAgICAgY2FzZSBUSU1FUzoKLS0gCjIuNDkuMAoKCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCk00LXBhdGNoZXMgbWFpbGluZyBsaXN0Ck00LXBhdGNo
ZXNAZ251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9tNC1wYXRj
aGVzCg==