Mercurial > emacs
annotate lisp/calc/calc-lang.el @ 98182:19ec1646fe6c
The Rmail/mbox merge has been abandoned in favor of a restart using
the current rmail.el file. A comprehensive list of changes will be
supplied when pmail.el is morphed back into rmail.el
The current status is that pmail.el supports basic Rmail navigation
(no summary support) and shows the current message in a special
buffer using buffer-swap-text. No decoding is done yet. That is the
next step.
author | Paul Reilly <pmr@pajato.com> |
---|---|
date | Mon, 15 Sep 2008 20:56:53 +0000 |
parents | 6c9af2bfcfee |
children | a9dc0e7c3f2b |
rev | line source |
---|---|
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
1 ;;; calc-lang.el --- calc language functions |
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
2 |
64325
1db49616ce05
Update copyright information.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
62165
diff
changeset
|
3 ;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, |
79702 | 4 ;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
5 |
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
6 ;; Author: David Gillespie <daveg@synaptics.com> |
77465
1154f082efd9
Update maintainer's address.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
76595
diff
changeset
|
7 ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
40785 | 8 |
9 ;; This file is part of GNU Emacs. | |
10 | |
94654
6c9af2bfcfee
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
11 ;; GNU Emacs is free software: you can redistribute it and/or modify |
76595
497d17a80bb8
Change form of license text to match rest of Emacs.
Glenn Morris <rgm@gnu.org>
parents:
75346
diff
changeset
|
12 ;; it under the terms of the GNU General Public License as published by |
94654
6c9af2bfcfee
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
13 ;; the Free Software Foundation, either version 3 of the License, or |
6c9af2bfcfee
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
14 ;; (at your option) any later version. |
40785 | 15 |
76595
497d17a80bb8
Change form of license text to match rest of Emacs.
Glenn Morris <rgm@gnu.org>
parents:
75346
diff
changeset
|
16 ;; GNU Emacs is distributed in the hope that it will be useful, |
497d17a80bb8
Change form of license text to match rest of Emacs.
Glenn Morris <rgm@gnu.org>
parents:
75346
diff
changeset
|
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
497d17a80bb8
Change form of license text to match rest of Emacs.
Glenn Morris <rgm@gnu.org>
parents:
75346
diff
changeset
|
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
497d17a80bb8
Change form of license text to match rest of Emacs.
Glenn Morris <rgm@gnu.org>
parents:
75346
diff
changeset
|
19 ;; GNU General Public License for more details. |
497d17a80bb8
Change form of license text to match rest of Emacs.
Glenn Morris <rgm@gnu.org>
parents:
75346
diff
changeset
|
20 |
497d17a80bb8
Change form of license text to match rest of Emacs.
Glenn Morris <rgm@gnu.org>
parents:
75346
diff
changeset
|
21 ;; You should have received a copy of the GNU General Public License |
94654
6c9af2bfcfee
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
40785 | 23 |
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
24 ;;; Commentary: |
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
25 |
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
26 ;;; Code: |
40785 | 27 |
28 ;; This file is autoloaded from calc-ext.el. | |
29 | |
58661
10224395a3c2
Add a provide statement.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58571
diff
changeset
|
30 (require 'calc-ext) |
40785 | 31 (require 'calc-macs) |
32 | |
86475
d76be4a4a0a5
(math-read-factor, math-read-expr-level): Declare as functions.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86135
diff
changeset
|
33 |
d76be4a4a0a5
(math-read-factor, math-read-expr-level): Declare as functions.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86135
diff
changeset
|
34 ;; Declare functions which are defined elsewhere. |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
35 (declare-function math-compose-vector "calccomp" (a sep prec)) |
86969
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
36 (declare-function math-compose-var "calccomp" (a)) |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
37 (declare-function math-tex-expr-is-flat "calccomp" (a)) |
86475
d76be4a4a0a5
(math-read-factor, math-read-expr-level): Declare as functions.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86135
diff
changeset
|
38 (declare-function math-read-factor "calc-aent" ()) |
d76be4a4a0a5
(math-read-factor, math-read-expr-level): Declare as functions.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86135
diff
changeset
|
39 (declare-function math-read-expr-level "calc-aent" (exp-prec &optional exp-term)) |
d76be4a4a0a5
(math-read-factor, math-read-expr-level): Declare as functions.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86135
diff
changeset
|
40 |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
41 ;; Declare variables which are defined elsewhere. |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
42 (defvar calc-lang-slash-idiv) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
43 (defvar calc-lang-allow-underscores) |
87414
c35602a6afac
(calc-lang-allow-percentsigns): Declare as a variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87223
diff
changeset
|
44 (defvar calc-lang-allow-percentsigns) |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
45 (defvar math-comp-left-bracket) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
46 (defvar math-comp-right-bracket) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
47 (defvar math-comp-comma) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
48 (defvar math-comp-vector-prec) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
49 |
40785 | 50 ;;; Alternate entry/display languages. |
51 | |
52 (defun calc-set-language (lang &optional option no-refresh) | |
81470
3e0c2ded3e4a
(calc-set-language,math-read-big-rec): Let math-expr-opers equal the
Jay Belanger <jay.p.belanger@gmail.com>
parents:
77465
diff
changeset
|
53 (setq math-expr-opers (or (get lang 'math-oper-table) (math-standard-ops)) |
40785 | 54 math-expr-function-mapping (get lang 'math-function-table) |
55 math-expr-variable-mapping (get lang 'math-variable-table) | |
56 calc-language-input-filter (get lang 'math-input-filter) | |
57 calc-language-output-filter (get lang 'math-output-filter) | |
58 calc-vector-brackets (or (get lang 'math-vector-brackets) "[]") | |
59 calc-complex-format (get lang 'math-complex-format) | |
60 calc-radix-formatter (get lang 'math-radix-formatter) | |
61 calc-function-open (or (get lang 'math-function-open) "(") | |
62 calc-function-close (or (get lang 'math-function-close) ")")) | |
63 (if no-refresh | |
64 (setq calc-language lang | |
65 calc-language-option option) | |
66 (calc-change-mode '(calc-language calc-language-option) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
67 (list lang option) t))) |
40785 | 68 |
69 (defun calc-normal-language () | |
70 (interactive) | |
71 (calc-wrapper | |
72 (calc-set-language nil) | |
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
73 (message "Normal language mode"))) |
40785 | 74 |
75 (defun calc-flat-language () | |
76 (interactive) | |
77 (calc-wrapper | |
78 (calc-set-language 'flat) | |
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
79 (message "Flat language mode (all stack entries shown on one line)"))) |
40785 | 80 |
81 (defun calc-big-language () | |
82 (interactive) | |
83 (calc-wrapper | |
84 (calc-set-language 'big) | |
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
85 (message "\"Big\" language mode"))) |
40785 | 86 |
87 (defun calc-unformatted-language () | |
88 (interactive) | |
89 (calc-wrapper | |
90 (calc-set-language 'unform) | |
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
91 (message "Unformatted language mode"))) |
40785 | 92 |
93 | |
94 (defun calc-c-language () | |
95 (interactive) | |
96 (calc-wrapper | |
97 (calc-set-language 'c) | |
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
98 (message "`C' language mode"))) |
40785 | 99 |
100 (put 'c 'math-oper-table | |
85702
8d96a389d68d
(math-oper-table): Lower precedence of negation for C, TeX, and eqn.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
82140
diff
changeset
|
101 '( ( "u!" calcFunc-lnot -1 1000 ) |
40785 | 102 ( "~" calcFunc-not -1 1000 ) |
85702
8d96a389d68d
(math-oper-table): Lower precedence of negation for C, TeX, and eqn.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
82140
diff
changeset
|
103 ( "u+" ident -1 197 ) |
8d96a389d68d
(math-oper-table): Lower precedence of negation for C, TeX, and eqn.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
82140
diff
changeset
|
104 ( "u-" neg -1 197 ) |
40785 | 105 ( "*" * 190 191 ) |
106 ( "/" / 190 191 ) | |
107 ( "%" % 190 191 ) | |
108 ( "+" + 180 181 ) | |
109 ( "-" - 180 181 ) | |
110 ( "<<" calcFunc-lsh 170 171 ) | |
111 ( ">>" calcFunc-rsh 170 171 ) | |
112 ( "<" calcFunc-lt 160 161 ) | |
113 ( ">" calcFunc-gt 160 161 ) | |
114 ( "<=" calcFunc-leq 160 161 ) | |
115 ( ">=" calcFunc-geq 160 161 ) | |
116 ( "==" calcFunc-eq 150 151 ) | |
117 ( "!=" calcFunc-neq 150 151 ) | |
118 ( "&" calcFunc-and 140 141 ) | |
119 ( "^" calcFunc-xor 131 130 ) | |
120 ( "|" calcFunc-or 120 121 ) | |
121 ( "&&" calcFunc-land 110 111 ) | |
122 ( "||" calcFunc-lor 100 101 ) | |
123 ( "?" (math-read-if) 91 90 ) | |
124 ( "!!!" calcFunc-pnot -1 88 ) | |
125 ( "&&&" calcFunc-pand 85 86 ) | |
126 ( "|||" calcFunc-por 75 76 ) | |
127 ( "=" calcFunc-assign 51 50 ) | |
128 ( ":=" calcFunc-assign 51 50 ) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
129 ( "::" calcFunc-condition 45 46 ))) ; should support full assignments |
40785 | 130 |
131 (put 'c 'math-function-table | |
132 '( ( acos . calcFunc-arccos ) | |
133 ( acosh . calcFunc-arccosh ) | |
134 ( asin . calcFunc-arcsin ) | |
135 ( asinh . calcFunc-arcsinh ) | |
136 ( atan . calcFunc-arctan ) | |
137 ( atan2 . calcFunc-arctan2 ) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
138 ( atanh . calcFunc-arctanh ))) |
40785 | 139 |
140 (put 'c 'math-variable-table | |
141 '( ( M_PI . var-pi ) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
142 ( M_E . var-e ))) |
40785 | 143 |
144 (put 'c 'math-vector-brackets "{}") | |
145 | |
146 (put 'c 'math-radix-formatter | |
147 (function (lambda (r s) | |
148 (if (= r 16) (format "0x%s" s) | |
149 (if (= r 8) (format "0%s" s) | |
150 (format "%d#%s" r s)))))) | |
151 | |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
152 (put 'c 'math-compose-subscr |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
153 (function |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
154 (lambda (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
155 (let ((args (cdr (cdr a)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
156 (list 'horiz |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
157 (math-compose-expr (nth 1 a) 1000) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
158 "[" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
159 (math-compose-vector args ", " 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
160 "]"))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
161 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
162 (add-to-list 'calc-lang-slash-idiv 'c) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
163 (add-to-list 'calc-lang-allow-underscores 'c) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
164 (add-to-list 'calc-lang-c-type-hex 'c) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
165 (add-to-list 'calc-lang-brackets-are-subscripts 'c) |
40785 | 166 |
167 (defun calc-pascal-language (n) | |
168 (interactive "P") | |
169 (calc-wrapper | |
170 (and n (setq n (prefix-numeric-value n))) | |
171 (calc-set-language 'pascal n) | |
172 (message (if (and n (/= n 0)) | |
173 (if (> n 0) | |
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
174 "Pascal language mode (all uppercase)" |
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
175 "Pascal language mode (all lowercase)") |
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
176 "Pascal language mode")))) |
40785 | 177 |
178 (put 'pascal 'math-oper-table | |
179 '( ( "not" calcFunc-lnot -1 1000 ) | |
180 ( "*" * 190 191 ) | |
181 ( "/" / 190 191 ) | |
182 ( "and" calcFunc-and 190 191 ) | |
183 ( "div" calcFunc-idiv 190 191 ) | |
184 ( "mod" % 190 191 ) | |
185 ( "u+" ident -1 185 ) | |
186 ( "u-" neg -1 185 ) | |
187 ( "+" + 180 181 ) | |
188 ( "-" - 180 181 ) | |
189 ( "or" calcFunc-or 180 181 ) | |
190 ( "xor" calcFunc-xor 180 181 ) | |
191 ( "shl" calcFunc-lsh 180 181 ) | |
192 ( "shr" calcFunc-rsh 180 181 ) | |
193 ( "in" calcFunc-in 160 161 ) | |
194 ( "<" calcFunc-lt 160 161 ) | |
195 ( ">" calcFunc-gt 160 161 ) | |
196 ( "<=" calcFunc-leq 160 161 ) | |
197 ( ">=" calcFunc-geq 160 161 ) | |
198 ( "=" calcFunc-eq 160 161 ) | |
199 ( "<>" calcFunc-neq 160 161 ) | |
200 ( "!!!" calcFunc-pnot -1 85 ) | |
201 ( "&&&" calcFunc-pand 80 81 ) | |
202 ( "|||" calcFunc-por 75 76 ) | |
203 ( ":=" calcFunc-assign 51 50 ) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
204 ( "::" calcFunc-condition 45 46 ))) |
40785 | 205 |
206 (put 'pascal 'math-input-filter 'calc-input-case-filter) | |
207 (put 'pascal 'math-output-filter 'calc-output-case-filter) | |
208 | |
209 (put 'pascal 'math-radix-formatter | |
210 (function (lambda (r s) | |
211 (if (= r 16) (format "$%s" s) | |
212 (format "%d#%s" r s))))) | |
213 | |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
214 (put 'pascal 'math-lang-read-symbol |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
215 '((?\$ |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
216 (eq (string-match |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
217 "\\(\\$[0-9a-fA-F]+\\)\\($\\|[^0-9a-zA-Z]\\)" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
218 math-exp-str math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
219 math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
220 (setq math-exp-token 'number |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
221 math-expr-data (math-match-substring math-exp-str 1) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
222 math-exp-pos (match-end 1))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
223 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
224 (put 'pascal 'math-compose-subscr |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
225 (function |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
226 (lambda (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
227 (let ((args (cdr (cdr a)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
228 (while (eq (car-safe (nth 1 a)) 'calcFunc-subscr) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
229 (setq args (append (cdr (cdr (nth 1 a))) args) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
230 a (nth 1 a))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
231 (list 'horiz |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
232 (math-compose-expr (nth 1 a) 1000) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
233 "[" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
234 (math-compose-vector args ", " 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
235 "]"))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
236 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
237 (add-to-list 'calc-lang-allow-underscores 'pascal) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
238 (add-to-list 'calc-lang-brackets-are-subscripts 'pascal) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
239 |
40785 | 240 (defun calc-input-case-filter (str) |
241 (cond ((or (null calc-language-option) (= calc-language-option 0)) | |
242 str) | |
243 (t | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
244 (downcase str)))) |
40785 | 245 |
246 (defun calc-output-case-filter (str) | |
247 (cond ((or (null calc-language-option) (= calc-language-option 0)) | |
248 str) | |
249 ((> calc-language-option 0) | |
250 (upcase str)) | |
251 (t | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
252 (downcase str)))) |
40785 | 253 |
254 | |
255 (defun calc-fortran-language (n) | |
256 (interactive "P") | |
257 (calc-wrapper | |
258 (and n (setq n (prefix-numeric-value n))) | |
259 (calc-set-language 'fortran n) | |
260 (message (if (and n (/= n 0)) | |
261 (if (> n 0) | |
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
262 "FORTRAN language mode (all uppercase)" |
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
263 "FORTRAN language mode (all lowercase)") |
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
264 "FORTRAN language mode")))) |
40785 | 265 |
266 (put 'fortran 'math-oper-table | |
267 '( ( "u/" (math-parse-fortran-vector) -1 1 ) | |
268 ( "/" (math-parse-fortran-vector-end) 1 -1 ) | |
269 ( "**" ^ 201 200 ) | |
270 ( "u+" ident -1 191 ) | |
271 ( "u-" neg -1 191 ) | |
272 ( "*" * 190 191 ) | |
273 ( "/" / 190 191 ) | |
274 ( "+" + 180 181 ) | |
275 ( "-" - 180 181 ) | |
276 ( ".LT." calcFunc-lt 160 161 ) | |
277 ( ".GT." calcFunc-gt 160 161 ) | |
278 ( ".LE." calcFunc-leq 160 161 ) | |
279 ( ".GE." calcFunc-geq 160 161 ) | |
280 ( ".EQ." calcFunc-eq 160 161 ) | |
281 ( ".NE." calcFunc-neq 160 161 ) | |
282 ( ".NOT." calcFunc-lnot -1 121 ) | |
283 ( ".AND." calcFunc-land 110 111 ) | |
284 ( ".OR." calcFunc-lor 100 101 ) | |
285 ( "!!!" calcFunc-pnot -1 85 ) | |
286 ( "&&&" calcFunc-pand 80 81 ) | |
287 ( "|||" calcFunc-por 75 76 ) | |
288 ( "=" calcFunc-assign 51 50 ) | |
289 ( ":=" calcFunc-assign 51 50 ) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
290 ( "::" calcFunc-condition 45 46 ))) |
40785 | 291 |
292 (put 'fortran 'math-vector-brackets "//") | |
293 | |
294 (put 'fortran 'math-function-table | |
295 '( ( acos . calcFunc-arccos ) | |
296 ( acosh . calcFunc-arccosh ) | |
297 ( aimag . calcFunc-im ) | |
298 ( aint . calcFunc-ftrunc ) | |
299 ( asin . calcFunc-arcsin ) | |
300 ( asinh . calcFunc-arcsinh ) | |
301 ( atan . calcFunc-arctan ) | |
302 ( atan2 . calcFunc-arctan2 ) | |
303 ( atanh . calcFunc-arctanh ) | |
304 ( conjg . calcFunc-conj ) | |
305 ( log . calcFunc-ln ) | |
306 ( nint . calcFunc-round ) | |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49263
diff
changeset
|
307 ( real . calcFunc-re ))) |
40785 | 308 |
309 (put 'fortran 'math-input-filter 'calc-input-case-filter) | |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
310 |
40785 | 311 (put 'fortran 'math-output-filter 'calc-output-case-filter) |
312 | |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
313 (put 'fortran 'math-lang-read-symbol |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
314 '((?\. |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
315 (eq (string-match "\\.[a-zA-Z][a-zA-Z][a-zA-Z]?\\." |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
316 math-exp-str math-exp-pos) math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
317 (setq math-exp-token 'punc |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
318 math-expr-data (upcase (math-match-substring math-exp-str 0)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
319 math-exp-pos (match-end 0))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
320 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
321 (put 'fortran 'math-compose-subscr |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
322 (function |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
323 (lambda (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
324 (let ((args (cdr (cdr a)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
325 (while (eq (car-safe (nth 1 a)) 'calcFunc-subscr) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
326 (setq args (append (cdr (cdr (nth 1 a))) args) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
327 a (nth 1 a))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
328 (list 'horiz |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
329 (math-compose-expr (nth 1 a) 1000) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
330 "(" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
331 (math-compose-vector args ", " 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
332 ")"))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
333 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
334 (add-to-list 'calc-lang-slash-idiv 'fortran) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
335 (add-to-list 'calc-lang-allow-underscores 'fortran) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
336 (add-to-list 'calc-lang-parens-are-subscripts 'fortran) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
337 |
58571
4ca47d70b075
(math-expr-data, math-expr-token, math-exp-old-pos): Declare them.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58411
diff
changeset
|
338 ;; The next few variables are local to math-read-exprs in calc-aent.el |
4ca47d70b075
(math-expr-data, math-expr-token, math-exp-old-pos): Declare them.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58411
diff
changeset
|
339 ;; and math-read-expr in calc-ext.el, but are set in functions they call. |
4ca47d70b075
(math-expr-data, math-expr-token, math-exp-old-pos): Declare them.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58411
diff
changeset
|
340 |
4ca47d70b075
(math-expr-data, math-expr-token, math-exp-old-pos): Declare them.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58411
diff
changeset
|
341 (defvar math-exp-token) |
4ca47d70b075
(math-expr-data, math-expr-token, math-exp-old-pos): Declare them.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58411
diff
changeset
|
342 (defvar math-expr-data) |
4ca47d70b075
(math-expr-data, math-expr-token, math-exp-old-pos): Declare them.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58411
diff
changeset
|
343 (defvar math-exp-old-pos) |
4ca47d70b075
(math-expr-data, math-expr-token, math-exp-old-pos): Declare them.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58411
diff
changeset
|
344 |
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
345 (defvar math-parsing-fortran-vector nil) |
40785 | 346 (defun math-parse-fortran-vector (op) |
347 (let ((math-parsing-fortran-vector '(end . "\000"))) | |
348 (prog1 | |
349 (math-read-brackets t "]") | |
58134
3089957051ea
(math-parse-tex-sum): Use declared variable math-exp-old-pos.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58107
diff
changeset
|
350 (setq math-exp-token (car math-parsing-fortran-vector) |
58107
cfad3432f125
(math-parse-fortran-vector, math-parse-fortran-vector-end,
Jay Belanger <jay.p.belanger@gmail.com>
parents:
52401
diff
changeset
|
351 math-expr-data (cdr math-parsing-fortran-vector))))) |
40785 | 352 |
353 (defun math-parse-fortran-vector-end (x op) | |
354 (if math-parsing-fortran-vector | |
355 (progn | |
58134
3089957051ea
(math-parse-tex-sum): Use declared variable math-exp-old-pos.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58107
diff
changeset
|
356 (setq math-parsing-fortran-vector (cons math-exp-token math-expr-data) |
3089957051ea
(math-parse-tex-sum): Use declared variable math-exp-old-pos.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58107
diff
changeset
|
357 math-exp-token 'end |
58107
cfad3432f125
(math-parse-fortran-vector, math-parse-fortran-vector-end,
Jay Belanger <jay.p.belanger@gmail.com>
parents:
52401
diff
changeset
|
358 math-expr-data "\000") |
40785 | 359 x) |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
360 (throw 'syntax "Unmatched closing `/'"))) |
40785 | 361 |
362 (defun math-parse-fortran-subscr (sym args) | |
363 (setq sym (math-build-var-name sym)) | |
364 (while args | |
365 (setq sym (list 'calcFunc-subscr sym (car args)) | |
366 args (cdr args))) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
367 sym) |
40785 | 368 |
369 | |
370 (defun calc-tex-language (n) | |
371 (interactive "P") | |
372 (calc-wrapper | |
373 (and n (setq n (prefix-numeric-value n))) | |
374 (calc-set-language 'tex n) | |
59966
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
375 (cond ((not n) |
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
376 (message "TeX language mode")) |
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
377 ((= n 0) |
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
378 (message "TeX language mode with multiline matrices")) |
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
379 ((= n 1) |
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
380 (message "TeX language mode with \\hbox{func}(\\hbox{var})")) |
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
381 ((> n 1) |
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
382 (message |
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
383 "TeX language mode with \\hbox{func}(\\hbox{var}) and multiline matrices")) |
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
384 ((= n -1) |
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
385 (message "TeX language mode with \\func(\\hbox{var})")) |
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
386 ((< n -1) |
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
387 (message |
9eb004b49fc9
(calc-tex-language): Display more information in messages.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59915
diff
changeset
|
388 "TeX language mode with \\func(\\hbox{var}) and multiline matrices"))))) |
40785 | 389 |
59811
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
390 (defun calc-latex-language (n) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
391 (interactive "P") |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
392 (calc-wrapper |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
393 (and n (setq n (prefix-numeric-value n))) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
394 (calc-set-language 'latex n) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
395 (cond ((not n) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
396 (message "LaTeX language mode")) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
397 ((= n 0) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
398 (message "LaTeX language mode with multiline matrices")) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
399 ((= n 1) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
400 (message "LaTeX language mode with \\text{func}(\\text{var})")) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
401 ((> n 1) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
402 (message |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
403 "LaTeX language mode with \\text{func}(\\text{var}) and multiline matrices")) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
404 ((= n -1) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
405 (message "LaTeX language mode with \\func(\\text{var})")) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
406 ((< n -1) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
407 (message |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
408 "LaTeX language mode with \\func(\\text{var}) and multiline matrices"))))) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
409 |
87223
e9cba8ba37e1
(calc-lang-name): New property name.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86969
diff
changeset
|
410 (put 'tex 'math-lang-name "TeX") |
e9cba8ba37e1
(calc-lang-name): New property name.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86969
diff
changeset
|
411 (put 'latex 'math-lang-name "LaTeX") |
e9cba8ba37e1
(calc-lang-name): New property name.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86969
diff
changeset
|
412 |
40785 | 413 (put 'tex 'math-oper-table |
85702
8d96a389d68d
(math-oper-table): Lower precedence of negation for C, TeX, and eqn.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
82140
diff
changeset
|
414 '( ( "\\hat" calcFunc-hat -1 950 ) |
40785 | 415 ( "\\check" calcFunc-check -1 950 ) |
416 ( "\\tilde" calcFunc-tilde -1 950 ) | |
417 ( "\\acute" calcFunc-acute -1 950 ) | |
418 ( "\\grave" calcFunc-grave -1 950 ) | |
419 ( "\\dot" calcFunc-dot -1 950 ) | |
420 ( "\\ddot" calcFunc-dotdot -1 950 ) | |
421 ( "\\breve" calcFunc-breve -1 950 ) | |
422 ( "\\bar" calcFunc-bar -1 950 ) | |
423 ( "\\vec" calcFunc-Vec -1 950 ) | |
424 ( "\\underline" calcFunc-under -1 950 ) | |
425 ( "u|" calcFunc-abs -1 0 ) | |
426 ( "|" closing 0 -1 ) | |
427 ( "\\lfloor" calcFunc-floor -1 0 ) | |
428 ( "\\rfloor" closing 0 -1 ) | |
429 ( "\\lceil" calcFunc-ceil -1 0 ) | |
430 ( "\\rceil" closing 0 -1 ) | |
431 ( "\\pm" sdev 300 300 ) | |
432 ( "!" calcFunc-fact 210 -1 ) | |
433 ( "^" ^ 201 200 ) | |
434 ( "_" calcFunc-subscr 201 200 ) | |
85702
8d96a389d68d
(math-oper-table): Lower precedence of negation for C, TeX, and eqn.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
82140
diff
changeset
|
435 ( "u+" ident -1 197 ) |
8d96a389d68d
(math-oper-table): Lower precedence of negation for C, TeX, and eqn.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
82140
diff
changeset
|
436 ( "u-" neg -1 197 ) |
40785 | 437 ( "\\times" * 191 190 ) |
438 ( "*" * 191 190 ) | |
439 ( "2x" * 191 190 ) | |
440 ( "+" + 180 181 ) | |
441 ( "-" - 180 181 ) | |
442 ( "\\over" / 170 171 ) | |
86135
524fd9b36076
(math-oper-table): Fix typo. Reduce precedence of "/" for TeX.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
85702
diff
changeset
|
443 ( "/" / 170 171 ) |
40785 | 444 ( "\\choose" calcFunc-choose 170 171 ) |
445 ( "\\mod" % 170 171 ) | |
446 ( "<" calcFunc-lt 160 161 ) | |
447 ( ">" calcFunc-gt 160 161 ) | |
448 ( "\\leq" calcFunc-leq 160 161 ) | |
449 ( "\\geq" calcFunc-geq 160 161 ) | |
450 ( "=" calcFunc-eq 160 161 ) | |
451 ( "\\neq" calcFunc-neq 160 161 ) | |
452 ( "\\ne" calcFunc-neq 160 161 ) | |
453 ( "\\lnot" calcFunc-lnot -1 121 ) | |
454 ( "\\land" calcFunc-land 110 111 ) | |
455 ( "\\lor" calcFunc-lor 100 101 ) | |
456 ( "?" (math-read-if) 91 90 ) | |
457 ( "!!!" calcFunc-pnot -1 85 ) | |
458 ( "&&&" calcFunc-pand 80 81 ) | |
459 ( "|||" calcFunc-por 75 76 ) | |
460 ( "\\gets" calcFunc-assign 51 50 ) | |
461 ( ":=" calcFunc-assign 51 50 ) | |
462 ( "::" calcFunc-condition 45 46 ) | |
463 ( "\\to" calcFunc-evalto 40 41 ) | |
464 ( "\\to" calcFunc-evalto 40 -1 ) | |
465 ( "=>" calcFunc-evalto 40 41 ) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
466 ( "=>" calcFunc-evalto 40 -1 ))) |
40785 | 467 |
468 (put 'tex 'math-function-table | |
469 '( ( \\arccos . calcFunc-arccos ) | |
470 ( \\arcsin . calcFunc-arcsin ) | |
471 ( \\arctan . calcFunc-arctan ) | |
472 ( \\arg . calcFunc-arg ) | |
473 ( \\cos . calcFunc-cos ) | |
474 ( \\cosh . calcFunc-cosh ) | |
61069
803f4b2d0113
Add functions to math-function-table properties of tex and math.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59966
diff
changeset
|
475 ( \\cot . calcFunc-cot ) |
803f4b2d0113
Add functions to math-function-table properties of tex and math.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59966
diff
changeset
|
476 ( \\coth . calcFunc-coth ) |
803f4b2d0113
Add functions to math-function-table properties of tex and math.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59966
diff
changeset
|
477 ( \\csc . calcFunc-csc ) |
40785 | 478 ( \\det . calcFunc-det ) |
479 ( \\exp . calcFunc-exp ) | |
480 ( \\gcd . calcFunc-gcd ) | |
481 ( \\ln . calcFunc-ln ) | |
482 ( \\log . calcFunc-log10 ) | |
483 ( \\max . calcFunc-max ) | |
484 ( \\min . calcFunc-min ) | |
61069
803f4b2d0113
Add functions to math-function-table properties of tex and math.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59966
diff
changeset
|
485 ( \\sec . calcFunc-sec ) |
40785 | 486 ( \\sin . calcFunc-sin ) |
487 ( \\sinh . calcFunc-sinh ) | |
488 ( \\sqrt . calcFunc-sqrt ) | |
61069
803f4b2d0113
Add functions to math-function-table properties of tex and math.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59966
diff
changeset
|
489 ( \\tan . calcFunc-tan ) |
40785 | 490 ( \\tanh . calcFunc-tanh ) |
491 ( \\phi . calcFunc-totient ) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
492 ( \\mu . calcFunc-moebius ))) |
40785 | 493 |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
494 (put 'tex 'math-special-function-table |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
495 '((calcFunc-sum . (math-compose-tex-sum "\\sum")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
496 (calcFunc-prod . (math-compose-tex-sum "\\prod")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
497 (intv . math-compose-tex-intv))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
498 |
40785 | 499 (put 'tex 'math-variable-table |
73057
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
500 '( |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
501 ;; The Greek letters |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
502 ( \\alpha . var-alpha ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
503 ( \\beta . var-beta ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
504 ( \\gamma . var-gamma ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
505 ( \\Gamma . var-Gamma ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
506 ( \\delta . var-delta ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
507 ( \\Delta . var-Delta ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
508 ( \\epsilon . var-epsilon ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
509 ( \\varepsilon . var-varepsilon) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
510 ( \\zeta . var-zeta ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
511 ( \\eta . var-eta ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
512 ( \\theta . var-theta ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
513 ( \\vartheta . var-vartheta ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
514 ( \\Theta . var-Theta ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
515 ( \\iota . var-iota ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
516 ( \\kappa . var-kappa ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
517 ( \\lambda . var-lambda ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
518 ( \\Lambda . var-Lambda ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
519 ( \\mu . var-mu ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
520 ( \\nu . var-nu ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
521 ( \\xi . var-xi ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
522 ( \\Xi . var-Xi ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
523 ( \\pi . var-pi ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
524 ( \\varpi . var-varpi ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
525 ( \\Pi . var-Pi ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
526 ( \\rho . var-rho ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
527 ( \\varrho . var-varrho ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
528 ( \\sigma . var-sigma ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
529 ( \\sigma . var-varsigma ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
530 ( \\Sigma . var-Sigma ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
531 ( \\tau . var-tau ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
532 ( \\upsilon . var-upsilon ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
533 ( \\Upsilon . var-Upsilon ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
534 ( \\phi . var-phi ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
535 ( \\varphi . var-varphi ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
536 ( \\Phi . var-Phi ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
537 ( \\chi . var-chi ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
538 ( \\psi . var-psi ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
539 ( \\Psi . var-Psi ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
540 ( \\omega . var-omega ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
541 ( \\Omega . var-Omega ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
542 ;; Others |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
543 ( \\ell . var-ell ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
544 ( \\infty . var-inf ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
545 ( \\infty . var-uinf ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
546 ( \\sum . (math-parse-tex-sum calcFunc-sum) ) |
76991373b070
Add Greek letters to math-variable-table properties of tex.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
68636
diff
changeset
|
547 ( \\prod . (math-parse-tex-sum calcFunc-prod) ))) |
40785 | 548 |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
549 (put 'tex 'math-punc-table |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
550 '((?\{ . ?\() |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
551 (?\} . ?\)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
552 (?\& . ?\,))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
553 |
40785 | 554 (put 'tex 'math-complex-format 'i) |
555 | |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
556 (put 'tex 'math-input-filter 'math-tex-input-filter) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
557 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
558 (put 'tex 'math-matrix-formatter |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
559 (function |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
560 (lambda (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
561 (if (and (integerp calc-language-option) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
562 (or (= calc-language-option 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
563 (> calc-language-option 1) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
564 (< calc-language-option -1))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
565 (append '(vleft 0 "\\matrix{") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
566 (math-compose-tex-matrix (cdr a)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
567 '("}")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
568 (append '(horiz "\\matrix{ ") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
569 (math-compose-tex-matrix (cdr a)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
570 '(" }")))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
571 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
572 (put 'tex 'math-var-formatter 'math-compose-tex-var) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
573 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
574 (put 'tex 'math-func-formatter 'math-compose-tex-func) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
575 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
576 (put 'tex 'math-dots "\\ldots") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
577 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
578 (put 'tex 'math-big-parens '("\\left( " . " \\right)")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
579 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
580 (put 'tex 'math-evalto '("\\evalto " . " \\to ")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
581 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
582 (defconst math-tex-ignore-words |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
583 '( ("\\hbox") ("\\mbox") ("\\text") ("\\left") ("\\right") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
584 ("\\,") ("\\>") ("\\:") ("\\;") ("\\!") ("\\ ") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
585 ("\\quad") ("\\qquad") ("\\hfil") ("\\hfill") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
586 ("\\displaystyle") ("\\textstyle") ("\\dsize") ("\\tsize") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
587 ("\\scriptstyle") ("\\scriptscriptstyle") ("\\ssize") ("\\sssize") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
588 ("\\rm") ("\\bf") ("\\it") ("\\sl") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
589 ("\\roman") ("\\bold") ("\\italic") ("\\slanted") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
590 ("\\cal") ("\\mit") ("\\Cal") ("\\Bbb") ("\\frak") ("\\goth") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
591 ("\\evalto") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
592 ("\\matrix" mat) ("\\bmatrix" mat) ("\\pmatrix" mat) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
593 ("\\begin" begenv) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
594 ("\\cr" punc ";") ("\\\\" punc ";") ("\\*" punc "*") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
595 ("\\{" punc "[") ("\\}" punc "]"))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
596 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
597 (defconst math-latex-ignore-words |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
598 (append math-tex-ignore-words |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
599 '(("\\begin" begenv)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
600 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
601 (put 'tex 'math-lang-read-symbol |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
602 '((?\\ |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
603 (< math-exp-pos (1- (length math-exp-str))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
604 (progn |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
605 (or (string-match "\\\\hbox *{\\([a-zA-Z0-9]+\\)}" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
606 math-exp-str math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
607 (string-match "\\(\\\\\\([a-zA-Z]+\\|[^a-zA-Z]\\)\\)" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
608 math-exp-str math-exp-pos)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
609 (setq math-exp-token 'symbol |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
610 math-exp-pos (match-end 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
611 math-expr-data (math-restore-dashes |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
612 (math-match-substring math-exp-str 1))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
613 (let ((code (assoc math-expr-data math-latex-ignore-words))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
614 (cond ((null code)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
615 ((null (cdr code)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
616 (math-read-token)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
617 ((eq (nth 1 code) 'punc) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
618 (setq math-exp-token 'punc |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
619 math-expr-data (nth 2 code))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
620 ((and (eq (nth 1 code) 'mat) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
621 (string-match " *{" math-exp-str math-exp-pos)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
622 (setq math-exp-pos (match-end 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
623 math-exp-token 'punc |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
624 math-expr-data "[") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
625 (let ((right (string-match "}" math-exp-str math-exp-pos))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
626 (and right |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
627 (setq math-exp-str (copy-sequence math-exp-str)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
628 (aset math-exp-str right ?\])))))))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
629 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
630 (defun math-compose-tex-matrix (a &optional ltx) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
631 (if (cdr a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
632 (cons (append (math-compose-vector (cdr (car a)) " & " 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
633 (if ltx '(" \\\\ ") '(" \\cr "))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
634 (math-compose-tex-matrix (cdr a) ltx)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
635 (list (math-compose-vector (cdr (car a)) " & " 0)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
636 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
637 (defun math-compose-tex-sum (a fn) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
638 (cond |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
639 ((nth 4 a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
640 (list 'horiz (nth 1 fn) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
641 "_{" (math-compose-expr (nth 2 a) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
642 "=" (math-compose-expr (nth 3 a) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
643 "}^{" (math-compose-expr (nth 4 a) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
644 "}{" (math-compose-expr (nth 1 a) 0) "}")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
645 ((nth 3 a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
646 (list 'horiz (nth 1 fn) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
647 "_{" (math-compose-expr (nth 2 a) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
648 "=" (math-compose-expr (nth 3 a) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
649 "}{" (math-compose-expr (nth 1 a) 0) "}")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
650 (t |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
651 (list 'horiz (nth 1 fn) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
652 "_{" (math-compose-expr (nth 2 a) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
653 "}{" (math-compose-expr (nth 1 a) 0) "}")))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
654 |
40785 | 655 (defun math-parse-tex-sum (f val) |
656 (let (low high save) | |
58107
cfad3432f125
(math-parse-fortran-vector, math-parse-fortran-vector-end,
Jay Belanger <jay.p.belanger@gmail.com>
parents:
52401
diff
changeset
|
657 (or (equal math-expr-data "_") (throw 'syntax "Expected `_'")) |
40785 | 658 (math-read-token) |
58134
3089957051ea
(math-parse-tex-sum): Use declared variable math-exp-old-pos.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58107
diff
changeset
|
659 (setq save math-exp-old-pos) |
40785 | 660 (setq low (math-read-factor)) |
661 (or (eq (car-safe low) 'calcFunc-eq) | |
662 (progn | |
58134
3089957051ea
(math-parse-tex-sum): Use declared variable math-exp-old-pos.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58107
diff
changeset
|
663 (setq math-exp-old-pos (1+ save)) |
40785 | 664 (throw 'syntax "Expected equation"))) |
58107
cfad3432f125
(math-parse-fortran-vector, math-parse-fortran-vector-end,
Jay Belanger <jay.p.belanger@gmail.com>
parents:
52401
diff
changeset
|
665 (or (equal math-expr-data "^") (throw 'syntax "Expected `^'")) |
40785 | 666 (math-read-token) |
667 (setq high (math-read-factor)) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
668 (list (nth 2 f) (math-read-factor) (nth 1 low) (nth 2 low) high))) |
40785 | 669 |
670 (defun math-tex-input-filter (str) ; allow parsing of 123\,456\,789. | |
671 (while (string-match "[0-9]\\\\,[0-9]" str) | |
672 (setq str (concat (substring str 0 (1+ (match-beginning 0))) | |
673 (substring str (1- (match-end 0)))))) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
674 str) |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
675 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
676 ;(defun math-tex-print-sqrt (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
677 ; (list 'horiz |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
678 ; "\\sqrt{" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
679 ; (math-compose-expr (nth 1 a) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
680 ; "}")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
681 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
682 (defun math-compose-tex-intv (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
683 (list 'horiz |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
684 (if (memq (nth 1 a) '(0 1)) "(" "[") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
685 (math-compose-expr (nth 2 a) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
686 " \\ldots " |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
687 (math-compose-expr (nth 3 a) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
688 (if (memq (nth 1 a) '(0 2)) ")" "]"))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
689 |
86969
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
690 (defun math-compose-tex-var (a prec) |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
691 (if (and calc-language-option |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
692 (not (= calc-language-option 0)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
693 (string-match "\\`[a-zA-Z][a-zA-Z0-9]+\\'" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
694 (symbol-name (nth 1 a)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
695 (if (eq calc-language 'latex) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
696 (format "\\text{%s}" (symbol-name (nth 1 a))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
697 (format "\\hbox{%s}" (symbol-name (nth 1 a)))) |
86969
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
698 (math-compose-var a))) |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
699 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
700 (defun math-compose-tex-func (func a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
701 (let (left right) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
702 (if (and calc-language-option |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
703 (not (= calc-language-option 0)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
704 (string-match "\\`[a-zA-Z][a-zA-Z0-9]+\\'" func)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
705 (if (< (prefix-numeric-value calc-language-option) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
706 (setq func (format "\\%s" func)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
707 (setq func (if (eq calc-language 'latex) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
708 (format "\\text{%s}" func) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
709 (format "\\hbox{%s}" func))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
710 (cond ((or (> (length a) 2) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
711 (not (math-tex-expr-is-flat (nth 1 a)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
712 (setq left "\\left( " |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
713 right " \\right)")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
714 ((and (eq (aref func 0) ?\\) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
715 (not (or |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
716 (string-match "\\hbox{" func) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
717 (string-match "\\text{" func))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
718 (= (length a) 2) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
719 (or (Math-realp (nth 1 a)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
720 (memq (car (nth 1 a)) '(var *)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
721 (setq left "{" right "}")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
722 (t (setq left calc-function-open |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
723 right calc-function-close))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
724 (list 'horiz func |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
725 left |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
726 (math-compose-vector (cdr a) ", " 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
727 right))) |
40785 | 728 |
59811
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
729 (put 'latex 'math-oper-table |
59829
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
730 (append (get 'tex 'math-oper-table) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
731 '(( "\\Hat" calcFunc-Hat -1 950 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
732 ( "\\Check" calcFunc-Check -1 950 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
733 ( "\\Tilde" calcFunc-Tilde -1 950 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
734 ( "\\Acute" calcFunc-Acute -1 950 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
735 ( "\\Grave" calcFunc-Grave -1 950 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
736 ( "\\Dot" calcFunc-Dot -1 950 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
737 ( "\\Ddot" calcFunc-Dotdot -1 950 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
738 ( "\\Breve" calcFunc-Breve -1 950 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
739 ( "\\Bar" calcFunc-Bar -1 950 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
740 ( "\\Vec" calcFunc-VEC -1 950 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
741 ( "\\dddot" calcFunc-dddot -1 950 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
742 ( "\\ddddot" calcFunc-ddddot -1 950 ) |
86135
524fd9b36076
(math-oper-table): Fix typo. Reduce precedence of "/" for TeX.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
85702
diff
changeset
|
743 ( "\\div" / 170 171 ) |
59829
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
744 ( "\\le" calcFunc-leq 160 161 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
745 ( "\\leqq" calcFunc-leq 160 161 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
746 ( "\\leqsland" calcFunc-leq 160 161 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
747 ( "\\ge" calcFunc-geq 160 161 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
748 ( "\\geqq" calcFunc-geq 160 161 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
749 ( "\\geqslant" calcFunc-geq 160 161 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
750 ( "=" calcFunc-eq 160 161 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
751 ( "\\neq" calcFunc-neq 160 161 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
752 ( "\\ne" calcFunc-neq 160 161 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
753 ( "\\lnot" calcFunc-lnot -1 121 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
754 ( "\\land" calcFunc-land 110 111 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
755 ( "\\lor" calcFunc-lor 100 101 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
756 ( "?" (math-read-if) 91 90 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
757 ( "!!!" calcFunc-pnot -1 85 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
758 ( "&&&" calcFunc-pand 80 81 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
759 ( "|||" calcFunc-por 75 76 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
760 ( "\\gets" calcFunc-assign 51 50 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
761 ( ":=" calcFunc-assign 51 50 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
762 ( "::" calcFunc-condition 45 46 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
763 ( "\\to" calcFunc-evalto 40 41 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
764 ( "\\to" calcFunc-evalto 40 -1 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
765 ( "=>" calcFunc-evalto 40 41 ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
766 ( "=>" calcFunc-evalto 40 -1 )))) |
59811
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
767 |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
768 (put 'latex 'math-function-table |
59829
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
769 (append |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
770 (get 'tex 'math-function-table) |
59915
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
771 '(( \\frac . (math-latex-parse-frac)) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
772 ( \\tfrac . (math-latex-parse-frac)) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
773 ( \\dfrac . (math-latex-parse-frac)) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
774 ( \\binom . (math-latex-parse-two-args calcFunc-choose)) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
775 ( \\tbinom . (math-latex-parse-two-args calcFunc-choose)) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
776 ( \\dbinom . (math-latex-parse-two-args calcFunc-choose)) |
59829
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
777 ( \\phi . calcFunc-totient ) |
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
778 ( \\mu . calcFunc-moebius )))) |
59811
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
779 |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
780 (put 'latex 'math-special-function-table |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
781 '((/ . (math-compose-latex-frac "\\frac")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
782 (calcFunc-choose . (math-compose-latex-frac "\\binom")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
783 (calcFunc-sum . (math-compose-tex-sum "\\sum")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
784 (calcFunc-prod . (math-compose-tex-sum "\\prod")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
785 (intv . math-compose-tex-intv))) |
59811
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
786 |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
787 (put 'latex 'math-variable-table |
59829
502b609847e8
(math-function-table, math-oper-table, math-variable-table):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59819
diff
changeset
|
788 (get 'tex 'math-variable-table)) |
59811
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
789 |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
790 (put 'latex 'math-punc-table |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
791 '((?\{ . ?\() |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
792 (?\} . ?\)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
793 (?\& . ?\,))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
794 |
59811
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
795 (put 'latex 'math-complex-format 'i) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
796 |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
797 (put 'latex 'math-matrix-formatter |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
798 (function |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
799 (lambda (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
800 (if (and (integerp calc-language-option) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
801 (or (= calc-language-option 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
802 (> calc-language-option 1) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
803 (< calc-language-option -1))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
804 (append '(vleft 0 "\\begin{pmatrix}") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
805 (math-compose-tex-matrix (cdr a) t) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
806 '("\\end{pmatrix}")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
807 (append '(horiz "\\begin{pmatrix} ") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
808 (math-compose-tex-matrix (cdr a) t) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
809 '(" \\end{pmatrix}")))))) |
59915
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
810 |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
811 (put 'latex 'math-var-formatter 'math-compose-tex-var) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
812 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
813 (put 'latex 'math-func-formatter 'math-compose-tex-func) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
814 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
815 (put 'latex 'math-dots "\\ldots") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
816 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
817 (put 'latex 'math-big-parens '("\\left( " . " \\right)")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
818 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
819 (put 'latex 'math-evalto '("\\evalto " . " \\to ")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
820 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
821 (put 'latex 'math-lang-read-symbol |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
822 '((?\\ |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
823 (< math-exp-pos (1- (length math-exp-str))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
824 (progn |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
825 (or (string-match "\\\\hbox *{\\([a-zA-Z0-9]+\\)}" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
826 math-exp-str math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
827 (string-match "\\\\text *{\\([a-zA-Z0-9]+\\)}" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
828 math-exp-str math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
829 (string-match "\\(\\\\\\([a-zA-Z]+\\|[^a-zA-Z]\\)\\)" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
830 math-exp-str math-exp-pos)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
831 (setq math-exp-token 'symbol |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
832 math-exp-pos (match-end 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
833 math-expr-data (math-restore-dashes |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
834 (math-match-substring math-exp-str 1))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
835 (let ((code (assoc math-expr-data math-tex-ignore-words)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
836 envname) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
837 (cond ((null code)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
838 ((null (cdr code)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
839 (math-read-token)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
840 ((eq (nth 1 code) 'punc) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
841 (setq math-exp-token 'punc |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
842 math-expr-data (nth 2 code))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
843 ((and (eq (nth 1 code) 'begenv) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
844 (string-match " *{\\([^}]*\\)}" math-exp-str math-exp-pos)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
845 (setq math-exp-pos (match-end 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
846 envname (match-string 1 math-exp-str) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
847 math-exp-token 'punc |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
848 math-expr-data "[") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
849 (cond ((or (string= envname "matrix") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
850 (string= envname "bmatrix") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
851 (string= envname "smallmatrix") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
852 (string= envname "pmatrix")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
853 (if (string-match (concat "\\\\end{" envname "}") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
854 math-exp-str math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
855 (setq math-exp-str |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
856 (replace-match "]" t t math-exp-str)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
857 (error "%s" (concat "No closing \\end{" envname "}")))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
858 ((and (eq (nth 1 code) 'mat) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
859 (string-match " *{" math-exp-str math-exp-pos)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
860 (setq math-exp-pos (match-end 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
861 math-exp-token 'punc |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
862 math-expr-data "[") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
863 (let ((right (string-match "}" math-exp-str math-exp-pos))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
864 (and right |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
865 (setq math-exp-str (copy-sequence math-exp-str)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
866 (aset math-exp-str right ?\])))))))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
867 |
59811
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
868 (defun math-latex-parse-frac (f val) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
869 (let (numer denom) |
59915
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
870 (setq numer (car (math-read-expr-list))) |
59811
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
871 (math-read-token) |
59915
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
872 (setq denom (math-read-factor)) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
873 (if (and (Math-num-integerp numer) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
874 (Math-num-integerp denom)) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
875 (list 'frac numer denom) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
876 (list '/ numer denom)))) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
877 |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
878 (defun math-latex-parse-two-args (f val) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
879 (let (first second) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
880 (setq first (car (math-read-expr-list))) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
881 (math-read-token) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
882 (setq second (math-read-factor)) |
937e422a1694
(math-latex-parse-frac): Don't use arguments.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59829
diff
changeset
|
883 (list (nth 2 f) first second))) |
59811
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
884 |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
885 (defun math-compose-latex-frac (a fn) |
59811
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
886 (list 'horiz (nth 1 fn) "{" (math-compose-expr (nth 1 a) -1) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
887 "}{" |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
888 (math-compose-expr (nth 2 a) -1) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
889 "}")) |
9e28f5bc25bb
(calc-latex-language, math-latex-parse-frac)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58661
diff
changeset
|
890 |
59819
dea78c6f5e48
(math-latex-input-filter): Remove function.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59811
diff
changeset
|
891 (put 'latex 'math-input-filter 'math-tex-input-filter) |
40785 | 892 |
893 (defun calc-eqn-language (n) | |
894 (interactive "P") | |
895 (calc-wrapper | |
896 (calc-set-language 'eqn) | |
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
897 (message "Eqn language mode"))) |
40785 | 898 |
899 (put 'eqn 'math-oper-table | |
85702
8d96a389d68d
(math-oper-table): Lower precedence of negation for C, TeX, and eqn.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
82140
diff
changeset
|
900 '( ( "prime" (math-parse-eqn-prime) 950 -1 ) |
40785 | 901 ( "prime" calcFunc-Prime 950 -1 ) |
902 ( "dot" calcFunc-dot 950 -1 ) | |
903 ( "dotdot" calcFunc-dotdot 950 -1 ) | |
904 ( "hat" calcFunc-hat 950 -1 ) | |
905 ( "tilde" calcFunc-tilde 950 -1 ) | |
906 ( "vec" calcFunc-Vec 950 -1 ) | |
907 ( "dyad" calcFunc-dyad 950 -1 ) | |
908 ( "bar" calcFunc-bar 950 -1 ) | |
909 ( "under" calcFunc-under 950 -1 ) | |
910 ( "sub" calcFunc-subscr 931 930 ) | |
911 ( "sup" ^ 921 920 ) | |
912 ( "sqrt" calcFunc-sqrt -1 910 ) | |
913 ( "over" / 900 901 ) | |
914 ( "u|" calcFunc-abs -1 0 ) | |
915 ( "|" closing 0 -1 ) | |
916 ( "left floor" calcFunc-floor -1 0 ) | |
917 ( "right floor" closing 0 -1 ) | |
918 ( "left ceil" calcFunc-ceil -1 0 ) | |
919 ( "right ceil" closing 0 -1 ) | |
920 ( "+-" sdev 300 300 ) | |
921 ( "!" calcFunc-fact 210 -1 ) | |
85702
8d96a389d68d
(math-oper-table): Lower precedence of negation for C, TeX, and eqn.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
82140
diff
changeset
|
922 ( "u+" ident -1 197 ) |
8d96a389d68d
(math-oper-table): Lower precedence of negation for C, TeX, and eqn.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
82140
diff
changeset
|
923 ( "u-" neg -1 197 ) |
40785 | 924 ( "times" * 191 190 ) |
925 ( "*" * 191 190 ) | |
926 ( "2x" * 191 190 ) | |
927 ( "/" / 180 181 ) | |
928 ( "%" % 180 181 ) | |
929 ( "+" + 170 171 ) | |
930 ( "-" - 170 171 ) | |
931 ( "<" calcFunc-lt 160 161 ) | |
932 ( ">" calcFunc-gt 160 161 ) | |
933 ( "<=" calcFunc-leq 160 161 ) | |
934 ( ">=" calcFunc-geq 160 161 ) | |
935 ( "=" calcFunc-eq 160 161 ) | |
936 ( "==" calcFunc-eq 160 161 ) | |
937 ( "!=" calcFunc-neq 160 161 ) | |
938 ( "u!" calcFunc-lnot -1 121 ) | |
939 ( "&&" calcFunc-land 110 111 ) | |
940 ( "||" calcFunc-lor 100 101 ) | |
941 ( "?" (math-read-if) 91 90 ) | |
942 ( "!!!" calcFunc-pnot -1 85 ) | |
943 ( "&&&" calcFunc-pand 80 81 ) | |
944 ( "|||" calcFunc-por 75 76 ) | |
945 ( "<-" calcFunc-assign 51 50 ) | |
946 ( ":=" calcFunc-assign 51 50 ) | |
947 ( "::" calcFunc-condition 45 46 ) | |
948 ( "->" calcFunc-evalto 40 41 ) | |
949 ( "->" calcFunc-evalto 40 -1 ) | |
950 ( "=>" calcFunc-evalto 40 41 ) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
951 ( "=>" calcFunc-evalto 40 -1 ))) |
40785 | 952 |
953 (put 'eqn 'math-function-table | |
954 '( ( arc\ cos . calcFunc-arccos ) | |
955 ( arc\ cosh . calcFunc-arccosh ) | |
956 ( arc\ sin . calcFunc-arcsin ) | |
957 ( arc\ sinh . calcFunc-arcsinh ) | |
958 ( arc\ tan . calcFunc-arctan ) | |
959 ( arc\ tanh . calcFunc-arctanh ) | |
960 ( GAMMA . calcFunc-gamma ) | |
961 ( phi . calcFunc-totient ) | |
962 ( mu . calcFunc-moebius ) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
963 ( matrix . (math-parse-eqn-matrix) ))) |
40785 | 964 |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
965 (put 'eqn 'math-special-function-table |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
966 '((intv . math-compose-eqn-intv))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
967 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
968 (put 'eqn 'math-punc-table |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
969 '((?\{ . ?\() |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
970 (?\} . ?\)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
971 |
40785 | 972 (put 'eqn 'math-variable-table |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
973 '( ( inf . var-uinf ))) |
40785 | 974 |
975 (put 'eqn 'math-complex-format 'i) | |
976 | |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
977 (put 'eqn 'math-big-parens '("{left ( " . " right )}")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
978 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
979 (put 'eqn 'math-evalto '("evalto " . " -> ")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
980 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
981 (put 'eqn 'math-matrix-formatter |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
982 (function |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
983 (lambda (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
984 (append '(horiz "matrix { ") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
985 (math-compose-eqn-matrix |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
986 (cdr (math-transpose a))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
987 '("}"))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
988 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
989 (put 'eqn 'math-var-formatter |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
990 (function |
86969
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
991 (lambda (a prec) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
992 (let (v) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
993 (if (and math-compose-hash-args |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
994 (let ((p calc-arg-values)) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
995 (setq v 1) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
996 (while (and p (not (equal (car p) a))) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
997 (setq p (and (eq math-compose-hash-args t) (cdr p)) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
998 v (1+ v))) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
999 p)) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
1000 (if (eq math-compose-hash-args 1) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
1001 "#" |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
1002 (format "#%d" v)) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
1003 (if (string-match ".'\\'" (symbol-name (nth 2 a))) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
1004 (math-compose-expr |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
1005 (list 'calcFunc-Prime |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
1006 (list |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
1007 'var |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
1008 (intern (substring (symbol-name (nth 1 a)) 0 -1)) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
1009 (intern (substring (symbol-name (nth 2 a)) 0 -1)))) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
1010 prec) |
369fadbe988d
(math-compose-var): Adjust declaration.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86933
diff
changeset
|
1011 (symbol-name (nth 1 a)))))))) |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1012 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1013 (defconst math-eqn-special-funcs |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1014 '( calcFunc-log |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1015 calcFunc-ln calcFunc-exp |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1016 calcFunc-sin calcFunc-cos calcFunc-tan |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1017 calcFunc-sec calcFunc-csc calcFunc-cot |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1018 calcFunc-sinh calcFunc-cosh calcFunc-tanh |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1019 calcFunc-sech calcFunc-csch calcFunc-coth |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1020 calcFunc-arcsin calcFunc-arccos calcFunc-arctan |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1021 calcFunc-arcsinh calcFunc-arccosh calcFunc-arctanh)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1022 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1023 (put 'eqn 'math-func-formatter |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1024 (function |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1025 (lambda (func a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1026 (let (left right) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1027 (if (string-match "[^']'+\\'" func) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1028 (let ((n (- (length func) (match-beginning 0) 1))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1029 (setq func (substring func 0 (- n))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1030 (while (>= (setq n (1- n)) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1031 (setq func (concat func " prime"))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1032 (cond ((or (> (length a) 2) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1033 (not (math-tex-expr-is-flat (nth 1 a)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1034 (setq left "{left ( " |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1035 right " right )}")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1036 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1037 ((and |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1038 (memq (car a) math-eqn-special-funcs) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1039 (= (length a) 2) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1040 (or (Math-realp (nth 1 a)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1041 (memq (car (nth 1 a)) '(var *)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1042 (setq left "~{" right "}")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1043 (t |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1044 (setq left " ( " |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1045 right " )"))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1046 (list 'horiz func left |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1047 (math-compose-vector (cdr a) " , " 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1048 right))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1049 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1050 (put 'eqn 'math-lang-read-symbol |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1051 '((?\" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1052 (string-match "\\(\"\\([^\"\\]\\|\\\\.\\)*\\)\\(\"\\|\\'\\)" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1053 math-exp-str math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1054 (progn |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1055 (setq math-exp-str (copy-sequence math-exp-str)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1056 (aset math-exp-str (match-beginning 1) ?\{) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1057 (if (< (match-end 1) (length math-exp-str)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1058 (aset math-exp-str (match-end 1) ?\})) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1059 (math-read-token))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1060 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1061 (defconst math-eqn-ignore-words |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1062 '( ("roman") ("bold") ("italic") ("mark") ("lineup") ("evalto") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1063 ("left" ("floor") ("ceil")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1064 ("right" ("floor") ("ceil")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1065 ("arc" ("sin") ("cos") ("tan") ("sinh") ("cosh") ("tanh")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1066 ("size" n) ("font" n) ("fwd" n) ("back" n) ("up" n) ("down" n) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1067 ("above" punc ","))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1068 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1069 (put 'eqn 'math-lang-adjust-words |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1070 (function |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1071 (lambda () |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1072 (let ((code (assoc math-expr-data math-eqn-ignore-words))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1073 (cond ((null code)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1074 ((null (cdr code)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1075 (math-read-token)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1076 ((consp (nth 1 code)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1077 (math-read-token) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1078 (if (assoc math-expr-data (cdr code)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1079 (setq math-expr-data (format "%s %s" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1080 (car code) math-expr-data)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1081 ((eq (nth 1 code) 'punc) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1082 (setq math-exp-token 'punc |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1083 math-expr-data (nth 2 code))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1084 (t |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1085 (math-read-token) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1086 (math-read-token))))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1087 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1088 (put 'eqn 'math-lang-read |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1089 '((eq (string-match "->\\|<-\\|+-\\|\\\\dots\\|~\\|\\^" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1090 math-exp-str math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1091 math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1092 (progn |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1093 (setq math-exp-token 'punc |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1094 math-expr-data (math-match-substring math-exp-str 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1095 math-exp-pos (match-end 0)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1096 (and (eq (string-match "\\\\dots\\." math-exp-str math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1097 math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1098 (setq math-exp-pos (match-end 0))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1099 (if (memq (aref math-expr-data 0) '(?~ ?^)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1100 (math-read-token))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1101 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1102 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1103 (defun math-compose-eqn-matrix (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1104 (if a |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1105 (cons |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1106 (cond ((eq calc-matrix-just 'right) "rcol ") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1107 ((eq calc-matrix-just 'center) "ccol ") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1108 (t "lcol ")) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1109 (cons |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1110 (list 'break math-compose-level) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1111 (cons |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1112 "{ " |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1113 (cons |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1114 (let ((math-compose-level (1+ math-compose-level))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1115 (math-compose-vector (cdr (car a)) " above " 1000)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1116 (cons |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1117 " } " |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1118 (math-compose-eqn-matrix (cdr a))))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1119 nil)) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1120 |
40785 | 1121 (defun math-parse-eqn-matrix (f sym) |
1122 (let ((vec nil)) | |
58107
cfad3432f125
(math-parse-fortran-vector, math-parse-fortran-vector-end,
Jay Belanger <jay.p.belanger@gmail.com>
parents:
52401
diff
changeset
|
1123 (while (assoc math-expr-data '(("ccol") ("lcol") ("rcol"))) |
40785 | 1124 (math-read-token) |
58107
cfad3432f125
(math-parse-fortran-vector, math-parse-fortran-vector-end,
Jay Belanger <jay.p.belanger@gmail.com>
parents:
52401
diff
changeset
|
1125 (or (equal math-expr-data calc-function-open) |
40785 | 1126 (throw 'syntax "Expected `{'")) |
1127 (math-read-token) | |
1128 (setq vec (cons (cons 'vec (math-read-expr-list)) vec)) | |
58107
cfad3432f125
(math-parse-fortran-vector, math-parse-fortran-vector-end,
Jay Belanger <jay.p.belanger@gmail.com>
parents:
52401
diff
changeset
|
1129 (or (equal math-expr-data calc-function-close) |
40785 | 1130 (throw 'syntax "Expected `}'")) |
1131 (math-read-token)) | |
58107
cfad3432f125
(math-parse-fortran-vector, math-parse-fortran-vector-end,
Jay Belanger <jay.p.belanger@gmail.com>
parents:
52401
diff
changeset
|
1132 (or (equal math-expr-data calc-function-close) |
40785 | 1133 (throw 'syntax "Expected `}'")) |
1134 (math-read-token) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
1135 (math-transpose (cons 'vec (nreverse vec))))) |
40785 | 1136 |
1137 (defun math-parse-eqn-prime (x sym) | |
1138 (if (eq (car-safe x) 'var) | |
58107
cfad3432f125
(math-parse-fortran-vector, math-parse-fortran-vector-end,
Jay Belanger <jay.p.belanger@gmail.com>
parents:
52401
diff
changeset
|
1139 (if (equal math-expr-data calc-function-open) |
40785 | 1140 (progn |
1141 (math-read-token) | |
58107
cfad3432f125
(math-parse-fortran-vector, math-parse-fortran-vector-end,
Jay Belanger <jay.p.belanger@gmail.com>
parents:
52401
diff
changeset
|
1142 (let ((args (if (or (equal math-expr-data calc-function-close) |
58134
3089957051ea
(math-parse-tex-sum): Use declared variable math-exp-old-pos.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58107
diff
changeset
|
1143 (eq math-exp-token 'end)) |
40785 | 1144 nil |
1145 (math-read-expr-list)))) | |
58107
cfad3432f125
(math-parse-fortran-vector, math-parse-fortran-vector-end,
Jay Belanger <jay.p.belanger@gmail.com>
parents:
52401
diff
changeset
|
1146 (if (not (or (equal math-expr-data calc-function-close) |
58134
3089957051ea
(math-parse-tex-sum): Use declared variable math-exp-old-pos.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58107
diff
changeset
|
1147 (eq math-exp-token 'end))) |
40785 | 1148 (throw 'syntax "Expected `)'")) |
1149 (math-read-token) | |
1150 (cons (intern (format "calcFunc-%s'" (nth 1 x))) args))) | |
1151 (list 'var | |
1152 (intern (concat (symbol-name (nth 1 x)) "'")) | |
1153 (intern (concat (symbol-name (nth 2 x)) "'")))) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
1154 (list 'calcFunc-Prime x))) |
40785 | 1155 |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1156 (defun math-compose-eqn-intv (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1157 (list 'horiz |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1158 (if (memq (nth 1 a) '(0 1)) "(" "[") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1159 (math-compose-expr (nth 2 a) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1160 " ... " |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1161 (math-compose-expr (nth 3 a) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1162 (if (memq (nth 1 a) '(0 2)) ")" "]"))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1163 |
40785 | 1164 |
87463
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1165 ;;; Yacas |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1166 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1167 (defun calc-yacas-language () |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1168 "Change the Calc language to be Yacas-like." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1169 (interactive) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1170 (calc-wrapper |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1171 (calc-set-language 'yacas) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1172 (message "`Yacas' language mode"))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1173 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1174 (put 'yacas 'math-vector-brackets "{}") |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1175 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1176 (put 'yacas 'math-complex-format 'I) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1177 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1178 (add-to-list 'calc-lang-brackets-are-subscripts 'yacas) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1179 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1180 (put 'yacas 'math-variable-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1181 '(( Infinity . var-inf) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1182 ( Infinity . var-uinf) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1183 ( Undefined . var-nan) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1184 ( Pi . var-pi) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1185 ( E . var-e) ;; Not really in Yacas |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1186 ( GoldenRatio . var-phi) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1187 ( Gamma . var-gamma))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1188 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1189 (put 'yacas 'math-parse-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1190 '((("Deriv(" 0 ")" 0) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1191 calcFunc-deriv (var ArgB var-ArgB) (var ArgA var-ArgA)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1192 (("D(" 0 ")" 0) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1193 calcFunc-deriv (var ArgB var-ArgB) (var ArgA var-ArgA)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1194 (("Integrate(" 0 ")" 0) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1195 calcFunc-integ (var ArgB var-ArgB)(var ArgA var-ArgA)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1196 (("Integrate(" 0 "," 0 "," 0 ")" 0) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1197 calcFunc-integ (var ArgD var-ArgD) (var ArgA var-ArgA) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1198 (var ArgB var-ArgB) (var ArgC var-ArgC)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1199 (("Subst(" 0 "," 0 ")" 0) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1200 calcFunc-subst (var ArgC var-ArgC) (var ArgA var-ArgA) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1201 (var ArgB var-ArgB)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1202 (("Taylor(" 0 "," 0 "," 0 ")" 0) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1203 calcFunc-taylor (var ArgD var-ArgD) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1204 (calcFunc-eq (var ArgA var-ArgA) (var ArgB var-ArgB)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1205 (var ArgC var-ArgC)))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1206 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1207 (put 'yacas 'math-oper-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1208 '(("+" + 30 30) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1209 ("-" - 30 60) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1210 ("*" * 60 60) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1211 ("/" / 70 70) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1212 ("u-" neg -1 60) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1213 ("^" ^ 80 80) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1214 ("u+" ident -1 30) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1215 ("<<" calcFunc-lsh 80 80) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1216 (">>" calcFunc-rsh 80 80) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1217 ("!" calcFunc-fact 80 -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1218 ("!!" calcFunc-dfact 80 -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1219 ("X" calcFunc-cross 70 70) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1220 ("=" calcFunc-eq 10 10) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1221 ("!=" calcFunc-neq 10 10) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1222 ("<" calcFunc-lt 10 10) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1223 (">" calcFunc-gt 10 10) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1224 ("<=" calcFunc-leq 10 10) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1225 (">=" calcFunc-geq 10 10) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1226 ("And" calcFunc-land 5 5) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1227 ("Or" calcFunc-or 4 4) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1228 ("Not" calcFunc-lnot -1 3) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1229 (":=" calcFunc-assign 1 1))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1230 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1231 (put 'yacas 'math-function-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1232 '(( Div . calcFunc-idiv) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1233 ( Mod . calcFunc-mod) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1234 ( Abs . calcFunc-abs) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1235 ( Sign . calcFunc-sign) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1236 ( Sqrt . calcFunc-sqrt) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1237 ( Max . calcFunc-max) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1238 ( Min . calcFunc-min) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1239 ( Floor . calcFunc-floor) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1240 ( Ceil . calcFunc-ceil) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1241 ( Round . calcFunc-round) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1242 ( Conjugate . calcFunc-conj) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1243 ( Arg . calcFunc-arg) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1244 ( Re . calcFunc-re) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1245 ( Im . calcFunc-im) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1246 ( Rationalize . calcFunc-pfrac) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1247 ( Sin . calcFunc-sin) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1248 ( Cos . calcFunc-cos) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1249 ( Tan . calcFunc-tan) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1250 ( Sec . calcFunc-sec) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1251 ( Csc . calcFunc-csc) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1252 ( Cot . calcFunc-cot) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1253 ( ArcSin . calcFunc-arcsin) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1254 ( ArcCos . calcFunc-arccos) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1255 ( ArcTan . calcFunc-arctan) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1256 ( Sinh . calcFunc-sinh) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1257 ( Cosh . calcFunc-cosh) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1258 ( Tanh . calcFunc-tanh) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1259 ( Sech . calcFunc-sech) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1260 ( Csch . calcFunc-csch) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1261 ( Coth . calcFunc-coth) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1262 ( ArcSinh . calcFunc-arcsinh) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1263 ( ArcCosh . calcFunc-arccosh) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1264 ( ArcTanh . calcFunc-arctanh) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1265 ( Ln . calcFunc-ln) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1266 ( Exp . calcFunc-exp) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1267 ( Gamma . calcFunc-gamma) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1268 ( Gcd . calcFunc-gcd) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1269 ( Lcm . calcFunc-lcm) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1270 ( Bin . calcFunc-choose) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1271 ( Bernoulli . calcFunc-bern) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1272 ( Euler . calcFunc-euler) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1273 ( StirlingNumber1 . calcFunc-stir1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1274 ( StirlingNumber2 . calcFunc-stir2) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1275 ( IsPrime . calcFunc-prime) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1276 ( Factors . calcFunc-prfac) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1277 ( NextPrime . calcFunc-nextprime) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1278 ( Moebius . calcFunc-moebius) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1279 ( Random . calcFunc-random) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1280 ( Concat . calcFunc-vconcat) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1281 ( Head . calcFunc-head) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1282 ( Tail . calcFunc-tail) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1283 ( Length . calcFunc-vlen) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1284 ( Reverse . calcFunc-rev) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1285 ( CrossProduct . calcFunc-cross) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1286 ( Dot . calcFunc-mul) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1287 ( DiagonalMatrix . calcFunc-diag) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1288 ( Transpose . calcFunc-trn) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1289 ( Inverse . calcFunc-inv) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1290 ( Determinant . calcFunc-det) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1291 ( Trace . calcFunc-tr) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1292 ( RemoveDuplicates . calcFunc-rdup) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1293 ( Union . calcFunc-vunion) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1294 ( Intersection . calcFunc-vint) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1295 ( Difference . calcFunc-vdiff) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1296 ( Apply . calcFunc-apply) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1297 ( Map . calcFunc-map) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1298 ( Simplify . calcFunc-simplify) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1299 ( ExpandBrackets . calcFunc-expand) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1300 ( Solve . calcFunc-solve) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1301 ( Degree . calcFunc-pdeg) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1302 ( If . calcFunc-if) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1303 ( Contains . (math-lang-switch-args calcFunc-in)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1304 ( Sum . (math-yacas-parse-Sum calcFunc-sum)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1305 ( Factorize . (math-yacas-parse-Sum calcFunc-prod)))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1306 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1307 (put 'yacas 'math-special-function-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1308 '(( calcFunc-sum . (math-yacas-compose-sum "Sum")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1309 ( calcFunc-prod . (math-yacas-compose-sum "Factorize")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1310 ( calcFunc-deriv . (math-yacas-compose-deriv "Deriv")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1311 ( calcFunc-integ . (math-yacas-compose-deriv "Integrate")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1312 ( calcFunc-taylor . math-yacas-compose-taylor) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1313 ( calcFunc-in . (math-lang-compose-switch-args "Contains")))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1314 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1315 (put 'yacas 'math-compose-subscr |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1316 (function |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1317 (lambda (a) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1318 (let ((args (cdr (cdr a)))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1319 (list 'horiz |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1320 (math-compose-expr (nth 1 a) 1000) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1321 "[" |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1322 (math-compose-vector args ", " 0) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1323 "]"))))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1324 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1325 (defun math-yacas-parse-Sum (f val) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1326 "Read in the arguments to \"Sum\" in Calc's Yacas mode." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1327 (let ((args (math-read-expr-list))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1328 (math-read-token) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1329 (list (nth 2 f) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1330 (nth 3 args) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1331 (nth 0 args) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1332 (nth 1 args) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1333 (nth 2 args)))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1334 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1335 (defun math-yacas-compose-sum (a fn) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1336 "Compose the \"Sum\" function in Calc's Yacas mode." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1337 (list 'horiz |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1338 (nth 1 fn) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1339 "(" |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1340 (math-compose-expr (nth 2 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1341 "," |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1342 (math-compose-expr (nth 3 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1343 "," |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1344 (math-compose-expr (nth 4 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1345 "," |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1346 (math-compose-expr (nth 1 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1347 ")")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1348 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1349 (defun math-yacas-compose-deriv (a fn) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1350 "Compose the \"Deriv\" function in Calc's Yacas mode." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1351 (list 'horiz |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1352 (nth 1 fn) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1353 "(" |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1354 (math-compose-expr (nth 2 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1355 (if (not (nth 3 a)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1356 ")" |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1357 (concat |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1358 "," |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1359 (math-compose-expr (nth 3 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1360 "," |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1361 (math-compose-expr (nth 4 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1362 ")")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1363 " " |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1364 (math-compose-expr (nth 1 a) -1))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1365 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1366 (defun math-yacas-compose-taylor (a) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1367 "Compose the \"Taylor\" function in Calc's Yacas mode." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1368 (list 'horiz |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1369 "Taylor(" |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1370 (if (eq (car-safe (nth 2 a)) 'calcFunc-eq) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1371 (concat (math-compose-expr (nth 1 (nth 2 a)) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1372 "," |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1373 (math-compose-expr (nth 2 (nth 2 a)) -1)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1374 (concat (math-compose-expr (nth 2 a) -1) ",0")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1375 "," |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1376 (math-compose-expr (nth 3 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1377 ") " |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1378 (math-compose-expr (nth 1 a) -1))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1379 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1380 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1381 ;;; Maxima |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1382 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1383 (defun calc-maxima-language () |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1384 "Change the Calc language to be Maxima-like." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1385 (interactive) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1386 (calc-wrapper |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1387 (calc-set-language 'maxima) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1388 (message "`Maxima' language mode"))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1389 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1390 (put 'maxima 'math-oper-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1391 '(("+" + 100 100) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1392 ("-" - 100 134) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1393 ("*" * 120 120) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1394 ("." * 130 129) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1395 ("/" / 120 120) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1396 ("u-" neg -1 180) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1397 ("u+" ident -1 180) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1398 ("^" ^ 140 139) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1399 ("**" ^ 140 139) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1400 ("!" calcFunc-fact 160 -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1401 ("!!" calcFunc-dfact 160 -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1402 ("=" calcFunc-eq 80 80) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1403 ("#" calcFunc-neq 80 80) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1404 ("<" calcFunc-lt 80 80) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1405 (">" calcFunc-gt 80 80) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1406 ("<=" calcFunc-leq 80 80) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1407 (">=" calcFunc-geq 80 80) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1408 ("and" calcFunc-land 65 65) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1409 ("or" calcFunc-or 60 60) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1410 ("not" calcFunc-lnot -1 70) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1411 (":" calcFunc-assign 180 20))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1412 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1413 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1414 (put 'maxima 'math-function-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1415 '(( matrix . vec) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1416 ( abs . calcFunc-abs) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1417 ( cabs . calcFunc-abs) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1418 ( signum . calcFunc-sign) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1419 ( floor . calcFunc-floor) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1420 ( entier . calcFunc-floor) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1421 ( fix . calcFunc-floor) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1422 ( conjugate . calcFunc-conj ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1423 ( carg . calcFunc-arg) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1424 ( realpart . calcFunc-re) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1425 ( imagpart . calcFunc-im) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1426 ( rationalize . calcFunc-pfrac) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1427 ( asin . calcFunc-arcsin) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1428 ( acos . calcFunc-arccos) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1429 ( atan . calcFunc-arctan) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1430 ( atan2 . calcFunc-arctan2) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1431 ( asinh . calcFunc-arcsinh) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1432 ( acosh . calcFunc-arccosh) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1433 ( atanh . calcFunc-arctanh) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1434 ( log . calcFunc-ln) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1435 ( plog . calcFunc-ln) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1436 ( bessel_j . calcFunc-besJ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1437 ( bessel_y . calcFunc-besY) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1438 ( factorial . calcFunc-fact) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1439 ( binomial . calcFunc-choose) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1440 ( primep . calcFunc-prime) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1441 ( next_prime . calcFunc-nextprime) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1442 ( prev_prime . calcFunc-prevprime) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1443 ( append . calcFunc-vconcat) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1444 ( rest . calcFunc-tail) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1445 ( reverse . calcFunc-rev) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1446 ( innerproduct . calcFunc-mul) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1447 ( inprod . calcFunc-mul) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1448 ( row . calcFunc-mrow) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1449 ( columnvector . calcFunc-mcol) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1450 ( covect . calcFunc-mcol) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1451 ( transpose . calcFunc-trn) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1452 ( invert . calcFunc-inv) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1453 ( determinant . calcFunc-det) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1454 ( mattrace . calcFunc-tr) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1455 ( member . calcFunc-in) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1456 ( lmax . calcFunc-vmax) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1457 ( lmin . calcFunc-vmin) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1458 ( distrib . calcFunc-expand) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1459 ( partfrac . calcFunc-apart) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1460 ( rat . calcFunc-nrat) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1461 ( product . calcFunc-prod) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1462 ( diff . calcFunc-deriv) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1463 ( integrate . calcFunc-integ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1464 ( quotient . calcFunc-pdiv) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1465 ( remainder . calcFunc-prem) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1466 ( divide . calcFunc-pdivrem) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1467 ( equal . calcFunc-eq) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1468 ( notequal . calcFunc-neq) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1469 ( rhs . calcFunc-rmeq) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1470 ( subst . (math-maxima-parse-subst)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1471 ( substitute . (math-maxima-parse-subst)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1472 ( taylor . (math-maxima-parse-taylor)))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1473 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1474 (defun math-maxima-parse-subst (f val) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1475 "Read in the arguments to \"subst\" in Calc's Maxima mode." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1476 (let ((args (math-read-expr-list))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1477 (math-read-token) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1478 (list 'calcFunc-subst |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1479 (nth 1 args) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1480 (nth 2 args) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1481 (nth 0 args)))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1482 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1483 (defun math-maxima-parse-taylor (f val) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1484 "Read in the arguments to \"taylor\" in Calc's Maxima mode." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1485 (let ((args (math-read-expr-list))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1486 (math-read-token) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1487 (list 'calcFunc-taylor |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1488 (nth 0 args) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1489 (list 'calcFunc-eq |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1490 (nth 1 args) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1491 (nth 2 args)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1492 (nth 3 args)))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1493 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1494 (put 'maxima 'math-parse-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1495 '((("if" 0 "then" 0 "else" 0) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1496 calcFunc-if |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1497 (var ArgA var-ArgA) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1498 (var ArgB var-ArgB) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1499 (var ArgC var-ArgC)))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1500 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1501 (put 'maxima 'math-special-function-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1502 '(( calcFunc-taylor . math-maxima-compose-taylor) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1503 ( calcFunc-subst . math-maxima-compose-subst) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1504 ( calcFunc-if . math-maxima-compose-if))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1505 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1506 (defun math-maxima-compose-taylor (a) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1507 "Compose the \"taylor\" function in Calc's Maxima mode." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1508 (list 'horiz |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1509 "taylor(" |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1510 (math-compose-expr (nth 1 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1511 "," |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1512 (if (eq (car-safe (nth 2 a)) 'calcFunc-eq) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1513 (concat (math-compose-expr (nth 1 (nth 2 a)) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1514 "," |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1515 (math-compose-expr (nth 2 (nth 2 a)) -1)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1516 (concat (math-compose-expr (nth 2 a) -1) ",0")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1517 "," |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1518 (math-compose-expr (nth 3 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1519 ")")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1520 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1521 (defun math-maxima-compose-subst (a) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1522 "Compose the \"subst\" function in Calc's Maxima mode." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1523 (list 'horiz |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1524 "substitute(" |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1525 (math-compose-expr (nth 2 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1526 "," |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1527 (math-compose-expr (nth 3 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1528 "," |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1529 (math-compose-expr (nth 1 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1530 ")")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1531 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1532 (defun math-maxima-compose-if (a) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1533 "Compose the \"if\" function in Calc's Maxima mode." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1534 (list 'horiz |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1535 "if " |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1536 (math-compose-expr (nth 1 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1537 " then " |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1538 (math-compose-expr (nth 2 a) -1) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1539 " else " |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1540 (math-compose-expr (nth 3 a) -1))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1541 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1542 (put 'maxima 'math-variable-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1543 '(( infinity . var-uinf) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1544 ( %pi . var-pi) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1545 ( %e . var-e) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1546 ( %i . var-i) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1547 ( %phi . var-phi) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1548 ( %gamma . var-gamma))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1549 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1550 (put 'maxima 'math-complex-format '%i) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1551 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1552 (add-to-list 'calc-lang-allow-underscores 'maxima) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1553 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1554 (add-to-list 'calc-lang-allow-percentsigns 'maxima) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1555 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1556 (add-to-list 'calc-lang-brackets-are-subscripts 'maxima) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1557 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1558 (put 'maxima 'math-compose-subscr |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1559 (function |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1560 (lambda (a) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1561 (let ((args (cdr (cdr a)))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1562 (list 'horiz |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1563 (math-compose-expr (nth 1 a) 1000) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1564 "[" |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1565 (math-compose-vector args ", " 0) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1566 "]"))))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1567 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1568 (put 'maxima 'math-matrix-formatter |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1569 (function |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1570 (lambda (a) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1571 (list 'horiz |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1572 "matrix(" |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1573 (math-compose-vector (cdr a) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1574 (concat math-comp-comma " ") |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1575 math-comp-vector-prec) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1576 ")")))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1577 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1578 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1579 ;;; Giac |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1580 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1581 (defun calc-giac-language () |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1582 "Change the Calc language to be Giac-like." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1583 (interactive) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1584 (calc-wrapper |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1585 (calc-set-language 'giac) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1586 (message "`Giac' language mode"))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1587 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1588 (put 'giac 'math-oper-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1589 '( ( "[" (math-read-giac-subscr) 250 -1 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1590 ( "+" + 180 181 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1591 ( "-" - 180 181 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1592 ( "/" / 191 192 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1593 ( "*" * 191 192 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1594 ( "^" ^ 201 200 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1595 ( "u+" ident -1 197 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1596 ( "u-" neg -1 197 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1597 ( "!" calcFunc-fact 210 -1 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1598 ( ".." (math-read-maple-dots) 165 165 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1599 ( "\\dots" (math-read-maple-dots) 165 165 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1600 ( "intersect" calcFunc-vint 191 192 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1601 ( "union" calcFunc-vunion 180 181 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1602 ( "minus" calcFunc-vdiff 180 181 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1603 ( "<" calcFunc-lt 160 160 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1604 ( ">" calcFunc-gt 160 160 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1605 ( "<=" calcFunc-leq 160 160 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1606 ( ">=" calcFunc-geq 160 160 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1607 ( "=" calcFunc-eq 160 160 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1608 ( "==" calcFunc-eq 160 160 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1609 ( "!=" calcFunc-neq 160 160 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1610 ( "and" calcFunc-land 110 111 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1611 ( "or" calcFunc-lor 100 101 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1612 ( "&&" calcFunc-land 110 111 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1613 ( "||" calcFunc-lor 100 101 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1614 ( "not" calcFunc-lnot -1 121 ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1615 ( ":=" calcFunc-assign 51 50 ))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1616 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1617 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1618 (put 'giac 'math-function-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1619 '(( rdiv . calcFunc-div) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1620 ( iquo . calcFunc-idiv) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1621 ( irem . calcFunc-mod) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1622 ( remain . calcFunc-mod) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1623 ( floor . calcFunc-floor) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1624 ( iPart . calcFunc-floor) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1625 ( ceil . calcFunc-ceil) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1626 ( ceiling . calcFunc-ceil) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1627 ( re . calcFunc-re) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1628 ( real . calcFunc-re) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1629 ( im . calcFunc-im) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1630 ( imag . calcFunc-im) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1631 ( float2rational . calcFunc-pfrac) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1632 ( exact . calcFunc-pfrac) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1633 ( evalf . calcFunc-pfloat) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1634 ( bitand . calcFunc-and) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1635 ( bitor . calcFunc-or) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1636 ( bitxor . calcFunc-xor) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1637 ( asin . calcFunc-arcsin) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1638 ( acos . calcFunc-arccos) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1639 ( atan . calcFunc-arctan) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1640 ( asinh . calcFunc-arcsinh) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1641 ( acosh . calcFunc-arccosh) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1642 ( atanh . calcFunc-arctanh) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1643 ( log . calcFunc-ln) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1644 ( logb . calcFunc-log) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1645 ( factorial . calcFunc-fact) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1646 ( comb . calcFunc-choose) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1647 ( binomial . calcFunc-choose) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1648 ( nCr . calcFunc-choose) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1649 ( perm . calcFunc-perm) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1650 ( nPr . calcFunc-perm) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1651 ( bernoulli . calcFunc-bern) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1652 ( is_prime . calcFunc-prime) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1653 ( isprime . calcFunc-prime) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1654 ( isPrime . calcFunc-prime) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1655 ( ifactors . calcFunc-prfac) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1656 ( euler . calcFunc-totient) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1657 ( phi . calcFunc-totient) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1658 ( rand . calcFunc-random) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1659 ( concat . calcFunc-vconcat) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1660 ( augment . calcFunc-vconcat) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1661 ( mid . calcFunc-subvec) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1662 ( length . calcFunc-length) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1663 ( size . calcFunc-length) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1664 ( nops . calcFunc-length) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1665 ( SortA . calcFunc-sort) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1666 ( SortB . calcFunc-rsort) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1667 ( revlist . calcFunc-rev) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1668 ( cross . calcFunc-cross) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1669 ( crossP . calcFunc-cross) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1670 ( crossproduct . calcFunc-cross) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1671 ( mul . calcFunc-mul) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1672 ( dot . calcFunc-mul) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1673 ( dotprod . calcFunc-mul) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1674 ( dotP . calcFunc-mul) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1675 ( scalar_product . calcFunc-mul) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1676 ( scalar_Product . calcFunc-mul) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1677 ( row . calcFunc-mrow) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1678 ( col . calcFunc-mcol) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1679 ( dim . calcFunc-mdims) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1680 ( tran . calcFunc-trn) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1681 ( transpose . calcFunc-trn) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1682 ( lu . calcFunc-lud) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1683 ( trace . calcFunc-tr) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1684 ( member . calcFunc-in) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1685 ( sum . calcFunc-vsum) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1686 ( add . calcFunc-vsum) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1687 ( product . calcFunc-vprod) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1688 ( mean . calcFunc-vmean) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1689 ( median . calcFunc-vmedian) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1690 ( stddev . calcFunc-vsdev) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1691 ( stddevp . calcFunc-vpsdev) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1692 ( variance . calcFunc-vpvar) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1693 ( map . calcFunc-map) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1694 ( apply . calcFunc-map) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1695 ( of . calcFunc-map) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1696 ( zip . calcFunc-map) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1697 ( expand . calcFunc-expand) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1698 ( fdistrib . calcFunc-expand) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1699 ( partfrac . calcFunc-apart) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1700 ( ratnormal . calcFunc-nrat) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1701 ( diff . calcFunc-deriv) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1702 ( derive . calcFunc-deriv) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1703 ( integrate . calcFunc-integ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1704 ( int . calcFunc-integ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1705 ( Int . calcFunc-integ) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1706 ( romberg . calcFunc-ninteg) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1707 ( nInt . calcFunc-ninteg) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1708 ( lcoeff . calcFunc-plead) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1709 ( content . calcFunc-pcont) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1710 ( primpart . calcFunc-pprim) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1711 ( quo . calcFunc-pdiv) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1712 ( rem . calcFunc-prem) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1713 ( quorem . calcFunc-pdivrem) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1714 ( divide . calcFunc-pdivrem) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1715 ( equal . calcFunc-eq) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1716 ( ifte . calcFunc-if) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1717 ( not . calcFunc-lnot) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1718 ( rhs . calcFunc-rmeq) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1719 ( right . calcFunc-rmeq) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1720 ( prepend . (math-lang-switch-args calcFunc-cons)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1721 ( contains . (math-lang-switch-args calcFunc-in)) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1722 ( has . (math-lang-switch-args calcFunc-refers)))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1723 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1724 (defun math-lang-switch-args (f val) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1725 "Read the arguments to a Calc function in reverse order. |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1726 This is used for various language modes which have functions in reverse |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1727 order to Calc's." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1728 (let ((args (math-read-expr-list))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1729 (math-read-token) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1730 (list (nth 2 f) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1731 (nth 1 args) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1732 (nth 0 args)))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1733 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1734 (put 'giac 'math-parse-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1735 '((("set" 0) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1736 calcFunc-rdup |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1737 (var ArgA var-ArgA)))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1738 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1739 (put 'giac 'math-special-function-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1740 '((calcFunc-cons . (math-lang-compose-switch-args "prepend")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1741 (calcFunc-in . (math-lang-compose-switch-args "contains")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1742 (calcFunc-refers . (math-lang-compose-switch-args "has")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1743 (intv . math-compose-maple-intv))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1744 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1745 (defun math-lang-compose-switch-args (a fn) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1746 "Compose the arguments to a Calc function in reverse order. |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1747 This is used for various language modes which have functions in reverse |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1748 order to Calc's." |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1749 (list 'horiz (nth 1 fn) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1750 "(" |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1751 (math-compose-expr (nth 2 a) 0) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1752 "," |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1753 (math-compose-expr (nth 1 a) 0) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1754 ")")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1755 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1756 (put 'giac 'math-variable-table |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1757 '(( infinity . var-inf) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1758 ( infinity . var-uinf))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1759 |
87471
949048bec87d
(math-complex-format): Add giac.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87463
diff
changeset
|
1760 (put 'giac 'math-complex-format 'i) |
949048bec87d
(math-complex-format): Add giac.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87463
diff
changeset
|
1761 |
87463
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1762 (add-to-list 'calc-lang-allow-underscores 'giac) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1763 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1764 (put 'giac 'math-compose-subscr |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1765 (function |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1766 (lambda (a) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1767 (let ((args (cdr (cdr a)))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1768 (list 'horiz |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1769 (math-compose-expr (nth 1 a) 1000) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1770 "[" |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1771 (math-compose-expr |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1772 (calc-normalize (list '- (nth 2 a) 1)) 0) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1773 "]"))))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1774 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1775 (defun math-read-giac-subscr (x op) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1776 (let ((idx (math-read-expr-level 0))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1777 (or (equal math-expr-data "]") |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1778 (throw 'syntax "Expected ']'")) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1779 (math-read-token) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1780 (list 'calcFunc-subscr x (calc-normalize (list '+ idx 1))))) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1781 |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1782 (add-to-list 'calc-lang-c-type-hex 'giac) |
e2eb28358122
(calc-yacas-language, calc-maxima-language, calc-giac-language)
Jay Belanger <jay.p.belanger@gmail.com>
parents:
87414
diff
changeset
|
1783 |
40785 | 1784 |
1785 (defun calc-mathematica-language () | |
1786 (interactive) | |
1787 (calc-wrapper | |
1788 (calc-set-language 'math) | |
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
1789 (message "Mathematica language mode"))) |
40785 | 1790 |
1791 (put 'math 'math-oper-table | |
1792 '( ( "[[" (math-read-math-subscr) 250 -1 ) | |
1793 ( "!" calcFunc-fact 210 -1 ) | |
1794 ( "!!" calcFunc-dfact 210 -1 ) | |
1795 ( "^" ^ 201 200 ) | |
1796 ( "u+" ident -1 197 ) | |
1797 ( "u-" neg -1 197 ) | |
1798 ( "/" / 195 196 ) | |
1799 ( "*" * 190 191 ) | |
1800 ( "2x" * 190 191 ) | |
1801 ( "+" + 180 181 ) | |
1802 ( "-" - 180 181 ) | |
1803 ( "<" calcFunc-lt 160 161 ) | |
1804 ( ">" calcFunc-gt 160 161 ) | |
1805 ( "<=" calcFunc-leq 160 161 ) | |
1806 ( ">=" calcFunc-geq 160 161 ) | |
1807 ( "==" calcFunc-eq 150 151 ) | |
1808 ( "!=" calcFunc-neq 150 151 ) | |
1809 ( "u!" calcFunc-lnot -1 121 ) | |
1810 ( "&&" calcFunc-land 110 111 ) | |
1811 ( "||" calcFunc-lor 100 101 ) | |
1812 ( "!!!" calcFunc-pnot -1 85 ) | |
1813 ( "&&&" calcFunc-pand 80 81 ) | |
1814 ( "|||" calcFunc-por 75 76 ) | |
1815 ( ":=" calcFunc-assign 51 50 ) | |
1816 ( "=" calcFunc-assign 51 50 ) | |
1817 ( "->" calcFunc-assign 51 50 ) | |
1818 ( ":>" calcFunc-assign 51 50 ) | |
1819 ( "::" calcFunc-condition 45 46 ) | |
1820 )) | |
1821 | |
1822 (put 'math 'math-function-table | |
1823 '( ( Abs . calcFunc-abs ) | |
1824 ( ArcCos . calcFunc-arccos ) | |
1825 ( ArcCosh . calcFunc-arccosh ) | |
1826 ( ArcSin . calcFunc-arcsin ) | |
1827 ( ArcSinh . calcFunc-arcsinh ) | |
1828 ( ArcTan . calcFunc-arctan ) | |
1829 ( ArcTanh . calcFunc-arctanh ) | |
1830 ( Arg . calcFunc-arg ) | |
1831 ( Binomial . calcFunc-choose ) | |
1832 ( Ceiling . calcFunc-ceil ) | |
1833 ( Conjugate . calcFunc-conj ) | |
1834 ( Cos . calcFunc-cos ) | |
1835 ( Cosh . calcFunc-cosh ) | |
61069
803f4b2d0113
Add functions to math-function-table properties of tex and math.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59966
diff
changeset
|
1836 ( Cot . calcFunc-cot ) |
803f4b2d0113
Add functions to math-function-table properties of tex and math.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59966
diff
changeset
|
1837 ( Coth . calcFunc-coth ) |
803f4b2d0113
Add functions to math-function-table properties of tex and math.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59966
diff
changeset
|
1838 ( Csc . calcFunc-csc ) |
803f4b2d0113
Add functions to math-function-table properties of tex and math.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59966
diff
changeset
|
1839 ( Csch . calcFunc-csch ) |
40785 | 1840 ( D . calcFunc-deriv ) |
1841 ( Dt . calcFunc-tderiv ) | |
1842 ( Det . calcFunc-det ) | |
1843 ( Exp . calcFunc-exp ) | |
1844 ( EulerPhi . calcFunc-totient ) | |
1845 ( Floor . calcFunc-floor ) | |
1846 ( Gamma . calcFunc-gamma ) | |
1847 ( GCD . calcFunc-gcd ) | |
1848 ( If . calcFunc-if ) | |
1849 ( Im . calcFunc-im ) | |
1850 ( Inverse . calcFunc-inv ) | |
1851 ( Integrate . calcFunc-integ ) | |
1852 ( Join . calcFunc-vconcat ) | |
1853 ( LCM . calcFunc-lcm ) | |
1854 ( Log . calcFunc-ln ) | |
1855 ( Max . calcFunc-max ) | |
1856 ( Min . calcFunc-min ) | |
1857 ( Mod . calcFunc-mod ) | |
1858 ( MoebiusMu . calcFunc-moebius ) | |
1859 ( Random . calcFunc-random ) | |
1860 ( Round . calcFunc-round ) | |
1861 ( Re . calcFunc-re ) | |
61069
803f4b2d0113
Add functions to math-function-table properties of tex and math.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59966
diff
changeset
|
1862 ( Sec . calcFunc-sec ) |
803f4b2d0113
Add functions to math-function-table properties of tex and math.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
59966
diff
changeset
|
1863 ( Sech . calcFunc-sech ) |
40785 | 1864 ( Sign . calcFunc-sign ) |
1865 ( Sin . calcFunc-sin ) | |
1866 ( Sinh . calcFunc-sinh ) | |
1867 ( Sqrt . calcFunc-sqrt ) | |
1868 ( Tan . calcFunc-tan ) | |
1869 ( Tanh . calcFunc-tanh ) | |
1870 ( Transpose . calcFunc-trn ) | |
1871 ( Length . calcFunc-vlen ) | |
1872 )) | |
1873 | |
1874 (put 'math 'math-variable-table | |
1875 '( ( I . var-i ) | |
1876 ( Pi . var-pi ) | |
1877 ( E . var-e ) | |
1878 ( GoldenRatio . var-phi ) | |
1879 ( EulerGamma . var-gamma ) | |
1880 ( Infinity . var-inf ) | |
1881 ( ComplexInfinity . var-uinf ) | |
1882 ( Indeterminate . var-nan ) | |
1883 )) | |
1884 | |
1885 (put 'math 'math-vector-brackets "{}") | |
1886 (put 'math 'math-complex-format 'I) | |
1887 (put 'math 'math-function-open "[") | |
1888 (put 'math 'math-function-close "]") | |
1889 | |
1890 (put 'math 'math-radix-formatter | |
1891 (function (lambda (r s) (format "%d^^%s" r s)))) | |
1892 | |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1893 (put 'math 'math-lang-read |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1894 '((eq (string-match "\\[\\[\\|->\\|:>" math-exp-str math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1895 math-exp-pos) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1896 (setq math-exp-token 'punc |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1897 math-expr-data (math-match-substring math-exp-str 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1898 math-exp-pos (match-end 0)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1899 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1900 (put 'math 'math-compose-subscr |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1901 (function |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1902 (lambda (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1903 (list 'horiz |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1904 (math-compose-expr (nth 1 a) 1000) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1905 "[[" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1906 (math-compose-expr (nth 2 a) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1907 "]]")))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1908 |
40785 | 1909 (defun math-read-math-subscr (x op) |
1910 (let ((idx (math-read-expr-level 0))) | |
58107
cfad3432f125
(math-parse-fortran-vector, math-parse-fortran-vector-end,
Jay Belanger <jay.p.belanger@gmail.com>
parents:
52401
diff
changeset
|
1911 (or (and (equal math-expr-data "]") |
40785 | 1912 (progn |
1913 (math-read-token) | |
58107
cfad3432f125
(math-parse-fortran-vector, math-parse-fortran-vector-end,
Jay Belanger <jay.p.belanger@gmail.com>
parents:
52401
diff
changeset
|
1914 (equal math-expr-data "]"))) |
40785 | 1915 (throw 'syntax "Expected ']]'")) |
1916 (math-read-token) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
1917 (list 'calcFunc-subscr x idx))) |
40785 | 1918 |
1919 | |
1920 (defun calc-maple-language () | |
1921 (interactive) | |
1922 (calc-wrapper | |
1923 (calc-set-language 'maple) | |
41271
fcd507927105
Change all toplevel `setq' forms to `defvar' forms, and move them
Colin Walters <walters@gnu.org>
parents:
41047
diff
changeset
|
1924 (message "Maple language mode"))) |
40785 | 1925 |
1926 (put 'maple 'math-oper-table | |
1927 '( ( "matrix" ident -1 300 ) | |
1928 ( "MATRIX" ident -1 300 ) | |
1929 ( "!" calcFunc-fact 210 -1 ) | |
1930 ( "^" ^ 201 200 ) | |
1931 ( "**" ^ 201 200 ) | |
1932 ( "u+" ident -1 197 ) | |
1933 ( "u-" neg -1 197 ) | |
1934 ( "/" / 191 192 ) | |
1935 ( "*" * 191 192 ) | |
1936 ( "intersect" calcFunc-vint 191 192 ) | |
1937 ( "+" + 180 181 ) | |
1938 ( "-" - 180 181 ) | |
1939 ( "union" calcFunc-vunion 180 181 ) | |
1940 ( "minus" calcFunc-vdiff 180 181 ) | |
1941 ( "mod" % 170 170 ) | |
1942 ( ".." (math-read-maple-dots) 165 165 ) | |
1943 ( "\\dots" (math-read-maple-dots) 165 165 ) | |
1944 ( "<" calcFunc-lt 160 160 ) | |
1945 ( ">" calcFunc-gt 160 160 ) | |
1946 ( "<=" calcFunc-leq 160 160 ) | |
1947 ( ">=" calcFunc-geq 160 160 ) | |
1948 ( "=" calcFunc-eq 160 160 ) | |
1949 ( "<>" calcFunc-neq 160 160 ) | |
1950 ( "not" calcFunc-lnot -1 121 ) | |
1951 ( "and" calcFunc-land 110 111 ) | |
1952 ( "or" calcFunc-lor 100 101 ) | |
1953 ( "!!!" calcFunc-pnot -1 85 ) | |
1954 ( "&&&" calcFunc-pand 80 81 ) | |
1955 ( "|||" calcFunc-por 75 76 ) | |
1956 ( ":=" calcFunc-assign 51 50 ) | |
1957 ( "::" calcFunc-condition 45 46 ) | |
1958 )) | |
1959 | |
1960 (put 'maple 'math-function-table | |
1961 '( ( bernoulli . calcFunc-bern ) | |
1962 ( binomial . calcFunc-choose ) | |
1963 ( diff . calcFunc-deriv ) | |
1964 ( GAMMA . calcFunc-gamma ) | |
1965 ( ifactor . calcFunc-prfac ) | |
1966 ( igcd . calcFunc-gcd ) | |
1967 ( ilcm . calcFunc-lcm ) | |
1968 ( int . calcFunc-integ ) | |
1969 ( modp . % ) | |
1970 ( irem . % ) | |
1971 ( iquo . calcFunc-idiv ) | |
1972 ( isprime . calcFunc-prime ) | |
1973 ( length . calcFunc-vlen ) | |
1974 ( member . calcFunc-in ) | |
1975 ( crossprod . calcFunc-cross ) | |
1976 ( inverse . calcFunc-inv ) | |
1977 ( trace . calcFunc-tr ) | |
1978 ( transpose . calcFunc-trn ) | |
1979 ( vectdim . calcFunc-vlen ) | |
1980 )) | |
1981 | |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1982 (put 'maple 'math-special-function-table |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1983 '((intv . math-compose-maple-intv))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1984 |
40785 | 1985 (put 'maple 'math-variable-table |
1986 '( ( I . var-i ) | |
1987 ( Pi . var-pi ) | |
1988 ( E . var-e ) | |
1989 ( infinity . var-inf ) | |
1990 ( infinity . var-uinf ) | |
1991 ( infinity . var-nan ) | |
1992 )) | |
1993 | |
1994 (put 'maple 'math-complex-format 'I) | |
1995 | |
86932
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1996 (put 'maple 'math-matrix-formatter |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1997 (function |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1998 (lambda (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
1999 (list 'horiz |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2000 "matrix(" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2001 math-comp-left-bracket |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2002 (math-compose-vector (cdr a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2003 (concat math-comp-comma " ") |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2004 math-comp-vector-prec) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2005 math-comp-right-bracket |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2006 ")")))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2007 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2008 (put 'maple 'math-compose-subscr |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2009 (function |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2010 (lambda (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2011 (let ((args (cdr (cdr a)))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2012 (list 'horiz |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2013 (math-compose-expr (nth 1 a) 1000) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2014 "[" |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2015 (math-compose-vector args ", " 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2016 "]"))))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2017 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2018 (add-to-list 'calc-lang-allow-underscores 'maple) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2019 (add-to-list 'calc-lang-brackets-are-subscripts 'maple) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2020 |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2021 (defun math-compose-maple-intv (a) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2022 (list 'horiz |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2023 (math-compose-expr (nth 2 a) 0) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2024 " .. " |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2025 (math-compose-expr (nth 3 a) 0))) |
15347a4d3180
(math-compose-vector, math-compose-var, math-tex-expr-is-flat):
Jay Belanger <jay.p.belanger@gmail.com>
parents:
86475
diff
changeset
|
2026 |
40785 | 2027 (defun math-read-maple-dots (x op) |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
2028 (list 'intv 3 x (math-read-expr-level (nth 3 op)))) |
40785 | 2029 |
2030 | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2031 ;; The variable math-read-big-lines is local to math-read-big-expr in |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2032 ;; calc-ext.el, but is used by math-read-big-rec, math-read-big-char, |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2033 ;; math-read-big-emptyp, math-read-big-error and math-read-big-balance, |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2034 ;; which are called (directly and indirectly) by math-read-big-expr. |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2035 ;; It is also local to math-read-big-bigp in calc-ext.el, which calls |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2036 ;; math-read-big-balance. |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2037 (defvar math-read-big-lines) |
40785 | 2038 |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2039 ;; The variables math-read-big-baseline and math-read-big-h2 are |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2040 ;; local to math-read-big-expr in calc-ext.el, but used by |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2041 ;; math-read-big-rec. |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2042 (defvar math-read-big-baseline) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2043 (defvar math-read-big-h2) |
40785 | 2044 |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2045 ;; The variables math-rb-h1, math-rb-h2, math-rb-v1 and math-rb-v2 |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2046 ;; are local to math-read-big-rec, but are used by math-read-big-char, |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2047 ;; math-read-big-emptyp and math-read-big-balance which are called by |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2048 ;; math-read-big-rec. |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2049 ;; math-rb-h2 is also local to math-read-big-bigp in calc-ext.el, |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2050 ;; which calls math-read-big-balance. |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2051 (defvar math-rb-h1) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2052 (defvar math-rb-h2) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2053 (defvar math-rb-v1) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2054 (defvar math-rb-v2) |
40785 | 2055 |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2056 (defun math-read-big-rec (math-rb-h1 math-rb-v1 math-rb-h2 math-rb-v2 |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2057 &optional baseline prec short) |
40785 | 2058 (or prec (setq prec 0)) |
2059 | |
2060 ;; Clip whitespace above or below. | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2061 (while (and (< math-rb-v1 math-rb-v2) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2062 (math-read-big-emptyp math-rb-h1 math-rb-v1 math-rb-h2 (1+ math-rb-v1))) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2063 (setq math-rb-v1 (1+ math-rb-v1))) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2064 (while (and (< math-rb-v1 math-rb-v2) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2065 (math-read-big-emptyp math-rb-h1 (1- math-rb-v2) math-rb-h2 math-rb-v2)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2066 (setq math-rb-v2 (1- math-rb-v2))) |
40785 | 2067 |
2068 ;; If formula is a single line high, normal parser can handle it. | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2069 (if (<= math-rb-v2 (1+ math-rb-v1)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2070 (if (or (<= math-rb-v2 math-rb-v1) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2071 (> math-rb-h1 (length (setq math-rb-v2 |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2072 (nth math-rb-v1 math-read-big-lines))))) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2073 (math-read-big-error math-rb-h1 math-rb-v1) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2074 (setq math-read-big-baseline math-rb-v1 |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2075 math-read-big-h2 math-rb-h2 |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2076 math-rb-v2 (nth math-rb-v1 math-read-big-lines) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2077 math-rb-h2 (math-read-expr |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2078 (substring math-rb-v2 math-rb-h1 |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2079 (min math-rb-h2 (length math-rb-v2))))) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2080 (if (eq (car-safe math-rb-h2) 'error) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2081 (math-read-big-error (+ math-rb-h1 (nth 1 math-rb-h2)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2082 math-rb-v1 (nth 2 math-rb-h2)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2083 math-rb-h2)) |
40785 | 2084 |
2085 ;; Clip whitespace at left or right. | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2086 (while (and (< math-rb-h1 math-rb-h2) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2087 (math-read-big-emptyp math-rb-h1 math-rb-v1 (1+ math-rb-h1) math-rb-v2)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2088 (setq math-rb-h1 (1+ math-rb-h1))) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2089 (while (and (< math-rb-h1 math-rb-h2) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2090 (math-read-big-emptyp (1- math-rb-h2) math-rb-v1 math-rb-h2 math-rb-v2)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2091 (setq math-rb-h2 (1- math-rb-h2))) |
40785 | 2092 |
2093 ;; Scan to find widest left-justified "----" in the region. | |
2094 (let* ((widest nil) | |
2095 (widest-h2 0) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2096 (lines-v1 (nthcdr math-rb-v1 math-read-big-lines)) |
40785 | 2097 (p lines-v1) |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2098 (v math-rb-v1) |
40785 | 2099 (other-v nil) |
2100 other-char line len h) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2101 (while (< v math-rb-v2) |
40785 | 2102 (setq line (car p) |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2103 len (min math-rb-h2 (length line))) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2104 (and (< math-rb-h1 len) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2105 (/= (aref line math-rb-h1) ?\ ) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2106 (if (and (= (aref line math-rb-h1) ?\-) |
40785 | 2107 ;; Make sure it's not a minus sign. |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2108 (or (and (< (1+ math-rb-h1) len) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2109 (= (aref line (1+ math-rb-h1)) ?\-)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2110 (/= (math-read-big-char math-rb-h1 (1- v)) ?\ ) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2111 (/= (math-read-big-char math-rb-h1 (1+ v)) ?\ ))) |
40785 | 2112 (progn |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2113 (setq h math-rb-h1) |
40785 | 2114 (while (and (< (setq h (1+ h)) len) |
2115 (= (aref line h) ?\-))) | |
2116 (if (> h widest-h2) | |
2117 (setq widest v | |
2118 widest-h2 h))) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2119 (or other-v (setq other-v v other-char (aref line math-rb-h1))))) |
40785 | 2120 (setq v (1+ v) |
2121 p (cdr p))) | |
2122 | |
2123 (cond ((not (setq v other-v)) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2124 (math-read-big-error math-rb-h1 math-rb-v1)) ; Should never happen! |
40785 | 2125 |
2126 ;; Quotient. | |
2127 (widest | |
2128 (setq h widest-h2 | |
2129 v widest) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2130 (let ((num (math-read-big-rec math-rb-h1 math-rb-v1 h v)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2131 (den (math-read-big-rec math-rb-h1 (1+ v) h math-rb-v2))) |
40785 | 2132 (setq p (if (and (math-integerp num) (math-integerp den)) |
2133 (math-make-frac num den) | |
2134 (list '/ num den))))) | |
2135 | |
2136 ;; Big radical sign. | |
2137 ((= other-char ?\\) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2138 (or (= (math-read-big-char (1+ math-rb-h1) v) ?\|) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2139 (math-read-big-error (1+ math-rb-h1) v "Malformed root sign")) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2140 (math-read-big-emptyp math-rb-h1 math-rb-v1 (1+ math-rb-h1) v nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2141 (while (= (math-read-big-char (1+ math-rb-h1) (setq v (1- v))) ?\|)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2142 (or (= (math-read-big-char (setq h (+ math-rb-h1 2)) v) ?\_) |
40785 | 2143 (math-read-big-error h v "Malformed root sign")) |
2144 (while (= (math-read-big-char (setq h (1+ h)) v) ?\_)) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2145 (math-read-big-emptyp math-rb-h1 math-rb-v1 (1+ math-rb-h1) v nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2146 (math-read-big-emptyp math-rb-h1 (1+ other-v) h math-rb-v2 nil t) |
40785 | 2147 (setq p (list 'calcFunc-sqrt (math-read-big-rec |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2148 (+ math-rb-h1 2) (1+ v) |
40785 | 2149 h (1+ other-v) baseline)) |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2150 v math-read-big-baseline)) |
40785 | 2151 |
2152 ;; Small radical sign. | |
2153 ((and (= other-char ?V) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2154 (= (math-read-big-char (1+ math-rb-h1) (1- v)) ?\_)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2155 (setq h (1+ math-rb-h1)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2156 (math-read-big-emptyp math-rb-h1 math-rb-v1 h (1- v) nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2157 (math-read-big-emptyp math-rb-h1 (1+ v) h math-rb-v2 nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2158 (math-read-big-emptyp math-rb-h1 math-rb-v1 (1+ math-rb-h1) v nil t) |
40785 | 2159 (while (= (math-read-big-char (setq h (1+ h)) (1- v)) ?\_)) |
2160 (setq p (list 'calcFunc-sqrt (math-read-big-rec | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2161 (1+ math-rb-h1) v h (1+ v) t)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2162 v math-read-big-baseline)) |
40785 | 2163 |
2164 ;; Binomial coefficient. | |
2165 ((and (= other-char ?\() | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2166 (= (math-read-big-char (1+ math-rb-h1) v) ?\ ) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2167 (= (string-match "( *)" (nth v math-read-big-lines) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2168 math-rb-h1) math-rb-h1)) |
40785 | 2169 (setq h (match-end 0)) |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2170 (math-read-big-emptyp math-rb-h1 math-rb-v1 (1+ math-rb-h1) v nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2171 (math-read-big-emptyp math-rb-h1 (1+ v) (1+ math-rb-h1) math-rb-v2 nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2172 (math-read-big-emptyp (1- h) math-rb-v1 h v nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2173 (math-read-big-emptyp (1- h) (1+ v) h math-rb-v2 nil t) |
40785 | 2174 (setq p (list 'calcFunc-choose |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2175 (math-read-big-rec (1+ math-rb-h1) math-rb-v1 (1- h) v) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2176 (math-read-big-rec (1+ math-rb-h1) (1+ v) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2177 (1- h) math-rb-v2)))) |
40785 | 2178 |
2179 ;; Minus sign. | |
2180 ((= other-char ?\-) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2181 (setq p (list 'neg (math-read-big-rec (1+ math-rb-h1) math-rb-v1 |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2182 math-rb-h2 math-rb-v2 v 250 t)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2183 v math-read-big-baseline |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2184 h math-read-big-h2)) |
40785 | 2185 |
2186 ;; Parentheses. | |
2187 ((= other-char ?\() | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2188 (math-read-big-emptyp math-rb-h1 math-rb-v1 (1+ math-rb-h1) v nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2189 (math-read-big-emptyp math-rb-h1 (1+ v) (1+ math-rb-h1) math-rb-v2 nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2190 (setq h (math-read-big-balance (1+ math-rb-h1) v "(" t)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2191 (math-read-big-emptyp (1- h) math-rb-v1 h v nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2192 (math-read-big-emptyp (1- h) (1+ v) h math-rb-v2 nil t) |
40785 | 2193 (let ((sep (math-read-big-char (1- h) v)) |
2194 hmid) | |
2195 (if (= sep ?\.) | |
2196 (setq h (1+ h))) | |
2197 (if (= sep ?\]) | |
2198 (math-read-big-error (1- h) v "Expected `)'")) | |
2199 (if (= sep ?\)) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2200 (setq p (math-read-big-rec |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2201 (1+ math-rb-h1) math-rb-v1 (1- h) math-rb-v2 v)) |
40785 | 2202 (setq hmid (math-read-big-balance h v "(") |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2203 p (list p |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2204 (math-read-big-rec h math-rb-v1 (1- hmid) math-rb-v2 v)) |
40785 | 2205 h hmid) |
2206 (cond ((= sep ?\.) | |
2207 (setq p (cons 'intv (cons (if (= (math-read-big-char | |
2208 (1- h) v) | |
2209 ?\)) | |
2210 0 1) | |
2211 p)))) | |
2212 ((= (math-read-big-char (1- h) v) ?\]) | |
2213 (math-read-big-error (1- h) v "Expected `)'")) | |
2214 ((= sep ?\,) | |
2215 (or (and (math-realp (car p)) (math-realp (nth 1 p))) | |
2216 (math-read-big-error | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2217 math-rb-h1 v "Complex components must be real")) |
40785 | 2218 (setq p (cons 'cplx p))) |
2219 ((= sep ?\;) | |
2220 (or (and (math-realp (car p)) (math-anglep (nth 1 p))) | |
2221 (math-read-big-error | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2222 math-rb-h1 v "Complex components must be real")) |
40785 | 2223 (setq p (cons 'polar p))))))) |
2224 | |
2225 ;; Matrix. | |
2226 ((and (= other-char ?\[) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2227 (or (= (math-read-big-char (setq h math-rb-h1) (1+ v)) ?\[) |
40785 | 2228 (= (math-read-big-char (setq h (1+ h)) v) ?\[) |
2229 (and (= (math-read-big-char h v) ?\ ) | |
2230 (= (math-read-big-char (setq h (1+ h)) v) ?\[))) | |
2231 (= (math-read-big-char h (1+ v)) ?\[)) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2232 (math-read-big-emptyp math-rb-h1 math-rb-v1 h v nil t) |
40785 | 2233 (let ((vtop v) |
2234 (hleft h) | |
2235 (hright nil)) | |
2236 (setq p nil) | |
2237 (while (progn | |
2238 (setq h (math-read-big-balance (1+ hleft) v "[")) | |
2239 (if hright | |
2240 (or (= h hright) | |
2241 (math-read-big-error hright v "Expected `]'")) | |
2242 (setq hright h)) | |
2243 (setq p (cons (math-read-big-rec | |
2244 hleft v h (1+ v)) p)) | |
2245 (and (memq (math-read-big-char h v) '(?\ ?\,)) | |
2246 (= (math-read-big-char hleft (1+ v)) ?\[))) | |
2247 (setq v (1+ v))) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2248 (or (= hleft math-rb-h1) |
40785 | 2249 (progn |
2250 (if (= (math-read-big-char h v) ?\ ) | |
2251 (setq h (1+ h))) | |
2252 (and (= (math-read-big-char h v) ?\]) | |
2253 (setq h (1+ h)))) | |
2254 (math-read-big-error (1- h) v "Expected `]'")) | |
2255 (if (= (math-read-big-char h vtop) ?\,) | |
2256 (setq h (1+ h))) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2257 (math-read-big-emptyp math-rb-h1 (1+ v) (1- h) math-rb-v2 nil t) |
40785 | 2258 (setq v (+ vtop (/ (- v vtop) 2)) |
2259 p (cons 'vec (nreverse p))))) | |
2260 | |
2261 ;; Square brackets. | |
2262 ((= other-char ?\[) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2263 (math-read-big-emptyp math-rb-h1 math-rb-v1 (1+ math-rb-h1) v nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2264 (math-read-big-emptyp math-rb-h1 (1+ v) (1+ math-rb-h1) math-rb-v2 nil t) |
40785 | 2265 (setq p nil |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2266 h (1+ math-rb-h1)) |
40785 | 2267 (while (progn |
2268 (setq widest (math-read-big-balance h v "[" t)) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2269 (math-read-big-emptyp (1- h) math-rb-v1 h v nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2270 (math-read-big-emptyp (1- h) (1+ v) h math-rb-v2 nil t) |
40785 | 2271 (setq p (cons (math-read-big-rec |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2272 h math-rb-v1 (1- widest) math-rb-v2 v) p) |
40785 | 2273 h widest) |
2274 (= (math-read-big-char (1- h) v) ?\,))) | |
2275 (setq widest (math-read-big-char (1- h) v)) | |
2276 (if (or (memq widest '(?\; ?\))) | |
2277 (and (eq widest ?\.) (cdr p))) | |
2278 (math-read-big-error (1- h) v "Expected `]'")) | |
2279 (if (= widest ?\.) | |
2280 (setq h (1+ h) | |
2281 widest (math-read-big-balance h v "[") | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2282 p (nconc p (list (math-read-big-rec |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2283 h math-rb-v1 (1- widest) math-rb-v2 v))) |
40785 | 2284 h widest |
2285 p (cons 'intv (cons (if (= (math-read-big-char (1- h) v) | |
2286 ?\]) | |
2287 3 2) | |
2288 p))) | |
2289 (setq p (cons 'vec (nreverse p))))) | |
2290 | |
2291 ;; Date form. | |
2292 ((= other-char ?\<) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2293 (setq line (nth v math-read-big-lines)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2294 (string-match ">" line math-rb-h1) |
40785 | 2295 (setq h (match-end 0)) |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2296 (math-read-big-emptyp math-rb-h1 math-rb-v1 h v nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2297 (math-read-big-emptyp math-rb-h1 (1+ v) h math-rb-v2 nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2298 (setq p (math-read-big-rec math-rb-h1 v h (1+ v) v))) |
40785 | 2299 |
2300 ;; Variable name or function call. | |
2301 ((or (and (>= other-char ?a) (<= other-char ?z)) | |
2302 (and (>= other-char ?A) (<= other-char ?Z))) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2303 (setq line (nth v math-read-big-lines)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2304 (string-match "\\([a-zA-Z'_]+\\) *" line math-rb-h1) |
40785 | 2305 (setq h (match-end 1) |
2306 widest (match-end 0) | |
2307 p (math-match-substring line 1)) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2308 (math-read-big-emptyp math-rb-h1 math-rb-v1 h v nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2309 (math-read-big-emptyp math-rb-h1 (1+ v) h math-rb-v2 nil t) |
40785 | 2310 (if (= (math-read-big-char widest v) ?\() |
2311 (progn | |
2312 (setq line (if (string-match "-" p) | |
2313 (intern p) | |
2314 (intern (concat "calcFunc-" p))) | |
2315 h (1+ widest) | |
2316 p nil) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2317 (math-read-big-emptyp widest math-rb-v1 h v nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2318 (math-read-big-emptyp widest (1+ v) h math-rb-v2 nil t) |
40785 | 2319 (while (progn |
2320 (setq widest (math-read-big-balance h v "(" t)) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2321 (math-read-big-emptyp (1- h) math-rb-v1 h v nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2322 (math-read-big-emptyp (1- h) (1+ v) h math-rb-v2 nil t) |
40785 | 2323 (setq p (cons (math-read-big-rec |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2324 h math-rb-v1 (1- widest) math-rb-v2 v) p) |
40785 | 2325 h widest) |
2326 (= (math-read-big-char (1- h) v) ?\,))) | |
2327 (or (= (math-read-big-char (1- h) v) ?\)) | |
2328 (math-read-big-error (1- h) v "Expected `)'")) | |
2329 (setq p (cons line (nreverse p)))) | |
2330 (setq p (list 'var | |
2331 (intern (math-remove-dashes p)) | |
2332 (if (string-match "-" p) | |
2333 (intern p) | |
2334 (intern (concat "var-" p))))))) | |
2335 | |
2336 ;; Number. | |
2337 (t | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2338 (setq line (nth v math-read-big-lines)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2339 (or (= (string-match "_?\\([0-9]+.?0*@ *\\)?\\([0-9]+.?0*' *\\)?\\([0-9]+\\(#\\|\\^\\^\\)[0-9a-zA-Z:]+\\|[0-9]+:[0-9:]+\\|[0-9.]+\\([eE][-+_]?[0-9]+\\)?\"?\\)?" line math-rb-h1) math-rb-h1) |
40785 | 2340 (math-read-big-error h v "Expected a number")) |
2341 (setq h (match-end 0) | |
2342 p (math-read-number (math-match-substring line 0))) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2343 (math-read-big-emptyp math-rb-h1 math-rb-v1 h v nil t) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2344 (math-read-big-emptyp math-rb-h1 (1+ v) h math-rb-v2 nil t))) |
40785 | 2345 |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2346 ;; Now left term is bounded by math-rb-h1, math-rb-v1, h, math-rb-v2; |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2347 ;; baseline = v. |
40785 | 2348 (if baseline |
2349 (or (= v baseline) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2350 (math-read-big-error math-rb-h1 v "Inconsistent baseline in formula")) |
40785 | 2351 (setq baseline v)) |
2352 | |
2353 ;; Look for superscripts or subscripts. | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2354 (setq line (nth baseline math-read-big-lines) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2355 len (min math-rb-h2 (length line)) |
40785 | 2356 widest h) |
2357 (while (and (< widest len) | |
2358 (= (aref line widest) ?\ )) | |
2359 (setq widest (1+ widest))) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2360 (and (>= widest len) (setq widest math-rb-h2)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2361 (if (math-read-big-emptyp h v widest math-rb-v2) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2362 (if (math-read-big-emptyp h math-rb-v1 widest v) |
40785 | 2363 (setq h widest) |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2364 (setq p (list '^ p (math-read-big-rec h math-rb-v1 widest v)) |
40785 | 2365 h widest)) |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2366 (if (math-read-big-emptyp h math-rb-v1 widest v) |
40785 | 2367 (setq p (list 'calcFunc-subscr p |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2368 (math-read-big-rec h v widest math-rb-v2)) |
40785 | 2369 h widest))) |
2370 | |
2371 ;; Look for an operator name and grab additional terms. | |
2372 (while (and (< h len) | |
2373 (if (setq widest (and (math-read-big-emptyp | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2374 h math-rb-v1 (1+ h) v) |
40785 | 2375 (math-read-big-emptyp |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2376 h (1+ v) (1+ h) math-rb-v2) |
40785 | 2377 (string-match "<=\\|>=\\|\\+/-\\|!=\\|&&\\|||\\|:=\\|=>\\|." line h) |
2378 (assoc (math-match-substring line 0) | |
81470
3e0c2ded3e4a
(calc-set-language,math-read-big-rec): Let math-expr-opers equal the
Jay Belanger <jay.p.belanger@gmail.com>
parents:
77465
diff
changeset
|
2379 (math-standard-ops)))) |
40785 | 2380 (and (>= (nth 2 widest) prec) |
2381 (setq h (match-end 0))) | |
2382 (and (not (eq (string-match ",\\|;\\|\\.\\.\\|)\\|\\]\\|:" line h) | |
2383 h)) | |
2384 (setq widest '("2x" * 196 195))))) | |
2385 (cond ((eq (nth 3 widest) -1) | |
2386 (setq p (list (nth 1 widest) p))) | |
2387 ((equal (car widest) "?") | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2388 (let ((y (math-read-big-rec h math-rb-v1 math-rb-h2 |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2389 math-rb-v2 baseline nil t))) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2390 (or (= (math-read-big-char math-read-big-h2 baseline) ?\:) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2391 (math-read-big-error math-read-big-h2 baseline "Expected `:'")) |
40785 | 2392 (setq p (list (nth 1 widest) p y |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2393 (math-read-big-rec |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2394 (1+ math-read-big-h2) math-rb-v1 math-rb-h2 math-rb-v2 |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2395 baseline (nth 3 widest) t)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2396 h math-read-big-h2))) |
40785 | 2397 (t |
2398 (setq p (list (nth 1 widest) p | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2399 (math-read-big-rec h math-rb-v1 math-rb-h2 math-rb-v2 |
40785 | 2400 baseline (nth 3 widest) t)) |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2401 h math-read-big-h2)))) |
40785 | 2402 |
2403 ;; Return all relevant information to caller. | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2404 (setq math-read-big-baseline baseline |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2405 math-read-big-h2 h) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2406 (or short (= math-read-big-h2 math-rb-h2) |
40785 | 2407 (math-read-big-error h baseline)) |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
2408 p))) |
40785 | 2409 |
2410 (defun math-read-big-char (h v) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2411 (or (and (>= h math-rb-h1) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2412 (< h math-rb-h2) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2413 (>= v math-rb-v1) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2414 (< v math-rb-v2) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2415 (let ((line (nth v math-read-big-lines))) |
40785 | 2416 (and line |
2417 (< h (length line)) | |
2418 (aref line h)))) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
2419 ?\ )) |
40785 | 2420 |
2421 (defun math-read-big-emptyp (eh1 ev1 eh2 ev2 &optional what error) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2422 (and (< ev1 math-rb-v1) (setq ev1 math-rb-v1)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2423 (and (< eh1 math-rb-h1) (setq eh1 math-rb-h1)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2424 (and (> ev2 math-rb-v2) (setq ev2 math-rb-v2)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2425 (and (> eh2 math-rb-h2) (setq eh2 math-rb-h2)) |
40785 | 2426 (or what (setq what ?\ )) |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2427 (let ((p (nthcdr ev1 math-read-big-lines)) |
40785 | 2428 h) |
2429 (while (and (< ev1 ev2) | |
2430 (progn | |
2431 (setq h (min eh2 (length (car p)))) | |
2432 (while (and (>= (setq h (1- h)) eh1) | |
2433 (= (aref (car p) h) what))) | |
2434 (and error (>= h eh1) | |
2435 (math-read-big-error h ev1 (if (stringp error) | |
2436 error | |
2437 "Whitespace expected"))) | |
2438 (< h eh1))) | |
2439 (setq ev1 (1+ ev1) | |
2440 p (cdr p))) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
2441 (>= ev1 ev2))) |
40785 | 2442 |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2443 ;; math-read-big-err-msg is local to math-read-big-expr in calc-ext.el, |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2444 ;; but is used by math-read-big-error which is called (indirectly) by |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2445 ;; math-read-big-expr. |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2446 (defvar math-read-big-err-msg) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2447 |
40785 | 2448 (defun math-read-big-error (h v &optional msg) |
2449 (let ((pos 0) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2450 (p math-read-big-lines)) |
40785 | 2451 (while (> v 0) |
2452 (setq pos (+ pos 1 (length (car p))) | |
2453 p (cdr p) | |
2454 v (1- v))) | |
2455 (setq h (+ pos (min h (length (car p)))) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2456 math-read-big-err-msg (list 'error h (or msg "Syntax error"))) |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
2457 (throw 'syntax nil))) |
40785 | 2458 |
2459 (defun math-read-big-balance (h v what &optional commas) | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2460 (let* ((line (nth v math-read-big-lines)) |
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2461 (len (min math-rb-h2 (length line))) |
40785 | 2462 (count 1)) |
2463 (while (> count 0) | |
2464 (if (>= h len) | |
2465 (if what | |
58411
9ceda393e263
(math-read-big-lines): New variable.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58134
diff
changeset
|
2466 (math-read-big-error nil v (format "Unmatched `%s'" what)) |
40785 | 2467 (setq count 0)) |
2468 (if (memq (aref line h) '(?\( ?\[)) | |
2469 (setq count (1+ count)) | |
2470 (if (if (and commas (= count 1)) | |
2471 (or (memq (aref line h) '(?\) ?\] ?\, ?\;)) | |
2472 (and (eq (aref line h) ?\.) | |
2473 (< (1+ h) len) | |
2474 (eq (aref line (1+ h)) ?\.))) | |
2475 (memq (aref line h) '(?\) ?\]))) | |
2476 (setq count (1- count)))) | |
2477 (setq h (1+ h)))) | |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
2478 h)) |
40785 | 2479 |
58661
10224395a3c2
Add a provide statement.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58571
diff
changeset
|
2480 (provide 'calc-lang) |
10224395a3c2
Add a provide statement.
Jay Belanger <jay.p.belanger@gmail.com>
parents:
58571
diff
changeset
|
2481 |
93975
1e3a407766b9
Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
87649
diff
changeset
|
2482 ;; arch-tag: 483bfe15-f290-4fef-bb7d-ce65be687f2e |
41047
73f364fd8aaa
Style cleanup; don't put closing parens on their
Colin Walters <walters@gnu.org>
parents:
40785
diff
changeset
|
2483 ;;; calc-lang.el ends here |