axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] 20081217.01.tpd.patch (padic.spad removed)


From: daly
Subject: [Axiom-developer] 20081217.01.tpd.patch (padic.spad removed)
Date: Wed, 17 Dec 2008 17:31:03 -0600

Remove padic.spad.pamphlet.
The domains have been moved to bookvol10.3

==========================================================================
diff --git a/changelog b/changelog
index 347c07b..7bc32ab 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20081217 tpd src/axiom-website/patches.html 20081217.01.tpd.patch
+20081217 tpd src/algebra/padic.spad removed, move domains to bookvol10.3
 20081216 tpd src/axiom-website/patches.html 20081216.04.tpd.patch
 20081216 tpd books/ps/v103anonymousfunction.ps added
 20081216 tpd books/ps/v103directproduct.ps added
diff --git a/src/algebra/padic.spad.pamphlet b/src/algebra/padic.spad.pamphlet
deleted file mode 100644
index 666ae07..0000000
--- a/src/algebra/padic.spad.pamphlet
+++ /dev/null
@@ -1,573 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/algebra padic.spad}
-\author{Clifton J. Williamson}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{domain IPADIC InnerPAdicInteger}
-<<domain IPADIC InnerPAdicInteger>>=
-)abbrev domain IPADIC InnerPAdicInteger
-++ Author: Clifton J. Williamson
-++ Date Created: 20 August 1989
-++ Date Last Updated: 15 May 1990
-++ Basic Operations:
-++ Related Domains:
-++ Also See:
-++ AMS Classifications:
-++ Keywords:
-++ Keywords: p-adic, completion
-++ Examples:
-++ References:
-++ Description:
-++   This domain implements Zp, the p-adic completion of the integers.
-++   This is an internal domain.
-InnerPAdicInteger(p,unBalanced?): Exports == Implementation where
-  p           : Integer
-  unBalanced? : Boolean
-  I   ==> Integer
-  NNI ==> NonNegativeInteger
-  OUT ==> OutputForm
-  L   ==> List
-  ST  ==> Stream
-  SUP ==> SparseUnivariatePolynomial
-
-  Exports ==> PAdicIntegerCategory p
-
-  Implementation ==> add
-
-    PEXPR := p :: OUT
-
-    Rep := ST I
-
-    characteristic() == 0
-    euclideanSize(x) == order(x)
-
-    stream(x:%):ST I == x pretend ST(I)
-    padic(x:ST I):% == x pretend %
-    digits x == stream x
-
-    extend(x,n) == extend(x,n + 1)$Rep
-    complete x == complete(x)$Rep
-
---     notBalanced?:() -> Boolean
---     notBalanced?() == unBalanced?
-
-    modP:I -> I
-    modP n ==
-      unBalanced? or (p = 2) => positiveRemainder(n,p)
-      symmetricRemainder(n,p)
-
-    modPInfo:I -> Record(digit:I,carry:I)
-    modPInfo n ==
-      dv := divide(n,p)
-      r0 := dv.remainder; q := dv.quotient
-      if (r := modP r0) ^= r0 then q := q + ((r0 - r) quo p)
-      [r,q]
-
-    invModP: I -> I
-    invModP n == invmod(n,p)
-
-    modulus()     == p
-    moduloP x     == (empty? x => 0; frst x)
-    quotientByP x == (empty? x => x; rst x)
-
-    approximate(x,n) ==
-      n <= 0 or empty? x => 0
-      frst x + p * approximate(rst x,n - 1)
-
-    x = y ==
-      st : ST I := stream(x - y)
-      n : I := _$streamCount$Lisp
-      for i in 0..n repeat
-        empty? st => return true
-        frst st ^= 0 => return false
-        st := rst st
-      empty? st
-
-    order x ==
-      st := stream x
-      for i in 0..1000 repeat
-        empty? st => return 0
-        frst st ^= 0 => return i
-        st := rst st
-      error "order: series has more than 1000 leading zero coefs"
-
-    0 == padic concat(0$I,empty())
-    1 == padic concat(1$I,empty())
-
-    intToPAdic: I -> ST I
-    intToPAdic n == delay
-      n = 0 => empty()
-      modp := modPInfo n
-      concat(modp.digit,intToPAdic modp.carry)
-
-    intPlusPAdic: (I,ST I) -> ST I
-    intPlusPAdic(n,x) == delay
-      empty? x => intToPAdic n
-      modp := modPInfo(n + frst x)
-      concat(modp.digit,intPlusPAdic(modp.carry,rst x))
-
-    intMinusPAdic: (I,ST I) -> ST I
-    intMinusPAdic(n,x) == delay
-      empty? x => intToPAdic n
-      modp := modPInfo(n - frst x)
-      concat(modp.digit,intMinusPAdic(modp.carry,rst x))
-
-    plusAux: (I,ST I,ST I) -> ST I
-    plusAux(n,x,y) == delay
-      empty? x and empty? y => intToPAdic n
-      empty? x => intPlusPAdic(n,y)
-      empty? y => intPlusPAdic(n,x)
-      modp := modPInfo(n + frst x + frst y)
-      concat(modp.digit,plusAux(modp.carry,rst x,rst y))
-
-    minusAux: (I,ST I,ST I) -> ST I
-    minusAux(n,x,y) == delay
-      empty? x and empty? y => intToPAdic n
-      empty? x => intMinusPAdic(n,y)
-      empty? y => intPlusPAdic(n,x)
-      modp := modPInfo(n + frst x - frst y)
-      concat(modp.digit,minusAux(modp.carry,rst x,rst y))
-
-    x + y == padic plusAux(0,stream x,stream y)
-    x - y == padic minusAux(0,stream x,stream y)
-    - y   == padic intMinusPAdic(0,stream y)
-    coerce(n:I) == padic intToPAdic n
-
-    intMult:(I,ST I) -> ST I
-    intMult(n,x) == delay
-      empty? x => empty()
-      modp := modPInfo(n * frst x)
-      concat(modp.digit,intPlusPAdic(modp.carry,intMult(n,rst x)))
-
-    (n:I) * (x:%) ==
-      padic intMult(n,stream x)
-
-    timesAux:(ST I,ST I) -> ST I
-    timesAux(x,y) == delay
-      empty? x or empty? y => empty()
-      modp := modPInfo(frst x * frst y)
-      car := modp.digit
-      cdr : ST I --!!
-      cdr := plusAux(modp.carry,intMult(frst x,rst y),timesAux(rst x,y))
-      concat(car,cdr)
-
-    (x:%) * (y:%) == padic timesAux(stream x,stream y)
-
-    quotientAux:(ST I,ST I) -> ST I
-    quotientAux(x,y) == delay
-      empty? x => error "quotientAux: first argument"
-      empty? y => empty()
-      modP frst x = 0 =>
-        modP frst y = 0 => quotientAux(rst x,rst y)
-        error "quotient: quotient not integral"
-      z0 := modP(invModP frst x * frst y)
-      yy : ST I --!!
-      yy := rest minusAux(0,y,intMult(z0,x))
-      concat(z0,quotientAux(x,yy))
-
-    recip x ==
-      empty? x or modP frst x = 0 => "failed"
-      padic quotientAux(stream x,concat(1,empty()))
-
-    iExquo: (%,%,I) -> Union(%,"failed")
-    iExquo(xx,yy,n) ==
-      n > 1000 =>
-        error "exquo: quotient by series with many leading zero coefs"
-      empty? yy => "failed"
-      empty? xx => 0
-      zero? frst yy =>
-        zero? frst xx => iExquo(rst xx,rst yy,n + 1)
-        "failed"
-      (rec := recip yy) case "failed" => "failed"
-      xx * (rec :: %)
-
-    x exquo y == iExquo(stream x,stream y,0)
-
-    divide(x,y) ==
-      (z:=x exquo y) case "failed" => [0,x]
-      [z, 0]
-
-    iSqrt: (I,I,I,%) -> %
-    iSqrt(pn,an,bn,bSt) == delay
-      bn1 := (empty? bSt => bn; bn + pn * frst(bSt))
-      c := (bn1 - an*an) quo pn
-      aa := modP(c * invmod(2*an,p))
-      nSt := (empty? bSt => bSt; rst bSt)
-      concat(aa,iSqrt(pn*p,an + pn*aa,bn1,nSt))
-
-    sqrt(b,a) ==
-      p = 2 =>
-        error "sqrt: no square roots in Z2 yet"
-      not zero? modP(a*a - (bb := moduloP b)) =>
-        error "sqrt: not a square root (mod p)"
-      b := (empty? b => b; rst b)
-      a := modP a
-      concat(a,iSqrt(p,a,bb,b))
-
-    iRoot: (SUP I,I,I,I) -> ST I
-    iRoot(f,alpha,invFpx0,pPow) == delay
-      num := -((f(alpha) exquo pPow) :: I)
-      digit := modP(num * invFpx0)
-      concat(digit,iRoot(f,alpha + digit * pPow,invFpx0,p * pPow))
-
-    root(f,x0) ==
-      x0 := modP x0
-      not zero? modP f(x0) =>
-        error "root: not a root (mod p)"
-      fpx0 := modP (differentiate f)(x0)
-      zero? fpx0 =>
-        error "root: approximate root must be a simple root (mod p)"
-      invFpx0 := modP invModP fpx0
-      padic concat(x0,iRoot(f,x0,invFpx0,p))
-
-    termOutput:(I,I) -> OUT
-    termOutput(k,c) ==
-      k = 0 => c :: OUT
-      mon := (k = 1 => PEXPR; PEXPR ** (k :: OUT))
-      c = 1 => mon
-      c = -1 => -mon
-      (c :: OUT) * mon
-
-    showAll?:() -> Boolean
-    -- check a global Lisp variable
-    showAll?() == true
-
-    coerce(x:%):OUT ==
-      empty?(st := stream x) => 0 :: OUT
-      n : NNI ; count : NNI := _$streamCount$Lisp
-      l : L OUT := empty()
-      for n in 0..count while not empty? st repeat
-        if frst(st) ^= 0 then
-          l := concat(termOutput(n :: I,frst st),l)
-        st := rst st
-      if showAll?() then
-        for n in (count + 1).. while explicitEntries? st and _
-               not eq?(st,rst st) repeat
-          if frst(st) ^= 0 then
-            l := concat(termOutput(n pretend I,frst st),l)
-          st := rst st
-      l :=
-        explicitlyEmpty? st => l
-        eq?(st,rst st) and frst st = 0 => l
-        concat(prefix("O" :: OUT,[PEXPR ** (n :: OUT)]),l)
-      empty? l => 0 :: OUT
-      reduce("+",reverse_! l)
-
-@
-\section{domain PADIC PAdicInteger}
-<<domain PADIC PAdicInteger>>=
-)abbrev domain PADIC PAdicInteger
-++ Author: Clifton J. Williamson
-++ Date Created: 20 August 1989
-++ Date Last Updated: 15 May 1990
-++ Basic Operations:
-++ Related Domains:
-++ Also See:
-++ AMS Classifications:
-++ Keywords:
-++ Keywords: p-adic, completion
-++ Examples:
-++ References:
-++ Description:
-++   Stream-based implementation of Zp: p-adic numbers are represented as
-++   sum(i = 0.., a[i] * p^i), where the a[i] lie in 0,1,...,(p - 1).
-PAdicInteger(p:Integer) == InnerPAdicInteger(p,true$Boolean)
-
-@
-\section{domain BPADIC BalancedPAdicInteger}
-<<domain BPADIC BalancedPAdicInteger>>=
-)abbrev domain BPADIC BalancedPAdicInteger
-++ Author: Clifton J. Williamson
-++ Date Created: 15 May 1990
-++ Date Last Updated: 15 May 1990
-++ Basic Operations:
-++ Related Domains:
-++ Also See:
-++ AMS Classifications:
-++ Keywords: p-adic, complementation
-++ Examples:
-++ References:
-++ Description:
-++   Stream-based implementation of Zp: p-adic numbers are represented as
-++   sum(i = 0.., a[i] * p^i), where the a[i] lie in -(p - 1)/2,...,(p - 1)/2.
-BalancedPAdicInteger(p:Integer) == InnerPAdicInteger(p,false$Boolean)
-
-@
-\section{domain PADICRC PAdicRationalConstructor}
-<<domain PADICRC PAdicRationalConstructor>>=
-)abbrev domain PADICRC PAdicRationalConstructor
-++ Author: Clifton J. Williamson
-++ Date Created: 10 May 1990
-++ Date Last Updated: 10 May 1990
-++ Basic Operations:
-++ Related Domains:
-++ Also See:
-++ AMS Classifications:
-++ Keywords:
-++ Keywords: p-adic, completion
-++ Examples:
-++ References:
-++ Description: This is the category of stream-based representations of Qp.
-PAdicRationalConstructor(p,PADIC): Exports == Implementation where
-  p     :   Integer
-  PADIC :   PAdicIntegerCategory p
-  CF    ==> ContinuedFraction
-  I     ==> Integer
-  NNI   ==> NonNegativeInteger
-  OUT   ==> OutputForm
-  L     ==> List
-  RN    ==> Fraction Integer
-  ST    ==> Stream
-
-  Exports ==> QuotientFieldCategory(PADIC) with
-    approximate: (%,I) -> RN
-      ++ \spad{approximate(x,n)} returns a rational number y such that
-      ++ \spad{y = x (mod p^n)}.
-    continuedFraction: % -> CF RN
-      ++ \spad{continuedFraction(x)} converts the p-adic rational number x
-      ++ to a continued fraction.
-    removeZeroes: % -> %
-      ++ \spad{removeZeroes(x)} removes leading zeroes from the
-      ++ representation of the p-adic rational \spad{x}.
-      ++ A p-adic rational is represented by (1) an exponent and
-      ++ (2) a p-adic integer which may have leading zero digits.
-      ++ When the p-adic integer has a leading zero digit, a 'leading zero'
-      ++ is removed from the p-adic rational as follows:
-      ++ the number is rewritten by increasing the exponent by 1 and
-      ++ dividing the p-adic integer by p.
-      ++ Note: \spad{removeZeroes(f)} removes all leading zeroes from f.
-    removeZeroes: (I,%) -> %
-      ++ \spad{removeZeroes(n,x)} removes up to n leading zeroes from
-      ++ the p-adic rational \spad{x}.
-
-  Implementation ==> add
-
-    PEXPR := p :: OUT
-
---% representation
-
-    Rep := Record(expon:I,pint:PADIC)
-
-    getExpon: % -> I
-    getZp   : % -> PADIC
-    makeQp  : (I,PADIC) -> %
-
-    getExpon x    == x.expon
-    getZp x       == x.pint
-    makeQp(r,int) == [r,int]
-
---% creation
-
-    0 == makeQp(0,0)
-    1 == makeQp(0,1)
-
-    coerce(x:I)     == x :: PADIC :: %
-    coerce(r:RN)    == (numer(r) :: %)/(denom(r) :: %)
-    coerce(x:PADIC) == makeQp(0,x)
-
---% normalizations
-
-    removeZeroes x ==
-      empty? digits(xx := getZp x) => 0
-      zero? moduloP xx =>
-        removeZeroes makeQp(getExpon x + 1,quotientByP xx)
-      x
-
-    removeZeroes(n,x) ==
-      n <= 0 => x
-      empty? digits(xx := getZp x) => 0
-      zero? moduloP xx =>
-        removeZeroes(n - 1,makeQp(getExpon x + 1,quotientByP xx))
-      x
-
---% arithmetic
-
-    x = y ==
-      EQ(x,y)$Lisp => true
-      n := getExpon(x) - getExpon(y)
-      n >= 0 =>
-        (p**(n :: NNI) * getZp(x)) = getZp(y)
-      (p**((- n) :: NNI) * getZp(y)) = getZp(x)
-
-    x + y ==
-      n := getExpon(x) - getExpon(y)
-      n >= 0 =>
-        makeQp(getExpon y,getZp(y) + p**(n :: NNI) * getZp(x))
-      makeQp(getExpon x,getZp(x) + p**((-n) :: NNI) * getZp(y))
-
-    -x == makeQp(getExpon x,-getZp(x))
-
-    x - y ==
-      n := getExpon(x) - getExpon(y)
-      n >= 0 =>
-        makeQp(getExpon y,p**(n :: NNI) * getZp(x) - getZp(y))
-      makeQp(getExpon x,getZp(x) - p**((-n) :: NNI) * getZp(y))
-
-    n:I * x:% == makeQp(getExpon x,n * getZp x)
-    x:% * y:% == makeQp(getExpon x + getExpon y,getZp x * getZp y)
-
-    x:% ** n:I ==
-      zero? n => 1
-      positive? n => expt(x,n :: PositiveInteger)$RepeatedSquaring(%)
-      inv expt(x,(-n) :: PositiveInteger)$RepeatedSquaring(%)
-
-    recip x ==
-      x := removeZeroes(1000,x)
-      zero? moduloP(xx := getZp x) => "failed"
-      (inv := recip xx) case "failed" => "failed"
-      makeQp(- getExpon x,inv :: PADIC)
-
-    inv x ==
-      (inv := recip x) case "failed" => error "inv: no inverse"
-      inv :: %
-
-    x:% / y:% == x * inv y
-    x:PADIC / y:PADIC == (x :: %) / (y :: %)
-    x:PADIC * y:% == makeQp(getExpon y,x * getZp y)
-
-    approximate(x,n) ==
-      k := getExpon x
-      (p :: RN) ** k * approximate(getZp x,n - k)
-
-    cfStream: % -> Stream RN
-    cfStream x == delay
---    zero? x => empty()
-      invx := inv x; x0 := approximate(invx,1)
-      concat(x0,cfStream(invx - (x0 :: %)))
-
-    continuedFraction x ==
-      x0 := approximate(x,1)
-      reducedContinuedFraction(x0,cfStream(x - (x0 :: %)))
-
-    termOutput:(I,I) -> OUT
-    termOutput(k,c) ==
-      k = 0 => c :: OUT
-      mon := (k = 1 => PEXPR; PEXPR ** (k :: OUT))
-      c = 1 => mon
-      c = -1 => -mon
-      (c :: OUT) * mon
-
-    showAll?:() -> Boolean
-    -- check a global Lisp variable
-    showAll?() == true
-
-    coerce(x:%):OUT ==
-      x := removeZeroes(_$streamCount$Lisp,x)
-      m := getExpon x; zp := getZp x
-      uu := digits zp
-      l : L OUT := empty()
-      empty? uu => 0 :: OUT
-      n : NNI ; count : NNI := _$streamCount$Lisp
-      for n in 0..count while not empty? uu repeat
-        if frst(uu) ^= 0 then
-          l := concat(termOutput((n :: I) + m,frst(uu)),l)
-        uu := rst uu
-      if showAll?() then
-        for n in (count + 1).. while explicitEntries? uu and _
-               not eq?(uu,rst uu) repeat
-          if frst(uu) ^= 0 then
-            l := concat(termOutput((n::I) + m,frst(uu)),l)
-          uu := rst uu
-      l :=
-        explicitlyEmpty? uu => l
-        eq?(uu,rst uu) and frst uu = 0 => l
-        concat(prefix("O" :: OUT,[PEXPR ** ((n :: I) + m) :: OUT]),l)
-      empty? l => 0 :: OUT
-      reduce("+",reverse_! l)
-
-@
-\section{domain PADICRAT PAdicRational}
-<<domain PADICRAT PAdicRational>>=
-)abbrev domain PADICRAT PAdicRational
-++ Author: Clifton J. Williamson
-++ Date Created: 15 May 1990
-++ Date Last Updated: 15 May 1990
-++ Keywords: p-adic, complementation
-++ Basic Operations:
-++ Related Domains:
-++ Also See:
-++ AMS Classifications:
-++ Keywords: p-adic, completion
-++ Examples:
-++ References:
-++ Description:
-++   Stream-based implementation of Qp: numbers are represented as
-++   sum(i = k.., a[i] * p^i) where the a[i] lie in 0,1,...,(p - 1).
-PAdicRational(p:Integer) == PAdicRationalConstructor(p,PAdicInteger p)
-
-@
-\section{domain BPADICRT BalancedPAdicRational}
-<<domain BPADICRT BalancedPAdicRational>>=
-)abbrev domain BPADICRT BalancedPAdicRational
-++ Author: Clifton J. Williamson
-++ Date Created: 15 May 1990
-++ Date Last Updated: 15 May 1990
-++ Keywords: p-adic, complementation
-++ Basic Operations:
-++ Related Domains:
-++ Also See:
-++ AMS Classifications:
-++ Keywords: p-adic, completion
-++ Examples:
-++ References:
-++ Description:
-++   Stream-based implementation of Qp: numbers are represented as
-++   sum(i = k.., a[i] * p^i), where the a[i] lie in -(p - 1)/2,...,(p - 1)/2.
-BalancedPAdicRational(p:Integer) ==
-  PAdicRationalConstructor(p,BalancedPAdicInteger p)
-
-@
-\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>>
-
-<<domain IPADIC InnerPAdicInteger>>
-<<domain PADIC PAdicInteger>>
-<<domain BPADIC BalancedPAdicInteger>>
-<<domain PADICRC PAdicRationalConstructor>>
-<<domain PADICRAT PAdicRational>>
-<<domain BPADICRT BalancedPAdicRational>>
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index a7c066a..3189281 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -815,6 +815,8 @@ biquat.input fix regression failure<br/>
 bookvol10.3 add domains<br/>
 <a href="patches/20081216.04.tpd.patch">20081216.04.tpd.patch</a>
 bookvol10.3 add domains<br/>
+<a href="patches/20081217.01.tpd.patch">20081217.01.tpd.patch</a>
+padic.spad removed<br/>
 
  </body>
 </html>
\ No newline at end of file




reply via email to

[Prev in Thread] Current Thread [Next in Thread]