Function: calc-DistribRules
calc-DistribRules is an autoloaded and byte-compiled function defined
in calc-rules.el.gz.
Signature
(calc-DistribRules)
Documentation
DistribRules
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-rules.el.gz
(defun calc-DistribRules ()
"DistribRules"
(calc-compile-rule-set
"DistribRules" "[
iterations(1),
x * select(a + b) := x*select(a) + x*b,
x * select(sum(a,b,c,d)) := sum(x*select(a),b,c,d),
x / select(a + b) := 1 / (select(a)/x + b/x),
select(a + b) / x := select(a)/x + b/x,
sum(select(a),b,c,d) / x := sum(select(a)/x,b,c,d),
x ^ select(a + b) := x^select(a) * x^b,
x ^ select(sum(a,b,c,d)) := prod(x^select(a),b,c,d),
x ^ select(a * b) := (x^a)^select(b),
x ^ select(a / b) := (x^a)^select(1/b),
select(a + b) ^ n := select(x)
:: integer(n) :: n >= 2
:: let(x, expandpow(a+b,n))
:: quote(matches(x,y+z)),
select(a + b) ^ x := a*select(a+b)^(x-1) + b*select(a+b)^(x-1),
select(a * b) ^ x := a^x * select(b)^x,
select(prod(a,b,c,d)) ^ x := prod(select(a)^x,b,c,d),
select(a / b) ^ x := select(a)^x / b^x,
select(- a) ^ x := (-1)^x * select(a)^x,
plain(-select(a + b)) := select(-a) - b,
plain(-select(sum(a,b,c,d))) := sum(select(-a),b,c,d),
plain(-select(a * b)) := select(-a) * b,
plain(-select(a / b)) := select(-a) / b,
sqrt(select(a * b)) := sqrt(select(a)) * sqrt(b),
sqrt(select(prod(a,b,c,d))) := prod(sqrt(select(a)),b,c,d),
sqrt(select(a / b)) := sqrt(select(a)) / sqrt(b),
sqrt(select(- a)) := sqrt(-1) sqrt(select(a)),
exp(select(a + b)) := exp(select(a)) / exp(-b) :: negative(b),
exp(select(a + b)) := exp(select(a)) * exp(b),
exp(select(sum(a,b,c,d))) := prod(exp(select(a)),b,c,d),
exp(select(a * b)) := exp(select(a)) ^ b :: constant(b),
exp(select(a * b)) := exp(select(a)) ^ b,
exp(select(a / b)) := exp(select(a)) ^ (1/b),
ln(select(a * b)) := ln(select(a)) + ln(b),
ln(select(prod(a,b,c,d))) := sum(ln(select(a)),b,c,d),
ln(select(a / b)) := ln(select(a)) - ln(b),
ln(select(a ^ b)) := ln(select(a)) * b,
log10(select(a * b)) := log10(select(a)) + log10(b),
log10(select(prod(a,b,c,d))) := sum(log10(select(a)),b,c,d),
log10(select(a / b)) := log10(select(a)) - log10(b),
log10(select(a ^ b)) := log10(select(a)) * b,
log(select(a * b), x) := log(select(a), x) + log(b,x),
log(select(prod(a,b,c,d)),x) := sum(log(select(a),x),b,c,d),
log(select(a / b), x) := log(select(a), x) - log(b,x),
log(select(a ^ b), x) := log(select(a), x) * b,
log(a, select(b)) := ln(a) / select(ln(b)),
sin(select(a + b)) := sin(select(a)) cos(b) + cos(a) sin(b),
sin(select(2 a)) := 2 sin(select(a)) cos(a),
sin(select(n a)) := 2sin((n-1) select(a)) cos(a) - sin((n-2) a)
:: integer(n) :: n > 2,
cos(select(a + b)) := cos(select(a)) cos(b) - sin(a) sin(b),
cos(select(2 a)) := 2 cos(select(a))^2 - 1,
cos(select(n a)) := 2cos((n-1) select(a)) cos(a) - cos((n-2) a)
:: integer(n) :: n > 2,
tan(select(a + b)) := (tan(select(a)) + tan(b)) /
(1 - tan(a) tan(b)),
tan(select(2 a)) := 2 tan(select(a)) / (1 - tan(a)^2),
tan(select(n a)) := (tan((n-1) select(a)) + tan(a)) /
(1 - tan((n-1) a) tan(a))
:: integer(n) :: n > 2,
cot(select(a + b)) := (cot(select(a)) cot(b) - 1) /
(cot(a) + cot(b)),
sinh(select(a + b)) := sinh(select(a)) cosh(b) + cosh(a) sinh(b),
cosh(select(a + b)) := cosh(select(a)) cosh(b) + sinh(a) sinh(b),
tanh(select(a + b)) := (tanh(select(a)) + tanh(b)) /
(1 + tanh(a) tanh(b)),
coth(select(a + b)) := (coth(select(a)) coth(b) + 1) /
(coth(a) + coth(b)),
x && select(a || b) := (x && select(a)) || (x && b),
select(a || b) && x := (select(a) && x) || (b && x),
! select(a && b) := (!a) || (!b),
! select(a || b) := (!a) && (!b) ]"))