From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Newsgroups: gmane.emacs.bugs Subject: bug#45917: [PATCH] Use big brackets in Calc in big mode Date: Sat, 16 Jan 2021 18:10:31 +0100 Message-ID: <99D62C96-8FA8-4089-BB4C-9BA65F30B7E3@acm.org> Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Content-Type: multipart/mixed; boundary="Apple-Mail=_1629750A-F015-4A05-9F94-904D47744B8E" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27950"; mail-complaints-to="usenet@ciao.gmane.io" To: 45917@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jan 16 18:11:11 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1l0p6U-00079c-SY for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 16 Jan 2021 18:11:11 +0100 Original-Received: from localhost ([::1]:51822 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l0p6T-0003t4-FV for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 16 Jan 2021 12:11:09 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36188) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l0p6M-0003sg-Dg for bug-gnu-emacs@gnu.org; Sat, 16 Jan 2021 12:11:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:60592) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l0p6M-000218-6F for bug-gnu-emacs@gnu.org; Sat, 16 Jan 2021 12:11:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1l0p6L-0000GP-Vv for bug-gnu-emacs@gnu.org; Sat, 16 Jan 2021 12:11:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Jan 2021 17:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 45917 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.1610817046985 (code B ref -1); Sat, 16 Jan 2021 17:11:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 16 Jan 2021 17:10:46 +0000 Original-Received: from localhost ([127.0.0.1]:43905 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l0p65-0000Fp-US for submit@debbugs.gnu.org; Sat, 16 Jan 2021 12:10:46 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:45950) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l0p64-0000Fh-2G for submit@debbugs.gnu.org; Sat, 16 Jan 2021 12:10:44 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36168) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l0p63-0003lO-9n for bug-gnu-emacs@gnu.org; Sat, 16 Jan 2021 12:10:43 -0500 Original-Received: from mail1467c50.megamailservers.eu ([91.136.14.67]:55384 helo=mail268c50.megamailservers.eu) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l0p5y-0001tl-JT for bug-gnu-emacs@gnu.org; Sat, 16 Jan 2021 12:10:43 -0500 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1610817034; bh=CJl1kz0EXjVw0W0rtyIBHlUWYynXzv5d6oTtOVD+RUM=; h=From:Subject:Date:To:From; b=Waz6ZRHk4t9bdHfIHN6vPDcEmw1v77wMfPGm1fMMO6c2/bZIS6hua2H/V4Q3sJAZ6 aPZfmRC2mfNOCp5IEuMKVZWfk5u7IM3L/q1RI7XdbNswV9afFN+lcdacdyDMcZq0ir zoHMIPSqO2DV8TqCxYm1nA3V1YQHGQ0lk25xIsik= Feedback-ID: mattiase@acm.or Original-Received: from stanniol.lan (c-b952e353.032-75-73746f71.bbcust.telenor.se [83.227.82.185]) (authenticated bits=0) by mail268c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 10GHAWJZ001983 for ; Sat, 16 Jan 2021 17:10:33 +0000 X-Mailer: Apple Mail (2.3445.104.17) X-CTCH-RefID: str=0001.0A742F17.60031E0A.0012, 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-CSC: 0 X-CHA: v=2.3 cv=J+PUEzvS c=1 sm=1 tr=0 a=von4qPfY+hyqc0zmWf0tYQ==:117 a=von4qPfY+hyqc0zmWf0tYQ==:17 a=M51BFTxLslgA:10 a=hz4ZEoUbM58TYr4sGwoA:9 a=CjuIK1q_8ugA:10 a=FxUsVjK5u7_X8EQ_saYA:9 a=B2y7HmGcmWMA:10 a=tclcd6dtLQvEqt9_mmAA:9 X-Origin-Country: SE Received-SPF: softfail client-ip=91.136.14.67; envelope-from=mattiase@acm.org; helo=mail268c50.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 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:198024 Archived-At: --Apple-Mail=_1629750A-F015-4A05-9F94-904D47744B8E Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii The attached patch makes Calc use big brackets in Big mode when the = Unicode characters are available. This makes for prettier display which = is sort of the point of using Big mode. It follows previous use of = Unicode characters for square root and integral signs. The code supports big versions of round, square and curly brackets. Big = square brackets are currently only used for intervals and curly ones not = at all (maybe they could be put to use for Stirling numbers of the = second kind). Matrices do not use big brackets but they probably should since it is = standard mathematical notation. As far as I can tell the only reasons for not applying this would be = that it is common with fonts or terminals where this doesn't look good, = or that the resulting formula isn't recognised by the embedded-mode = parser (which is already the case with several other constructs). --Apple-Mail=_1629750A-F015-4A05-9F94-904D47744B8E Content-Disposition: attachment; filename=0001-Calc-use-big-Unicode-brackets-in-Big-mode-when-avail.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Calc-use-big-Unicode-brackets-in-Big-mode-when-avail.patch" Content-Transfer-Encoding: quoted-printable =46rom=2001a065dfb6047e0c0db7a89f6113723a1763bd2b=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= =0ADate:=20Sat,=2016=20Jan=202021=2017:30:57=20+0100=0A= Subject:=20[PATCH]=20Calc:=20use=20big=20Unicode=20brackets=20in=20Big=20= mode=20when=20available=0A=0A*=20lisp/calc/calccomp.el=20= (math--big-bracket-alist)=0A(math--big-bracket,=20math--comp-bracket,=20= math--comp-round-bracket):=0ANew.=0A(math-compose-expr,=20= math-compose-log,=20math-compose-log10)=0A(math-compose-choose,=20= math-compose-integ,=20math-compose-sum)=0A(math-compose-prod):=20Use=20= big=20brackets=20when=20available.=0A---=0A=20lisp/calc/calccomp.el=20|=20= 247=20+++++++++++++++++++++++++++---------------=0A=201=20file=20= changed,=20162=20insertions(+),=2085=20deletions(-)=0A=0Adiff=20--git=20= a/lisp/calc/calccomp.el=20b/lisp/calc/calccomp.el=0Aindex=20= 07e70cad0a..5f38ee71c7=20100644=0A---=20a/lisp/calc/calccomp.el=0A+++=20= b/lisp/calc/calccomp.el=0A@@=20-138,19=20+138,19=20@@=20= math-compose-expr=0A=20=09=09=09=09=20=20=20=20=20=20(math-format-number=20= (nth=202=20aa))))))=0A=20=09=09=20=20(if=20(=3D=20calc-number-radix=20= 10)=0A=20=09=09=20=20=20=20=20=20c=0A-=09=09=20=20=20=20(list=20'horiz=20= "("=20c=0A-=09=09=09=20=20(list=20'subscr=20")"=0A-=09=09=09=09= (int-to-string=20calc-number-radix)))))=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(list=20'subscr=20= (math--comp-round-bracket=20c)=0A+=09=09=09=20=20(int-to-string=20= calc-number-radix))))=0A=20=09=20=20=20=20=20=20(math-format-number=20= a)))=0A=20=09(if=20(not=20(eq=20calc-language=20'big))=0A=20=09=20=20=20=20= (math-format-number=20a=20prec)=0A=20=09=20=20(if=20(memq=20(car-safe=20= a)=20'(cplx=20polar))=0A=20=09=20=20=20=20=20=20(if=20(math-zerop=20(nth=20= 2=20a))=0A=20=09=09=20=20(math-compose-expr=20(nth=201=20a)=20prec)=0A-=09= =09(list=20'horiz=20"("=0A-=09=09=20=20=20=20=20=20(math-compose-expr=20= (nth=201=20a)=200)=0A-=09=09=20=20=20=20=20=20(if=20(eq=20(car=20a)=20= 'cplx)=20",=20"=20";=20")=0A-=09=09=20=20=20=20=20=20(math-compose-expr=20= (nth=202=20a)=200)=20")"))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(math--comp-round-bracket=0A+=09=09=20(list=20'horiz=0A+=09=09=20=20=20= =20=20=20=20(math-compose-expr=20(nth=201=20a)=200)=0A+=09=09=20=20=20=20= =20=20=20(if=20(eq=20(car=20a)=20'cplx)=20",=20"=20";=20")=0A+=09=09=20=20= =20=20=20=20=20(math-compose-expr=20(nth=202=20a)=200))))=0A=20=09=20=20=20= =20(if=20(or=20(=3D=20calc-number-radix=2010)=0A=20=09=09=20=20=20=20= (not=20(Math-realp=20a))=0A=20=09=09=20=20=20=20(and=20calc-group-digits=0A= @@=20-340,12=20+340,13=20@@=20math-compose-expr=0A=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20(funcall=20spfn=20a=20prec)=0A=20=20=20=20=20=20=20=20= =20=20=20=20=20(math-compose-var=20a)))))=0A=20=20=20=20=20=20((eq=20= (car=20a)=20'intv)=0A-=20=20=20=20=20=20(list=20'horiz=0A-=20=20=20=20=20= =20=20=20=20=20=20=20(if=20(memq=20(nth=201=20a)=20'(0=201))=20"("=20= "[")=0A-=09=20=20=20=20(math-compose-expr=20(nth=202=20a)=200)=0A-=20=20=20= =20=20=20=20=20=20=20=20=20"=20..=20"=0A-=09=20=20=20=20= (math-compose-expr=20(nth=203=20a)=200)=0A-=20=20=20=20=20=20=20=20=20=20= =20=20(if=20(memq=20(nth=201=20a)=20'(0=202))=20")"=20"]")))=0A+=20=20=20= =20=20=20(math--comp-bracket=0A+=20=20=20=20=20=20=20(if=20(memq=20(nth=20= 1=20a)=20'(0=201))=20?\(=20?\[)=0A+=20=20=20=20=20=20=20(if=20(memq=20= (nth=201=20a)=20'(0=202))=20?\)=20?\])=0A+=20=20=20=20=20=20=20(list=20= 'horiz=0A+=09=20=20=20=20=20(math-compose-expr=20(nth=202=20a)=200)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20"=20..=20"=0A+=09=20=20=20=20=20= (math-compose-expr=20(nth=203=20a)=200))))=0A=20=20=20=20=20=20((eq=20= (car=20a)=20'date)=0A=20=20=20=20=20=20=20(if=20(eq=20(car=20= calc-date-format)=20'X)=0A=20=09=20=20(math-format-date=20a)=0A@@=20= -377,7=20+378,7=20@@=20math-compose-expr=0A=20=09=09=20=20=20=20(and=20= (eq=20(car-safe=20(nth=201=20a))=20'cplx)=0A=20=09=09=09=20(math-negp=20= (nth=201=20(nth=201=20a)))=0A=20=09=09=09=20(eq=20(nth=202=20(nth=201=20= a))=200)))=0A-=09=09(list=20'horiz=20"("=20(math-compose-expr=20(nth=201=20= a)=200)=20")")=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (math--comp-round-bracket=20(math-compose-expr=20(nth=201=20a)=200))=0A=20= =09=20=20=20=20=20=20(math-compose-expr=20(nth=201=20a)=20201))=0A=20=09=20= =20=20=20(let=20((calc-language=20'flat)=0A=20=09=09=20=20= (calc-number-radix=2010)=0A@@=20-444,7=20+445,7=20@@=20math-compose-expr=0A= =20=09(if=20(>=20prec=20(nth=202=20a))=0A=20=20=20=20=20=20=20=20=20=20=20= =20=20(if=20(setq=20spfn=20(get=20calc-language=20'math-big-parens))=0A=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20'horiz=20(car=20= spfn)=20c=20(cdr=20spfn))=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (list=20'horiz=20"("=20c=20")"))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(math--comp-round-bracket=20c))=0A=20=09=20=20c)))=0A=20=20=20=20=20=20= ((and=20(eq=20(car=20a)=20'calcFunc-choriz)=0A=20=09=20=20=20(not=20(eq=20= calc-language=20'unform))=0A@@=20-612,7=20+613,7=20@@=20= math-compose-expr=0A=20=09=09=09=20=20=20(list=20'horiz=20"{left=20(=20"=0A= =20=09=09=09=09=20(math-compose-expr=20a=20-1)=0A=20=09=09=09=09=20"=20= right=20)}")))=0A-=09=09=20=20=20=20=20(list=20'horiz=20"("=20= (math-compose-expr=20a=200)=20")"))))=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(math--comp-round-bracket=20= (math-compose-expr=20a=200)))))=0A=20=09=09((and=20(memq=20calc-language=20= '(tex=20latex))=0A=20=09=09=20=20=20=20=20=20(memq=20(car=20a)=20'(/=20= calcFunc-choose=20calcFunc-evalto))=0A=20=09=09=20=20=20=20=20=20(>=3D=20= prec=200))=0A@@=20-638,7=20+639,7=20@@=20math-compose-expr=0A=20=09=09=09= (rhs=20(math-compose-expr=20(nth=202=20a)=20(nth=203=20op)=20(eq=20(nth=20= 1=20op)=20'/))))=0A=20=09=09=20=20=20(and=20(equal=20(car=20op)=20"^")=0A= =20=09=09=09(eq=20(math-comp-first-char=20lhs)=20?-)=0A-=09=09=09(setq=20= lhs=20(list=20'horiz=20"("=20lhs=20")")))=0A+=09=09=09(setq=20lhs=20= (math--comp-round-bracket=20lhs)))=0A=20=09=09=20=20=20(and=20(memq=20= calc-language=20'(tex=20latex))=0A=20=09=09=09(or=20(equal=20(car=20op)=20= "^")=20(equal=20(car=20op)=20"_"))=0A=20=09=09=09(not=20(and=20(stringp=20= rhs)=20(=3D=20(length=20rhs)=201)))=0A@@=20-721,7=20+722,7=20@@=20= math-compose-expr=0A=20=09=09=09=20=20=20(list=20'horiz=20"{left=20(=20"=0A= =20=09=09=09=09=20(math-compose-expr=20a=20-1)=0A=20=09=09=09=09=20"=20= right=20)}")))=0A-=09=09=20=20=20=20=20(list=20'horiz=20"("=20= (math-compose-expr=20a=200)=20")"))))=0A+=09=09=20=20=20=20=20= (math--comp-round-bracket=20(math-compose-expr=20a=200)))))=0A=20=09=09= (t=0A=20=09=09=20(let=20((lhs=20(math-compose-expr=20(nth=201=20a)=20= (nth=202=20op))))=0A=20=09=09=20(list=20'horiz=0A@@=20-759,7=20+760,7=20= @@=20math-compose-expr=0A=20=09=09=09=20=20=20(list=20'horiz=20"{left=20= (=20"=0A=20=09=09=09=09=20(math-compose-expr=20a=20-1)=0A=20=09=09=09=09=20= "=20right=20)}")))=0A-=09=09=20=20=20=20=20(list=20'horiz=20"("=20= (math-compose-expr=20a=200)=20")"))))=0A+=09=09=20=20=20=20=20= (math--comp-round-bracket=20(math-compose-expr=20a=200)))))=0A=20=09=09= (t=0A=20=09=09=20(let=20((rhs=20(math-compose-expr=20(nth=201=20a)=20= (nth=203=20op))))=0A=20=09=09=20=20=20(list=20'horiz=0A@@=20-966,6=20= +967,69=20@@=20math-tex-expr-is-flat=0A=20=20=20=20=20=20=20(and=20(memq=20= (car=20a)=20'(^=20calcFunc-subscr))=0A=20=09=20=20=20= (math-tex-expr-is-flat=20(nth=201=20a)))))=0A=20=0A+;;=20FIXME:=20maybe=20= try=20box=20drawing=20chars=20if=20big=20bracket=20chars=20are=20= unavailable,=0A+;;=20like=20=20=E2=94=8C=20=20=20=20=20=E2=94=90n=0A+;;=20= =20=20=20=20=20=20=E2=94=82a=20+=20b=E2=94=82=20=20=20=20=20=E2=94=8C=20= a=20+=20b=20=E2=94=90n=0A+;;=20=20=20=20=20=20=20=E2=94=82-----=E2=94=82=20= =20or=20=E2=94=82=20-----=20=E2=94=82=20=20=20=20?=0A+;;=20=20=20=20=20=20= =20=E2=94=82=20=20c=20=20=E2=94=82=20=20=20=20=20=E2=94=94=20=20=20c=20=20= =20=E2=94=98=0A+;;=20=20=20=20=20=20=20=E2=94=94=20=20=20=20=20=E2=94=98=0A= +;;=20They=20are=20more=20common=20than=20the=20chars=20below,=20but=20= look=20a=20bit=20square.=0A+;;=20Rounded=20corners=20exist=20but=20are=20= less=20commonly=20available.=0A+=0A+(defconst=20math--big-bracket-alist=0A= +=20=20'((?\(=20.=20(?=E2=8E=9B=20?=E2=8E=9D=20?=E2=8E=9C))=0A+=20=20=20=20= (?\)=20.=20(?=E2=8E=9E=20?=E2=8E=A0=20?=E2=8E=9F))=0A+=20=20=20=20(?\[=20= .=20(?=E2=8E=A1=20?=E2=8E=A3=20?=E2=8E=A2))=0A+=20=20=20=20(?\]=20.=20= (?=E2=8E=A4=20?=E2=8E=A6=20?=E2=8E=A5))=0A+=20=20=20=20(?\{=20.=20(?=E2=8E= =A7=20?=E2=8E=A9=20?=E2=8E=AA=20?=E2=8E=A8))=0A+=20=20=20=20(?\}=20.=20= (?=E2=8E=AB=20?=E2=8E=AD=20?=E2=8E=AA=20?=E2=8E=AC)))=0A+=20=20"Alist=20= mapping=20bracket=20chars=20to=20(UPPER=20LOWER=20EXTENSION=20MIDPIECE).=0A= +Not=20all=20brackets=20have=20midpieces.")=0A+=0A+(defun=20= math--big-bracket=20(bracket-char=20height=20baseline)=0A+=20=20= "Composition=20for=20BRACKET-CHAR=20of=20HEIGHT=20with=20BASELINE."=0A+=20= =20(if=20(<=3D=20height=201)=0A+=20=20=20=20=20=20(char-to-string=20= bracket-char)=0A+=20=20=20=20(let=20((pieces=20(cdr=20(assq=20= bracket-char=20math--big-bracket-alist))))=0A+=20=20=20=20=20=20(if=20= (memq=20nil=20(mapcar=20#'char-displayable-p=20pieces))=0A+=20=20=20=20=20= =20=20=20=20=20(char-to-string=20bracket-char)=0A+=20=20=20=20=20=20=20=20= (let*=20((upper=20(nth=200=20pieces))=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20(lower=20(nth=201=20pieces))=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(extension=20(nth=202=20pieces))=0A+=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20(midpiece=20(nth=203=20pieces)))=0A+=20=20=20=20=20=20= =20=20=20=20(cons=20'vleft=20=20=20=20=20=20=20=20;=20alignment=20= doesn't=20matter;=20width=20is=201=20char=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20(cons=20baseline=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(mapcar=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20#'char-to-string=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(append=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20= upper)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20(if=20midpiece=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20(let=20((lower-ext=20(/=20(-=20= height=203)=202)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(append=0A+=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (make-list=20(-=20height=203=20lower-ext)=20extension)=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(list=20midpiece)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20(make-list=20lower-ext=20= extension)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20(make-list=20(-=20height=202)=20extension))=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20= lower))))))))))=0A+=0A+(defun=20math--comp-bracket=20(left-bracket=20= right-bracket=20comp)=0A+=20=20"Put=20the=20composition=20COMP=20inside=20= LEFT-BRACKET=20and=20RIGHT-BRACKET."=0A+=20=20(if=20(eq=20calc-language=20= 'big)=0A+=20=20=20=20=20=20(let=20((height=20(math-comp-height=20comp))=0A= +=20=20=20=20=20=20=20=20=20=20=20=20(baseline=20(1-=20(math-comp-ascent=20= comp))))=0A+=20=20=20=20=20=20=20=20(list=20'horiz=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20(math--big-bracket=20left-bracket=20height=20= baseline)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20comp=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(math--big-bracket=20right-bracket=20= height=20baseline)))=0A+=20=20=20=20(list=20'horiz=0A+=20=20=20=20=20=20=20= =20=20=20(char-to-string=20left-bracket)=0A+=20=20=20=20=20=20=20=20=20=20= comp=0A+=20=20=20=20=20=20=20=20=20=20(char-to-string=20= right-bracket))))=0A+=0A+(defun=20math--comp-round-bracket=20(comp)=0A+=20= =20"Put=20the=20composition=20COMP=20inside=20plain=20brackets."=0A+=20=20= (math--comp-bracket=20?\(=20?\)=20comp))=0A+=0A=20(put=20'calcFunc-log=20= 'math-compose-big=20#'math-compose-log)=0A=20(defun=20math-compose-log=20= (a=20_prec)=0A=20=20=20(and=20(=3D=20(length=20a)=203)=0A@@=20-973,18=20= +1037,14=20@@=20math-compose-log=0A=20=09=20=20=20=20=20(list=20'subscr=20= "log"=0A=20=09=09=20=20=20(let=20((calc-language=20'flat))=0A=20=09=09=20= =20=20=20=20(math-compose-expr=20(nth=202=20a)=201000)))=0A-=09=20=20=20=20= =20"("=0A-=09=20=20=20=20=20(math-compose-expr=20(nth=201=20a)=201000)=0A= -=09=20=20=20=20=20")")))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= (math--comp-round-bracket=20(math-compose-expr=20(nth=201=20a)=20= 1000)))))=0A=20=0A=20(put=20'calcFunc-log10=20'math-compose-big=20= #'math-compose-log10)=0A=20(defun=20math-compose-log10=20(a=20_prec)=0A=20= =20=20(and=20(=3D=20(length=20a)=202)=0A=20=20=20=20=20=20=20=20(list=20= 'horiz=0A-=09=20=20=20=20=20(list=20'subscr=20"log"=20"10")=0A-=09=20=20=20= =20=20"("=0A-=09=20=20=20=20=20(math-compose-expr=20(nth=201=20a)=20= 1000)=0A-=09=20=20=20=20=20")")))=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20(list=20'subscr=20"log"=20"10")=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20(math--comp-round-bracket=20(math-compose-expr=20(nth=201=20a)=20= 1000)))))=0A=20=0A=20(put=20'calcFunc-deriv=20'math-compose-big=20= #'math-compose-deriv)=0A=20(put=20'calcFunc-tderiv=20'math-compose-big=20= #'math-compose-deriv)=0A@@=20-1027,12=20+1087,9=20@@=20math-compose-sqrt=0A= =20(defun=20math-compose-choose=20(a=20_prec)=0A=20=20=20(let=20((a1=20= (math-compose-expr=20(nth=201=20a)=200))=0A=20=09(a2=20= (math-compose-expr=20(nth=202=20a)=200)))=0A-=20=20=20=20(list=20'horiz=0A= -=09=20=20"("=0A-=09=20=20(list=20'vcent=0A-=09=09(math-comp-height=20= a1)=0A-=09=09a1=20"=20"=20a2)=0A-=09=20=20")")))=0A+=20=20=20=20= (math--comp-round-bracket=20(list=20'vcent=0A+=09=09=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(+=20(math-comp-height=20a1))=0A+=09= =09=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20a1=20"=20= "=20a2))))=0A=20=0A=20(put=20'calcFunc-integ=20'math-compose-big=20= #'math-compose-integ)=0A=20(defun=20math-compose-integ=20(a=20prec)=0A@@=20= -1052,9=20+1109,12=20@@=20math-compose-integ=0A=20=09=09=09=09=09=09=20=20= =20=20=20=20=20"d%s"=0A=20=09=09=09=09=09=09=20=20=20=20=20=20=20(nth=20= 1=20(nth=202=20a)))))=0A=20=09=09=09=09=09=20(nth=201=20a))=20185))=0A-=09= =20=20=20=20=20=20(calc-language=20'flat)=0A-=09=20=20=20=20=20=20(low=20= (and=20(nth=203=20a)=20(math-compose-expr=20(nth=203=20a)=200)))=0A-=09=20= =20=20=20=20=20(high=20(and=20(nth=204=20a)=20(math-compose-expr=20(nth=20= 4=20a)=200)))=0A+=09=20=20=20=20=20=20(low=20(and=20(nth=203=20a)=0A+=09=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(let=20((calc-language=20= 'flat))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(math-compose-expr=20(nth=203=20a)=200))))=0A+=09=20=20=20= =20=20=20(high=20(and=20(nth=204=20a)=0A+=09=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20(let=20((calc-language=20'flat))=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (math-compose-expr=20(nth=204=20a)=200))))=0A=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20;;=20Check=20if=20we=20have=20Unicode=20integral=20= top/bottom=20parts.=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (fancy=20(and=20(char-displayable-p=20?=E2=8C=A0)=0A=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (char-displayable-p=20?=E2=8C=A1)))=0A@@=20-1066,40=20+1126,47=20@@=20= math-compose-integ=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20((char-displayable-p=20= ?=E2=94=82)=20"=E2=94=82=20")=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20;;=20U+007C=20= VERTICAL=20LINE=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20(t=20"|=20"))))=0A-=09=20(list=20= 'horiz=0A-=09=20=20=20=20=20=20=20(if=20parens=20"("=20"")=0A-=09=20=20=20= =20=20=20=20(append=20(list=20'vcent=20(if=20fancy=0A-=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(if=20high=202=201)=0A-=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20(if=20high=203=202)))=0A-=09=09=20=20=20=20=20=20=20(and=20= high=20(list=20(if=20fancy=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20(list=20'horiz=20high=20"=20")=0A-=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20(list=20'horiz=20"=20=20"=20high))))=0A-=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(if=20fancy=0A-=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (list=20"=E2=8C=A0=20"=20fancy-stem=20"=E2=8C=A1=20")=0A-=09=09=20=20=20=20= =20=20=20=20=20'("=20=20/"=0A-=09=09=09=20=20=20"=20|=20"=0A-=09=09=09=20= =20=20"=20|=20"=0A-=09=09=09=20=20=20"=20|=20"=0A-=09=09=09=20=20=20"/=20= =20"))=0A-=09=09=20=20=20=20=20=20=20(and=20low=20(list=20(if=20fancy=0A= -=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20'horiz=20= low=20"=20")=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20= 'horiz=20low=20"=20=20")))))=0A-=09=20=20=20=20=20=20=20expr=0A-=09=20=20= =20=20=20=20=20(if=20over=0A-=09=09=20=20=20""=0A-=09=09=20(list=20= 'horiz=20"=20d"=20var))=0A-=09=20=20=20=20=20=20=20(if=20parens=20")"=20= "")))))=0A+=20=20=20=20=20=20=20=20=20(let=20((comp=0A+=09=20=20=20=20=20= =20=20=20(list=20'horiz=0A+=09=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (append=20(list=20'vcent=20(if=20fancy=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(if=20high=202=201)=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20(if=20high=203=202)))=0A+=09=09= =20=20=20=20=20=20=20=20=20=20=20=20=20=20(and=20high=20(list=20(if=20= fancy=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20(list=20'horiz=20high=20"=20")=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(list=20'horiz=20"=20=20"=20= high))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20(if=20fancy=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (list=20"=E2=8C=A0=20"=20fancy-stem=20"=E2=8C=A1=20")=0A+=09=09=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20'("=20=20/"=0A+=09=09=09=20=20=20=20=20= =20=20=20=20=20"=20|=20"=0A+=09=09=09=20=20=20=20=20=20=20=20=20=20"=20|=20= "=0A+=09=09=09=20=20=20=20=20=20=20=20=20=20"=20|=20"=0A+=09=09=09=20=20=20= =20=20=20=20=20=20=20"/=20=20"))=0A+=09=09=20=20=20=20=20=20=20=20=20=20=20= =20=20=20(and=20low=20(list=20(if=20fancy=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20'horiz=20low=20"=20")=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (list=20'horiz=20low=20"=20=20")))))=0A+=09=20=20=20=20=20=20=20=20=20=20= =20=20=20=20expr=0A+=09=20=20=20=20=20=20=20=20=20=20=20=20=20=20(if=20= over=0A+=09=09=20=20=20=20=20=20=20=20=20=20""=0A+=09=09=20=20=20=20=20=20= =20=20(list=20'horiz=20"=20d"=20var)))))=0A+=20=20=20=20=20=20=20=20=20=20= =20(if=20parens=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (math--comp-round-bracket=20comp)=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20comp)))))=0A=20=0A=20(put=20'calcFunc-sum=20'math-compose-big=20= #'math-compose-sum)=0A=20(defun=20math-compose-sum=20(a=20prec)=0A=20=20=20= (and=20(memq=20(length=20a)=20'(3=205=206))=0A=20=20=20=20=20=20=20=20= (let*=20((expr=20(math-compose-expr=20(nth=201=20a)=20185))=0A-=09=20=20=20= =20=20=20(calc-language=20'flat)=0A-=09=20=20=20=20=20=20(var=20= (math-compose-expr=20(nth=202=20a)=200))=0A-=09=20=20=20=20=20=20(low=20= (and=20(nth=203=20a)=20(math-compose-expr=20(nth=203=20a)=200)))=0A-=09=20= =20=20=20=20=20(high=20(and=20(nth=204=20a)=20(math-compose-vector=20= (nthcdr=204=20a)=20",=20"=200))))=0A-=09=20(list=20'horiz=0A-=09=20=20=20= =20=20=20=20(if=20(memq=20prec=20'(180=20201))=20"("=20"")=0A+=09=20=20=20= =20=20=20(var=0A+=09=20=20=20=20=20=20=20(let=20((calc-language=20= 'flat))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (math-compose-expr=20(nth=202=20a)=200)))=0A+=09=20=20=20=20=20=20(low=20= (and=20(nth=203=20a)=0A+=09=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (let=20((calc-language=20'flat))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(math-compose-expr=20(nth=203=20= a)=200))))=0A+=09=20=20=20=20=20=20(high=20(and=20(nth=204=20a)=0A+=09=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(let=20((calc-language=20= 'flat))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20(math-compose-vector=20(nthcdr=204=20a)=20",=20"=20= 0))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20(comp=0A+=09=20=20=20=20= =20=20=20(list=20'horiz=0A=20=09=20=20=20=20=20=20=20(append=20(list=20= 'vcent=20(if=20high=203=202))=0A=20=09=09=20=20=20=20=20=20=20(and=20= high=20(list=20high))=0A=20=09=09=20=20=20=20=20=20=20'("----=20"=0A@@=20= -1112,32=20+1179,42=20@@=20math-compose-sum=0A=20=09=09=09=20(list=20= var)))=0A=20=09=20=20=20=20=20=20=20(if=20(memq=20(car-safe=20(nth=201=20= a))=20'(calcFunc-sum=20calcFunc-prod))=0A=20=09=09=20=20=20"=20"=20"")=0A= -=09=20=20=20=20=20=20=20expr=0A-=09=20=20=20=20=20=20=20(if=20(memq=20= prec=20'(180=20201))=20")"=20"")))))=0A+=09=20=20=20=20=20=20=20expr)))=0A= +=09=20(if=20(memq=20prec=20'(180=20201))=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20(math--comp-round-bracket=20comp)=0A+=20=20=20=20=20=20=20=20=20= =20=20comp))))=0A=20=0A=20(put=20'calcFunc-prod=20'math-compose-big=20= #'math-compose-prod)=0A=20(defun=20math-compose-prod=20(a=20prec)=0A=20=20= =20(and=20(memq=20(length=20a)=20'(3=205=206))=0A=20=20=20=20=20=20=20=20= (let*=20((expr=20(math-compose-expr=20(nth=201=20a)=20198))=0A-=09=20=20=20= =20=20=20(calc-language=20'flat)=0A-=09=20=20=20=20=20=20(var=20= (math-compose-expr=20(nth=202=20a)=200))=0A-=09=20=20=20=20=20=20(low=20= (and=20(nth=203=20a)=20(math-compose-expr=20(nth=203=20a)=200)))=0A-=09=20= =20=20=20=20=20(high=20(and=20(nth=204=20a)=20(math-compose-vector=20= (nthcdr=204=20a)=20",=20"=200))))=0A-=09=20(list=20'horiz=0A-=09=20=20=20= =20=20=20=20(if=20(memq=20prec=20'(196=20201))=20"("=20"")=0A-=09=20=20=20= =20=20=20=20(append=20(list=20'vcent=20(if=20high=203=202))=0A-=09=09=20=20= =20=20=20=20=20(and=20high=20(list=20high))=0A-=09=09=20=20=20=20=20=20=20= '("-----=20"=0A-=09=09=09=20"=20|=20|=20=20"=0A-=09=09=09=20"=20|=20|=20=20= "=0A-=09=09=09=20"=20|=20|=20=20")=0A-=09=09=20=20=20=20=20=20=20(if=20= low=0A-=09=09=09=20=20=20(list=20(list=20'horiz=20var=20"=20=3D=20"=20= low))=0A-=09=09=09=20(list=20var)))=0A-=09=20=20=20=20=20=20=20(if=20= (memq=20(car-safe=20(nth=201=20a))=20'(calcFunc-sum=20calcFunc-prod))=0A= -=09=09=20=20=20"=20"=20"")=0A-=09=20=20=20=20=20=20=20expr=0A-=09=20=20=20= =20=20=20=20(if=20(memq=20prec=20'(196=20201))=20")"=20"")))))=0A+=09=20=20= =20=20=20=20(var=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(let=20= ((calc-language=20'flat))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20(math-compose-expr=20(nth=202=20a)=200)))=0A+=09=20=20=20=20=20=20= (low=20(and=20(nth=203=20a)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(let=20((calc-language=20'flat))=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (math-compose-expr=20(nth=203=20a)=200))))=0A+=09=20=20=20=20=20=20(high=20= (and=20(nth=204=20a)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(let=20((calc-language=20'flat))=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (math-compose-vector=20(nthcdr=204=20a)=20",=20"=200))))=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20(comp=0A+=09=20=20=20=20=20=20=20(list=20= 'horiz=0A+=09=20=20=20=20=20=20=20=20=20=20=20=20=20(append=20(list=20= 'vcent=20(if=20high=203=202))=0A+=09=09=20=20=20=20=20=20=20=20=20=20=20=20= =20(and=20high=20(list=20high))=0A+=09=09=20=20=20=20=20=20=20=20=20=20=20= =20=20'("-----=20"=0A+=09=09=09=20=20=20=20=20=20=20"=20|=20|=20=20"=0A+=09= =09=09=20=20=20=20=20=20=20"=20|=20|=20=20"=0A+=09=09=09=20=20=20=20=20=20= =20"=20|=20|=20=20")=0A+=09=09=20=20=20=20=20=20=20=20=20=20=20=20=20(if=20= low=0A+=09=09=09=20=20=20=20=20=20=20=20=20(list=20(list=20'horiz=20var=20= "=20=3D=20"=20low))=0A+=09=09=09=20=20=20=20=20=20=20(list=20var)))=0A+=09= =20=20=20=20=20=20=20=20=20=20=20=20=20(if=20(memq=20(car-safe=20(nth=20= 1=20a))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20'(calcFunc-sum=20calcFunc-prod))=0A+=09=09=20= =20=20=20=20=20=20=20=20"=20"=20"")=0A+=09=20=20=20=20=20=20=20=20=20=20=20= =20=20expr)))=0A+=20=20=20=20=20=20=20=20=20(if=20(memq=20prec=20'(196=20= 201))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= (math--comp-round-bracket=20comp)=0A+=20=20=20=20=20=20=20=20=20=20=20= comp))))=0A=20=0A=20;;=20The=20variables=20math-svo-c,=20math-svo-wid=20= and=20math-svo-off=20are=20local=0A=20;;=20to=20math-stack-value-offset=20= in=20calc.el,=20but=20are=20used=20by=0A--=20=0A2.21.1=20(Apple=20= Git-122.3)=0A=0A= --Apple-Mail=_1629750A-F015-4A05-9F94-904D47744B8E Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii --Apple-Mail=_1629750A-F015-4A05-9F94-904D47744B8E--