diff options
author | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
commit | ab8cc85adde879fb963c94d15675783f2cf4b183 (patch) | |
tree | c202482327f474583b750b2c45dedfc4e4312b1d /src/algebra/nsregset.spad.pamphlet | |
download | open-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz |
Initial population.
Diffstat (limited to 'src/algebra/nsregset.spad.pamphlet')
-rw-r--r-- | src/algebra/nsregset.spad.pamphlet | 203 |
1 files changed, 203 insertions, 0 deletions
diff --git a/src/algebra/nsregset.spad.pamphlet b/src/algebra/nsregset.spad.pamphlet new file mode 100644 index 00000000..13d90b21 --- /dev/null +++ b/src/algebra/nsregset.spad.pamphlet @@ -0,0 +1,203 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/algebra nsregset.spad} +\author{Marc Moreno Maza} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{category SNTSCAT SquareFreeNormalizedTriangularSetCategory} +<<category SNTSCAT SquareFreeNormalizedTriangularSetCategory>>= +)abbrev category SNTSCAT SquareFreeNormalizedTriangularSetCategory +++ Author: Marc Moreno Maza +++ Date Created: 10/07/1998 +++ Date Last Updated: 12/16/1998 +++ Basic Functions: +++ Related Constructors: +++ Also See: essai Graphisme +++ AMS Classifications: +++ Keywords: polynomial, multivariate, ordered variables set +++ Description: +++ The category of square-free and normalized triangular sets. +++ Thus, up to the primitivity axiom of [1], these sets are Lazard +++ triangular sets.\newline +++ References : +++ [1] D. LAZARD "A new method for solving algebraic systems of +++ positive dimension" Discr. App. Math. 33:147-160,1991 +SquareFreeNormalizedTriangularSetCategory(R:GcdDomain,E:OrderedAbelianMonoidSup,_ + V:OrderedSet,P:RecursivePolynomialCategory(R,E,V)): + Category == + Join(SquareFreeRegularTriangularSetCategory(R,E,V,P), NormalizedTriangularSetCategory(R,E,V,P)) + +@ +\section{package LAZM3PK LazardSetSolvingPackage} +<<package LAZM3PK LazardSetSolvingPackage>>= +)abbrev package LAZM3PK LazardSetSolvingPackage +++ Author: Marc Moreno Maza +++ Date Created: 10/02/1998 +++ Date Last Updated: 12/16/1998 +++ Basic Functions: +++ Related Constructors: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ Description: +++ A package for solving polynomial systems by means of Lazard triangular +++ sets [1]. +++ This package provides two operations. One for solving in the sense +++ of the regular zeros, and the other for solving in the sense of +++ the Zariski closure. Both produce square-free regular sets. +++ Moreover, the decompositions do not contain any redundant component. +++ However, only zero-dimensional regular sets are normalized, since +++ normalization may be time consumming in positive dimension. +++ The decomposition process is that of [2].\newline +++ References : +++ [1] D. LAZARD "A new method for solving algebraic systems of +++ positive dimension" Discr. App. Math. 33:147-160,1991 +++ [2] M. MORENO MAZA "A new algorithm for computing triangular +++ decomposition of algebraic varieties" NAG Tech. Rep. 4/98. +++ Version: 1. + +LazardSetSolvingPackage(R,E,V,P,TS,ST): Exports == Implementation where + + R : GcdDomain + E : OrderedAbelianMonoidSup + V : OrderedSet + P : RecursivePolynomialCategory(R,E,V) + TS: RegularTriangularSetCategory(R,E,V,P) + ST : SquareFreeRegularTriangularSetCategory(R,E,V,P) + N ==> NonNegativeInteger + Z ==> Integer + B ==> Boolean + S ==> String + K ==> Fraction R + LP ==> List P + PWT ==> Record(val : P, tower : TS) + BWT ==> Record(val : Boolean, tower : TS) + LpWT ==> Record(val : (List P), tower : TS) + Split ==> List TS + --KeyGcd ==> Record(arg1: P, arg2: P, arg3: TS, arg4: B) + --EntryGcd ==> List PWT + --HGcd ==> TabulatedComputationPackage(KeyGcd, EntryGcd) + --KeyInvSet ==> Record(arg1: P, arg3: TS) + --EntryInvSet ==> List TS + --HInvSet ==> TabulatedComputationPackage(KeyInvSet, EntryInvSet) + polsetpack ==> PolynomialSetUtilitiesPackage(R,E,V,P) + regsetgcdpack ==> SquareFreeRegularTriangularSetGcdPackage(R,E,V,P,ST) + quasicomppack ==> SquareFreeQuasiComponentPackage(R,E,V,P,ST) + normalizpack ==> NormalizationPackage(R,E,V,P,ST) + + Exports == with + + normalizeIfCan: ST -> ST + ++ \axiom{normalizeIfCan(ts)} returns \axiom{ts} in an normalized shape + ++ if \axiom{ts} is zero-dimensional. + zeroSetSplit: (LP, B) -> List ST + ++ \axiom{zeroSetSplit(lp,clos?)} has the same specifications as + ++ \axiomOpFrom{zeroSetSplit(lp,clos?)}{RegularTriangularSetCategory}. + + Implementation == add + + convert(st: ST): TS == + ts: TS := empty() + lp: LP := members(st)$ST + lp := sort(infRittWu?,lp) + for p in lp repeat + ts := internalAugment(p,ts)$TS + ts + + squareFree(ts: TS): List ST == + empty? ts => [empty()$ST] + lp: LP := members(ts)$TS + lp := sort(infRittWu?,lp) + newts: ST := empty()$ST + toSee: List ST := [newts] + toSave: List ST + for p in lp repeat + toSave := [] + while (not empty? toSee) repeat + us := first toSee; toSee := rest toSee + lpwt := stoseSquareFreePart(p,us)$regsetgcdpack + for pwt in lpwt repeat + newus := internalAugment(pwt.val,pwt.tower)$ST + toSave := cons(newus,toSave) + toSee := toSave + toSave + + normalizeIfCan(ts: ST): ST == + empty? ts => ts + lp: LP := members(ts)$ST + lp := sort(infRittWu?,lp) + p: P := first lp + not univariate?(p)$polsetpack => ts + lp := rest lp + newts: ST := empty()$ST + newts := internalAugment(p,newts)$ST + while (not empty? lp) repeat + p := first lp + lv := variables(p) + for v in lv repeat + v = mvar(p) => "leave" + not algebraic?(v,newts) => return internalAugment(lp,newts)$ST + lp := rest lp + p := normalizedAssociate(p,newts)$normalizpack + newts := internalAugment(p,newts)$ST + newts + + zeroSetSplit(lp:List(P), clos?:B): List ST == + -- if clos? then SOLVE in the closure sense + toSee: Split := zeroSetSplit(lp, clos?)$TS + toSave: List ST := [] + for ts in toSee repeat + toSave := concat(squareFree(ts),toSave) + toSave := removeSuperfluousQuasiComponents(toSave)$quasicomppack + [normalizeIfCan(ts) for ts in toSave] + +@ +\section{License} +<<license>>= +--Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. +--All rights reserved. +-- +--Redistribution and use in source and binary forms, with or without +--modification, are permitted provided that the following conditions are +--met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +--IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +--TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +--PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +--OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +--EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +--PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +--PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +--LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +--NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +--SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +@ +<<*>>= +<<license>> + +<<category SNTSCAT SquareFreeNormalizedTriangularSetCategory>> +<<package LAZM3PK LazardSetSolvingPackage>> +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} |