Mercurial > emacs
annotate lisp/calc/calc-lang.el @ 100362:4150ab3a5845
(dired-pop-to-buffer): Call with min-height arg 1 to
make sure that small buffers get shown.
author | Martin Rudalics <rudalics@gmx.at> |
---|---|
date | Thu, 11 Dec 2008 17:19:37 +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 |