From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.6 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI,NICE_REPLY_A, SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 3C9201F5AE for ; Wed, 29 Jul 2020 20:25:33 +0000 (UTC) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 658073851C19; Wed, 29 Jul 2020 20:25:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 658073851C19 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1596054332; bh=IImTbkSbgsZH5oavZEFQa670LQWOrAjhXsDt8WrooXo=; h=To:References:Subject:Date:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=aoIPGp/xbEufFQ3TkJ0NbIL8IGMmzXBJ+lQ+wljeUEZ2zLFlT3RTi5Yoi2cChadXH eW7AiWecqPkqrmTMYcO0oFaaE8J+ijsCtUZrpiZAAaG/cKh216yh6HCHp1I6CRxJIp M+ipMh3xWB/87YayxgEMvc88h7Ha1EvuKno3PIs8= Received: from mail-qt1-x82d.google.com (mail-qt1-x82d.google.com [IPv6:2607:f8b0:4864:20::82d]) by sourceware.org (Postfix) with ESMTPS id 22FEA3857C42 for ; Wed, 29 Jul 2020 20:25:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 22FEA3857C42 Received: by mail-qt1-x82d.google.com with SMTP id t23so15554674qto.3 for ; Wed, 29 Jul 2020 13:25:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:cc:references:from:autocrypt:subject :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=IImTbkSbgsZH5oavZEFQa670LQWOrAjhXsDt8WrooXo=; b=RpBs7gyvOiLWHB/a58v/HrWE433TWId9Sv9buLkDkLx1jzEJm/yoVMN/7AbS4uMyX/ Ykz+NN5CRqIPkrkAVIwBHXfWA0WXNqy8awokx3LkfqO+6nzJIrr9tK2nkDVEbukaT+7V oMLXSVZwveT3wSadwae1w+BggYXhm6z6kKHOKkjfqhMQMdgA7e4r+pffAcTiJfM5f9XZ FwEelPFgIbZD31mGWxApuxeo8VmczlDgcqcA3/LMt5pZVkDgkRooy34FMNfVm+JOVNpn 303C5Oel33Xq9+qbNhAompYLDmVdyvP5KW0JHfBnp/1HKT51pB4YCqTUZKp6NTKifAW2 wc9g== X-Gm-Message-State: AOAM533dKqzNlABJkdDnOh+FG+53Y3kRKojF/qj1xbXXOj7hzO5IQ/AU Jek0t4kwOg6bHj+FYnYeJ/BjiojF0v4= X-Google-Smtp-Source: ABdhPJzvn9JoEvXTlCTU8ltsVBoGwvxIyxFwgYKdhODSQlHgq9yY6oVO2JCM6gjQdtWmho/sXutUjw== X-Received: by 2002:aed:34e2:: with SMTP id x89mr116808qtd.313.1596054327718; Wed, 29 Jul 2020 13:25:27 -0700 (PDT) Received: from [192.168.1.4] ([177.194.48.209]) by smtp.googlemail.com with ESMTPSA id r6sm2563482qtu.93.2020.07.29.13.25.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 29 Jul 2020 13:25:27 -0700 (PDT) To: Paul Zimmermann References: <87wo2oxahr.fsf@igel.home> Autocrypt: addr=adhemerval.zanella@linaro.org; prefer-encrypt=mutual; keydata= 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 Subject: Re: fix inaccuracy of j0f for x >= 2^127 when sin(x)+cos(x) is tiny (v2) Message-ID: Date: Wed, 29 Jul 2020 17:25:24 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Adhemerval Zanella via Libc-alpha Reply-To: Adhemerval Zanella Cc: libc-alpha@sourceware.org Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" On 29/07/2020 04:03, Paul Zimmermann wrote: > Dear Adhemerval, > > thank you for your review. Here is a v2 with all fixes. I did fix the > indentation issue, but did not see the "open brackets on next line" issue: > in other places of this file, we have "else {" with the open brackets on the > same line. I also did add an entry in math/auto-libm-test-in that corresponds > to the larger error for the new code path. No adjustment is needed however, > since the new code is more accurate. Some code were imported from other projects and does not follow the glibc code guidelines. I am not sure which is the correct strategy to follow in such cases, but even this patch does not really follow the file indentation (for instance, 'else' are added after the close bracket, so no new line in this case). In any case, following the already set file style should be fine. > > Best regards, > Paul > > From a4fe8c3e6c172c7eea198f3225efb05b6afe0f65 Mon Sep 17 00:00:00 2001 > From: Paul Zimmermann > Date: Wed, 29 Jul 2020 08:59:12 +0200 > Subject: [PATCH] fix inaccuracy of j0f for x >= 2^127 when sin(x)+cos(x) is > tiny (v2) > > --- > math/auto-libm-test-in | 2 ++ > sysdeps/ieee754/flt-32/e_j0f.c | 16 ++++++++++++++++ > 2 files changed, 18 insertions(+) > > diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in > index 4414e54d93..5d488a8711 100644 > --- a/math/auto-libm-test-in > +++ b/math/auto-libm-test-in > @@ -5748,6 +5748,8 @@ j0 0x1p16382 > j0 0x1p16383 > # the next value generates larger error bounds on x86_64 (binary32) > j0 0x2.602774p+0 xfail-rounding:ibm128-libgcc > +# the next value exercises the flt-32 code path for x >= 2^127 > +j0 0x8.2f4ecp+124 > > j1 -1.0 > j1 0.0 Does it require any ULP adjustment (at least on the architecture you tested it)? > diff --git a/sysdeps/ieee754/flt-32/e_j0f.c b/sysdeps/ieee754/flt-32/e_j0f.c > index c89b9f2688..8540d00b7b 100644 > --- a/sysdeps/ieee754/flt-32/e_j0f.c > +++ b/sysdeps/ieee754/flt-32/e_j0f.c > @@ -56,6 +56,22 @@ __ieee754_j0f(float x) > if ((s*c) else ss = z/cc; > } > + else { No new line for the else ( '} else {' ). > + /* we subtract (exactly) a value x0 such that cos(x0)+sin(x0) s/we/We. > + is very near to 0, and use the identity > + sin(x-x0) = sin(x)*cos(x0)-cos(x)*sin(x0) to get > + sin(x) + cos(x) with extra accuracy */ Period and double space prior comment close ('[...] accuracy. */'). > + float x0 = 0xe.d4108p+124f; > + float y = x - x0; /* exact */ > + /* sin(y) = sin(x)*cos(x0)-cos(x)*sin(x0) */ > + z = __sinf (y); > + float eps = 0x1.5f263ep-24f; > + /* cos(x0) ~ -sin(x0) + eps */ > + z += eps * __cosf (x); > + /* now z ~ (sin(x)-cos(x))*cos(x0) */ > + float cosx0 = -0xb.504f3p-4f; > + cc = z / cosx0; > + } > /* > * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x) > * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x) >