Waldek,

I have a few more patches that I would like to get into FriCAS before
the next release but really none of them are "critical".  Here's one
for XPOLY. It adds a couple of missing functions.  I first mentioned
this patch here:

http://lists.gnu.org/archive/html/axiom-math/2006-03/msg00003.html

Index: src/algebra/xpoly.spad.pamphlet
===================================================================
--- src/algebra/xpoly.spad.pamphlet     (revision 684)
+++ src/algebra/xpoly.spad.pamphlet     (working copy)
@@ -116,6 +116,27 @@
           (r := lquo (u,l)) case "failed" => "failed"
           reverse_! (r::%)

+        -- Inserted by Bill Page, based on 'divide' from 'FreeMonoid'
+        (lar:% div a:%) ==
+            (a = 1) => [lar, 1]
+            Na   : Integer := #(la := listOfMonoms(a)$Rep)
+            Nlar : Integer := #(llar := listOfMonoms(lar)$Rep)
+            l:List(REC) := empty()
+            while Na <= Nlar repeat
+              if llar.first.gen = la.first.gen and
+                 llar.first.exp >= la.first.exp then
+                -- Can match a portion of this lar factor.
+                -- Now match tail.
+                (q:=lquo(makeMulti rest llar,makeMulti rest la))case $ =>
+                   if llar.first.exp > la.first.exp then
+                       l := concat_!(l, [la.first.gen,
+                                  (llar.first.exp - la.first.exp)::NNI])
+                   return [makeMulti l, q::%]
+              l    := concat_!(l, first llar)
+              llar  := rest llar
+              Nlar := Nlar - 1
+            "failed"
+
         length x == reduce("+" ,[f.exp for f in listOfMonoms x], 0)

         varList x ==
@@ -517,6 +538,8 @@

     -- definitions

+       monom(w, r) == [[w,r]]
+       coerce(x:WORD):% == monom(x,1$R)
        mindegTerm p == last(p)$Rep

        if R has CommutativeRing then

---

I will try to send a few more like this ASAP.

Regards,
Bill Page.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/fricas-devel?hl=en
-~----------~----~----~----~------~----~------~--~---

Index: src/algebra/xpoly.spad.pamphlet
===================================================================
--- src/algebra/xpoly.spad.pamphlet	(revision 684)
+++ src/algebra/xpoly.spad.pamphlet	(working copy)
@@ -116,6 +116,27 @@
           (r := lquo (u,l)) case "failed" => "failed"
           reverse_! (r::%)
 
+        -- Inserted by Bill Page, based on 'divide' from 'FreeMonoid'
+        (lar:% div a:%) ==
+            (a = 1) => [lar, 1]
+            Na   : Integer := #(la := listOfMonoms(a)$Rep)
+            Nlar : Integer := #(llar := listOfMonoms(lar)$Rep)
+            l:List(REC) := empty()
+            while Na <= Nlar repeat
+              if llar.first.gen = la.first.gen and
+                 llar.first.exp >= la.first.exp then
+                -- Can match a portion of this lar factor.
+                -- Now match tail.
+                (q:=lquo(makeMulti rest llar,makeMulti rest la))case $ =>
+                   if llar.first.exp > la.first.exp then
+                       l := concat_!(l, [la.first.gen,
+                                  (llar.first.exp - la.first.exp)::NNI])
+                   return [makeMulti l, q::%]
+              l    := concat_!(l, first llar)
+              llar  := rest llar
+              Nlar := Nlar - 1
+            "failed"
+
         length x == reduce("+" ,[f.exp for f in listOfMonoms x], 0)
 
         varList x ==
@@ -517,6 +538,8 @@
 
     -- definitions
 
+       monom(w, r) == [[w,r]]
+       coerce(x:WORD):% == monom(x,1$R)
        mindegTerm p == last(p)$Rep
 
        if R has CommutativeRing then

Reply via email to