Don't quote lambdas in calc/calcalg{2,3}.el

* lisp/calc/calcalg2.el (calcFunc-inv\', calcFunc-sqrt\')
(calcFunc-deg\', calcFunc-rad\', calcFunc-ln\')
(calcFunc-log10\', calcFunc-lnp1\', calcFunc-log\')
(calcFunc-log\'2, calcFunc-exp\', calcFunc-expm1\')
(calcFunc-sin\', calcFunc-cos\', calcFunc-tan\', calcFunc-sec\')
(calcFunc-csc\', calcFunc-cot\', calcFunc-arcsin\')
(calcFunc-arccos\', calcFunc-arctan\', calcFunc-sinh\')
(calcFunc-cosh\', calcFunc-tanh\', calcFunc-sech\')
(calcFunc-csch\', calcFunc-coth\', calcFunc-arcsinh\')
(calcFunc-arccosh\', calcFunc-arctanh\', calcFunc-bern\'2)
(calcFunc-euler\'2, calcFunc-gammag\'2, calcFunc-gammaG\'2)
(calcFunc-gammaP\'2, calcFunc-gammaQ\'2, calcFunc-betaB\')
(calcFunc-betaI\', calcFunc-erf\', calcFunc-erfc\')
(calcFunc-besJ\'2, calcFunc-besY\'2, calcFunc-sum)
(calcFunc-prod, calcFunc-integ, calcFunc-if, calcFunc-subscr)
(math-do-integral, calcFunc-integ, math-decompose-poly)
(math-solve-system-rec, math-solve-system-subst, math-solve-for)
(calcFunc-inv, calcFunc-sqrt, calcFunc-conj, calcFunc-abs)
(calcFunc-deg, calcFunc-rad, calcFunc-ln, calcFunc-log10)
(calcFunc-lnp1, calcFunc-exp, calcFunc-expm1, calcFunc-sin)
(calcFunc-cos, calcFunc-tan, calcFunc-arcsin, calcFunc-arccos)
(calcFunc-arctan, calcFunc-sinh, calcFunc-cosh, calcFunc-tanh)
(calcFunc-arcsinh, calcFunc-arccosh, calcFunc-arctanh):
* lisp/calc/calcalg3.el (calc-get-fit-variables)
(calcFunc-polint, calcFunc-ratint, math-all-vars-but): Don't quote
lambdas.
This commit is contained in:
Stefan Kangas 2020-11-16 16:53:24 +01:00
parent 238261db95
commit 82d0b88720
2 changed files with 294 additions and 305 deletions

View file

@ -361,175 +361,175 @@
res))))
(put 'calcFunc-inv\' 'math-derivative-1
(function (lambda (u) (math-neg (math-div 1 (math-sqr u))))))
(lambda (u) (math-neg (math-div 1 (math-sqr u)))))
(put 'calcFunc-sqrt\' 'math-derivative-1
(function (lambda (u) (math-div 1 (math-mul 2 (list 'calcFunc-sqrt u))))))
(lambda (u) (math-div 1 (math-mul 2 (list 'calcFunc-sqrt u)))))
(put 'calcFunc-deg\' 'math-derivative-1
(function (lambda (_) (math-div-float '(float 18 1) (math-pi)))))
(lambda (_) (math-div-float '(float 18 1) (math-pi))))
(put 'calcFunc-rad\' 'math-derivative-1
(function (lambda (_) (math-pi-over-180))))
(lambda (_) (math-pi-over-180)))
(put 'calcFunc-ln\' 'math-derivative-1
(function (lambda (u) (math-div 1 u))))
(lambda (u) (math-div 1 u)))
(put 'calcFunc-log10\' 'math-derivative-1
(function (lambda (u)
(math-div (math-div 1 (math-normalize '(calcFunc-ln 10)))
u))))
(lambda (u)
(math-div (math-div 1 (math-normalize '(calcFunc-ln 10)))
u)))
(put 'calcFunc-lnp1\' 'math-derivative-1
(function (lambda (u) (math-div 1 (math-add u 1)))))
(lambda (u) (math-div 1 (math-add u 1))))
(put 'calcFunc-log\' 'math-derivative-2
(function (lambda (x b)
(and (not (Math-zerop b))
(let ((lnv (math-normalize
(list 'calcFunc-ln b))))
(math-div 1 (math-mul lnv x)))))))
(lambda (x b)
(and (not (Math-zerop b))
(let ((lnv (math-normalize
(list 'calcFunc-ln b))))
(math-div 1 (math-mul lnv x))))))
(put 'calcFunc-log\'2 'math-derivative-2
(function (lambda (x b)
(let ((lnv (list 'calcFunc-ln b)))
(math-neg (math-div (list 'calcFunc-log x b)
(math-mul lnv b)))))))
(lambda (x b)
(let ((lnv (list 'calcFunc-ln b)))
(math-neg (math-div (list 'calcFunc-log x b)
(math-mul lnv b))))))
(put 'calcFunc-exp\' 'math-derivative-1
(function (lambda (u) (math-normalize (list 'calcFunc-exp u)))))
(lambda (u) (math-normalize (list 'calcFunc-exp u))))
(put 'calcFunc-expm1\' 'math-derivative-1
(function (lambda (u) (math-normalize (list 'calcFunc-expm1 u)))))
(lambda (u) (math-normalize (list 'calcFunc-expm1 u))))
(put 'calcFunc-sin\' 'math-derivative-1
(function (lambda (u) (math-to-radians-2 (math-normalize
(list 'calcFunc-cos u)) t))))
(lambda (u) (math-to-radians-2 (math-normalize
(list 'calcFunc-cos u)) t)))
(put 'calcFunc-cos\' 'math-derivative-1
(function (lambda (u) (math-neg (math-to-radians-2
(math-normalize
(list 'calcFunc-sin u)) t)))))
(lambda (u) (math-neg (math-to-radians-2
(math-normalize
(list 'calcFunc-sin u)) t))))
(put 'calcFunc-tan\' 'math-derivative-1
(function (lambda (u) (math-to-radians-2
(math-sqr
(math-normalize
(list 'calcFunc-sec u))) t))))
(lambda (u) (math-to-radians-2
(math-sqr
(math-normalize
(list 'calcFunc-sec u))) t)))
(put 'calcFunc-sec\' 'math-derivative-1
(function (lambda (u) (math-to-radians-2
(math-mul
(math-normalize
(list 'calcFunc-sec u))
(math-normalize
(list 'calcFunc-tan u))) t))))
(lambda (u) (math-to-radians-2
(math-mul
(math-normalize
(list 'calcFunc-sec u))
(math-normalize
(list 'calcFunc-tan u))) t)))
(put 'calcFunc-csc\' 'math-derivative-1
(function (lambda (u) (math-neg
(math-to-radians-2
(math-mul
(math-normalize
(list 'calcFunc-csc u))
(math-normalize
(list 'calcFunc-cot u))) t)))))
(lambda (u) (math-neg
(math-to-radians-2
(math-mul
(math-normalize
(list 'calcFunc-csc u))
(math-normalize
(list 'calcFunc-cot u))) t))))
(put 'calcFunc-cot\' 'math-derivative-1
(function (lambda (u) (math-neg
(math-to-radians-2
(math-sqr
(math-normalize
(list 'calcFunc-csc u))) t)))))
(lambda (u) (math-neg
(math-to-radians-2
(math-sqr
(math-normalize
(list 'calcFunc-csc u))) t))))
(put 'calcFunc-arcsin\' 'math-derivative-1
(function (lambda (u)
(math-from-radians-2
(math-div 1 (math-normalize
(list 'calcFunc-sqrt
(math-sub 1 (math-sqr u))))) t))))
(lambda (u)
(math-from-radians-2
(math-div 1 (math-normalize
(list 'calcFunc-sqrt
(math-sub 1 (math-sqr u))))) t)))
(put 'calcFunc-arccos\' 'math-derivative-1
(function (lambda (u)
(math-from-radians-2
(math-div -1 (math-normalize
(list 'calcFunc-sqrt
(math-sub 1 (math-sqr u))))) t))))
(lambda (u)
(math-from-radians-2
(math-div -1 (math-normalize
(list 'calcFunc-sqrt
(math-sub 1 (math-sqr u))))) t)))
(put 'calcFunc-arctan\' 'math-derivative-1
(function (lambda (u) (math-from-radians-2
(math-div 1 (math-add 1 (math-sqr u))) t))))
(lambda (u) (math-from-radians-2
(math-div 1 (math-add 1 (math-sqr u))) t)))
(put 'calcFunc-sinh\' 'math-derivative-1
(function (lambda (u) (math-normalize (list 'calcFunc-cosh u)))))
(lambda (u) (math-normalize (list 'calcFunc-cosh u))))
(put 'calcFunc-cosh\' 'math-derivative-1
(function (lambda (u) (math-normalize (list 'calcFunc-sinh u)))))
(lambda (u) (math-normalize (list 'calcFunc-sinh u))))
(put 'calcFunc-tanh\' 'math-derivative-1
(function (lambda (u) (math-sqr
(math-normalize
(list 'calcFunc-sech u))))))
(lambda (u) (math-sqr
(math-normalize
(list 'calcFunc-sech u)))))
(put 'calcFunc-sech\' 'math-derivative-1
(function (lambda (u) (math-neg
(math-mul
(math-normalize (list 'calcFunc-sech u))
(math-normalize (list 'calcFunc-tanh u)))))))
(lambda (u) (math-neg
(math-mul
(math-normalize (list 'calcFunc-sech u))
(math-normalize (list 'calcFunc-tanh u))))))
(put 'calcFunc-csch\' 'math-derivative-1
(function (lambda (u) (math-neg
(math-mul
(math-normalize (list 'calcFunc-csch u))
(math-normalize (list 'calcFunc-coth u)))))))
(lambda (u) (math-neg
(math-mul
(math-normalize (list 'calcFunc-csch u))
(math-normalize (list 'calcFunc-coth u))))))
(put 'calcFunc-coth\' 'math-derivative-1
(function (lambda (u) (math-neg
(math-sqr
(math-normalize
(list 'calcFunc-csch u)))))))
(lambda (u) (math-neg
(math-sqr
(math-normalize
(list 'calcFunc-csch u))))))
(put 'calcFunc-arcsinh\' 'math-derivative-1
(function (lambda (u)
(math-div 1 (math-normalize
(list 'calcFunc-sqrt
(math-add (math-sqr u) 1)))))))
(lambda (u)
(math-div 1 (math-normalize
(list 'calcFunc-sqrt
(math-add (math-sqr u) 1))))))
(put 'calcFunc-arccosh\' 'math-derivative-1
(function (lambda (u)
(math-div 1 (math-normalize
(list 'calcFunc-sqrt
(math-add (math-sqr u) -1)))))))
(lambda (u)
(math-div 1 (math-normalize
(list 'calcFunc-sqrt
(math-add (math-sqr u) -1))))))
(put 'calcFunc-arctanh\' 'math-derivative-1
(function (lambda (u) (math-div 1 (math-sub 1 (math-sqr u))))))
(lambda (u) (math-div 1 (math-sub 1 (math-sqr u)))))
(put 'calcFunc-bern\'2 'math-derivative-2
(function (lambda (n x)
(math-mul n (list 'calcFunc-bern (math-add n -1) x)))))
(lambda (n x)
(math-mul n (list 'calcFunc-bern (math-add n -1) x))))
(put 'calcFunc-euler\'2 'math-derivative-2
(function (lambda (n x)
(math-mul n (list 'calcFunc-euler (math-add n -1) x)))))
(lambda (n x)
(math-mul n (list 'calcFunc-euler (math-add n -1) x))))
(put 'calcFunc-gammag\'2 'math-derivative-2
(function (lambda (a x) (math-deriv-gamma a x 1))))
(lambda (a x) (math-deriv-gamma a x 1)))
(put 'calcFunc-gammaG\'2 'math-derivative-2
(function (lambda (a x) (math-deriv-gamma a x -1))))
(lambda (a x) (math-deriv-gamma a x -1)))
(put 'calcFunc-gammaP\'2 'math-derivative-2
(function (lambda (a x) (math-deriv-gamma a x
(math-div
1 (math-normalize
(list 'calcFunc-gamma
a)))))))
(lambda (a x) (math-deriv-gamma a x
(math-div
1 (math-normalize
(list 'calcFunc-gamma
a))))))
(put 'calcFunc-gammaQ\'2 'math-derivative-2
(function (lambda (a x) (math-deriv-gamma a x
(math-div
-1 (math-normalize
(list 'calcFunc-gamma
a)))))))
(lambda (a x) (math-deriv-gamma a x
(math-div
-1 (math-normalize
(list 'calcFunc-gamma
a))))))
(defun math-deriv-gamma (a x scale)
(math-mul scale
@ -537,13 +537,13 @@
(list 'calcFunc-exp (math-neg x)))))
(put 'calcFunc-betaB\' 'math-derivative-3
(function (lambda (x a b) (math-deriv-beta x a b 1))))
(lambda (x a b) (math-deriv-beta x a b 1)))
(put 'calcFunc-betaI\' 'math-derivative-3
(function (lambda (x a b) (math-deriv-beta x a b
(math-div
1 (list 'calcFunc-beta
a b))))))
(lambda (x a b) (math-deriv-beta x a b
(math-div
1 (list 'calcFunc-beta
a b)))))
(defun math-deriv-beta (x a b scale)
(math-mul (math-mul (math-pow x (math-add a -1))
@ -551,101 +551,96 @@
scale))
(put 'calcFunc-erf\' 'math-derivative-1
(function (lambda (x) (math-div 2
(math-mul (list 'calcFunc-exp
(math-sqr x))
(if calc-symbolic-mode
'(calcFunc-sqrt
(var pi var-pi))
(math-sqrt-pi)))))))
(lambda (x) (math-div 2
(math-mul (list 'calcFunc-exp
(math-sqr x))
(if calc-symbolic-mode
'(calcFunc-sqrt
(var pi var-pi))
(math-sqrt-pi))))))
(put 'calcFunc-erfc\' 'math-derivative-1
(function (lambda (x) (math-div -2
(math-mul (list 'calcFunc-exp
(math-sqr x))
(if calc-symbolic-mode
'(calcFunc-sqrt
(var pi var-pi))
(math-sqrt-pi)))))))
(lambda (x) (math-div -2
(math-mul (list 'calcFunc-exp
(math-sqr x))
(if calc-symbolic-mode
'(calcFunc-sqrt
(var pi var-pi))
(math-sqrt-pi))))))
(put 'calcFunc-besJ\'2 'math-derivative-2
(function (lambda (v z) (math-div (math-sub (list 'calcFunc-besJ
(math-add v -1)
z)
(list 'calcFunc-besJ
(math-add v 1)
z))
2))))
(lambda (v z) (math-div (math-sub (list 'calcFunc-besJ
(math-add v -1)
z)
(list 'calcFunc-besJ
(math-add v 1)
z))
2)))
(put 'calcFunc-besY\'2 'math-derivative-2
(function (lambda (v z) (math-div (math-sub (list 'calcFunc-besY
(math-add v -1)
z)
(list 'calcFunc-besY
(math-add v 1)
z))
2))))
(lambda (v z) (math-div (math-sub (list 'calcFunc-besY
(math-add v -1)
z)
(list 'calcFunc-besY
(math-add v 1)
z))
2)))
(put 'calcFunc-sum 'math-derivative-n
(function
(lambda (expr)
(if (math-expr-contains (cons 'vec (cdr (cdr expr))) math-deriv-var)
(throw 'math-deriv nil)
(cons 'calcFunc-sum
(cons (math-derivative (nth 1 expr))
(cdr (cdr expr))))))))
(lambda (expr)
(if (math-expr-contains (cons 'vec (cdr (cdr expr))) math-deriv-var)
(throw 'math-deriv nil)
(cons 'calcFunc-sum
(cons (math-derivative (nth 1 expr))
(cdr (cdr expr)))))))
(put 'calcFunc-prod 'math-derivative-n
(function
(lambda (expr)
(if (math-expr-contains (cons 'vec (cdr (cdr expr))) math-deriv-var)
(throw 'math-deriv nil)
(math-mul expr
(cons 'calcFunc-sum
(cons (math-div (math-derivative (nth 1 expr))
(nth 1 expr))
(cdr (cdr expr)))))))))
(lambda (expr)
(if (math-expr-contains (cons 'vec (cdr (cdr expr))) math-deriv-var)
(throw 'math-deriv nil)
(math-mul expr
(cons 'calcFunc-sum
(cons (math-div (math-derivative (nth 1 expr))
(nth 1 expr))
(cdr (cdr expr))))))))
(put 'calcFunc-integ 'math-derivative-n
(function
(lambda (expr)
(if (= (length expr) 3)
(if (equal (nth 2 expr) math-deriv-var)
(nth 1 expr)
(math-normalize
(list 'calcFunc-integ
(math-derivative (nth 1 expr))
(nth 2 expr))))
(if (= (length expr) 5)
(let ((lower (math-expr-subst (nth 1 expr) (nth 2 expr)
(nth 3 expr)))
(upper (math-expr-subst (nth 1 expr) (nth 2 expr)
(nth 4 expr))))
(math-add (math-sub (math-mul upper
(math-derivative (nth 4 expr)))
(math-mul lower
(math-derivative (nth 3 expr))))
(if (equal (nth 2 expr) math-deriv-var)
0
(math-normalize
(list 'calcFunc-integ
(math-derivative (nth 1 expr)) (nth 2 expr)
(nth 3 expr) (nth 4 expr)))))))))))
(lambda (expr)
(if (= (length expr) 3)
(if (equal (nth 2 expr) math-deriv-var)
(nth 1 expr)
(math-normalize
(list 'calcFunc-integ
(math-derivative (nth 1 expr))
(nth 2 expr))))
(if (= (length expr) 5)
(let ((lower (math-expr-subst (nth 1 expr) (nth 2 expr)
(nth 3 expr)))
(upper (math-expr-subst (nth 1 expr) (nth 2 expr)
(nth 4 expr))))
(math-add (math-sub (math-mul upper
(math-derivative (nth 4 expr)))
(math-mul lower
(math-derivative (nth 3 expr))))
(if (equal (nth 2 expr) math-deriv-var)
0
(math-normalize
(list 'calcFunc-integ
(math-derivative (nth 1 expr)) (nth 2 expr)
(nth 3 expr) (nth 4 expr))))))))))
(put 'calcFunc-if 'math-derivative-n
(function
(lambda (expr)
(and (= (length expr) 4)
(list 'calcFunc-if (nth 1 expr)
(math-derivative (nth 2 expr))
(math-derivative (nth 3 expr)))))))
(lambda (expr)
(and (= (length expr) 4)
(list 'calcFunc-if (nth 1 expr)
(math-derivative (nth 2 expr))
(math-derivative (nth 3 expr))))))
(put 'calcFunc-subscr 'math-derivative-n
(function
(lambda (expr)
(and (= (length expr) 3)
(list 'calcFunc-subscr (nth 1 expr)
(math-derivative (nth 2 expr)))))))
(lambda (expr)
(and (= (length expr) 3)
(list 'calcFunc-subscr (nth 1 expr)
(math-derivative (nth 2 expr))))))
(defvar math-integ-var '(var X ---))
@ -1015,11 +1010,10 @@
res '(calcFunc-integsubst)))
(and (memq (length part) '(3 4 5))
(let ((parts (mapcar
(function
(lambda (x)
(math-expr-subst
x (nth 2 part)
math-integ-var)))
(lambda (x)
(math-expr-subst
x (nth 2 part)
math-integ-var))
(cdr part))))
(math-integrate-by-substitution
expr (car parts) t
@ -1516,7 +1510,7 @@
var low high)
(nth 2 (nth 2 expr))))
((eq (car-safe expr) 'vec)
(cons 'vec (mapcar (function (lambda (x) (calcFunc-integ x var low high)))
(cons 'vec (mapcar (lambda (x) (calcFunc-integ x var low high))
(cdr expr))))
(t
(let ((state (list calc-angle-mode
@ -2742,28 +2736,27 @@
math-t1 math-t2 math-t3)
(setq math-t2 (math-polynomial-base
math-solve-lhs
(function
(lambda (solve-b)
(let ((math-solve-b solve-b)
(math-poly-neg-powers '(1))
(math-poly-mult-powers nil)
(math-poly-frac-powers 1)
(math-poly-exp-base t))
(and (not (equal math-solve-b math-solve-lhs))
(or (not (memq (car-safe math-solve-b) '(+ -))) sub-rhs)
(setq math-t3 '(1 0) math-t2 1
math-t1 (math-is-polynomial math-solve-lhs
math-solve-b 50))
(if (and (equal math-poly-neg-powers '(1))
(memq math-poly-mult-powers '(nil 1))
(eq math-poly-frac-powers 1)
sub-rhs)
(setq math-t1 (cons (math-sub (car math-t1) math-solve-rhs)
(cdr math-t1)))
(math-solve-poly-funny-powers sub-rhs))
(math-solve-crunch-poly degree)
(or (math-expr-contains math-solve-b math-solve-var)
(math-expr-contains (car math-t3) math-solve-var))))))))
(lambda (solve-b)
(let ((math-solve-b solve-b)
(math-poly-neg-powers '(1))
(math-poly-mult-powers nil)
(math-poly-frac-powers 1)
(math-poly-exp-base t))
(and (not (equal math-solve-b math-solve-lhs))
(or (not (memq (car-safe math-solve-b) '(+ -))) sub-rhs)
(setq math-t3 '(1 0) math-t2 1
math-t1 (math-is-polynomial math-solve-lhs
math-solve-b 50))
(if (and (equal math-poly-neg-powers '(1))
(memq math-poly-mult-powers '(nil 1))
(eq math-poly-frac-powers 1)
sub-rhs)
(setq math-t1 (cons (math-sub (car math-t1) math-solve-rhs)
(cdr math-t1)))
(math-solve-poly-funny-powers sub-rhs))
(math-solve-crunch-poly degree)
(or (math-expr-contains math-solve-b math-solve-var)
(math-expr-contains (car math-t3) math-solve-var)))))))
(if math-t2
(list (math-pow math-t2 (car math-t3))
(cons 'vec math-t1)
@ -3326,12 +3319,11 @@
(delq (car v) (copy-sequence var-list))
(let ((math-solve-simplifying nil)
(s (mapcar
(function
(lambda (x)
(cons
(car x)
(math-solve-system-subst
(cdr x)))))
(lambda (x)
(cons
(car x)
(math-solve-system-subst
(cdr x))))
solns)))
(if elim
s
@ -3347,35 +3339,33 @@
;; Eliminated all variables, so now put solution into the proper format.
(setq solns (sort solns
(function
(lambda (x y)
(not (memq (car x) (memq (car y) math-solve-vars)))))))
(lambda (x y)
(not (memq (car x) (memq (car y) math-solve-vars))))))
(if (eq math-solve-full 'all)
(math-transpose
(math-normalize
(cons 'vec
(if solns
(mapcar (function (lambda (x) (cons 'vec (cdr x)))) solns)
(mapcar (function (lambda (x) (cons 'vec x))) eqn-list)))))
(mapcar (lambda (x) (cons 'vec (cdr x))) solns)
(mapcar (lambda (x) (cons 'vec x)) eqn-list)))))
(math-normalize
(cons 'vec
(if solns
(mapcar (function (lambda (x) (cons 'calcFunc-eq x))) solns)
(mapcar 'car eqn-list)))))))
(mapcar (lambda (x) (cons 'calcFunc-eq x)) solns)
(mapcar #'car eqn-list)))))))
(defun math-solve-system-subst (x) ; uses "res" and "v"
(let ((accum nil)
(res2 math-solve-system-res))
(while x
(setq accum (nconc accum
(mapcar (function
(lambda (r)
(if math-solve-simplifying
(math-simplify
(math-expr-subst
(car x) math-solve-system-vv r))
(math-expr-subst
(car x) math-solve-system-vv r))))
(mapcar (lambda (r)
(if math-solve-simplifying
(math-simplify
(math-expr-subst
(car x) math-solve-system-vv r))
(math-expr-subst
(car x) math-solve-system-vv r)))
(car res2)))
x (cdr x)
res2 (cdr res2)))
@ -3471,11 +3461,10 @@
(let ((old-len (length res))
new-len)
(setq res (delq nil
(mapcar (function
(lambda (x)
(and (not (memq (car-safe x)
'(cplx polar)))
x)))
(mapcar (lambda (x)
(and (not (memq (car-safe x)
'(cplx polar)))
x))
res))
new-len (length res))
(if (< new-len old-len)
@ -3545,119 +3534,119 @@
(put 'calcFunc-inv 'math-inverse
(function (lambda (x) (math-div 1 x))))
(lambda (x) (math-div 1 x)))
(put 'calcFunc-inv 'math-inverse-sign -1)
(put 'calcFunc-sqrt 'math-inverse
(function (lambda (x) (math-sqr x))))
(lambda (x) (math-sqr x)))
(put 'calcFunc-conj 'math-inverse
(function (lambda (x) (list 'calcFunc-conj x))))
(lambda (x) (list 'calcFunc-conj x)))
(put 'calcFunc-abs 'math-inverse
(function (lambda (x) (math-solve-get-sign x))))
(lambda (x) (math-solve-get-sign x)))
(put 'calcFunc-deg 'math-inverse
(function (lambda (x) (list 'calcFunc-rad x))))
(lambda (x) (list 'calcFunc-rad x)))
(put 'calcFunc-deg 'math-inverse-sign 1)
(put 'calcFunc-rad 'math-inverse
(function (lambda (x) (list 'calcFunc-deg x))))
(lambda (x) (list 'calcFunc-deg x)))
(put 'calcFunc-rad 'math-inverse-sign 1)
(put 'calcFunc-ln 'math-inverse
(function (lambda (x) (list 'calcFunc-exp x))))
(lambda (x) (list 'calcFunc-exp x)))
(put 'calcFunc-ln 'math-inverse-sign 1)
(put 'calcFunc-log10 'math-inverse
(function (lambda (x) (list 'calcFunc-exp10 x))))
(lambda (x) (list 'calcFunc-exp10 x)))
(put 'calcFunc-log10 'math-inverse-sign 1)
(put 'calcFunc-lnp1 'math-inverse
(function (lambda (x) (list 'calcFunc-expm1 x))))
(lambda (x) (list 'calcFunc-expm1 x)))
(put 'calcFunc-lnp1 'math-inverse-sign 1)
(put 'calcFunc-exp 'math-inverse
(function (lambda (x) (math-add (math-normalize (list 'calcFunc-ln x))
(math-mul 2
(math-mul '(var pi var-pi)
(math-solve-get-int
'(var i var-i))))))))
(lambda (x) (math-add (math-normalize (list 'calcFunc-ln x))
(math-mul 2
(math-mul '(var pi var-pi)
(math-solve-get-int
'(var i var-i)))))))
(put 'calcFunc-exp 'math-inverse-sign 1)
(put 'calcFunc-expm1 'math-inverse
(function (lambda (x) (math-add (math-normalize (list 'calcFunc-lnp1 x))
(math-mul 2
(math-mul '(var pi var-pi)
(math-solve-get-int
'(var i var-i))))))))
(lambda (x) (math-add (math-normalize (list 'calcFunc-lnp1 x))
(math-mul 2
(math-mul '(var pi var-pi)
(math-solve-get-int
'(var i var-i)))))))
(put 'calcFunc-expm1 'math-inverse-sign 1)
(put 'calcFunc-sin 'math-inverse
(function (lambda (x) (let ((n (math-solve-get-int 1)))
(math-add (math-mul (math-normalize
(list 'calcFunc-arcsin x))
(math-pow -1 n))
(math-mul (math-half-circle t)
n))))))
(lambda (x) (let ((n (math-solve-get-int 1)))
(math-add (math-mul (math-normalize
(list 'calcFunc-arcsin x))
(math-pow -1 n))
(math-mul (math-half-circle t)
n)))))
(put 'calcFunc-cos 'math-inverse
(function (lambda (x) (math-add (math-solve-get-sign
(math-normalize
(list 'calcFunc-arccos x)))
(math-solve-get-int
(math-full-circle t))))))
(lambda (x) (math-add (math-solve-get-sign
(math-normalize
(list 'calcFunc-arccos x)))
(math-solve-get-int
(math-full-circle t)))))
(put 'calcFunc-tan 'math-inverse
(function (lambda (x) (math-add (math-normalize (list 'calcFunc-arctan x))
(math-solve-get-int
(math-half-circle t))))))
(lambda (x) (math-add (math-normalize (list 'calcFunc-arctan x))
(math-solve-get-int
(math-half-circle t)))))
(put 'calcFunc-arcsin 'math-inverse
(function (lambda (x) (math-normalize (list 'calcFunc-sin x)))))
(lambda (x) (math-normalize (list 'calcFunc-sin x))))
(put 'calcFunc-arccos 'math-inverse
(function (lambda (x) (math-normalize (list 'calcFunc-cos x)))))
(lambda (x) (math-normalize (list 'calcFunc-cos x))))
(put 'calcFunc-arctan 'math-inverse
(function (lambda (x) (math-normalize (list 'calcFunc-tan x)))))
(lambda (x) (math-normalize (list 'calcFunc-tan x))))
(put 'calcFunc-sinh 'math-inverse
(function (lambda (x) (let ((n (math-solve-get-int 1)))
(math-add (math-mul (math-normalize
(list 'calcFunc-arcsinh x))
(math-pow -1 n))
(math-mul (math-half-circle t)
(math-mul
'(var i var-i)
n)))))))
(lambda (x) (let ((n (math-solve-get-int 1)))
(math-add (math-mul (math-normalize
(list 'calcFunc-arcsinh x))
(math-pow -1 n))
(math-mul (math-half-circle t)
(math-mul
'(var i var-i)
n))))))
(put 'calcFunc-sinh 'math-inverse-sign 1)
(put 'calcFunc-cosh 'math-inverse
(function (lambda (x) (math-add (math-solve-get-sign
(math-normalize
(list 'calcFunc-arccosh x)))
(math-mul (math-full-circle t)
(math-solve-get-int
'(var i var-i)))))))
(lambda (x) (math-add (math-solve-get-sign
(math-normalize
(list 'calcFunc-arccosh x)))
(math-mul (math-full-circle t)
(math-solve-get-int
'(var i var-i))))))
(put 'calcFunc-tanh 'math-inverse
(function (lambda (x) (math-add (math-normalize
(list 'calcFunc-arctanh x))
(math-mul (math-half-circle t)
(math-solve-get-int
'(var i var-i)))))))
(lambda (x) (math-add (math-normalize
(list 'calcFunc-arctanh x))
(math-mul (math-half-circle t)
(math-solve-get-int
'(var i var-i))))))
(put 'calcFunc-tanh 'math-inverse-sign 1)
(put 'calcFunc-arcsinh 'math-inverse
(function (lambda (x) (math-normalize (list 'calcFunc-sinh x)))))
(lambda (x) (math-normalize (list 'calcFunc-sinh x))))
(put 'calcFunc-arcsinh 'math-inverse-sign 1)
(put 'calcFunc-arccosh 'math-inverse
(function (lambda (x) (math-normalize (list 'calcFunc-cosh x)))))
(lambda (x) (math-normalize (list 'calcFunc-cosh x))))
(put 'calcFunc-arctanh 'math-inverse
(function (lambda (x) (math-normalize (list 'calcFunc-tanh x)))))
(lambda (x) (math-normalize (list 'calcFunc-tanh x))))
(put 'calcFunc-arctanh 'math-inverse-sign 1)

View file

@ -480,13 +480,13 @@
"Fitting variables"
(format "%s; %s"
(mapconcat 'symbol-name
(mapcar (function (lambda (v)
(nth 1 v)))
(mapcar (lambda (v)
(nth 1 v))
defv)
",")
(mapconcat 'symbol-name
(mapcar (function (lambda (v)
(nth 1 v)))
(mapcar (lambda (v)
(nth 1 v))
defc)
",")))))
(coefs nil))
@ -1336,7 +1336,7 @@
(or (> (length (nth 1 data)) 2)
(math-reject-arg data "*Too few data points"))
(if (and (math-vectorp x) (or (math-constp x) math-expand-formulas))
(cons 'vec (mapcar (function (lambda (x) (calcFunc-polint data x)))
(cons 'vec (mapcar (lambda (x) (calcFunc-polint data x))
(cdr x)))
(or (math-objectp x) math-expand-formulas (math-reject-arg x 'objectp))
(math-with-extra-prec 2
@ -1352,7 +1352,7 @@
(or (> (length (nth 1 data)) 2)
(math-reject-arg data "*Too few data points"))
(if (and (math-vectorp x) (or (math-constp x) math-expand-formulas))
(cons 'vec (mapcar (function (lambda (x) (calcFunc-ratint data x)))
(cons 'vec (mapcar (lambda (x) (calcFunc-ratint data x))
(cdr x)))
(or (math-objectp x) math-expand-formulas (math-reject-arg x 'objectp))
(math-with-extra-prec 2
@ -1910,8 +1910,8 @@
(while p
(setq vars (delq (assoc (car-safe p) vars) vars)
p (cdr p)))
(sort (mapcar 'car vars)
(function (lambda (x y) (string< (nth 1 x) (nth 1 y)))))))
(sort (mapcar #'car vars)
(lambda (x y) (string< (nth 1 x) (nth 1 y))))))
;; The variables math-all-vars-vars (the vars for math-all-vars) and
;; math-all-vars-found are local to math-all-vars-in, but are used by