From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 12758 invoked from network); 4 Jul 2022 11:31:52 -0000 Received: from second.openwall.net (193.110.157.125) by inbox.vuxu.org with ESMTPUTF8; 4 Jul 2022 11:31:52 -0000 Received: (qmail 5450 invoked by uid 550); 4 Jul 2022 11:31:48 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 24446 invoked from network); 4 Jul 2022 11:10:08 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=lQzgvO1JiUQzpkRtMmyb/9I5FKVibCR+5y6g/uEV1ck=; b=l4Dj8HPjmRbBZEew8es3iWMMiY1TlDz8eKkYQ04wS5LAqM2OiBa4UxxPXlVlFZRdKv txaM2qKP6IsBzqQr604YRnlJfZJdbpIlMC2JS5pLE7sQEBOw99igGSGjyWRJeS+SkGk/ wbg2JO1gYbYU3CyL+5dix8EQfH0tH3ZVA+vmbGhcWLGKAxkhW+5aA5Ju3dPVHBkg2s+7 ycGG0Qx1JKXk/dXIFigpwmFdVXxPqEvEp//INUzQCuflYnNjzXmkELpPi/Cc1moYqrs9 Nt7nM3E82sWXpqIWDcGOFpMmUJdYbsd/SW/yvfSAxjhVUyAFquyCuv4NPe56F29m4hSP /kJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=lQzgvO1JiUQzpkRtMmyb/9I5FKVibCR+5y6g/uEV1ck=; b=YqgQsn3oCUnHo69Y6bo7s2v6YuZMkv5C9R6qkDTtOQ6Os+AkR1U79nT5ti1cyz8A4E s0r2raNnOu0nEyYKEu5PV9fMvDkj7RiqI71B+63Ik1CglnLAcBcdXKKs4IK6i4hfcs1A hD/3gDy1vMOuzwCo0TG0eGPmOVg2cZ/KUUaFErXQE8KIcuENLp9j7EtwPVE7qGjEYCyE F4nzecqOdFW6cMdHxj2D/BpblLkMa0qGPC0WMMFEMWR8v4nWonQ9VR1TTZNbbnATbc4A QRMkf28ytwT5znMX27/+w7uWuppGt+2yuKfZ5Cb7UxJenzOA/oU0kLZx+VLl8x0E12gg Ba0w== X-Gm-Message-State: AJIora8rVrOQ1XIirq+7gnAaNT3763tr9Zdb1IyHriKLIxaI+EIykbSZ OZ2qv8NPFr4jmqtjn8AYna5ROdD43gJ6LUcXKspe2/6grs+dZ4i/7o7y110n X-Google-Smtp-Source: AGRyM1uxezLXt+LQwBNca8zXFfM6y6m6X8ynKxisS1DSfvD32Q1i8IeqtNbL+fNUPFxCBv299XblI+THepHdwSSedGM= X-Received: by 2002:a17:902:684b:b0:16b:e2ad:ed1b with SMTP id f11-20020a170902684b00b0016be2aded1bmr5213032pln.137.1656932996382; Mon, 04 Jul 2022 04:09:56 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nikolaos Chatzikonstantinou Date: Mon, 4 Jul 2022 11:09:44 +0000 Message-ID: To: musl@lists.openwall.com Content-Type: multipart/mixed; boundary="000000000000aab19305e2f8c6a4" Subject: [musl] Re: Implementing csqrtl() --000000000000aab19305e2f8c6a4 Content-Type: text/plain; charset="UTF-8" On Mon, Jul 4, 2022 at 9:35 AM Nikolaos Chatzikonstantinou wrote: > > Hello list, > > I wanted to implement some function from > > which is an open issue in the wiki. > > One of the missing complex functions is csqrtl(), the long double > version of complex square root. I was able to find a 1987 article from > W. Kahan, titled "Branch cuts for complex elementary functions." that > contained an implementation for complex square root for arbitrary > floating-point numbers. In this e-mail you'll find an attached git > patch with the implementation. I forgot to attach the patch, but here it is. Regards, Nikolaos Chatzikonstantinou --000000000000aab19305e2f8c6a4 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-add-csqrtl-implementation.patch" Content-Disposition: attachment; filename="0001-add-csqrtl-implementation.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l56n40l00 RnJvbSAwNjlhNDE2NWE3NDNlMjE3YTczMDY0ZDc0ZTcyZjI5MmNhNWUyZmUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGFvcyBDaGF0emlrb25zdGFudGlub3UgPG5jaGF0ejMx NEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgNCBKdWwgMjAyMiAxODowNzo1NyArMDkwMApTdWJqZWN0 OiBbUEFUQ0hdIGFkZCBjc3FydGwoKSBpbXBsZW1lbnRhdGlvbgpUbzogbXVzbEBsaXN0cy5vcGVu d2FsbC5jb20KCi0tLQogc3JjL2NvbXBsZXgvY3NxcnRsLmMgfCA2NyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDYzIGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2NvbXBsZXgvY3NxcnRsLmMg Yi9zcmMvY29tcGxleC9jc3FydGwuYwppbmRleCAyMjUzOTM3OS4uZDI4ZWM4ZTUgMTAwNjQ0Ci0t LSBhL3NyYy9jb21wbGV4L2NzcXJ0bC5jCisrKyBiL3NyYy9jb21wbGV4L2NzcXJ0bC5jCkBAIC0x LDcgKzEsNjYgQEAKICNpbmNsdWRlICJjb21wbGV4X2ltcGwuaCIKKyNpbmNsdWRlIDxmZW52Lmg+ CiAKLS8vRklYTUUKLWxvbmcgZG91YmxlIGNvbXBsZXggY3NxcnRsKGxvbmcgZG91YmxlIGNvbXBs ZXggeikKLXsKLQlyZXR1cm4gY3NxcnQoeik7CisvKiBjc3Nxc2woKSBhbmQgY3NxcnRsKCkgdGFr ZW4gZnJvbQorICogS2FoYW4sIFcuICgxOTg3KS4gQnJhbmNoIGN1dHMgZm9yIGNvbXBsZXggZWxl bWVudGFyeSBmdW5jdGlvbnMuCisgKi8KK3N0YXRpYyBpbmxpbmUgbG9uZyBkb3VibGUgY29tcGxl eCBfY3NzcXNsKGxvbmcgZG91YmxlIGNvbXBsZXggeikgeworI3ByYWdtYSBTVERDIEZFTlZfQUND RVNTIE9OCisgIGZlbnZfdCBlbnY7CisgIHVuc2lnbmVkIGsgPSAwOworICBsb25nIGRvdWJsZSB4 LCB5LCByOworICBpbnQgc2V0X2V4Y2VwdHM7CisKKyAgZmVob2xkZXhjZXB0KCZlbnYpOworICB4 ID0gY3JlYWwoeik7CisgIHkgPSBjaW1hZyh6KTsKKyAgciA9IHggKiB4ICsgeSAqIHk7CisgIGlm ICgoaXNpbmYoeCkgfHwgaXNpbmYoeSkpICYmIChpc25hbihyKSB8fCBpc2luZihyKSkpIHsKKyAg ICByID0gSU5GSU5JVFk7CisgIH0gZWxzZSB7CisgICAgc2V0X2V4Y2VwdHMgPSBmZXRlc3RleGNl cHQoRkVfT1ZFUkZMT1cgfCBGRV9VTkRFUkZMT1cpOworICAgIGlmICgoc2V0X2V4Y2VwdHMgJiBG RV9PVkVSRkxPVykgfHwKKyAgICAgICAgKChzZXRfZXhjZXB0cyAmIEZFX1VOREVSRkxPVykgJiYg aXNsZXNzKHIsIExEQkxfTUlOIC8gTERCTF9FUFNJTE9OKSkpIHsKKyAgICAgIGsgPSBsb2dibChm bWF4bChmYWJzbCh4KSwgZmFic2woeSkpKTsKKyAgICAgIHggPSBzY2FsYm5sKHgsIC1rKTsKKyAg ICAgIHkgPSBzY2FsYm5sKHksIC1rKTsKKyAgICAgIHIgPSB4ICogeCArIHkgKiB5OworICAgIH0K KyAgfQorICBmZXVwZGF0ZWVudigmZW52KTsKKyAgcmV0dXJuIENNUExYTChyLCBrKTsKK30KKwor bG9uZyBkb3VibGUgY29tcGxleCBjc3FydGwobG9uZyBkb3VibGUgY29tcGxleCB6KSB7CisgIGxv bmcgZG91YmxlIHgsIHksIHIsIHhpLCBldGE7CisgIHVuc2lnbmVkIGs7CisKKyAgeCA9IGNyZWFs KHopOworICB5ID0gY2ltYWcoeik7CisgIHogPSBfY3NzcXNsKHopOworICByID0gY3JlYWwoeik7 CisgIGsgPSBjaW1hZyh6KTsKKyAgaWYgKCFpc25hbih4KSkgeworICAgIHIgPSBzY2FsYm5sKGZh YnNsKHgpLCAtaykgKyBzcXJ0bChyKTsKKyAgfQorICBpZiAoayAmIDEpIHsKKyAgICBrID0gKGsg LSAxKSAvIDI7CisgIH0gZWxzZSB7CisgICAgayA9IGsgLyAyIC0gMTsKKyAgICByICo9IDI7Cisg IH0KKyAgciA9IHNjYWxibmwoc3FydGwociksIGspOworICB4aSA9IHI7CisgIGV0YSA9IHk7Cisg IGlmIChyICE9IDApIHsKKyAgICBpZiAoIWlzaW5mKGV0YSkpIHsKKyAgICAgIC8vIFRPRE8gaWYg ZXRhIHVuZGVyZmxvd2VkLCBzaWduYWwgaXQKKyAgICAgIGV0YSA9IChldGEgLyByKSAvIDI7Cisg ICAgfQorICAgIGlmIChpc2xlc3MoeCwgMCkpIHsKKyAgICAgIHhpID0gZmFic2woZXRhKTsKKyAg ICAgIGV0YSA9IGNvcHlzaWdubChyLCB5KTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIENNUExYKHhp LCBldGEpOwogfQotLSAKMi4zNi4xCgo= --000000000000aab19305e2f8c6a4--