aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/degred.spad.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/algebra/degred.spad.pamphlet')
-rw-r--r--src/algebra/degred.spad.pamphlet99
1 files changed, 99 insertions, 0 deletions
diff --git a/src/algebra/degred.spad.pamphlet b/src/algebra/degred.spad.pamphlet
new file mode 100644
index 00000000..dd903291
--- /dev/null
+++ b/src/algebra/degred.spad.pamphlet
@@ -0,0 +1,99 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/algebra degred.spad}
+\author{The Axiom Team}
+\maketitle
+\begin{abstract}
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+\section{package DEGRED DegreeReductionPackage}
+<<package DEGRED DegreeReductionPackage>>=
+)abbrev package DEGRED DegreeReductionPackage
+++ This package \undocumented{}
+DegreeReductionPackage(R1, R2): Cat == Capsule where
+ R1: Ring
+ R2: Join(IntegralDomain,OrderedSet)
+
+ I ==> Integer
+ PI ==> PositiveInteger
+ UP ==> SparseUnivariatePolynomial
+ RE ==> Expression R2
+
+ Cat == with
+ reduce: UP R1 -> Record(pol: UP R1, deg: PI)
+ ++ reduce(p) \undocumented{}
+ expand: (RE, PI) -> List RE
+ ++ expand(f,n) \undocumented{}
+
+ Capsule == add
+
+
+ degrees(u: UP R1): List Integer ==
+ l: List Integer := []
+ while u ^= 0 repeat
+ l := concat(degree u,l)
+ u := reductum u
+ l
+ reduce(u: UP R1) ==
+ g := "gcd"/[d for d in degrees u]
+ u := divideExponents(u, g:PI)::(UP R1)
+ [u, g:PI]
+
+ import Fraction Integer
+
+ rootOfUnity(j:I,n:I):RE ==
+ j = 0 => 1
+ arg:RE := 2*j*pi()/(n::RE)
+ cos arg + (-1)**(1/2) * sin arg
+
+ expand(s, g) ==
+ g = 1 => [s]
+ [rootOfUnity(i,g)*s**(1/g) for i in 0..g-1]
+
+@
+\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>>
+
+<<package DEGRED DegreeReductionPackage>>
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}