/[emacs]/emacs/lisp/calc/calc-rules.el
ViewVC logotype

Diff of /emacs/lisp/calc/calc-rules.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by eliz, Tue Nov 6 18:59:06 2001 UTC revision 1.2 by walters, Wed Nov 14 09:06:58 2001 UTC
# Line 1  Line 1 
1  ;; Calculator for GNU Emacs, part II [calc-rules.el]  ;; Calculator for GNU Emacs, part II [calc-rules.el]
2  ;; Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.  ;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc.
3  ;; Written by Dave Gillespie, daveg@synaptics.com.  ;; Written by Dave Gillespie, daveg@synaptics.com.
4    
5  ;; This file is part of GNU Emacs.  ;; This file is part of GNU Emacs.
# Line 33  Line 33 
33    (prog2    (prog2
34     (message "Preparing rule set %s..." name)     (message "Preparing rule set %s..." name)
35     (math-read-plain-expr rules t)     (math-read-plain-expr rules t)
36     (message "Preparing rule set %s...done" name))     (message "Preparing rule set %s...done" name)))
 )  
37    
38  (defun calc-CommuteRules ()  (defun calc-CommuteRules ()
39    "CommuteRules"    "CommuteRules"
# Line 56  select(plain(a != b))          :=  select(b != a Line 55  select(plain(a != b))          :=  select(b != a
55  select(a < b)                   :=  select(b > a),  select(a < b)                   :=  select(b > a),
56  select(a > b)                   :=  select(b < a),  select(a > b)                   :=  select(b < a),
57  select(a <= b)                  :=  select(b >= a),  select(a <= b)                  :=  select(b >= a),
58  select(a >= b)                  :=  select(b <= a) ]")  select(a >= b)                  :=  select(b <= a) ]"))
 )  
59    
60  (defun calc-JumpRules ()  (defun calc-JumpRules ()
61    "JumpRules"    "JumpRules"
# Line 87  plain(y = a ^ select(2))       :=  select(sqrt Line 85  plain(y = a ^ select(2))       :=  select(sqrt
85  plain(y = a ^ select(x))        :=  y ^ select(1/x) = a,  plain(y = a ^ select(x))        :=  y ^ select(1/x) = a,
86  plain(y = select(x) ^ a)        :=  log(y, select(x)) = a,  plain(y = select(x) ^ a)        :=  log(y, select(x)) = a,
87  plain(y = log(a, select(x)))    :=  select(x) ^ y = a,  plain(y = log(a, select(x)))    :=  select(x) ^ y = a,
88  plain(y = log(select(x), a))    :=  select(x) ^ (1/y) = a ]")  plain(y = log(select(x), a))    :=  select(x) ^ (1/y) = a ]"))
 )  
89    
90  (defun calc-DistribRules ()  (defun calc-DistribRules ()
91    "DistribRules"    "DistribRules"
# Line 161  tanh(select(a + b))            :=  (tanh(select(a) Line 158  tanh(select(a + b))            :=  (tanh(select(a)
158  x && select(a || b)             :=  (x && select(a)) || (x && b),  x && select(a || b)             :=  (x && select(a)) || (x && b),
159  select(a || b) && x             :=  (select(a) && x) || (b && x),  select(a || b) && x             :=  (select(a) && x) || (b && x),
160  ! select(a && b)                :=  (!a) || (!b),  ! select(a && b)                :=  (!a) || (!b),
161  ! select(a || b)                :=  (!a) && (!b) ]")  ! select(a || b)                :=  (!a) && (!b) ]"))
 )  
162    
163  (defun calc-MergeRules ()  (defun calc-MergeRules ()
164    "MergeRules"    "MergeRules"
# Line 235  select(log(a,x)) / log(b,x)    :=  select(l Line 231  select(log(a,x)) / log(b,x)    :=  select(l
231  log(a,x) / select(log(b,x))     :=  select(log(a, b)),  log(a,x) / select(log(b,x))     :=  select(log(a, b)),
232  select(log(a,x)) / b            :=  select(log(a ^ (1/b),x)),  select(log(a,x)) / b            :=  select(log(a ^ (1/b),x)),
233  log(a,x) / select(b)            :=  select(log(a ^ (1/b),x)),  log(a,x) / select(b)            :=  select(log(a ^ (1/b),x)),
234  select(x && a) || (x && opt(b)) :=  x && (select(a) || b) ]")  select(x && a) || (x && opt(b)) :=  x && (select(a) || b) ]"))
 )  
235    
236  (defun calc-NegateRules ()  (defun calc-NegateRules ()
237    "NegateRules"    "NegateRules"
# Line 290  a < select(x)                  :=  -a > select(-x), Line 285  a < select(x)                  :=  -a > select(-x),
285  a > select(x)                   :=  -a < select(-x),  a > select(x)                   :=  -a < select(-x),
286  a <= select(x)                  :=  -a >= select(-x),  a <= select(x)                  :=  -a >= select(-x),
287  a >= select(x)                  :=  -a <= select(-x),  a >= select(x)                  :=  -a <= select(-x),
288  select(x)                       :=  -select(-x) ]")  select(x)                       :=  -select(-x) ]"))
 )  
289    
290  (defun calc-InvertRules ()  (defun calc-InvertRules ()
291    "InvertRules"    "InvertRules"
# Line 319  a < select(x)                  :=  1/a > select(1/x), Line 313  a < select(x)                  :=  1/a > select(1/x),
313  a > select(x)                   :=  1/a < select(1/x),  a > select(x)                   :=  1/a < select(1/x),
314  a <= select(x)                  :=  1/a >= select(1/x),  a <= select(x)                  :=  1/a >= select(1/x),
315  a >= select(x)                  :=  1/a <= select(1/x),  a >= select(x)                  :=  1/a <= select(1/x),
316  select(x)                       :=  1 / select(1/x) ]")  select(x)                       :=  1 / select(1/x) ]"))
 )  
317    
318    
319  (defun calc-FactorRules ()  (defun calc-FactorRules ()
# Line 340  thecoefs(x, [z, 0, c]) := thefactors(x, Line 333  thecoefs(x, [z, 0, c]) := thefactors(x,
333          :: negative(c)          :: negative(c)
334          :: let(rz := esimplify(sqrt(z))) :: !matches(rz, sqrt(rzz))          :: let(rz := esimplify(sqrt(z))) :: !matches(rz, sqrt(rzz))
335          :: let(rc := esimplify(sqrt(-c))) :: !matches(rc, sqrt(rcc))          :: let(rc := esimplify(sqrt(-c))) :: !matches(rc, sqrt(rcc))
336   ]")   ]"))
 )  
337  ;;(setq var-FactorRules 'calc-FactorRules)  ;;(setq var-FactorRules 'calc-FactorRules)
338    
339    
# Line 352  thecoefs(x, [z, 0, c]) := thefactors(x, Line 344  thecoefs(x, [z, 0, c]) := thefactors(x,
344   opt(a) ln(x) + opt(b) ln(y) := 2 a esimplify(arctanh(x-1))   opt(a) ln(x) + opt(b) ln(y) := 2 a esimplify(arctanh(x-1))
345       :: a + b = 0 :: nrat(x + y) = 2 || nrat(x - y) = 2,       :: a + b = 0 :: nrat(x + y) = 2 || nrat(x - y) = 2,
346   a * (b + c) := a b + a c :: constant(a)   a * (b + c) := a b + a c :: constant(a)
347   ]")   ]"))
 )  
348    
349  ;;(setq var-IntegAfterRules 'calc-IntegAfterRules)  ;;(setq var-IntegAfterRules 'calc-IntegAfterRules)
350    
# Line 439  fitsystem(y, xv, pv, 0)  :=  fitsystem(y Line 430  fitsystem(y, xv, pv, 0)  :=  fitsystem(y
430                               :: let(cons(fvh,fvt),                               :: let(cons(fvh,fvt),
431                                      solve(pv, table(fitparam(j), j, 1,                                      solve(pv, table(fitparam(j), j, 1,
432                                                      hasfitparams(pv)))),                                                      hasfitparams(pv)))),
433  fitparam(n) = x  :=  x ]")  fitparam(n) = x  :=  x ]"))
 )  
434    
435    ;;; calc-rules.el ends here

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26