From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2620 invoked by alias); 15 Jan 2015 13:41:43 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 34288 Received: (qmail 2027 invoked from network); 15 Jan 2015 13:41:40 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.2 Date: Thu, 15 Jan 2015 14:41:38 +0100 From: Vincent Lefevre To: "zsh-workers@zsh.org" Subject: Re: Math expression evaluation error? Message-ID: <20150115134138.GB30651@ypig.lip.ens-lyon.fr> Mail-Followup-To: "zsh-workers@zsh.org" References: <54B1A5EC.2080202@eastlink.ca> <150110175103.ZM21764@torch.brasslantern.com> <54B205B8.4080208@eastlink.ca> <20150112091737.GB27773@xvii.vinc17.org> <1518701421079502@web12g.yandex.ru> <20150113160031.GA12079@ypig.lip.ens-lyon.fr> <2295541421190213@web9j.yandex.ru> <20150114144752.GA23984@ypig.lip.ens-lyon.fr> <363741421271463@web10o.yandex.ru> <20150115133421.GA30651@ypig.lip.ens-lyon.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20150115133421.GA30651@ypig.lip.ens-lyon.fr> X-Mailer-Info: http://www.vinc17.net/mutt/ User-Agent: Mutt/1.5.23-6396-vl-r76280 (2015-01-15) On 2015-01-15 14:34:21 +0100, Vincent Lefevre wrote: > > > But POSIX doesn't specify the arithmetic evaluation on expressions > > > other than signed long integer arithmetic. An implementation that > > > decides that $((1.0/2)) gives 17 "as an extension" could still be > > > conforming. > > > > Nope, it cannot ever be conforming. POSIX does this by saying that > > semantic of operation is the same as in C, > > Only for what it specifies. BTW, note also that the ISO C standard doesn't specify the accuracy, unless Annex F (IEEE 754) is supported (which is not required by POSIX). So, even if the shell claims to implement floating-point arithmetic, any floating-point number as the result of $((1.0/2)) would be conforming. -- Vincent Lefèvre - Web: 100% accessible validated (X)HTML - Blog: Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)