Another question:

--- pp/build-improvements/src/algebra/efstruc.spad.pamphlet     2006-09-08 
02:57:48.000000000 +0200
+++ build-improvements.nn5/src/algebra/efstruc.spad.pamphlet    2006-10-07 
19:51:18.000000000 +0200
@@ -347,8 +347,28 @@
       true
 
     goodCoef(v, l, s) ==
-      for i in minIndex v .. maxIndex v for k in l repeat
-        is?(k, s) and
+      -- if k1 is part of k2 we should not express k1 in terms of k2
+      -- (othewise we would get infinite recursion)
+      -- below we impose a stronger condition: we require
+      -- height(k1) to be maximal
+      h:NonNegativeInteger := 0
+      j:Integer := 0
+      ll : List K := [];
+      for k in l repeat
+        if (is?(k, "log"::SY) or is?(k, "exp"::SY)
+            or is?(k, "tan"::SY) or is?(k, "atan"::SY)) then
+              ll := [k, :ll]
+              h := h + 1
+      not (h = (maxIndex(v) - minIndex(v) + 1)) => "failed"
+      h := 0
+      ll := reverse(ll)
+      for i in minIndex v .. maxIndex v for k in ll repeat
+        h1 := height(k)
+        if (h1 > h) then
+          j := i
+          h := h1
+      for i in minIndex v .. maxIndex v for k in ll repeat
+        is?(k, s) and (i >= j) and
            ((r:=recip(qelt(v,i))) case Q) and
             (retractIfCan(r::Q)@Union(Z, "failed") case Z)
               and gdCoef?(qelt(v, i), v) => return([i, k])


what does

ll := [k, :ll]

do? I have never seen that before, although grep yields some hits.



Martin



_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to