From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= Newsgroups: gmane.emacs.devel Subject: Re: How is math-round different from other Calc functions? Date: Wed, 2 Feb 2022 09:34:25 +0100 Message-ID: References: <6404b660-22e9-f140-94a1-b0e66caa34cb@grinta.net> Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\)) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8236"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Emacs developers To: Daniele Nicolodi Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Feb 02 10:09:16 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nFBdc-0001tu-8G for ged-emacs-devel@m.gmane-mx.org; Wed, 02 Feb 2022 10:09:16 +0100 Original-Received: from localhost ([::1]:50646 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nFBda-0000l3-OP for ged-emacs-devel@m.gmane-mx.org; Wed, 02 Feb 2022 04:09:14 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:50426) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nFB66-0002Bd-Gu for emacs-devel@gnu.org; Wed, 02 Feb 2022 03:34:43 -0500 Original-Received: from mail154c50.megamailservers.eu ([91.136.10.164]:54164 helo=mail50c50.megamailservers.eu) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nFB62-0006eX-6y for emacs-devel@gnu.org; Wed, 02 Feb 2022 03:34:37 -0500 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1643790867; bh=LrLZkYiVrO/rqwtyxv/N+Vqs6pOKThREcHFE8mc4p9I=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=PsMtKH/aHO2Nnxh/gXmWgorgtqkGHq1k+/rkkCgUujjjPXlOkXszTQmh29mm47SiF o+kdO2CbZYDXdA484inQUkVyyBjltiIxt2xAcCAXwfaRA6xnnY0Do1CE4+4wln6dhn m7ETahah9OPa2cbtB2GA8XymNgtiN6bZoC+M9l8I= Feedback-ID: mattiase@acm.or Original-Received: from smtpclient.apple (c188-150-171-71.bredband.tele2.se [188.150.171.71]) (authenticated bits=0) by mail50c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 2128YP4m014698; Wed, 2 Feb 2022 08:34:27 +0000 In-Reply-To: <6404b660-22e9-f140-94a1-b0e66caa34cb@grinta.net> X-Mailer: Apple Mail (2.3654.120.0.1.13) X-CTCH-RefID: str=0001.0A742F20.61FA4213.0046, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-Origin-Country: SE Received-SPF: softfail client-ip=91.136.10.164; envelope-from=mattiase@acm.org; helo=mail50c50.megamailservers.eu X-Spam_score_int: -11 X-Spam_score: -1.2 X-Spam_bar: - X-Spam_report: (-1.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_HELO_NONE=0.001, SPF_SOFTFAIL=0.665, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:285776 Archived-At: 1 feb. 2022 kl. 22.12 skrev Daniele Nicolodi : > (defmath uround (x) > (* (round (remove-units x)) (extract-units x))) Looks like you may need to do `math-simplify` after `remove-units`, = since `math-round` only works if its argument is a value, not an = unsimplified expression such as `(* (float 4 0) 1)`. > but it does if I replace round() with any other function: >=20 > (defmath uplus (x) > (* (1+ (remove-units x)) (calc-eval "kg" 'raw))) That `(1+ ...)` becomes `(math-add ... x)` and presumably `math-add` = makes an effort to simplify its arguments for other reasons. At least, this is from a cursory look at the code. Does that make sense?