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.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,NICE_REPLY_A,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 24006 invoked from network); 7 Dec 2020 10:18:41 -0000 Received: from ewsd.inri.net (107.191.116.128) by inbox.vuxu.org with ESMTPUTF8; 7 Dec 2020 10:18:41 -0000 Received: from mail-wm1-f46.google.com ([209.85.128.46]) by ewsd; Mon Dec 7 05:16:24 -0500 2020 Received: by mail-wm1-f46.google.com with SMTP id e25so13153108wme.0 for <9front@9front.org>; Mon, 07 Dec 2020 02:16:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=cS2tgLN77nhVtX8T8Nl1gNuV9oxeHY+Kg2oXYFlboTo=; b=sQOPN+uKxOBjT6wJfQfpaGgRTubB4VKhgvmXyqfXLlFV1buqXQf1AmEgg8FP7XuVOs dp5cDPNDPG/SWMgbFvhkx+KJRMVKNOc9DWi/o4wG0ocdgb810PsWX+6Ynmm20iS4owFP jUgaXiXk5BpSkGvXiYr+lhT3mhWl1ufUJYPE1JFMTAhq/nXc/47HqvloulgBjVUw1Xlf C0vFeshxKzbTpb//R6xcere4HvndRbJ04yr0Rt+t88VhD0k5ivM+zZ7/ihtN6dxu45XZ dsjc0dH1ojGLPzaDI56r2x7HU3thqOpYxvHEWtXq2RqN/Mdjj9AGXTQpH74slQ6HtFPX aqbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=cS2tgLN77nhVtX8T8Nl1gNuV9oxeHY+Kg2oXYFlboTo=; b=JVTZKcOqnXw8jhB2fRttur1REydbLafaqPKCq2VKrl7VImY4zDQoCID+PIHUVl/e8l Em4vAlTBKyTlxgMX2e/tmrH4BD4cqrmXnk1nBv18XQQRWgCVL4jFEGegZIOK8CDlieYv xKxVIOSvjdQ6anveMclDH5sMGkci6nEM2PhUca3zoMhUhNXbfaoaETZTXOPVh6ilWQ13 kg4hUvaIF6QVHvQaAhZY21uUFqsqj+7ARS5y/q+WubMVFU2nSJMc2SNEE/QCIxwYFSC9 e3ZVyL08aLm0ayaAg6q69WjYIF+iOx9370z546DtJCC3TIa8wAFxSPMCPYt1X3L47A3M XeMg== X-Gm-Message-State: AOAM530QJt/wxG/ONOUyqlCaIwUaWLs3GvopVKFrqEVpQjr3AURZZKzp qGtaziVsJMClH1c/TndN40jkTrzXKGufBg== X-Google-Smtp-Source: ABdhPJyrFYnIGsE3M4tACH/CG0YQecWggL6gdr1rGH4Gdrc50ilCfdXV0FL+sQ++cRyKS79iNeDO6w== X-Received: by 2002:a1c:3c4:: with SMTP id 187mr17209446wmd.143.1607336178490; Mon, 07 Dec 2020 02:16:18 -0800 (PST) Return-Path: Received: from [192.168.0.19] (250.12.13.109.rev.sfr.net. [109.13.12.250]) by smtp.gmail.com with ESMTPSA id y68sm13071782wmc.0.2020.12.07.02.16.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 07 Dec 2020 02:16:18 -0800 (PST) To: ori@eigenstate.org, 9front@9front.org References: <23D0CE12F0A6885C041A6F186B0B2920@eigenstate.org> From: =?UTF-8?Q?Iruat=c3=a3_Souza?= Message-ID: Date: Mon, 7 Dec 2020 11:16:17 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.3.1 MIME-Version: 1.0 In-Reply-To: <23D0CE12F0A6885C041A6F186B0B2920@eigenstate.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: overflow-preventing metadata lifecycle manager Subject: Re: [9front] [patch] add log2 to ape Reply-To: 9front@9front.org Precedence: bulk On 06/12/2020 19:49, ori@eigenstate.org wrote: > In error cases, this divides the error return > by log2. I suspect we don't want to do that. > > I'd also rather name all of the constants > consistently. Maybe uppercase the initial > character, instead of giving one of them > an _ prefix. The patch is simply wrong, it doesn't even compile correctly! Sorry for the noise, here is a better one. diff -r 3497ab777d56 amd64/include/ape/math.h --- a/amd64/include/ape/math.h Mon Dec 07 00:36:41 2020 +0100 +++ b/amd64/include/ape/math.h Mon Dec 07 11:11:22 2020 +0100 @@ -26,6 +26,7 @@ extern double ldexp(double, int); extern double log(double); extern double log10(double); +extern double log2(double); extern double modf(double, double *); extern double pow(double, double); extern double sqrt(double); diff -r 3497ab777d56 sys/src/ape/lib/ap/math/log.c --- a/sys/src/ape/lib/ap/math/log.c Mon Dec 07 00:36:41 2020 +0100 +++ b/sys/src/ape/lib/ap/math/log.c Mon Dec 07 11:11:22 2020 +0100 @@ -10,16 +10,16 @@ #include #include -#define log2 0.693147180559945309e0 -#define ln10o1 .4342944819032518276511 -#define sqrto2 0.707106781186547524e0 -#define p0 -.240139179559210510e2 -#define p1 0.309572928215376501e2 -#define p2 -.963769093377840513e1 -#define p3 0.421087371217979714e0 -#define q0 -.120069589779605255e2 -#define q1 0.194809660700889731e2 -#define q2 -.891110902798312337e1 +#define Log2 0.693147180559945309e0 +#define Ln10o1 .4342944819032518276511 +#define Sqrto2 0.707106781186547524e0 +#define P0 -.240139179559210510e2 +#define P1 0.309572928215376501e2 +#define P2 -.963769093377840513e1 +#define P3 0.421087371217979714e0 +#define Q0 -.120069589779605255e2 +#define Q1 0.194809660700889731e2 +#define Q2 -.891110902798312337e1 double log(double arg) @@ -36,7 +36,7 @@ x *= 2; exp--; } - if(x < sqrto2) { + if(x < Sqrto2) { x *= 2; exp--; } @@ -44,9 +44,9 @@ z = (x-1) / (x+1); zsq = z*z; - temp = ((p3*zsq + p2)*zsq + p1)*zsq + p0; - temp = temp/(((zsq + q2)*zsq + q1)*zsq + q0); - temp = temp*z + exp*log2; + temp = ((P3*zsq + P2)*zsq + P1)*zsq + P0; + temp = temp/(((zsq + Q2)*zsq + Q1)*zsq + Q0); + temp = temp*z + exp*Log2; return temp; } @@ -58,5 +58,16 @@ errno = (arg==0)? ERANGE : EDOM; return -HUGE_VAL; } - return log(arg) * ln10o1; + return log(arg) * Ln10o1; } + +double +log2(double arg) +{ + if(arg <= 0) { + errno = (arg==0)? ERANGE : EDOM; + return -HUGE_VAL; + } + + return log(arg)/Log2; +}