Artifact 871bba9d2e969724f99e2fda6cd1b7fea88bbb32130bdeb4010e5148b34f0422:
- Executable file
r37/packages/xideal/xideal.red
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 5756) [annotate] [blame] [check-ins using] [more...]
- Executable file
r38/packages/xideal/xideal.red
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 5756) [annotate] [blame] [check-ins using]
module xideal; % % XIDEAL V2.4 % % % Authors: David Hartley % GMD - German National Research Center % for Information Technology % D-53754 St Augustin % Germany % % email: David.Hartley@gmd.de % % % Philip A Tuckey % Laboratoire de Physique Mol\'eculaire, % Universit\'e de Franche-Comt\'e, % 25030 Besan\c{}con, % France % % email: pat@rs1.univ-fcomte.fr % % % Description: Tools for calculations with ideals of polynomials in % exterior algebra. Uses Groebner basis algorithms % described in D Hartley and P A Tuckey, "A direct % characterisation of Groebner bases in Clifford and % Grassmann algebras", Preprint MPI-Ph/93-96 1993, and J % Apel "A relationship between Groebner bases of ideals % and vector modules of G-algebras", Contemp % Math 131(1992)195. % % Requires: REDUCE 3.6 patched to 25 Apr 96 or later % % Created: 5/8/92 V0 as ideal.red % % Modified: 4/3/94 V1 Renamed xideal.red % Compiles independently % Converted right reduction and spolys to % left % Added graded lexicographical ordering % Enabled non-graded ideals % Fixed trivial ideal bug % Removed subform % Renamed xtrace -> xstats % 1/12/94 V2 Enable 2-sided ideals % Enable p-forms with p >= 0 % 8/12/95 Added subs2 checking in reduction % 19/1/96 V2.2 Added subs2 checking in xrepartit % Added resimp before subs2 % Fixed rtypes of operators % 16/4/96 V2.3 Added exvars and excoeffs % % % Algebraic mode entry points % % xorder k; % establishes the term order, where k is one of lex, gradlex (graded by % number of factors in term) or deglex (graded by exterior degree of % term.) % % xvars U,V,W,...; % declares which degree 0 kernels are to be regarded as polynomial % variables (rest are coefficient parameters). U,V,W can be variables % or lists of variables. xvars nil, restores the default, in which all % declared 0-forms are polynomial variables. % % xideal(S) xideal(S,V,r) or xideal(S,r) % calculates an exterior Groebner basis for the list of generator S, % with optional 0-form variables V, optionally up to degree r. % % xmodideal(F,S) or F xmodideal S % reduces F with respect to an exterior Groebner basis for the list of % generators S. F may be either a single exterior form, % or a list of forms. % % xmod(F,S) or F xmod S % reduces F with respect to the set of exterior polynomials S, which is % not necessarily a Groebner basis. F may be either a single % exterior form, or a list of forms. This routine can be used in % conjunction with xideal to produce the same effect as xmodideal: % F xmodideal S = F xmod xideal(S,exdegree F). % % xauto(S) % autoreduces the polynomials in S. % % exvars(F) % returns polynomials variables (as defined by xvars) from F % % excoeffs(F) % returns polynomials coefficients (as defined by xvars) from F % % Switches % % xfullreduce - Allows reduced Groebner bases to be calculated % (default ON) % trxideal - Trace spoly and wedge poly production (default OFF) % trxmod - Trace reduction to normal form (default OFF) % % ====================================================================== % Need EXCALC loaded first. load_package 'excalc; create!-package('( xideal % Header module xgroeb % GB calculation xreduct % Normal form algorithms xcrit % Critical pairs, critical values xpowers % Powers, including div relation and lcm. xstorage % Storage and retrieval of critical pairs and polynomials. xaux % Auxiliary functions for XIDEAL xexcalc % Modifications to Eberhard Schruefer's excalc ),'(contrib xideal)); % Switches fluid '(!*xfullreduce !*trxideal !*twosided !*trxmod); switch xfullreduce,trxideal,twosided,trxmod; !*xfullreduce := t; % whether to autoreduce GB !*trxideal := nil; % display new polynomials added to GB !*twosided := nil; % construct GB for two-sided ideal !*trxmod := nil; % display reduction chains % Global variables fluid '(xvars!* xtruncate!* xvarlist!* xdegreelist!* zerodivs!* xpolylist!*); xvars!* := t; % list of variables to include in partition xtruncate!* := nil; % degree at which to truncate GB xvarlist!* := {}; % variables in current problem xdegreelist!* := {}; % a-list of degrees of variables zerodivs!* := {}; % odd degree variables xpolylist!* := {}; % internal list for debugging only % Macros used in other modules smacro procedure xkey pr; car pr; smacro procedure pr_type pr; cadr pr; smacro procedure pr_lhs pr; caddr pr; smacro procedure pr_rhs pr; cadddr pr; smacro procedure empty_xset; '!*xset!* . nil; smacro procedure empty_xsetp c; null cdr c; smacro procedure xset_item c; car c; % Macros from other packages for compilation smacro procedure ldpf u; % from excalc %selector for leading standard form in patitioned sf; caar u; smacro procedure !*k2pf u; % from excalc u .* (1 ./ 1) .+ nil; smacro procedure negpf u; % from excalc multpfsq(u,(-1) ./ 1); smacro procedure get!*fdeg u; % from excalc (if x then car x else nil) where x = get(u,'fdegree); smacro procedure get!*ifdeg u; % from excalc (if x then cdr x else nil) where x = assoc(length cdr u,get(car u,'ifdegree)); endmodule; end;