In MARK+3 (src/db.lisp), quiet warning from SBCL about "Derived type conflicting...
[maxima.git] / share / contrib / sarag / sarag_initialization.mac
blob2c731ee3ee0b09bae9657a8e261bc914b0b1fe4d
1 /* It makes the linear solver non-verbose */
2 linsolvewarn : false;
4 /* Necessary to use "lcm" */
5 /*load("functs"); */
7 /* Fix for the wrong redefinition of "evenp" and "oddp" */
8 /* introduced in Maxima 5.9.3-3 */
9 /* evenp(i) := is(mod(i,2)=0); */
10 /* oddp(i) := is(mod(i,2)=1); */
12 /* 
13 lcm(a,b) := ratexpand(a*b/gcd(a,b));
16 lst_gcd(lst) := 
17   if length(lst) = 1 then 
18     lst[1]
19   else
20     if length(lst) = 2 then
21       pair_gcd(lst[1],lst[2])
22     else
23       lst_gcd(cons(pair_gcd(lst[1],lst[2]),rest(lst,2)));
25 pair_gcd(lhs,rhs) := gcd(lhs,rhs); /* just to avoid name conflicts */
27 pair_lcm(lhs,rhs) := ratexpand((lhs*rhs)/pair_gcd(lhs,rhs));
30 lst_lcm(lst) := 
31   if length(lst) = 1 then
32     lst[1]
33   else
34     if length(lst) = 2 then
35       pair_lcm(lst[1],lst[2])
36     else
37       lst_lcm(cons(pair_lcm(lst[1],lst[2]),rest(lst,2)));
39 lcm([lst]) := lst_lcm(lst);
41 sarag_lcm([lst]) := lst_lcm(lst);